@letta-ai/letta-agent-sdk 0.7.3 → 0.7.4

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.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The App Server created a fork but the SDK could not retrieve its full state.
3
+ * `conversationId` remains available so the caller can inspect or archive it.
4
+ */
5
+ export declare class ConversationForkHydrationError extends Error {
6
+ readonly conversationId: string;
7
+ constructor(conversationId: string, cause: unknown);
8
+ }
9
+ //# sourceMappingURL=management-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management-errors.d.ts","sourceRoot":"","sources":["../src/management-errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAQnD"}
@@ -1,6 +1,6 @@
1
1
  import type { AgentListParams, AgentState, AgentUpdateParams } from "@letta-ai/letta-client/resources/agents/agents";
2
2
  import type { Message } from "@letta-ai/letta-client/resources/agents/messages";
3
- import type { Conversation, ConversationCreateParams, ConversationListParams, ConversationUpdateParams } from "@letta-ai/letta-client/resources/conversations/conversations";
3
+ import type { Conversation, ConversationCreateParams, ConversationForkParams, ConversationListParams, ConversationUpdateParams } from "@letta-ai/letta-client/resources/conversations/conversations";
4
4
  import type { MessageListParams } from "@letta-ai/letta-client/resources/conversations/messages";
5
5
  import type { ListMessagesResult, ListModelsResult } from "./types.js";
6
6
  /** Agent state returned by either the Cloud API or Letta Code app-server. */
@@ -61,6 +61,12 @@ export interface UpdateConversationOptions {
61
61
  contextWindowLimit?: ConversationUpdateParams["context_window_limit"];
62
62
  archived?: ConversationUpdateParams["archived"];
63
63
  }
64
+ export interface ForkConversationOptions {
65
+ /** Include source messages through this message, inclusive. */
66
+ messageId?: Present<ConversationForkParams["message_id"]>;
67
+ /** Hide the fork from normal conversation listings. */
68
+ hidden?: Present<ConversationForkParams["hidden"]>;
69
+ }
64
70
  export interface ConversationMessagesOptions {
65
71
  /** Return messages before this message ID (cursor for older pages, regardless of `order`). */
66
72
  before?: Present<MessageListParams["before"]>;
@@ -128,6 +134,12 @@ export interface ConversationsClient {
128
134
  retrieve(conversationId: string): Promise<LettaConversation>;
129
135
  create(options: CreateConversationOptions): Promise<LettaConversation>;
130
136
  update(conversationId: string, options: UpdateConversationOptions): Promise<LettaConversation>;
137
+ /**
138
+ * Create a persistent conversation from the source's in-context history.
139
+ * Use `update()` to change the fork's model. Archive a temporary fork with
140
+ * `update(fork.id, { archived: true })` when it is done.
141
+ */
142
+ fork(sourceConversationId: string, options?: ForkConversationOptions): Promise<LettaConversation>;
131
143
  listMessages(conversationId: string, options?: ConversationMessagesOptions): Promise<ConversationMessagesResult>;
132
144
  }
133
145
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"management-types.d.ts","sourceRoot":"","sources":["../src/management-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"management-types.d.ts","sourceRoot":"","sources":["../src/management-types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentListParams, AgentUpdateParams } from "@letta-ai/letta-client/resources/agents/agents";
2
- import type { ConversationCreateParams, ConversationListParams, ConversationUpdateParams } from "@letta-ai/letta-client/resources/conversations/conversations";
2
+ import type { ConversationCreateParams, ConversationForkParams, ConversationListParams, ConversationUpdateParams } from "@letta-ai/letta-client/resources/conversations/conversations";
3
3
  import type { MessageListParams } from "@letta-ai/letta-client/resources/conversations/messages";
4
4
  import type { AgentRepositoriesClient, AgentsClient, ConversationsClient, ConversationMessagesResult, LettaAgent, LettaConversation, ModelsClient } from "./management-types.js";
5
5
  import type { ListModelsResult } from "./types.js";
@@ -13,6 +13,7 @@ export interface ManagementTransport {
13
13
  retrieveConversation(conversationId: string): Promise<LettaConversation>;
14
14
  createConversation(body: ConversationCreateParams): Promise<LettaConversation>;
15
15
  updateConversation(conversationId: string, body: ConversationUpdateParams): Promise<LettaConversation>;
16
+ forkConversation(conversationId: string, query: ConversationForkParams): Promise<LettaConversation>;
16
17
  listConversationMessages(conversationId: string, query: MessageListParams): Promise<ConversationMessagesResult>;
17
18
  }
18
19
  type TransportProvider = () => ManagementTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,KAAK,EACV,uBAAuB,EACvB,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,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,iBAAiB,GACtB,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,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChC,oBAAoB,CAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,wBAAwB,CACtB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,KAAK,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;AAqGnD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,uBAAuB,GAC1C,YAAY,CAed;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,eAAe,EACf,iBAAiB,EAClB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAG1B,UAAU,EACV,iBAAiB,EAGjB,YAAY,EAIb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,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,iBAAiB,GACtB,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,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChC,oBAAoB,CAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,gBAAgB,CACd,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,wBAAwB,CACtB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,KAAK,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;AA8GnD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,uBAAuB,GAC1C,YAAY,CAed;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,GAC3B,YAAY,CAId;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,iBAAiB,GAC3B,mBAAmB,CA6BrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-agent-sdk",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "packageManager": "bun@1.3.0",
5
5
  "description": "SDK for programmatic control of Letta agents",
6
6
  "type": "module",
@@ -10,6 +10,7 @@ import type {
10
10
  AgentRetrieveResponseMessage,
11
11
  AgentUpdateResponseMessage,
12
12
  ConversationCreateResponseMessage,
13
+ ConversationForkResponseMessage,
13
14
  ConversationListResponseMessage,
14
15
  ConversationMessagesListResponseMessage,
15
16
  ConversationRetrieveResponseMessage,
@@ -22,11 +23,13 @@ import type {
22
23
  } from "@letta-ai/letta-client/resources/agents/agents";
23
24
  import type {
24
25
  ConversationCreateParams,
26
+ ConversationForkParams,
25
27
  ConversationListParams,
26
28
  ConversationUpdateParams,
27
29
  } from "@letta-ai/letta-client/resources/conversations/conversations";
28
30
  import type { MessageListParams } from "@letta-ai/letta-client/resources/conversations/messages";
29
31
  import { normalizeAppServerModels } from "./app-server-models.js";
32
+ import { ConversationForkHydrationError } from "./management-errors.js";
30
33
  import type { ManagementTransport } from "./management.js";
31
34
  import { applyUniqueRequestIds } from "./request-ids.js";
32
35
  import type {
@@ -199,6 +202,27 @@ export class AppServerManagementTransport
199
202
  );
200
203
  }
201
204
 
205
+ async forkConversation(
206
+ conversationId: string,
207
+ body: ConversationForkParams,
208
+ ): Promise<LettaConversation> {
209
+ const response = await this.request<ConversationForkResponseMessage>(
210
+ "conversation_fork",
211
+ { conversation_id: conversationId, body },
212
+ "conversation_fork_response",
213
+ );
214
+ const fork = ensureResponse(
215
+ response,
216
+ response.conversation,
217
+ `Failed to fork conversation ${conversationId}.`,
218
+ );
219
+ try {
220
+ return await this.retrieveConversation(fork.id);
221
+ } catch (error) {
222
+ throw new ConversationForkHydrationError(fork.id, error);
223
+ }
224
+ }
225
+
202
226
  async listConversationMessages(
203
227
  conversationId: string,
204
228
  query: MessageListParams,
@@ -24,6 +24,7 @@ export class LettaAgentClient extends LettaAgentClientBase {
24
24
  }
25
25
 
26
26
  export { CloudManagedSandboxExpiredError } from "./cloud-session.js";
27
+ export { ConversationForkHydrationError } from "./management-errors.js";
27
28
  export { RepositoriesClient } from "./repositories.js";
28
29
  export type {
29
30
  Computer,
@@ -6,6 +6,7 @@ import type {
6
6
  } from "@letta-ai/letta-client/resources/agents/agents";
7
7
  import type {
8
8
  ConversationCreateParams,
9
+ ConversationForkParams,
9
10
  ConversationListParams,
10
11
  ConversationUpdateParams,
11
12
  } from "@letta-ai/letta-client/resources/conversations/conversations";
@@ -217,6 +218,13 @@ export class CloudManagementTransport implements ManagementTransport {
217
218
  return this.client.conversations.update(conversationId, body);
218
219
  }
219
220
 
221
+ async forkConversation(
222
+ conversationId: string,
223
+ query: ConversationForkParams,
224
+ ): Promise<LettaConversation> {
225
+ return this.client.conversations.fork(conversationId, query);
226
+ }
227
+
220
228
  async listConversationMessages(
221
229
  conversationId: string,
222
230
  query: MessageListParams,
package/src/index.ts CHANGED
@@ -166,6 +166,7 @@ export type {
166
166
  UpdateAgentOptions,
167
167
  ListConversationsOptions,
168
168
  CreateConversationOptions,
169
+ ForkConversationOptions,
169
170
  UpdateConversationOptions,
170
171
  ConversationMessagesOptions,
171
172
  ConversationMessagesResult,
@@ -174,6 +175,7 @@ export type {
174
175
  } from "./management-types.js";
175
176
 
176
177
  export { RepositoriesClient } from "./repositories.js";
178
+ export { ConversationForkHydrationError } from "./management-errors.js";
177
179
  export type {
178
180
  Computer,
179
181
  ComputerMetadata,
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The App Server created a fork but the SDK could not retrieve its full state.
3
+ * `conversationId` remains available so the caller can inspect or archive it.
4
+ */
5
+ export class ConversationForkHydrationError extends Error {
6
+ readonly conversationId: string;
7
+
8
+ constructor(conversationId: string, cause: unknown) {
9
+ super(
10
+ `Conversation ${conversationId} was forked, but its state could not be retrieved.`,
11
+ { cause },
12
+ );
13
+ this.name = "ConversationForkHydrationError";
14
+ this.conversationId = conversationId;
15
+ }
16
+ }
@@ -7,6 +7,7 @@ import type { Message } from "@letta-ai/letta-client/resources/agents/messages";
7
7
  import type {
8
8
  Conversation,
9
9
  ConversationCreateParams,
10
+ ConversationForkParams,
10
11
  ConversationListParams,
11
12
  ConversationUpdateParams,
12
13
  } from "@letta-ai/letta-client/resources/conversations/conversations";
@@ -80,6 +81,13 @@ export interface UpdateConversationOptions {
80
81
  archived?: ConversationUpdateParams["archived"];
81
82
  }
82
83
 
84
+ export interface ForkConversationOptions {
85
+ /** Include source messages through this message, inclusive. */
86
+ messageId?: Present<ConversationForkParams["message_id"]>;
87
+ /** Hide the fork from normal conversation listings. */
88
+ hidden?: Present<ConversationForkParams["hidden"]>;
89
+ }
90
+
83
91
  export interface ConversationMessagesOptions {
84
92
  /** Return messages before this message ID (cursor for older pages, regardless of `order`). */
85
93
  before?: Present<MessageListParams["before"]>;
@@ -172,6 +180,15 @@ export interface ConversationsClient {
172
180
  conversationId: string,
173
181
  options: UpdateConversationOptions,
174
182
  ): Promise<LettaConversation>;
183
+ /**
184
+ * Create a persistent conversation from the source's in-context history.
185
+ * Use `update()` to change the fork's model. Archive a temporary fork with
186
+ * `update(fork.id, { archived: true })` when it is done.
187
+ */
188
+ fork(
189
+ sourceConversationId: string,
190
+ options?: ForkConversationOptions,
191
+ ): Promise<LettaConversation>;
175
192
  listMessages(
176
193
  conversationId: string,
177
194
  options?: ConversationMessagesOptions,
package/src/management.ts CHANGED
@@ -4,6 +4,7 @@ import type {
4
4
  } from "@letta-ai/letta-client/resources/agents/agents";
5
5
  import type {
6
6
  ConversationCreateParams,
7
+ ConversationForkParams,
7
8
  ConversationListParams,
8
9
  ConversationUpdateParams,
9
10
  } from "@letta-ai/letta-client/resources/conversations/conversations";
@@ -14,6 +15,7 @@ import type {
14
15
  ConversationsClient,
15
16
  ConversationMessagesResult,
16
17
  CreateConversationOptions,
18
+ ForkConversationOptions,
17
19
  LettaAgent,
18
20
  LettaConversation,
19
21
  ListAgentsOptions,
@@ -47,6 +49,10 @@ export interface ManagementTransport {
47
49
  conversationId: string,
48
50
  body: ConversationUpdateParams,
49
51
  ): Promise<LettaConversation>;
52
+ forkConversation(
53
+ conversationId: string,
54
+ query: ConversationForkParams,
55
+ ): Promise<LettaConversation>;
50
56
  listConversationMessages(
51
57
  conversationId: string,
52
58
  query: MessageListParams,
@@ -143,6 +149,15 @@ function conversationUpdateBody(
143
149
  };
144
150
  }
145
151
 
152
+ function conversationForkQuery(
153
+ options: ForkConversationOptions,
154
+ ): ConversationForkParams {
155
+ return {
156
+ message_id: options.messageId,
157
+ hidden: options.hidden,
158
+ };
159
+ }
160
+
146
161
  function conversationMessagesQuery(
147
162
  options: ConversationMessagesOptions,
148
163
  ): MessageListParams {
@@ -197,6 +212,16 @@ export function createConversationsClient(
197
212
  conversationId,
198
213
  conversationUpdateBody(options),
199
214
  ),
215
+ fork: async (sourceConversationId, options = {}) => {
216
+ assertNonEmptyId(sourceConversationId, "conversation id");
217
+ if (options.messageId !== undefined) {
218
+ assertNonEmptyId(options.messageId, "message id");
219
+ }
220
+ return await transport().forkConversation(
221
+ sourceConversationId,
222
+ conversationForkQuery(options),
223
+ );
224
+ },
200
225
  listMessages: (conversationId, options = {}) =>
201
226
  transport().listConversationMessages(
202
227
  conversationId,