@letta-ai/letta-agent-sdk 0.5.8 → 0.6.1

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.
package/README.md CHANGED
@@ -53,7 +53,6 @@ An agent is the persistent entity with memory. A conversation is a thread on tha
53
53
  - `createSession(agentId)` starts a new conversation.
54
54
  - `resumeSession(conversationId)` resumes a saved conversation.
55
55
  - `resumeSession(agentId)` resumes the agent's default conversation.
56
- - `prompt(message, agentId)` runs a one-shot prompt in a new conversation.
57
56
 
58
57
  Portable sessions also expose the stateful controls needed by interactive
59
58
  clients:
@@ -121,6 +120,25 @@ await using session = client.createSession(agentId, {
121
120
 
122
121
  Local execution (embedded Letta Code harness / app server) requires Node.js 22.19 or newer.
123
122
 
123
+ ### Built-in client toolsets
124
+
125
+ Use `toolset` to select a request-scoped harness preset and add bundled client
126
+ tools. `allowedTools` remains the final visibility boundary across bundled and
127
+ custom tools.
128
+
129
+ ```ts
130
+ await using session = client.createSession(agentId, {
131
+ toolset: {
132
+ base: "none",
133
+ include: ["Read", "LS", "Glob", "Grep"],
134
+ },
135
+ allowedTools: ["Read", "LS", "Glob", "Grep"],
136
+ });
137
+ ```
138
+
139
+ The override applies to this SDK session's turns without changing the agent's
140
+ persisted harness toolset preference.
141
+
124
142
  ### MCP tools
125
143
 
126
144
  Pass MCP servers by name in session options. The SDK supports local stdio,
@@ -1,6 +1,6 @@
1
1
  import { type AppServerClient, type AppServerExternalToolCallHandler } from "@letta-ai/letta-code/app-server-client";
2
2
  import { RemoteClientSessionCore, type ProtocolMessage, type RemoteClientRuntimeController, type RuntimeSendTurnOptions, type RuntimeScope, type RuntimeSessionInit, type RuntimeSessionMode } from "./remote-client-session-core.js";
3
- import type { AnyAgentTool, CanUseToolContext, CanUseToolResponse, CreateAgentOptions, LettaCodeRemoteClientOptions, LettaCodeClientSessionOptions, ListModelsResult, ListMessagesOptions, ListMessagesResult, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, SendMessage, UpdateModelResult } from "./types.js";
3
+ import type { AnyAgentTool, CanUseToolContext, CanUseToolResponse, ClientToolsetConfig, CreateAgentOptions, LettaCodeRemoteClientOptions, LettaCodeClientSessionOptions, ListModelsResult, ListMessagesOptions, ListMessagesResult, RecoverPendingApprovalsOptions, RecoverPendingApprovalsResult, SendMessage, UpdateModelResult } from "./types.js";
4
4
  type UpdateModelPayload = {
5
5
  model_id?: string;
6
6
  model_handle?: string;
@@ -47,7 +47,8 @@ export declare class AppServerRuntimeController implements RemoteClientRuntimeCo
47
47
  private readonly client;
48
48
  private readonly options;
49
49
  private readonly clientToolAllowlist?;
50
- constructor(client: AppServerClient, options: AppServerSessionOptions, clientToolAllowlist?: readonly string[] | undefined);
50
+ private readonly clientToolset?;
51
+ constructor(client: AppServerClient, options: AppServerSessionOptions, clientToolAllowlist?: readonly string[] | undefined, clientToolset?: ClientToolsetConfig | undefined);
51
52
  onMessage(handler: (message: ProtocolMessage, channel?: string) => void): () => void;
52
53
  send(command: Record<string, unknown>): void;
53
54
  sendTurnMessage(runtime: RuntimeScope, message: SendMessage, options: RuntimeSendTurnOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"app-server-session.d.ts","sourceRoot":"","sources":["../src/app-server-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-server-session.d.ts","sourceRoot":"","sources":["../src/app-server-session.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,10 @@ export declare class LettaAgentClientBase {
45
45
  * Letta Cloud sessions. Remote app-server URLs already select the runtime.
46
46
  */
47
47
  resumeSession(id: string, options?: LettaCodeClientSessionOptions): LettaCodeSession;
48
- /** One-shot prompt convenience helper using a new conversation. */
48
+ /**
49
+ * One-shot convenience for scripts, smoke tests, and evals.
50
+ * Applications should use a session when they need interactive turn state.
51
+ */
49
52
  prompt(message: SendMessage, agentId: string, options?: LettaCodeClientSessionOptions): Promise<SDKResultMessage>;
50
53
  private assertSessionBackend;
51
54
  protected createLocalAgent(_options: CreateAgentOptions): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client-base.d.ts","sourceRoot":"","sources":["../src/client-base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAevD,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAEV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC7B,oBAAoB,EAIpB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;AAmDpB;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACnD,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,uBAAuB,CAAwC;IACvE,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,mBAAmB,CAAoC;gBAEnD,OAAO,GAAE,sBAA2B;IA0EhD;;;;;OAKG;IACH,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAEK,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBpE;;;;OAIG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB;IA+BnB;;;;;OAKG;IACH,aAAa,CACX,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB;IA8CnB,mEAAmE;IAC7D,MAAM,CACV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,gBAAgB,CAAC;IAU5B,OAAO,CAAC,oBAAoB;IA4E5B,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,6BAA6B,GACtC,gBAAgB;IAInB,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,6BAA6B,GACtC,gBAAgB;IAInB,SAAS,CAAC,4BAA4B,IAAI,KAAK;IAM/C,SAAS,CAAC,8BAA8B,IAAI,mBAAmB;IAI/D,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"client-base.d.ts","sourceRoot":"","sources":["../src/client-base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAevD,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAEV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC7B,oBAAoB,EAIpB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;AAmDpB;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACnD,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,uBAAuB,CAAwC;IACvE,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,mBAAmB,CAAoC;gBAEnD,OAAO,GAAE,sBAA2B;IA0EhD;;;;;OAKG;IACH,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAEK,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBpE;;;;OAIG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB;IA+BnB;;;;;OAKG;IACH,aAAa,CACX,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB;IA8CnB;;;OAGG;IACG,MAAM,CACV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,gBAAgB,CAAC;IAU5B,OAAO,CAAC,oBAAoB;IA4E5B,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,6BAA6B,GACtC,gBAAgB;IAInB,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,6BAA6B,GACtC,gBAAgB;IAInB,SAAS,CAAC,4BAA4B,IAAI,KAAK;IAM/C,SAAS,CAAC,8BAA8B,IAAI,mBAAmB;IAI/D,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,YAAY;CAMrB"}
@@ -9573,7 +9573,7 @@ class RemoteClientSessionCore {
9573
9573
  throw error;
9574
9574
  }
9575
9575
  }
9576
- async runTurn(message, _options = {}) {
9576
+ async sendAndWaitForResult(message) {
9577
9577
  if (this.turns.hasInFlightTurn()) {
9578
9578
  throw new Error(`A turn is already in flight for this ${this.label} session. Use send() and stream() to let the listener queue messages.`);
9579
9579
  }
@@ -10320,10 +10320,12 @@ class AppServerRuntimeController {
10320
10320
  client;
10321
10321
  options;
10322
10322
  clientToolAllowlist;
10323
- constructor(client, options, clientToolAllowlist) {
10323
+ clientToolset;
10324
+ constructor(client, options, clientToolAllowlist, clientToolset) {
10324
10325
  this.client = client;
10325
10326
  this.options = options;
10326
10327
  this.clientToolAllowlist = clientToolAllowlist;
10328
+ this.clientToolset = clientToolset;
10327
10329
  }
10328
10330
  onMessage(handler) {
10329
10331
  return this.client.onMessage((message, channel) => {
@@ -10347,6 +10349,12 @@ class AppServerRuntimeController {
10347
10349
  if (this.clientToolAllowlist !== undefined) {
10348
10350
  payload.client_tool_allowlist = [...new Set(this.clientToolAllowlist)];
10349
10351
  }
10352
+ if (this.clientToolset !== undefined) {
10353
+ payload.client_toolset = {
10354
+ ...this.clientToolset.base !== undefined ? { base: this.clientToolset.base } : {},
10355
+ ...this.clientToolset.include !== undefined ? { include: [...new Set(this.clientToolset.include)] } : {}
10356
+ };
10357
+ }
10350
10358
  payload.exclude_interactive_tools = true;
10351
10359
  this.client.input({
10352
10360
  runtime,
@@ -10487,12 +10495,13 @@ class AppServerSession extends RemoteClientSessionCore {
10487
10495
  throw new Error(response.error ?? "Failed to start app-server runtime");
10488
10496
  }
10489
10497
  const tools = agentToolNames(response.agent);
10490
- const skillSources = this.currentOptions().skillSources;
10498
+ const skillSources = options.skillSources;
10499
+ const clientToolset = "toolset" in options ? options.toolset : undefined;
10491
10500
  const mcpToolNames = this.mcpBridge?.tools.map((tool) => tool.name) ?? [];
10492
- const allowedTools = expandMcpToolWildcards(this.currentOptions().allowedTools, mcpToolNames);
10501
+ const allowedTools = expandMcpToolWildcards(options.allowedTools, mcpToolNames);
10493
10502
  const availableTools = tools === undefined && mcpToolNames.length === 0 ? undefined : [...tools ?? [], ...mcpToolNames];
10494
10503
  return {
10495
- controller: new AppServerRuntimeController(client, this.remoteOptions, allowedTools),
10504
+ controller: new AppServerRuntimeController(client, this.remoteOptions, allowedTools, clientToolset),
10496
10505
  runtime: response.runtime,
10497
10506
  model: typeof response.agent?.model === "string" ? response.agent.model : "",
10498
10507
  modelSettings: objectRecord(response.agent?.model_settings) ?? null,
@@ -10640,6 +10649,16 @@ function cloudModelEntry(raw) {
10640
10649
  function isNotFound(error) {
10641
10650
  return error instanceof APIError && error.status === 404;
10642
10651
  }
10652
+ function toOrderRelativeCursors(query) {
10653
+ if ((query.order ?? "desc") !== "desc")
10654
+ return query;
10655
+ const { before, after, ...rest } = query;
10656
+ return {
10657
+ ...rest,
10658
+ ...after != null ? { before: after } : {},
10659
+ ...before != null ? { after: before } : {}
10660
+ };
10661
+ }
10643
10662
 
10644
10663
  class CloudManagementTransport {
10645
10664
  client;
@@ -10715,7 +10734,7 @@ class CloudManagementTransport {
10715
10734
  return this.client.conversations.update(conversationId, body);
10716
10735
  }
10717
10736
  async listConversationMessages(conversationId, query) {
10718
- const page = await this.client.conversations.messages.list(conversationId, query);
10737
+ const page = await this.client.conversations.messages.list(conversationId, toOrderRelativeCursors(query));
10719
10738
  return { messages: page.items };
10720
10739
  }
10721
10740
  }
@@ -11255,14 +11274,15 @@ class CloudEnvironmentSession extends RemoteClientSessionCore {
11255
11274
  throw new Error(response.error ?? "Failed to start Cloud status runtime");
11256
11275
  }
11257
11276
  const tools = agentToolNames(response.agent);
11258
- const skillSources = this.currentOptions().skillSources;
11277
+ const skillSources = options.skillSources;
11278
+ const clientToolset = "toolset" in options ? options.toolset : undefined;
11259
11279
  const mcpToolNames = this.mcpBridge?.tools.map((tool) => tool.name) ?? [];
11260
- const allowedTools = expandMcpToolWildcards(this.currentOptions().allowedTools, mcpToolNames);
11280
+ const allowedTools = expandMcpToolWildcards(options.allowedTools, mcpToolNames);
11261
11281
  const availableTools = tools === undefined && mcpToolNames.length === 0 ? undefined : [...tools ?? [], ...mcpToolNames];
11262
11282
  return {
11263
11283
  controller: new AppServerRuntimeController(client, {
11264
11284
  requestTimeoutMs: this.cloudOptions.requestTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS
11265
- }, allowedTools),
11285
+ }, allowedTools, clientToolset),
11266
11286
  runtime: response.runtime,
11267
11287
  model: typeof response.agent?.model === "string" ? response.agent.model : "",
11268
11288
  modelSettings: response.agent?.model_settings ?? null,
@@ -11772,6 +11792,15 @@ var VALID_SKILL_SOURCES = [
11772
11792
  "agent",
11773
11793
  "project"
11774
11794
  ];
11795
+ var VALID_TOOLSET_BASES = [
11796
+ "auto",
11797
+ "codex",
11798
+ "codex_snake",
11799
+ "default",
11800
+ "gemini",
11801
+ "gemini_snake",
11802
+ "none"
11803
+ ];
11775
11804
  var VALID_REASONING_EFFORTS = [
11776
11805
  "none",
11777
11806
  "minimal",
@@ -11789,14 +11818,6 @@ function getBlockLabels(memory) {
11789
11818
  return null;
11790
11819
  }).filter((label) => label !== null);
11791
11820
  }
11792
- function validateApprovalRecoveryOptions(options) {
11793
- if (options.maxApprovalRecoveryAttempts !== undefined && (!Number.isInteger(options.maxApprovalRecoveryAttempts) || options.maxApprovalRecoveryAttempts < 0)) {
11794
- throw new Error("Invalid maxApprovalRecoveryAttempts. Expected a non-negative integer.");
11795
- }
11796
- if (options.approvalRecoveryTimeoutMs !== undefined && (!Number.isInteger(options.approvalRecoveryTimeoutMs) || options.approvalRecoveryTimeoutMs <= 0)) {
11797
- throw new Error("Invalid approvalRecoveryTimeoutMs. Expected a positive integer.");
11798
- }
11799
- }
11800
11821
  function validateRemovedSessionOptions(options) {
11801
11822
  const removedOptions = options;
11802
11823
  if (removedOptions.systemPrompt !== undefined) {
@@ -11832,6 +11853,19 @@ function validateSystemPromptPreset(preset) {
11832
11853
  throw new Error(`Invalid system prompt preset '${preset}'. ` + `Valid presets: ${validPresets.join(", ")}`);
11833
11854
  }
11834
11855
  }
11856
+ function validateClientToolset(toolset) {
11857
+ if (toolset === undefined)
11858
+ return;
11859
+ if (!toolset || typeof toolset !== "object" || Array.isArray(toolset)) {
11860
+ throw new Error("Invalid toolset. Expected an object with optional base and include fields.");
11861
+ }
11862
+ if (toolset.base !== undefined && !VALID_TOOLSET_BASES.includes(toolset.base)) {
11863
+ throw new Error(`Invalid toolset.base '${String(toolset.base)}'. Valid values: ${VALID_TOOLSET_BASES.join(", ")}`);
11864
+ }
11865
+ if (toolset.include !== undefined && (!Array.isArray(toolset.include) || toolset.include.some((toolName) => typeof toolName !== "string" || toolName.length === 0))) {
11866
+ throw new Error("Invalid toolset.include. Expected an array of non-empty bundled tool names.");
11867
+ }
11868
+ }
11835
11869
  function validateSkillSources(sources) {
11836
11870
  if (sources === undefined) {
11837
11871
  return;
@@ -11891,11 +11925,11 @@ function validateMcpServers(servers) {
11891
11925
  }
11892
11926
  }
11893
11927
  function validateCreateSessionOptions(options) {
11928
+ validateClientToolset(options.toolset);
11894
11929
  validateSkillSources(options.skillSources);
11895
11930
  validateMcpServers(options.mcpServers);
11896
11931
  validateReasoningEffort(options.reasoningEffort);
11897
11932
  validateDreamingOptions(options.dreaming);
11898
- validateApprovalRecoveryOptions(options);
11899
11933
  validateRemovedSessionOptions(options);
11900
11934
  }
11901
11935
  function validateCreateAgentOptions(options) {
@@ -12103,7 +12137,7 @@ class LettaAgentClientBase {
12103
12137
  async prompt(message, agentId, options = {}) {
12104
12138
  const session = this.createSession(agentId, options);
12105
12139
  try {
12106
- return await session.runTurn(message);
12140
+ return await session.sendAndWaitForResult(message);
12107
12141
  } finally {
12108
12142
  session.close();
12109
12143
  }
@@ -12321,4 +12355,4 @@ export {
12321
12355
  CloudManagedSandboxExpiredError
12322
12356
  };
12323
12357
 
12324
- //# debugId=713A28441574387164756E2164756E21
12358
+ //# debugId=F422AB0A96BFDBF164756E2164756E21