> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.AssistantMemoryApi.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface AssistantMemoryApi

Host-owned, userspace-scoped assistant memory. UNLIKE `assistant.context` / `assistant.actions` (ungated advisory postMessage), every method here is a gated project RPC: reads require `"memory-read"` and `editFile`/deletes require `"memory-write"` in manifest `requests.assistant`. The host owns the capped profile files and the episode store under the userspace root; the app receives typed rows only, never a filesystem path. Memory is context for future chats, never authority. This is a DIFFERENT plane from per-project "project memory" (`.ispo/spec.md` + devlog).

```typescript
interface AssistantMemoryApi {
    conclusions(
        input?: AssistantMemoryListArgs,
    ): Promise<AssistantMemoryConclusion[]>;
    deleteConclusion(
        input: { id: number },
    ): Promise<AssistantMemoryDeleteResult>;
    deleteEpisode(input: { id: number }): Promise<AssistantMemoryDeleteResult>;
    editFile(
        input: AssistantMemoryEditFileArgs,
    ): Promise<AssistantMemoryEditFileResult>;
    episodes(
        input?: AssistantMemoryListArgs,
    ): Promise<AssistantMemoryEpisode[]>;
    overview(): Promise<AssistantMemoryOverview>;
    recallTrace(
        input: AssistantMemoryRecallTraceArgs,
    ): Promise<AssistantMemoryRecallTrace>;
    search(
        input: AssistantMemorySearchArgs,
    ): Promise<AssistantMemorySearchResult[]>;
}
```

Types: [conclusions](#conclusions-1), [AssistantMemoryListArgs](core.AssistantMemoryListArgs.md), [AssistantMemoryConclusion](core.AssistantMemoryConclusion.md), [deleteConclusion](#deleteconclusion-1), [AssistantMemoryDeleteResult](core.AssistantMemoryDeleteResult.md), [deleteEpisode](#deleteepisode-1), [editFile](#editfile-1), [AssistantMemoryEditFileArgs](core.AssistantMemoryEditFileArgs.md), [AssistantMemoryEditFileResult](../types/core.AssistantMemoryEditFileResult.md), [episodes](#episodes-1), [AssistantMemoryEpisode](core.AssistantMemoryEpisode.md), [overview](#overview-1), [AssistantMemoryOverview](core.AssistantMemoryOverview.md), [recallTrace](#recalltrace-1), [AssistantMemoryRecallTraceArgs](core.AssistantMemoryRecallTraceArgs.md), [AssistantMemoryRecallTrace](core.AssistantMemoryRecallTrace.md), [search](#search-1), [AssistantMemorySearchArgs](core.AssistantMemorySearchArgs.md), [AssistantMemorySearchResult](../types/core.AssistantMemorySearchResult.md)

##### Index

### <a id="methods"></a>Methods

[conclusions](#conclusions) [deleteConclusion](#deleteconclusion) [deleteEpisode](#deleteepisode) [editFile](#editfile) [episodes](#episodes) [overview](#overview) [recallTrace](#recalltrace) [search](#search)

## <a id="methods-1"></a>Methods

### <a id="conclusions"></a>conclusions

*   <a id="conclusions-1"></a>
    
    ```typescript
    conclusions(
        input?: AssistantMemoryListArgs,
    ): Promise<AssistantMemoryConclusion[]>
    ```
    
    Types: [AssistantMemoryListArgs](core.AssistantMemoryListArgs.md), [AssistantMemoryConclusion](core.AssistantMemoryConclusion.md)
    
    Derived conclusions, newest first. Empty in v1 (nothing writes them yet).
    
    #### Parameters
    
    *   `Optional`input: [AssistantMemoryListArgs](core.AssistantMemoryListArgs.md)
    
    #### Returns Promise<[AssistantMemoryConclusion](core.AssistantMemoryConclusion.md)\[\]\>
    

**Authority for `assistant.memory.conclusions`**

Reviewed request token: `assistant.memoryRead`. Standing capability: `assistant.memoryRead`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="deleteconclusion"></a>deleteConclusion

*   <a id="deleteconclusion-1"></a>
    
    ```typescript
    deleteConclusion(input: { id: number }): Promise<AssistantMemoryDeleteResult>
    ```
    
    Types: [AssistantMemoryDeleteResult](core.AssistantMemoryDeleteResult.md)
    
    #### Parameters
    
    *   input: { id: number }
    
    #### Returns Promise<[AssistantMemoryDeleteResult](core.AssistantMemoryDeleteResult.md)\>
    

**Authority for `assistant.memory.deleteConclusion`**

Reviewed request token: `assistant.memoryWrite`. Standing capability: `assistant.memoryWrite`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="deleteepisode"></a>deleteEpisode

*   <a id="deleteepisode-1"></a>
    
    ```typescript
    deleteEpisode(input: { id: number }): Promise<AssistantMemoryDeleteResult>
    ```
    
    Types: [AssistantMemoryDeleteResult](core.AssistantMemoryDeleteResult.md)
    
    #### Parameters
    
    *   input: { id: number }
    
    #### Returns Promise<[AssistantMemoryDeleteResult](core.AssistantMemoryDeleteResult.md)\>
    

**Authority for `assistant.memory.deleteEpisode`**

Reviewed request token: `assistant.memoryWrite`. Standing capability: `assistant.memoryWrite`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="editfile"></a>editFile

*   <a id="editfile-1"></a>
    
    ```typescript
    editFile(
        input: AssistantMemoryEditFileArgs,
    ): Promise<AssistantMemoryEditFileResult>
    ```
    
    Types: [AssistantMemoryEditFileArgs](core.AssistantMemoryEditFileArgs.md), [AssistantMemoryEditFileResult](../types/core.AssistantMemoryEditFileResult.md)
    
    Add/replace/remove one fact line in [USER.md](http://USER.md) or [ASSISTANT.md](http://ASSISTANT.md). An over-cap or no-match outcome resolves `{ ok: false }` DATA — it never throws.
    
    #### Parameters
    
    *   input: [AssistantMemoryEditFileArgs](core.AssistantMemoryEditFileArgs.md)
    
    #### Returns Promise<[AssistantMemoryEditFileResult](../types/core.AssistantMemoryEditFileResult.md)\>
    

**Authority for `assistant.memory.editFile`**

Reviewed request token: `assistant.memoryWrite`. Standing capability: `assistant.memoryWrite`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="episodes"></a>episodes

*   <a id="episodes-1"></a>
    
    ```typescript
    episodes(input?: AssistantMemoryListArgs): Promise<AssistantMemoryEpisode[]>
    ```
    
    Types: [AssistantMemoryListArgs](core.AssistantMemoryListArgs.md), [AssistantMemoryEpisode](core.AssistantMemoryEpisode.md)
    
    Recorded session episodes, newest first (default 20, max 200).
    
    #### Parameters
    
    *   `Optional`input: [AssistantMemoryListArgs](core.AssistantMemoryListArgs.md)
    
    #### Returns Promise<[AssistantMemoryEpisode](core.AssistantMemoryEpisode.md)\[\]\>
    

**Authority for `assistant.memory.episodes`**

Reviewed request token: `assistant.memoryRead`. Standing capability: `assistant.memoryRead`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="overview"></a>overview

*   <a id="overview-1"></a>
    
    ```typescript
    overview(): Promise<AssistantMemoryOverview>
    ```
    
    Types: [AssistantMemoryOverview](core.AssistantMemoryOverview.md)
    
    Both profile files with usage meters, plus store counts and backend.
    
    #### Returns Promise<[AssistantMemoryOverview](core.AssistantMemoryOverview.md)\>
    

**Authority for `assistant.memory.overview`**

Reviewed request token: `assistant.memoryRead`. Standing capability: `assistant.memoryRead`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="recalltrace"></a>recallTrace

*   <a id="recalltrace-1"></a>
    
    ```typescript
    recallTrace(
        input: AssistantMemoryRecallTraceArgs,
    ): Promise<AssistantMemoryRecallTrace>
    ```
    
    Types: [AssistantMemoryRecallTraceArgs](core.AssistantMemoryRecallTraceArgs.md), [AssistantMemoryRecallTrace](core.AssistantMemoryRecallTrace.md)
    
    Debug trace for one session: the memory/brief blocks the host actually injected plus the session's tool calls replayed from its transcript record. Display-only evidence — clamped strings, never authority.
    
    #### Parameters
    
    *   input: [AssistantMemoryRecallTraceArgs](core.AssistantMemoryRecallTraceArgs.md)
    
    #### Returns Promise<[AssistantMemoryRecallTrace](core.AssistantMemoryRecallTrace.md)\>
    

**Authority for `assistant.memory.recallTrace`**

Reviewed request token: `assistant.memoryRead`. Standing capability: `assistant.memoryRead`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="search"></a>search

*   <a id="search-1"></a>
    
    ```typescript
    search(input: AssistantMemorySearchArgs): Promise<AssistantMemorySearchResult[]>
    ```
    
    Types: [AssistantMemorySearchArgs](core.AssistantMemorySearchArgs.md), [AssistantMemorySearchResult](../types/core.AssistantMemorySearchResult.md)
    
    Full-text search over episodes and conclusions.
    
    #### Parameters
    
    *   input: [AssistantMemorySearchArgs](core.AssistantMemorySearchArgs.md)
    
    #### Returns Promise<[AssistantMemorySearchResult](../types/core.AssistantMemorySearchResult.md)\[\]\>
    

**Authority for `assistant.memory.search`**

Reviewed request token: `assistant.memoryRead`. Standing capability: `assistant.memoryRead`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).
