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

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 (64) hide show
  1. package/AGENTS.md +47 -0
  2. package/README.md +17 -0
  3. package/dist/app-server-management.d.ts +58 -0
  4. package/dist/app-server-management.d.ts.map +1 -1
  5. package/dist/app-server-session.d.ts +5 -0
  6. package/dist/app-server-session.d.ts.map +1 -1
  7. package/dist/client-base.d.ts +7 -0
  8. package/dist/client-base.d.ts.map +1 -1
  9. package/dist/client-entry.js +1123 -776
  10. package/dist/client-entry.js.map +13 -9
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/cloud-sandbox.d.ts +33 -0
  13. package/dist/cloud-sandbox.d.ts.map +1 -0
  14. package/dist/cloud-session.d.ts.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1176 -791
  18. package/dist/index.js.map +17 -13
  19. package/dist/local-app-server-session.d.ts +1 -1
  20. package/dist/local-app-server-session.d.ts.map +1 -1
  21. package/dist/management.d.ts +7 -0
  22. package/dist/management.d.ts.map +1 -1
  23. package/dist/remote-client-session-core.d.ts +24 -93
  24. package/dist/remote-client-session-core.d.ts.map +1 -1
  25. package/dist/remote-session-protocol.d.ts +130 -0
  26. package/dist/remote-session-protocol.d.ts.map +1 -0
  27. package/dist/remote-turn-coordinator.d.ts +49 -0
  28. package/dist/remote-turn-coordinator.d.ts.map +1 -0
  29. package/dist/request-ids.d.ts +24 -0
  30. package/dist/request-ids.d.ts.map +1 -0
  31. package/dist/session.d.ts +10 -1
  32. package/dist/session.d.ts.map +1 -1
  33. package/dist/types.d.ts +6 -20
  34. package/dist/types.d.ts.map +1 -1
  35. package/package.json +5 -2
  36. package/src/app-server-management.ts +641 -0
  37. package/src/app-server-session.ts +948 -0
  38. package/src/cli-resolver.ts +46 -0
  39. package/src/client-base.ts +482 -0
  40. package/src/client-entry.ts +31 -0
  41. package/src/client.ts +138 -0
  42. package/src/cloud-management.ts +360 -0
  43. package/src/cloud-sandbox.ts +117 -0
  44. package/src/cloud-session.ts +1313 -0
  45. package/src/index.ts +440 -0
  46. package/src/interactiveToolPolicy.ts +62 -0
  47. package/src/local-app-server-session.ts +39 -0
  48. package/src/local-app-server.ts +137 -0
  49. package/src/management-types.ts +133 -0
  50. package/src/management.ts +206 -0
  51. package/src/protocol.ts +249 -0
  52. package/src/remote-client-session-core.ts +786 -0
  53. package/src/remote-session-protocol.ts +660 -0
  54. package/src/remote-turn-coordinator.ts +505 -0
  55. package/src/remote.ts +177 -0
  56. package/src/repositories.ts +340 -0
  57. package/src/request-ids.ts +33 -0
  58. package/src/session.ts +1638 -0
  59. package/src/stream-events.ts +88 -0
  60. package/src/tool-helpers.ts +147 -0
  61. package/src/transport.ts +484 -0
  62. package/src/types.ts +1328 -0
  63. package/src/validation.ts +223 -0
  64. package/src/websocket.ts +22 -0
@@ -1,4 +1,4 @@
1
1
  import { AppServerSession, type AppServerSessionMode } from "./app-server-session.js";
2
2
  import type { LettaCodeLocalAppServerOptions } from "./types.js";
3
- export declare function createLocalAppServerSession(options: LettaCodeLocalAppServerOptions | undefined, mode: AppServerSessionMode): AppServerSession;
3
+ export declare function createLocalAppServerSession(options: LettaCodeLocalAppServerOptions | undefined, mode: AppServerSessionMode, beforeConnect?: () => Promise<void>): AppServerSession;
4
4
  //# sourceMappingURL=local-app-server-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-app-server-session.d.ts","sourceRoot":"","sources":["../src/local-app-server-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,8BAA8B,GAAG,SAAS,EACnD,IAAI,EAAE,oBAAoB,GACzB,gBAAgB,CAyBlB"}
1
+ {"version":3,"file":"local-app-server-session.d.ts","sourceRoot":"","sources":["../src/local-app-server-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,8BAA8B,GAAG,SAAS,EACnD,IAAI,EAAE,oBAAoB,EAC1B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAClC,gBAAgB,CA0BlB"}
@@ -12,6 +12,13 @@ export interface ManagementTransport {
12
12
  createConversation(body: Record<string, unknown>): Promise<LettaConversation>;
13
13
  updateConversation(conversationId: string, body: Record<string, unknown>): Promise<LettaConversation>;
14
14
  listConversationMessages(conversationId: string, query: ManagementQuery): Promise<ConversationMessagesResult>;
15
+ /**
16
+ * Release the pooled connection, waiting for in-flight work when necessary,
17
+ * so other clients of the same backend (for example sessions, which compete
18
+ * for the app-server's single control-client slot) can connect. Optional;
19
+ * transports whose backend has no such contention (Cloud REST) omit it.
20
+ */
21
+ releaseIdleConnection?(): Promise<void> | void;
15
22
  }
16
23
  type TransportProvider = () => ManagementTransport;
17
24
  export declare function createAgentsClient(transport: TransportProvider): AgentsClient;
@@ -1 +1 @@
1
- {"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAE1B,UAAU,EACV,iBAAiB,EAGjB,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CACxD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,iBAAiB,CACf,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChC,oBAAoB,CAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,wBAAwB,CACtB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,KAAK,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;AAwGnD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,GAC3B,YAAY,CAYd;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,GAC3B,YAAY,CAId;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,GAC3B,mBAAmB,CAmBrB"}
1
+ {"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAE1B,UAAU,EACV,iBAAiB,EAGjB,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CACxD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxC,iBAAiB,CACf,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChC,oBAAoB,CAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,wBAAwB,CACtB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD;AAED,KAAK,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;AAwGnD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,GAC3B,YAAY,CAYd;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,GAC3B,YAAY,CAId;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,GAC3B,mBAAmB,CAmBrB"}
@@ -1,80 +1,13 @@
1
- import type { BootstrapStateOptions, BootstrapStateResult, ChangeDeviceStateOptions, CreateAgentOptions, GetDeviceStatusOptions, LettaCodeClientSessionOptions, LettaCodeSession, ListModelsResult, ListMessagesOptions, ListMessagesResult, MessageContentItem, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, RemoveQueuedMessageResult, RunTurnOptions, SDKErrorCode, SDKInitMessage, SDKMessage, SDKProtocolCommand, SDKProtocolMessage, SDKResultMessage, SendCommandOptions, SendMessage, SessionDeviceStatus, SkillSource, UpdateModelOptions, UpdateModelResult } from "./types.js";
2
- export type RuntimeScope = {
3
- agent_id: string;
4
- conversation_id: string;
5
- };
6
- export type ProtocolMessage = Record<string, unknown> & {
7
- type: string;
8
- request_id?: string;
9
- runtime?: RuntimeScope;
10
- };
11
- export type RuntimeSessionMode = {
12
- kind: "create-agent";
13
- options: CreateAgentOptions;
14
- } | {
15
- kind: "session";
16
- agentId?: string;
17
- conversationId?: string;
18
- newConversation?: boolean;
19
- defaultConversation?: boolean;
20
- options: LettaCodeClientSessionOptions;
21
- };
22
- export type RuntimeTurnResult = {
23
- runtime: RuntimeScope;
24
- stopReason: string | null;
25
- runIds: string[];
26
- success?: boolean;
27
- detail?: string;
28
- errorCode?: SDKErrorCode;
29
- };
30
- export type RuntimeSendTurnOptions = {
31
- clientMessageId: string;
32
- };
33
- export type RuntimeRequestOptions = {
34
- timeoutMs?: number;
35
- predicate?: (message: ProtocolMessage) => boolean;
36
- };
37
- export interface RemoteClientRuntimeController {
38
- onMessage(handler: (message: ProtocolMessage, channel?: string) => void): () => void;
39
- send(command: Record<string, unknown>): void;
40
- sendTurnMessage(runtime: RuntimeScope, message: SendMessage, options: RuntimeSendTurnOptions): void;
41
- abort(runtime: RuntimeScope): Promise<void>;
42
- request(type: string, body: Record<string, unknown>, options?: RuntimeRequestOptions): Promise<ProtocolMessage>;
43
- recoverPendingApprovals(runtime: RuntimeScope, options?: RecoverPendingApprovalsOptions): Promise<RecoverPendingApprovalsResult>;
44
- listMessages(conversationId: string, options?: ListMessagesOptions): Promise<ListMessagesResult>;
45
- listModels(): Promise<ListModelsResult>;
46
- updateModel(runtime: RuntimeScope, payload: {
47
- model_id?: string;
48
- model_handle?: string;
49
- }): Promise<UpdateModelResult>;
50
- close(): void;
51
- }
52
- export type RuntimeSessionInit = {
53
- controller: RemoteClientRuntimeController;
54
- runtime: RuntimeScope;
55
- model?: string | null;
56
- modelSettings?: Record<string, unknown> | null;
57
- tools?: string[];
58
- /** Effective runtime skill source override, when explicitly requested. */
59
- skillSources?: SkillSource[];
60
- };
61
- type RemoteClientSessionCoreConfig = {
62
- label: string;
63
- requestTimeoutMs?: number;
64
- };
65
- type LegacyPermissionMode = "default" | "bypassPermissions" | "fullAccess";
66
- export declare function normalizePermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): LettaCodeClientSessionOptions["permissionMode"] | undefined;
67
- export declare function mapPermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): string | undefined;
68
- export declare function isUnrestrictedPermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): boolean;
69
- export declare function ensureSuccess(message: Record<string, unknown>, fallback: string): void;
70
- export declare function normalizeSendMessage(message: SendMessage): string | MessageContentItem[];
1
+ import type { BootstrapStateOptions, BootstrapStateResult, ChangeDeviceStateOptions, CreateAgentOptions, GetDeviceStatusOptions, LettaCodeClientSessionOptions, LettaCodeSession, ListModelsResult, ListMessagesOptions, ListMessagesResult, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, RemoveQueuedMessageResult, RunTurnOptions, SDKInitMessage, SDKMessage, SDKProtocolCommand, SDKProtocolMessage, SDKResultMessage, SendCommandOptions, SendMessage, SessionDeviceStatus, UpdateModelOptions, UpdateModelResult } from "./types.js";
2
+ export { ensureSuccess, isUnrestrictedPermissionMode, mapPermissionMode, normalizePermissionMode, normalizeSendMessage, } from "./remote-session-protocol.js";
3
+ import { type RemoteClientSessionCoreConfig, type RemoteClientRuntimeController, type RuntimeScope, type RuntimeSessionInit, type RuntimeSessionMode } from "./remote-session-protocol.js";
4
+ export type { ProtocolMessage, RemoteClientRuntimeController, RuntimeRequestOptions, RuntimeScope, RuntimeSendTurnOptions, RuntimeSessionInit, RuntimeSessionMode, RuntimeTurnResult, } from "./remote-session-protocol.js";
71
5
  export declare abstract class RemoteClientSessionCore implements LettaCodeSession {
72
6
  protected readonly mode: RuntimeSessionMode;
73
7
  protected controller: RemoteClientRuntimeController | null;
74
8
  protected runtime: RuntimeScope | null;
75
9
  protected initialized: boolean;
76
10
  protected closed: boolean;
77
- protected activeTurnStartedAt: number;
78
11
  protected _agentId: string | null;
79
12
  protected _sessionId: string | null;
80
13
  protected _conversationId: string | null;
@@ -82,19 +15,30 @@ export declare abstract class RemoteClientSessionCore implements LettaCodeSessio
82
15
  protected _modelSettings: Record<string, unknown> | null;
83
16
  private readonly label;
84
17
  private readonly requestTimeoutMs;
85
- private streamQueue;
86
- private streamResolvers;
18
+ private initializePromise;
87
19
  private removeMessageHandler;
88
- private activeTurn;
89
- private pendingTurns;
90
- private nextTurnId;
91
- private messageCounter;
92
- private clientMessageCounter;
20
+ private readonly turns;
93
21
  private toolNames;
94
22
  private deviceStatusListeners;
95
23
  private deviceStatusRefreshCancels;
96
24
  protected constructor(mode: RuntimeSessionMode, config: RemoteClientSessionCoreConfig);
25
+ /**
26
+ * Initialize the session.
27
+ *
28
+ * Single-flight: the first caller starts initialization and every
29
+ * concurrent caller (including the lazily-initializing entry points such
30
+ * as send()/stream()/listMessages()) awaits the same promise, so a fresh
31
+ * session never opens more than one runtime connection. A failed attempt
32
+ * clears the memo so a later call can retry; it only releases the
33
+ * resources that failed attempt created.
34
+ */
97
35
  initialize(): Promise<SDKInitMessage>;
36
+ private performInitialize;
37
+ /**
38
+ * Release the partial state a failed initialize attempt created without
39
+ * closing the session, so a later initialize() can retry.
40
+ */
41
+ private cleanupFailedInitialize;
98
42
  send(message: SendMessage): Promise<void>;
99
43
  runTurn(message: SendMessage, _options?: RunTurnOptions): Promise<SDKResultMessage>;
100
44
  stream(): AsyncGenerator<SDKMessage>;
@@ -103,6 +47,7 @@ export declare abstract class RemoteClientSessionCore implements LettaCodeSessio
103
47
  sendCommand<TResponse extends SDKProtocolMessage = SDKProtocolMessage>(command: SDKProtocolCommand, options: SendCommandOptions): Promise<TResponse>;
104
48
  listModels(): Promise<ListModelsResult>;
105
49
  updateModel(update: string | UpdateModelOptions): Promise<UpdateModelResult>;
50
+ private applyModelUpdate;
106
51
  recoverPendingApprovals(options?: RecoverPendingApprovalsOptions): Promise<RecoverPendingApprovalsResult>;
107
52
  removeQueuedMessage(itemId: string): Promise<RemoveQueuedMessageResult>;
108
53
  getDeviceStatus(options?: GetDeviceStatusOptions): Promise<SessionDeviceStatus>;
@@ -125,22 +70,8 @@ export declare abstract class RemoteClientSessionCore implements LettaCodeSessio
125
70
  protected shouldEnableMemfs(options: LettaCodeClientSessionOptions | CreateAgentOptions): boolean;
126
71
  protected enableMemfsBody(): Record<string, unknown>;
127
72
  protected setModel(model: string): void;
128
- private trackSentTurn;
129
- private activateTurn;
130
- private activateNextTurnFromProtocol;
131
- private removeTrackedTurn;
132
- private failTurn;
133
- private completeActiveTurn;
134
73
  private resolveUpdateModelPayload;
135
74
  protected applyPostInitializeOptions(): Promise<void>;
136
- private handleProtocolMessage;
137
- private handleLoopStatusMessage;
138
- private handleTurnTerminalDelta;
139
- private transformStreamDelta;
140
- private resultFromTurn;
141
- private enqueue;
142
- private nextMessage;
143
- private resolveAll;
75
+ private emitDeviceStatus;
144
76
  }
145
- export {};
146
77
  //# sourceMappingURL=remote-client-session-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-client-session-core.d.ts","sourceRoot":"","sources":["../src/remote-client-session-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-client-session-core.d.ts","sourceRoot":"","sources":["../src/remote-client-session-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { CreateAgentOptions, LettaCodeClientSessionOptions, LettaCodeModelEntry, ListMessagesOptions, ListMessagesResult, ListModelsResult, MessageContentItem, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, ReasoningEffort, SDKErrorCode, SDKQueueItem, SendMessage, SessionDeviceStatus, SkillSource, UpdateModelOptions, UpdateModelResult } from "./types.js";
2
+ export type RuntimeScope = {
3
+ agent_id: string;
4
+ conversation_id: string;
5
+ };
6
+ export type ProtocolMessage = Record<string, unknown> & {
7
+ type: string;
8
+ request_id?: string;
9
+ runtime?: RuntimeScope;
10
+ };
11
+ export type RuntimeSessionMode = {
12
+ kind: "create-agent";
13
+ options: CreateAgentOptions;
14
+ } | {
15
+ kind: "session";
16
+ agentId?: string;
17
+ conversationId?: string;
18
+ newConversation?: boolean;
19
+ defaultConversation?: boolean;
20
+ options: LettaCodeClientSessionOptions;
21
+ };
22
+ export type RuntimeTurnResult = {
23
+ runtime: RuntimeScope;
24
+ stopReason: string | null;
25
+ runIds: string[];
26
+ success?: boolean;
27
+ detail?: string;
28
+ errorCode?: SDKErrorCode;
29
+ };
30
+ export type RuntimeSendTurnOptions = {
31
+ clientMessageId: string;
32
+ };
33
+ export type RuntimeRequestOptions = {
34
+ timeoutMs?: number;
35
+ predicate?: (message: ProtocolMessage) => boolean;
36
+ };
37
+ export interface RemoteClientRuntimeController {
38
+ onMessage(handler: (message: ProtocolMessage, channel?: string) => void): () => void;
39
+ send(command: Record<string, unknown>): void;
40
+ sendTurnMessage(runtime: RuntimeScope, message: SendMessage, options: RuntimeSendTurnOptions): void;
41
+ abort(runtime: RuntimeScope): Promise<void>;
42
+ request(type: string, body: Record<string, unknown>, options?: RuntimeRequestOptions): Promise<ProtocolMessage>;
43
+ recoverPendingApprovals(runtime: RuntimeScope, options?: RecoverPendingApprovalsOptions): Promise<RecoverPendingApprovalsResult>;
44
+ listMessages(conversationId: string, options?: ListMessagesOptions): Promise<ListMessagesResult>;
45
+ listModels(): Promise<ListModelsResult>;
46
+ updateModel(runtime: RuntimeScope, payload: {
47
+ model_id?: string;
48
+ model_handle?: string;
49
+ }): Promise<UpdateModelResult>;
50
+ close(): void;
51
+ }
52
+ export type RuntimeSessionInit = {
53
+ controller: RemoteClientRuntimeController;
54
+ runtime: RuntimeScope;
55
+ model?: string | null;
56
+ modelSettings?: Record<string, unknown> | null;
57
+ tools?: string[];
58
+ /** Effective runtime skill source override, when explicitly requested. */
59
+ skillSources?: SkillSource[];
60
+ };
61
+ export type RemoteClientSessionCoreConfig = {
62
+ label: string;
63
+ requestTimeoutMs?: number;
64
+ };
65
+ type ReflectionSettings = {
66
+ trigger: "off" | "step-count" | "compaction-event";
67
+ step_count: number;
68
+ };
69
+ export type UpdateModelPayload = {
70
+ model_id?: string;
71
+ model_handle?: string;
72
+ };
73
+ export type NormalizedUpdateModelInput = {
74
+ model?: string;
75
+ modelId?: string;
76
+ modelHandle?: string;
77
+ reasoningEffort?: ReasoningEffort;
78
+ };
79
+ export type TurnTracker = {
80
+ id: number;
81
+ runtime: RuntimeScope;
82
+ clientMessageId: string;
83
+ queuedAt: number;
84
+ startedAt: number;
85
+ assistantText: string;
86
+ runIds: Set<string>;
87
+ observedTurnEvidence: boolean;
88
+ observedRequiresApprovalStop: boolean;
89
+ abortRequested: boolean;
90
+ timeout: ReturnType<typeof setTimeout> | null;
91
+ };
92
+ export declare const FAILURE_STOP_REASONS: Set<string>;
93
+ type LegacyPermissionMode = "default" | "bypassPermissions" | "fullAccess";
94
+ export declare function normalizePermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): LettaCodeClientSessionOptions["permissionMode"] | undefined;
95
+ export declare function mapPermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): string | undefined;
96
+ export declare function isUnrestrictedPermissionMode(mode: LettaCodeClientSessionOptions["permissionMode"] | LegacyPermissionMode | undefined): boolean;
97
+ export declare function ensureSuccess(message: Record<string, unknown>, fallback: string): void;
98
+ export declare function toSdkErrorCode(value: string | null | undefined): SDKErrorCode | undefined;
99
+ export declare function normalizeUpdateModelInput(update: string | UpdateModelOptions): NormalizedUpdateModelInput;
100
+ export declare function modelPayloadWithoutReasoning(input: NormalizedUpdateModelInput): UpdateModelPayload;
101
+ export declare function toBaseModelHandle(handle: string | undefined, byokProviderAliases: Record<string, string> | undefined): string | undefined;
102
+ export declare function getContextWindow(value: Record<string, unknown> | null | undefined): number | undefined;
103
+ export declare function getReasoningEffort(entry: LettaCodeModelEntry): string | undefined;
104
+ export declare function sameContextCandidates(candidates: LettaCodeModelEntry[], contextWindow: number | undefined): LettaCodeModelEntry[];
105
+ export declare function isApprovalConflictSignal(params: {
106
+ detail?: string;
107
+ message?: string;
108
+ stopReason?: string | null;
109
+ }): boolean;
110
+ export declare function resolveDreamingSettings(dreaming: LettaCodeClientSessionOptions["dreaming"]): ReflectionSettings | null;
111
+ export declare function extractTextFromContent(content: unknown): string | null;
112
+ export declare function toolInputFromArguments(args: unknown): {
113
+ input: Record<string, unknown>;
114
+ raw?: string;
115
+ };
116
+ export declare function firstToolCall(delta: Record<string, unknown>): Record<string, unknown> | undefined;
117
+ export declare function firstToolReturn(delta: Record<string, unknown>): Record<string, unknown> | undefined;
118
+ export declare function sameRuntime(message: ProtocolMessage, runtime: RuntimeScope): boolean;
119
+ export declare function streamDeltaRecord(message: ProtocolMessage): Record<string, unknown> | null;
120
+ export declare function streamDeltaMessageType(delta: Record<string, unknown>): string | undefined;
121
+ export declare function streamDeltaRunId(delta: Record<string, unknown>): string | undefined;
122
+ export declare function streamDeltaStopReason(delta: Record<string, unknown>): string | null | undefined;
123
+ export declare function loopStatusValue(message: ProtocolMessage): string | undefined;
124
+ export declare function loopStatusRunIds(message: ProtocolMessage): string[];
125
+ export declare function queueItems(message: ProtocolMessage): SDKQueueItem[];
126
+ export declare function deviceStatusRecord(message: ProtocolMessage): Record<string, unknown> | null;
127
+ export declare function toSessionDeviceStatus(status: Record<string, unknown>): SessionDeviceStatus | null;
128
+ export declare function normalizeSendMessage(message: SendMessage): string | MessageContentItem[];
129
+ export {};
130
+ //# sourceMappingURL=remote-session-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-session-protocol.d.ts","sourceRoot":"","sources":["../src/remote-session-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { SDKMessage, SessionDeviceStatus } from "./types.js";
2
+ import { type ProtocolMessage, type RuntimeScope, type TurnTracker } from "./remote-session-protocol.js";
3
+ type RemoteTurnCoordinatorConfig = {
4
+ label: string;
5
+ requestTimeoutMs?: number;
6
+ onDeviceStatus(status: SessionDeviceStatus): void;
7
+ };
8
+ /**
9
+ * Owns the portable session's turn correlation and stream queue.
10
+ *
11
+ * Transport setup and public SDK methods stay in RemoteClientSessionCore.
12
+ * This class only translates protocol events into SDK messages and correlates
13
+ * those events with active or queued turns.
14
+ */
15
+ export declare class RemoteTurnCoordinator {
16
+ private readonly label;
17
+ private readonly requestTimeoutMs;
18
+ private readonly onDeviceStatus;
19
+ private streamQueue;
20
+ private streamResolvers;
21
+ private activeTurn;
22
+ private pendingTurns;
23
+ private nextTurnId;
24
+ private messageCounter;
25
+ private clientMessageCounter;
26
+ private closed;
27
+ private _activeTurnStartedAt;
28
+ constructor(config: RemoteTurnCoordinatorConfig);
29
+ get activeTurnStartedAt(): number;
30
+ hasInFlightTurn(): boolean;
31
+ trackSentTurn(runtime: RuntimeScope): TurnTracker;
32
+ removeTrackedTurn(turn: TurnTracker): void;
33
+ markAbortRequested(): void;
34
+ handleProtocolMessage(message: ProtocolMessage, runtime: RuntimeScope): void;
35
+ nextMessage(): Promise<SDKMessage | null>;
36
+ close(): void;
37
+ private activateTurn;
38
+ private activateNextTurnFromProtocol;
39
+ private failTurn;
40
+ private completeActiveTurn;
41
+ private handleLoopStatusMessage;
42
+ private handleTurnTerminalDelta;
43
+ private transformStreamDelta;
44
+ private resultFromTurn;
45
+ private enqueue;
46
+ private resolveAll;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=remote-turn-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-turn-coordinator.d.ts","sourceRoot":"","sources":["../src/remote-turn-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EAIV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAkBL,KAAK,eAAe,EACpB,KAAK,YAAY,EAEjB,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,oBAAoB,CAAK;gBAErB,MAAM,EAAE,2BAA2B;IAM/C,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,eAAe,IAAI,OAAO;IAI1B,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAuBjD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAU1C,kBAAkB,IAAI,IAAI;IAI1B,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAsC5E,WAAW,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IASzC,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,uBAAuB;IA8C/B,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,oBAAoB;IA0J5B,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;CAKnB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Collision-free request-id generation for request/response correlation.
3
+ *
4
+ * AppServerClient's built-in nextRequestId() is a bare per-instance counter
5
+ * that restarts at 1, so two client instances (for example two session
6
+ * objects, or a session plus a management request) each emit ids like
7
+ * `conversation_retrieve-1`. When more than one connection is involved the
8
+ * app-server can deliver request-correlated responses where both ids look
9
+ * identical, and the wrong caller's pending request resolves (or times out).
10
+ *
11
+ * Ids generated here embed a per-client random nonce plus a process-wide
12
+ * monotonic counter, so no two clients in the same process can ever emit the
13
+ * same id, and cross-process collisions are vanishingly unlikely.
14
+ */
15
+ /** Create a request-id generator scoped to one client/connection instance. */
16
+ export declare function createRequestIdGenerator(): (prefix?: string) => string;
17
+ /**
18
+ * Replace a client's request-id generator with a collision-free one.
19
+ * Returns the same client for call-site convenience.
20
+ */
21
+ export declare function applyUniqueRequestIds<TClient extends {
22
+ nextRequestId(prefix?: string): string;
23
+ }>(client: TClient): TClient;
24
+ //# sourceMappingURL=request-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-ids.d.ts","sourceRoot":"","sources":["../src/request-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,8EAA8E;AAC9E,wBAAgB,wBAAwB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,SAAS;IAAE,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC1D,MAAM,EAAE,OAAO,GAAG,OAAO,CAG1B"}
package/dist/session.d.ts CHANGED
@@ -12,6 +12,8 @@ export declare class Session implements AsyncDisposable {
12
12
  private _sessionId;
13
13
  private _conversationId;
14
14
  private initialized;
15
+ private closed;
16
+ private initializePromise;
15
17
  private externalTools;
16
18
  private streamQueue;
17
19
  private streamResolvers;
@@ -23,9 +25,16 @@ export declare class Session implements AsyncDisposable {
23
25
  private controlResponseWaiters;
24
26
  constructor(options?: InternalSessionOptions);
25
27
  /**
26
- * Initialize the session (called automatically on first send)
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.
27
34
  */
28
35
  initialize(): Promise<SDKInitMessage>;
36
+ private performInitialize;
37
+ private cleanupFailedInitialize;
29
38
  /**
30
39
  * Send a message to the agent
31
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,8 @@
7
7
  export type { WireMessage, SystemInitMessage, MessageWire, ResultMessage, ErrorMessage, StreamEvent, ControlRequest, ControlResponse, CanUseToolControlRequest, CanUseToolResponse, CanUseToolResponseAllow, CanUseToolResponseDeny, SystemPromptPresetConfig, CreateBlock, } from "./protocol.js";
8
8
  import type { CreateBlock, CanUseToolResponse } from "./protocol.js";
9
9
  import type { PersonalityId } from "@letta-ai/letta-code/agent-presets";
10
+ import type { LettaCodeCloudSandboxOptions } from "./cloud-sandbox.js";
11
+ export type { GitHubRepositoryRef, LettaCodeCloudSandboxOptions, } from "./cloud-sandbox.js";
10
12
  /** Letta Code personality preset used to seed a new agent. */
11
13
  export type LettaCodePersonalityId = PersonalityId;
12
14
  export interface LettaCodeSocketLike {
@@ -214,6 +216,8 @@ export interface LettaCodeLocalAppServerOptions {
214
216
  WebSocket?: LettaCodeSocketConstructor;
215
217
  /** Timeout for websocket protocol request/turn correlation. */
216
218
  requestTimeoutMs?: number;
219
+ /** Milliseconds an idle management connection may be reused before release. Defaults to 250. */
220
+ idleLingerMs?: number;
217
221
  /** Whether agents created through this app-server are added to Letta Code's global pinned-agent list. */
218
222
  pinGlobalAgent?: boolean;
219
223
  /** Local app-server listen URL when the SDK spawns it. Defaults to ws://127.0.0.1:0. */
@@ -238,29 +242,11 @@ export interface LettaCodeRemoteClientOptions {
238
242
  WebSocket?: LettaCodeSocketConstructor;
239
243
  /** Timeout for websocket protocol request/turn correlation. */
240
244
  requestTimeoutMs?: number;
245
+ /** Milliseconds an idle management connection may be reused before release. Defaults to 250. */
246
+ idleLingerMs?: number;
241
247
  /** Whether agents created through this app-server are added to Letta Code's global pinned-agent list. */
242
248
  pinGlobalAgent?: boolean;
243
249
  }
244
- export interface LettaCodeCloudSandboxOptions {
245
- /**
246
- * TTL to request when refreshing an SDK-managed sandbox. Defaults to 5
247
- * minutes, matching the Cloud API default. Valid range: 1-60.
248
- */
249
- ttlMinutes?: number;
250
- /** Timeout waiting for a newly created sandbox environment to come online. */
251
- readyTimeoutMs?: number;
252
- /** Poll interval while waiting for a newly created sandbox environment. */
253
- readyPollIntervalMs?: number;
254
- /** Interval for proactive TTL refreshes while the session is open. */
255
- refreshIntervalMs?: number;
256
- /**
257
- * Best-effort terminate the SDK-managed sandbox on session close. Defaults to
258
- * false so other sessions for the same conversation and reconnecting clients
259
- * can continue using it. Set true to restore eager cleanup when this session
260
- * exclusively owns the sandbox.
261
- */
262
- terminateOnClose?: boolean;
263
- }
264
250
  export interface LettaCodeCloudClientOptions {
265
251
  backend: "cloud";
266
252
  /** Optional API key override. Defaults to LETTA_API_KEY / existing auth. */