@letta-ai/letta-agent-sdk 0.7.2 → 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.
@@ -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 { ManagementTransport } from "./management.js";
5
5
  import type { ConversationMessagesResult, LettaAgent, LettaConversation } from "./management-types.js";
@@ -33,6 +33,7 @@ export declare class AppServerManagementTransport implements ManagementTransport
33
33
  retrieveConversation(conversationId: string): Promise<LettaConversation>;
34
34
  createConversation(body: ConversationCreateParams): Promise<LettaConversation>;
35
35
  updateConversation(conversationId: string, body: ConversationUpdateParams): Promise<LettaConversation>;
36
+ forkConversation(conversationId: string, body: ConversationForkParams): Promise<LettaConversation>;
36
37
  listConversationMessages(conversationId: string, query: MessageListParams): Promise<ConversationMessagesResult>;
37
38
  private request;
38
39
  private acquireConnection;
@@ -1 +1 @@
1
- {"version":3,"file":"app-server-management.d.ts","sourceRoot":"","sources":["../src/app-server-management.ts"],"names":[],"mappings":"AAkBA,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;AAEjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACV,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjF,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GACpC,OAAO,CAAC,4BAA4B,CAAC,GAAG;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1C,CAAC;AAmBJ;;;;;;GAMG;AACH,qBAAa,4BACX,YAAW,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,kBAAkB,CAA4B;gBAEzB,OAAO,EAAE,0BAA0B;IAE1D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAYzD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAanD,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,UAAU,CAAC;IAahB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAWvC,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAYzB,oBAAoB,CACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC;IAavB,kBAAkB,CACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAavB,kBAAkB,CACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAavB,wBAAwB,CAC5B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,0BAA0B,CAAC;YAgBxB,OAAO;IA4BrB,OAAO,CAAC,iBAAiB;YAsBX,cAAc;IA+C5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;CAW/B"}
1
+ {"version":3,"file":"app-server-management.d.ts","sourceRoot":"","sources":["../src/app-server-management.ts"],"names":[],"mappings":"AAmBA,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;AAGjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACV,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjF,KAAK,eAAe,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GACpC,OAAO,CAAC,4BAA4B,CAAC,GAAG;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1C,CAAC;AAmBJ;;;;;;GAMG;AACH,qBAAa,4BACX,YAAW,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,kBAAkB,CAA4B;gBAEzB,OAAO,EAAE,0BAA0B;IAE1D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAYzD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAanD,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,UAAU,CAAC;IAahB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAWvC,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAYzB,oBAAoB,CACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC;IAavB,kBAAkB,CACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAavB,kBAAkB,CACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAavB,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAkBvB,wBAAwB,CAC5B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,0BAA0B,CAAC;YAgBxB,OAAO;IA4BrB,OAAO,CAAC,iBAAiB;YAsBX,cAAc;IA+C5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;CAW/B"}
@@ -11,6 +11,7 @@ export declare class LettaAgentClient extends LettaAgentClientBase {
11
11
  constructor(options: PortableLettaAgentClientOptions);
12
12
  }
13
13
  export { CloudManagedSandboxExpiredError } from "./cloud-session.js";
14
+ export { ConversationForkHydrationError } from "./management-errors.js";
14
15
  export { RepositoriesClient } from "./repositories.js";
15
16
  export type { Computer, ComputerMetadata, ComputerSelector, ComputersClient, ListComputersOptions, ListComputersResult, ResolvedComputer, } from "./computers.js";
16
17
  export type * from "./management-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"client-entry.d.ts","sourceRoot":"","sources":["../src/client-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,+BAA+B,GACvC,4BAA4B,GAC5B,2BAA2B,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;gBAC5C,OAAO,EAAE,+BAA+B;CAMrD;AAED,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AACvE,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"client-entry.d.ts","sourceRoot":"","sources":["../src/client-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,+BAA+B,GACvC,4BAA4B,GAC5B,2BAA2B,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;gBAC5C,OAAO,EAAE,+BAA+B;CAMrD;AAED,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AACvE,mBAAmB,YAAY,CAAC"}
@@ -3439,6 +3439,16 @@ function normalizeAppServerModels(response) {
3439
3439
  };
3440
3440
  }
3441
3441
 
3442
+ // src/management-errors.ts
3443
+ class ConversationForkHydrationError extends Error {
3444
+ conversationId;
3445
+ constructor(conversationId, cause) {
3446
+ super(`Conversation ${conversationId} was forked, but its state could not be retrieved.`, { cause });
3447
+ this.name = "ConversationForkHydrationError";
3448
+ this.conversationId = conversationId;
3449
+ }
3450
+ }
3451
+
3442
3452
  // src/request-ids.ts
3443
3453
  var processRequestCounter = 0;
3444
3454
  function createRequestIdGenerator() {
@@ -3509,6 +3519,15 @@ class AppServerManagementTransport {
3509
3519
  const response = await this.request("conversation_update", { conversation_id: conversationId, body }, "conversation_update_response");
3510
3520
  return ensureResponse(response, response.conversation, `Failed to update conversation ${conversationId}.`);
3511
3521
  }
3522
+ async forkConversation(conversationId, body) {
3523
+ const response = await this.request("conversation_fork", { conversation_id: conversationId, body }, "conversation_fork_response");
3524
+ const fork = ensureResponse(response, response.conversation, `Failed to fork conversation ${conversationId}.`);
3525
+ try {
3526
+ return await this.retrieveConversation(fork.id);
3527
+ } catch (error) {
3528
+ throw new ConversationForkHydrationError(fork.id, error);
3529
+ }
3530
+ }
3512
3531
  async listConversationMessages(conversationId, query) {
3513
3532
  const response = await this.request("conversation_messages_list", { conversation_id: conversationId, query }, "conversation_messages_list_response");
3514
3533
  if (!response.success) {
@@ -8807,6 +8826,7 @@ class RemoteTurnCoordinator {
8807
8826
  runIds: new Set,
8808
8827
  observedTurnEvidence: false,
8809
8828
  observedRequiresApprovalStop: false,
8829
+ pendingTerminal: null,
8810
8830
  abortRequested: false,
8811
8831
  timeout: null
8812
8832
  };
@@ -9026,6 +9046,8 @@ class RemoteTurnCoordinator {
9026
9046
  return;
9027
9047
  }
9028
9048
  if (status === "WAITING_ON_INPUT" && active.observedTurnEvidence) {
9049
+ if (active.pendingTerminal)
9050
+ return;
9029
9051
  this.completeActiveTurn({
9030
9052
  runtime: active.runtime,
9031
9053
  stopReason: null,
@@ -9056,14 +9078,19 @@ class RemoteTurnCoordinator {
9056
9078
  }
9057
9079
  const errorCode = toSdkErrorCode(finished.stopReason);
9058
9080
  const success = !isFailureStopReason(finished.stopReason);
9059
- this.completeActiveTurn({
9081
+ const terminal = {
9060
9082
  runtime: active.runtime,
9061
9083
  stopReason: finished.stopReason,
9062
9084
  runIds: [...active.runIds],
9063
9085
  success,
9064
9086
  ...success ? {} : { errorCode: errorCode ?? "error" },
9065
9087
  ...finished.error ? { detail: finished.error } : {}
9066
- });
9088
+ };
9089
+ if (active.pendingTerminal) {
9090
+ active.pendingTerminal = terminal;
9091
+ return;
9092
+ }
9093
+ this.completeActiveTurn(terminal);
9067
9094
  }
9068
9095
  handleTurnTerminalDelta(delta, sdkMessage) {
9069
9096
  const active = this.activeTurn;
@@ -9076,11 +9103,15 @@ class RemoteTurnCoordinator {
9076
9103
  active.observedRequiresApprovalStop = true;
9077
9104
  return;
9078
9105
  }
9079
- this.completeActiveTurn({
9106
+ active.pendingTerminal = {
9080
9107
  runtime: active.runtime,
9081
9108
  stopReason,
9082
9109
  runIds: [...active.runIds]
9083
- });
9110
+ };
9111
+ return;
9112
+ }
9113
+ if (messageType === "usage_statistics" && active.pendingTerminal) {
9114
+ this.completeActiveTurn(active.pendingTerminal);
9084
9115
  return;
9085
9116
  }
9086
9117
  if (sdkMessage?.type === "error") {
@@ -10518,6 +10549,9 @@ class CloudManagementTransport {
10518
10549
  async updateConversation(conversationId, body) {
10519
10550
  return this.client.conversations.update(conversationId, body);
10520
10551
  }
10552
+ async forkConversation(conversationId, query) {
10553
+ return this.client.conversations.fork(conversationId, query);
10554
+ }
10521
10555
  async listConversationMessages(conversationId, query) {
10522
10556
  const page = await this.client.conversations.messages.list(conversationId, toOrderRelativeCursors(query));
10523
10557
  return { messages: page.items };
@@ -11641,6 +11675,12 @@ function conversationUpdateBody(options) {
11641
11675
  archived: options.archived
11642
11676
  };
11643
11677
  }
11678
+ function conversationForkQuery(options) {
11679
+ return {
11680
+ message_id: options.messageId,
11681
+ hidden: options.hidden
11682
+ };
11683
+ }
11644
11684
  function conversationMessagesQuery(options) {
11645
11685
  return {
11646
11686
  before: options.before,
@@ -11674,6 +11714,13 @@ function createConversationsClient(transport) {
11674
11714
  retrieve: (conversationId) => transport().retrieveConversation(conversationId),
11675
11715
  create: (options) => transport().createConversation(conversationCreateBody(options)),
11676
11716
  update: (conversationId, options) => transport().updateConversation(conversationId, conversationUpdateBody(options)),
11717
+ fork: async (sourceConversationId, options = {}) => {
11718
+ assertNonEmptyId2(sourceConversationId, "conversation id");
11719
+ if (options.messageId !== undefined) {
11720
+ assertNonEmptyId2(options.messageId, "message id");
11721
+ }
11722
+ return await transport().forkConversation(sourceConversationId, conversationForkQuery(options));
11723
+ },
11677
11724
  listMessages: (conversationId, options = {}) => transport().listConversationMessages(conversationId, conversationMessagesQuery(options))
11678
11725
  };
11679
11726
  }
@@ -12719,7 +12766,8 @@ export {
12719
12766
  createReactNativeWebSocketConstructor,
12720
12767
  RepositoriesClient,
12721
12768
  LettaAgentClient,
12769
+ ConversationForkHydrationError,
12722
12770
  CloudManagedSandboxExpiredError
12723
12771
  };
12724
12772
 
12725
- //# debugId=306AFAA371490E4864756E2164756E21
12773
+ //# debugId=D64E5E8DF2F0895364756E2164756E21