@letta-ai/letta-agent-sdk 0.3.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/AGENTS.md +0 -3
  2. package/README.md +12 -0
  3. package/dist/app-server-management.d.ts +3 -48
  4. package/dist/app-server-management.d.ts.map +1 -1
  5. package/dist/app-server-session.d.ts +0 -6
  6. package/dist/app-server-session.d.ts.map +1 -1
  7. package/dist/client-base.d.ts +7 -15
  8. package/dist/client-base.d.ts.map +1 -1
  9. package/dist/client-entry.js +369 -468
  10. package/dist/client-entry.js.map +13 -12
  11. package/dist/client.d.ts +3 -3
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/cloud-session.d.ts.map +1 -1
  14. package/dist/cloud-status-transport.d.ts +53 -0
  15. package/dist/cloud-status-transport.d.ts.map +1 -0
  16. package/dist/index.d.ts +7 -16
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +896 -2019
  19. package/dist/index.js.map +18 -18
  20. package/dist/local-app-server-session.d.ts +1 -1
  21. package/dist/local-app-server-session.d.ts.map +1 -1
  22. package/dist/local-app-server.d.ts +11 -0
  23. package/dist/local-app-server.d.ts.map +1 -1
  24. package/dist/management.d.ts +0 -7
  25. package/dist/management.d.ts.map +1 -1
  26. package/dist/remote-session-protocol.d.ts +2 -0
  27. package/dist/remote-session-protocol.d.ts.map +1 -1
  28. package/dist/remote-turn-coordinator.d.ts.map +1 -1
  29. package/dist/types.d.ts +57 -66
  30. package/dist/types.d.ts.map +1 -1
  31. package/dist/validation.d.ts.map +1 -1
  32. package/package.json +2 -2
  33. package/src/app-server-management.ts +20 -256
  34. package/src/app-server-session.ts +0 -32
  35. package/src/client-base.ts +47 -73
  36. package/src/client.ts +31 -70
  37. package/src/cloud-session.ts +9 -267
  38. package/src/cloud-status-transport.ts +305 -0
  39. package/src/index.ts +11 -29
  40. package/src/local-app-server-session.ts +13 -3
  41. package/src/local-app-server.ts +97 -3
  42. package/src/management.ts +0 -7
  43. package/src/remote-session-protocol.ts +14 -0
  44. package/src/remote-turn-coordinator.ts +20 -2
  45. package/src/types.ts +64 -111
  46. package/src/validation.ts +21 -6
  47. package/dist/protocol.d.ts +0 -205
  48. package/dist/protocol.d.ts.map +0 -1
  49. package/dist/session.d.ts +0 -155
  50. package/dist/session.d.ts.map +0 -1
  51. package/dist/transport.d.ts +0 -53
  52. package/dist/transport.d.ts.map +0 -1
  53. package/src/protocol.ts +0 -249
  54. package/src/session.ts +0 -1638
  55. package/src/transport.ts +0 -484
package/src/validation.ts CHANGED
@@ -66,7 +66,27 @@ function validateApprovalRecoveryOptions(options: CreateSessionOptions): void {
66
66
  }
67
67
 
68
68
  function validateRemovedSessionOptions(options: CreateSessionOptions): void {
69
- if ((options as { memfsStartup?: unknown }).memfsStartup !== undefined) {
69
+ const removedOptions = options as CreateSessionOptions & Record<string, unknown>;
70
+ if (removedOptions.systemPrompt !== undefined) {
71
+ throw new Error("systemPrompt is not supported when opening an existing agent session.");
72
+ }
73
+ if (removedOptions.disallowedTools !== undefined) {
74
+ throw new Error("disallowedTools is not supported when opening an existing agent session.");
75
+ }
76
+ if (removedOptions.systemInfoReminder !== undefined) {
77
+ throw new Error("systemInfoReminder is not supported when opening an existing agent session.");
78
+ }
79
+ if (removedOptions.includePartialMessages !== undefined) {
80
+ throw new Error("includePartialMessages is not supported by app-server sessions.");
81
+ }
82
+ if (
83
+ options.dreaming &&
84
+ "behavior" in options.dreaming &&
85
+ options.dreaming.behavior !== undefined
86
+ ) {
87
+ throw new Error("dreaming.behavior is not supported when opening an existing agent session.");
88
+ }
89
+ if (removedOptions.memfsStartup !== undefined) {
70
90
  throw new Error(
71
91
  "memfsStartup is not supported by the SDK.",
72
92
  );
@@ -157,11 +177,6 @@ function validateReasoningEffort(value: unknown): void {
157
177
  * Validate CreateSessionOptions (used by createSession and resumeSession).
158
178
  */
159
179
  export function validateCreateSessionOptions(options: CreateSessionOptions): void {
160
- // Validate systemPrompt preset if provided
161
- if (options.systemPrompt !== undefined) {
162
- validateSystemPromptPreset(options.systemPrompt);
163
- }
164
-
165
180
  validateSkillSources(options.skillSources);
166
181
  validateReasoningEffort(options.reasoningEffort);
167
182
  validateDreamingOptions(options.dreaming);
@@ -1,205 +0,0 @@
1
- /**
2
- * Local protocol type surface consumed by the SDK.
3
- *
4
- * @letta-ai/letta-code@0.27.11 publishes these declarations under an internal
5
- * dist path while its package.json points the public `./protocol` export at a
6
- * missing file. Keep the SDK's public types self-contained so CI and consumers
7
- * do not depend on that broken subpath export.
8
- */
9
- export interface MessageEnvelope {
10
- type: string;
11
- session_id?: string;
12
- uuid?: string;
13
- timestamp?: string;
14
- event_seq?: number;
15
- agent_id?: string;
16
- conversation_id?: string;
17
- [key: string]: unknown;
18
- }
19
- /**
20
- * System prompt preset configuration used by the CLI protocol.
21
- */
22
- export interface SystemPromptPresetConfig {
23
- type: "preset";
24
- preset: string;
25
- append?: string;
26
- }
27
- /**
28
- * Custom memory block definition accepted when creating agents.
29
- */
30
- export interface CreateBlock {
31
- label: string;
32
- value: string;
33
- base_template_id?: string | null;
34
- deployment_id?: string | null;
35
- description?: string | null;
36
- entity_id?: string | null;
37
- hidden?: boolean | null;
38
- is_template?: boolean;
39
- limit?: number;
40
- metadata?: Record<string, unknown> | null;
41
- preserve_on_migration?: boolean | null;
42
- project_id?: string | null;
43
- read_only?: boolean;
44
- tags?: string[] | null;
45
- template_id?: string | null;
46
- template_name?: string | null;
47
- }
48
- export interface SystemInitMessage extends MessageEnvelope {
49
- type: "system";
50
- subtype: "init";
51
- agent_id: string;
52
- conversation_id: string;
53
- model: string;
54
- tools: string[];
55
- cwd: string;
56
- mcp_servers: Array<{
57
- name: string;
58
- status: string;
59
- }>;
60
- permission_mode: string;
61
- slash_commands: string[];
62
- memfs_enabled?: boolean;
63
- skill_sources?: Array<"bundled" | "global" | "agent" | "project">;
64
- system_info_reminder_enabled?: boolean;
65
- reflection_trigger?: "off" | "step-count" | "compaction-event";
66
- reflection_behavior?: "reminder" | "auto-launch";
67
- reflection_step_count?: number;
68
- }
69
- export interface MessageWire extends MessageEnvelope {
70
- type: "message";
71
- message_type?: string;
72
- run_id?: string;
73
- }
74
- export interface StreamEvent extends MessageEnvelope {
75
- type: "stream_event";
76
- event: unknown;
77
- }
78
- export type ResultSubtype = "success" | "interrupted" | "error" | string;
79
- export interface ResultMessage extends MessageEnvelope {
80
- type: "result";
81
- subtype: ResultSubtype;
82
- agent_id?: string;
83
- conversation_id: string;
84
- duration_ms: number;
85
- duration_api_ms?: number;
86
- num_turns?: number;
87
- result?: string | null;
88
- run_ids?: string[];
89
- usage?: unknown;
90
- stop_reason?: string;
91
- }
92
- export interface ErrorMessage extends MessageEnvelope {
93
- type: "error";
94
- message: string;
95
- stop_reason: string;
96
- run_id?: string;
97
- api_error?: Record<string, unknown>;
98
- }
99
- export interface CanUseToolControlRequest {
100
- subtype: "can_use_tool";
101
- tool_name: string;
102
- input: Record<string, unknown>;
103
- tool_call_id: string;
104
- permission_suggestions?: unknown[];
105
- blocked_path?: string | null;
106
- diffs?: unknown[];
107
- }
108
- export interface RegisterExternalToolsRequest {
109
- subtype: "register_external_tools";
110
- tools: Array<{
111
- name: string;
112
- label?: string;
113
- description: string;
114
- parameters: Record<string, unknown>;
115
- }>;
116
- }
117
- export interface BootstrapSessionStateRequest {
118
- subtype: "bootstrap_session_state";
119
- limit?: number;
120
- order?: "asc" | "desc";
121
- }
122
- export interface RecoverPendingApprovalsControlRequest {
123
- subtype: "recover_pending_approvals";
124
- agent_id?: string;
125
- conversation_id?: string;
126
- }
127
- export interface ListMessagesControlRequest {
128
- subtype: "list_messages";
129
- conversation_id?: string;
130
- agent_id?: string;
131
- before?: string;
132
- after?: string;
133
- order?: "asc" | "desc";
134
- limit?: number;
135
- }
136
- export interface InterruptControlRequest {
137
- subtype: "interrupt";
138
- }
139
- export interface InitializeControlRequest {
140
- subtype: "initialize";
141
- }
142
- export interface ExecuteExternalToolControlRequest {
143
- subtype: "execute_external_tool";
144
- tool_call_id: string;
145
- tool_name: string;
146
- input: Record<string, unknown>;
147
- }
148
- export type ControlRequestBody = InitializeControlRequest | InterruptControlRequest | RegisterExternalToolsRequest | BootstrapSessionStateRequest | RecoverPendingApprovalsControlRequest | ListMessagesControlRequest | CanUseToolControlRequest | ExecuteExternalToolControlRequest | (Record<string, unknown> & {
149
- subtype: string;
150
- });
151
- export interface ControlRequest extends MessageEnvelope {
152
- type: "control_request";
153
- request_id: string;
154
- request: ControlRequestBody;
155
- }
156
- export interface CanUseToolResponseAllow {
157
- behavior: "allow";
158
- message?: string;
159
- updatedInput?: Record<string, unknown> | null;
160
- updatedPermissions?: unknown[];
161
- }
162
- export interface CanUseToolResponseDeny {
163
- behavior: "deny";
164
- message: string;
165
- interrupt?: boolean;
166
- }
167
- export type CanUseToolResponse = CanUseToolResponseAllow | CanUseToolResponseDeny;
168
- export interface ExternalToolResultContent {
169
- type: "text" | "image";
170
- text?: string;
171
- data?: string;
172
- mimeType?: string;
173
- }
174
- export interface ExternalToolResultResponse {
175
- subtype: "external_tool_result";
176
- request_id: string;
177
- tool_call_id: string;
178
- content: ExternalToolResultContent[];
179
- is_error: boolean;
180
- }
181
- export type ControlResponseBody = {
182
- subtype: "success";
183
- request_id: string;
184
- response?: CanUseToolResponse | Record<string, unknown>;
185
- } | {
186
- subtype: "error";
187
- request_id: string;
188
- error: string;
189
- } | ExternalToolResultResponse;
190
- export interface ControlResponse extends MessageEnvelope {
191
- type: "control_response";
192
- response: ControlResponseBody;
193
- }
194
- export interface RetryMessage extends MessageEnvelope {
195
- type: "retry";
196
- reason: string;
197
- attempt: number;
198
- max_attempts: number;
199
- delay_ms: number;
200
- run_id?: string;
201
- }
202
- export type WireMessage = SystemInitMessage | MessageWire | StreamEvent | ResultMessage | ErrorMessage | RetryMessage | ControlRequest | ControlResponse | (MessageEnvelope & {
203
- type: string;
204
- });
205
- //# sourceMappingURL=protocol.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts DELETED
@@ -1,155 +0,0 @@
1
- /**
2
- * Session
3
- *
4
- * Represents a conversation session with a Letta agent.
5
- * Implements the V2 API pattern: send() / receive()
6
- */
7
- import type { InternalSessionOptions, SDKMessage, SDKInitMessage, SDKResultMessage, SendMessage, ListMessagesOptions, ListMessagesResult, ListModelsResult, BootstrapStateOptions, BootstrapStateResult, ChangeDeviceStateOptions, GetDeviceStatusOptions, SessionDeviceStatus, RunTurnOptions, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, RemoveQueuedMessageResult, SDKProtocolCommand, SDKProtocolMessage, SendCommandOptions, UpdateModelOptions, UpdateModelResult } from "./types.js";
8
- export declare class Session implements AsyncDisposable {
9
- private options;
10
- private transport;
11
- private _agentId;
12
- private _sessionId;
13
- private _conversationId;
14
- private initialized;
15
- private closed;
16
- private initializePromise;
17
- private externalTools;
18
- private streamQueue;
19
- private streamResolvers;
20
- private pumpPromise;
21
- private pumpClosed;
22
- private droppedStreamMessages;
23
- private sendGeneration;
24
- private lastCompletedRunIds;
25
- private controlResponseWaiters;
26
- constructor(options?: InternalSessionOptions);
27
- /**
28
- * Initialize the session (called automatically on first send).
29
- *
30
- * Single-flight: concurrent callers (including lazily-initializing entry
31
- * points such as send()) share one in-flight initialization instead of
32
- * each connecting the transport. A failed stdio attempt closes the session
33
- * because its subprocess transport is no longer safe to reuse.
34
- */
35
- initialize(): Promise<SDKInitMessage>;
36
- private performInitialize;
37
- private cleanupFailedInitialize;
38
- /**
39
- * Send a message to the agent
40
- *
41
- * @param message - Text string or multimodal content array
42
- *
43
- * @example
44
- * // Simple text
45
- * await session.send("Hello!");
46
- *
47
- * @example
48
- * // With image
49
- * await session.send([
50
- * { type: "text", text: "What's in this image?" },
51
- * { type: "image", source: { type: "base64", mediaType: "image/png", data: "..." } }
52
- * ]);
53
- */
54
- send(message: SendMessage): Promise<void>;
55
- /**
56
- * Run a full turn (send + stream terminal result), with optional bounded
57
- * SDK-owned approval-conflict recovery.
58
- */
59
- runTurn(message: SendMessage, options?: RunTurnOptions): Promise<SDKResultMessage>;
60
- /**
61
- * Ask the CLI to recover pending approvals for the current
62
- * agent/conversation context.
63
- */
64
- recoverPendingApprovals(options?: RecoverPendingApprovalsOptions): Promise<RecoverPendingApprovalsResult>;
65
- private resolveMaxApprovalRecoveryAttempts;
66
- private resolveApprovalRecoveryTimeoutMs;
67
- private toTerminalApprovalConflictResult;
68
- private runSingleTurn;
69
- /**
70
- * Stream messages from the agent
71
- */
72
- stream(): AsyncGenerator<SDKMessage>;
73
- private startBackgroundPump;
74
- private runBackgroundPump;
75
- private handleControlRequest;
76
- private enqueueStreamMessage;
77
- private nextBufferedMessage;
78
- private resolveAllStreamWaiters;
79
- private getMessageRunId;
80
- private updateCompletedRunIds;
81
- /**
82
- * Register external tools with the CLI
83
- */
84
- private registerExternalTools;
85
- /**
86
- * Convert TypeBox schema to JSON Schema
87
- */
88
- private schemaToJsonSchema;
89
- /**
90
- * Handle execute_external_tool control request from CLI
91
- */
92
- private handleExecuteExternalTool;
93
- /**
94
- * Handle can_use_tool control request from CLI (Claude SDK compatible format)
95
- */
96
- private handleCanUseTool;
97
- /**
98
- * Abort the current operation (interrupt without closing the session)
99
- */
100
- abort(): Promise<void>;
101
- private requestControlResponse;
102
- /**
103
- * Fetch a page of conversation messages via the CLI control protocol.
104
- *
105
- * The session must be initialized before calling this method.
106
- * Safe to call concurrently with an active stream() — the pump routes
107
- * matching control_response messages to this waiter without touching the
108
- * stream queue.
109
- */
110
- listMessages(options?: ListMessagesOptions): Promise<ListMessagesResult>;
111
- listModels(): Promise<ListModelsResult>;
112
- sendCommand(command: SDKProtocolCommand): Promise<void>;
113
- sendCommand<TResponse extends SDKProtocolMessage = SDKProtocolMessage>(command: SDKProtocolCommand, options: SendCommandOptions): Promise<TResponse>;
114
- updateModel(_update: string | UpdateModelOptions): Promise<UpdateModelResult>;
115
- changeDeviceState(_updates: ChangeDeviceStateOptions): Promise<void>;
116
- removeQueuedMessage(_itemId: string): Promise<RemoveQueuedMessageResult>;
117
- getDeviceStatus(_options?: GetDeviceStatusOptions): Promise<SessionDeviceStatus>;
118
- onDeviceStatus(_listener: (status: SessionDeviceStatus) => void): () => void;
119
- /**
120
- * Fetch all data needed to render the initial conversation view in one round-trip.
121
- *
122
- * Returns resolved session metadata + initial history page + pending approval flag
123
- * + optional timing breakdown. This is faster than separate initialize() + listMessages()
124
- * calls because the CLI collects and returns everything in a single control response.
125
- *
126
- * The session must be initialized before calling this method.
127
- */
128
- bootstrapState(options?: BootstrapStateOptions): Promise<BootstrapStateResult>;
129
- updateToolset(_toolsetPreference: string): Promise<void>;
130
- /**
131
- * Close the session
132
- */
133
- close(): void;
134
- /**
135
- * Get the agent ID (available after initialization)
136
- */
137
- get agentId(): string | null;
138
- /**
139
- * Get the session ID (available after initialization)
140
- */
141
- get sessionId(): string | null;
142
- /**
143
- * Get the conversation ID (available after initialization)
144
- */
145
- get conversationId(): string | null;
146
- /**
147
- * AsyncDisposable implementation for `await using`
148
- */
149
- [Symbol.asyncDispose](): Promise<void>;
150
- /**
151
- * Transform wire message to SDK message
152
- */
153
- private transformMessage;
154
- }
155
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- /**
2
- * SubprocessTransport
3
- *
4
- * Spawns the Letta Code CLI and communicates via stdin/stdout JSON streams.
5
- */
6
- import type { InternalSessionOptions, WireMessage } from "./types.js";
7
- /**
8
- * Build the CLI argument array for a given set of session options.
9
- *
10
- * Exported as a pure function for testing — this IS the real production code
11
- * path. SubprocessTransport.buildArgs() delegates here.
12
- */
13
- export declare function buildCliArgs(options: InternalSessionOptions): string[];
14
- export declare class SubprocessTransport {
15
- private options;
16
- private process;
17
- private stdout;
18
- private messageQueue;
19
- private messageResolvers;
20
- private closed;
21
- private agentId?;
22
- private wireMessageCount;
23
- private lastMessageAt;
24
- private stderrLines;
25
- constructor(options?: InternalSessionOptions);
26
- /**
27
- * Start the CLI subprocess
28
- */
29
- connect(): Promise<void>;
30
- /**
31
- * Send a message to the CLI via stdin
32
- */
33
- write(data: object): Promise<void>;
34
- /**
35
- * Read the next message from the CLI
36
- */
37
- read(): Promise<WireMessage | null>;
38
- /**
39
- * Async iterator for messages
40
- */
41
- messages(): AsyncGenerator<WireMessage>;
42
- /**
43
- * Close the transport
44
- */
45
- close(): void;
46
- get isClosed(): boolean;
47
- /** Return buffered stderr output from the CLI subprocess. */
48
- getStderr(): string;
49
- private handleMessage;
50
- private buildArgs;
51
- private findCli;
52
- }
53
- //# sourceMappingURL=transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgCtE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA4KtE;AAED,qBAAa,mBAAmB;IAY5B,OAAO,CAAC,OAAO;IAXjB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAgB;gBAGzB,OAAO,GAAE,sBAA2B;IAG9C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+E9B;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAmBzC;;OAEG;IACI,QAAQ,IAAI,cAAc,CAAC,WAAW,CAAC;IAW9C;;OAEG;IACH,KAAK,IAAI,IAAI;IAgBb,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,6DAA6D;IAC7D,SAAS,IAAI,MAAM;IAInB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,SAAS;YAMH,OAAO;CA4CtB"}