@letta-ai/letta-code 0.30.32 → 0.31.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.
Files changed (65) hide show
  1. package/dist/agent-presets-agent-presets.js +11 -0
  2. package/dist/agent-presets-agent-presets.js.map +9 -0
  3. package/dist/agent-presets-personality-asset-content.js +42 -0
  4. package/dist/agent-presets-personality-asset-content.js.map +10 -0
  5. package/dist/agent-presets.js +17 -2
  6. package/dist/agent-presets.js.map +3 -3
  7. package/dist/channels-public.js +16 -1
  8. package/dist/channels-public.js.map +5 -4
  9. package/dist/gateway-core.js +5 -4
  10. package/dist/gateway-core.js.map +3 -3
  11. package/dist/mcp-client.js +2 -2
  12. package/dist/mcp-client.js.map +1 -1
  13. package/dist/types/agent/create-agent-request.d.ts +3 -0
  14. package/dist/types/agent/create-agent-request.d.ts.map +1 -1
  15. package/dist/types/agent/model.d.ts.map +1 -1
  16. package/dist/types/agent/personality-asset-content.d.ts +3 -0
  17. package/dist/types/agent/personality-asset-content.d.ts.map +1 -0
  18. package/dist/types/agent/skills.d.ts.map +1 -1
  19. package/dist/types/agent/subagents/manager.d.ts.map +1 -1
  20. package/dist/types/channels/gateway-core.d.ts.map +1 -1
  21. package/dist/types/channels/route-thread-key.d.ts +20 -0
  22. package/dist/types/channels/route-thread-key.d.ts.map +1 -0
  23. package/dist/types/channels-public.d.ts +1 -0
  24. package/dist/types/channels-public.d.ts.map +1 -1
  25. package/dist/types/tools/impl/shell-runner.d.ts.map +1 -1
  26. package/dist/types/tools/impl/skill.d.ts.map +1 -1
  27. package/dist/types/types/protocol_v2.d.ts +3 -144
  28. package/dist/types/types/protocol_v2.d.ts.map +1 -1
  29. package/dist/types/types/schedule-protocol.d.ts +151 -1
  30. package/dist/types/types/schedule-protocol.d.ts.map +1 -1
  31. package/dist/types/utils/frontmatter.d.ts.map +1 -1
  32. package/dist/types/utils/systemd-workload-scope.d.ts +15 -0
  33. package/dist/types/utils/systemd-workload-scope.d.ts.map +1 -0
  34. package/dist/types/websocket/listener/cwd-change.d.ts.map +1 -1
  35. package/letta.js +275 -94
  36. package/package.json +4 -2
  37. package/scripts/builtin-skills-watch/agent-watch.test.ts +104 -0
  38. package/scripts/builtin-skills-watch/agent-watch.ts +337 -0
  39. package/scripts/builtin-skills-watch/aggregate-results.test.ts +79 -0
  40. package/scripts/builtin-skills-watch/aggregate-results.ts +326 -0
  41. package/scripts/builtin-skills-watch/analysis.test.ts +70 -0
  42. package/scripts/builtin-skills-watch/analysis.ts +228 -0
  43. package/scripts/builtin-skills-watch/evidence.test.ts +114 -0
  44. package/scripts/builtin-skills-watch/evidence.ts +145 -0
  45. package/scripts/builtin-skills-watch/github.ts +161 -0
  46. package/scripts/builtin-skills-watch/tracker.test.ts +249 -0
  47. package/scripts/builtin-skills-watch/tracker.ts +506 -0
  48. package/scripts/builtin-skills-watch/update-tracker.test.ts +234 -0
  49. package/scripts/builtin-skills-watch/update-tracker.ts +508 -0
  50. package/scripts/claude-watch/release-source.test.ts +16 -4
  51. package/scripts/claude-watch/release-source.ts +41 -2
  52. package/scripts/codex-watch/agent-watch.ts +8 -5
  53. package/scripts/codex-watch/release-analysis.test.ts +18 -16
  54. package/scripts/codex-watch/release-analysis.ts +31 -9
  55. package/scripts/codex-watch/tracker.test.ts +5 -5
  56. package/scripts/codex-watch/tracker.ts +7 -8
  57. package/scripts/pi-ai-watch/agent-watch.ts +9 -14
  58. package/scripts/pi-ai-watch/release-analysis.test.ts +24 -18
  59. package/scripts/pi-ai-watch/release-analysis.ts +85 -45
  60. package/scripts/pi-ai-watch/tracker.test.ts +25 -18
  61. package/scripts/pi-ai-watch/tracker.ts +7 -19
  62. package/scripts/pi-ai-watch/update-tracker.ts +2 -2
  63. package/scripts/source-file-size-baseline.json +2 -2
  64. package/skills/dispatching-coding-agents/SKILL.md +16 -7
  65. package/skills/syncing-memory-filesystem/SKILL.md +118 -226
@@ -0,0 +1,11 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ export { __require };
10
+
11
+ //# debugId=E8AF45F8CAB8892F64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "E8AF45F8CAB8892F64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,42 @@
1
+ import"./agent-presets-agent-presets.js";
2
+
3
+ // src/agent/personality-asset-content.ts
4
+ function encodeBase64(bytes) {
5
+ let binary = "";
6
+ const chunkSize = 32768;
7
+ for (let offset = 0;offset < bytes.length; offset += chunkSize) {
8
+ binary += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize));
9
+ }
10
+ return btoa(binary);
11
+ }
12
+ function tutorProfilePictureUrl() {
13
+ if (true) {
14
+ return new URL("../assets/tutor-profile.png", import.meta.url);
15
+ }
16
+ const sourceAssetPath = "../../assets/tutor-profile.png";
17
+ return new URL(sourceAssetPath, import.meta.url);
18
+ }
19
+ async function readAsset(asset) {
20
+ if (asset.protocol === "file:") {
21
+ if (typeof Bun === "undefined") {
22
+ throw new Error("Personality asset is unavailable");
23
+ }
24
+ return encodeBase64(new Uint8Array(await Bun.file(asset).arrayBuffer()));
25
+ }
26
+ const response = await fetch(asset);
27
+ if (!response.ok) {
28
+ throw new Error(`Failed to load personality asset: ${response.status}`);
29
+ }
30
+ return encodeBase64(new Uint8Array(await response.arrayBuffer()));
31
+ }
32
+ async function getPersonalityAssetBase64(assetId) {
33
+ switch (assetId) {
34
+ case "tutor-profile":
35
+ return readAsset(tutorProfilePictureUrl());
36
+ }
37
+ }
38
+ export {
39
+ getPersonalityAssetBase64
40
+ };
41
+
42
+ //# debugId=DCA44FC9ACAA31A164756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/agent/personality-asset-content.ts"],
4
+ "sourcesContent": [
5
+ "import type { PersonalityAssetId } from \"./personality-presets\";\n\ndeclare const __AGENT_PRESETS_BUNDLE__: boolean | undefined;\n\nfunction encodeBase64(bytes: Uint8Array): string {\n let binary = \"\";\n const chunkSize = 32_768;\n for (let offset = 0; offset < bytes.length; offset += chunkSize) {\n binary += String.fromCharCode(\n ...bytes.subarray(offset, offset + chunkSize),\n );\n }\n return btoa(binary);\n}\n\nfunction tutorProfilePictureUrl(): URL {\n if (typeof __AGENT_PRESETS_BUNDLE__ !== \"undefined\") {\n return new URL(\"../assets/tutor-profile.png\", import.meta.url);\n }\n const sourceAssetPath = \"../../assets/tutor-profile.png\";\n return new URL(sourceAssetPath, import.meta.url);\n}\n\nasync function readAsset(asset: URL): Promise<string> {\n if (asset.protocol === \"file:\") {\n if (typeof Bun === \"undefined\") {\n throw new Error(\"Personality asset is unavailable\");\n }\n return encodeBase64(new Uint8Array(await Bun.file(asset).arrayBuffer()));\n }\n\n const response = await fetch(asset);\n if (!response.ok) {\n throw new Error(`Failed to load personality asset: ${response.status}`);\n }\n return encodeBase64(new Uint8Array(await response.arrayBuffer()));\n}\n\nexport async function getPersonalityAssetBase64(\n assetId: PersonalityAssetId,\n): Promise<string> {\n switch (assetId) {\n case \"tutor-profile\":\n return readAsset(tutorProfilePictureUrl());\n }\n}\n"
6
+ ],
7
+ "mappings": ";;;AAIA,SAAS,YAAY,CAAC,OAA2B;AAAA,EAC/C,IAAI,SAAS;AAAA,EACb,MAAM,YAAY;AAAA,EAClB,SAAS,SAAS,EAAG,SAAS,MAAM,QAAQ,UAAU,WAAW;AAAA,IAC/D,UAAU,OAAO,aACf,GAAG,MAAM,SAAS,QAAQ,SAAS,SAAS,CAC9C;AAAA,EACF;AAAA,EACA,OAAO,KAAK,MAAM;AAAA;AAGpB,SAAS,sBAAsB,GAAQ;AAAA,EACrC,IAAI,MAAiD;AAAA,IACnD,OAAO,IAAI,IAAI,+BAA+B,YAAY,GAAG;AAAA,EAC/D;AAAA,EACA,MAAM,kBAAkB;AAAA,EACxB,OAAO,IAAI,IAAI,iBAAiB,YAAY,GAAG;AAAA;AAGjD,eAAe,SAAS,CAAC,OAA6B;AAAA,EACpD,IAAI,MAAM,aAAa,SAAS;AAAA,IAC9B,IAAI,OAAO,QAAQ,aAAa;AAAA,MAC9B,MAAM,IAAI,MAAM,kCAAkC;AAAA,IACpD;AAAA,IACA,OAAO,aAAa,IAAI,WAAW,MAAM,IAAI,KAAK,KAAK,EAAE,YAAY,CAAC,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,EAClC,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,IAAI,MAAM,qCAAqC,SAAS,QAAQ;AAAA,EACxE;AAAA,EACA,OAAO,aAAa,IAAI,WAAW,MAAM,SAAS,YAAY,CAAC,CAAC;AAAA;AAGlE,eAAsB,yBAAyB,CAC7C,SACiB;AAAA,EACjB,QAAQ;AAAA,SACD;AAAA,MACH,OAAO,UAAU,uBAAuB,CAAC;AAAA;AAAA;",
8
+ "debugId": "DCA44FC9ACAA31A164756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,3 +1,7 @@
1
+ import {
2
+ __require
3
+ } from "./agent-presets-agent-presets.js";
4
+
1
5
  // src/agent/agent-tags.ts
2
6
  var LETTA_CODE_ORIGIN_TAG = "origin:letta-code";
3
7
  var ONBOARDING_ORIGIN_TAG = "origin:onboarding";
@@ -2251,7 +2255,18 @@ async function buildCreateAgentRequest(options = {}) {
2251
2255
  };
2252
2256
  }
2253
2257
  async function buildCreateAgentRequestForPersonality(params) {
2254
- return await buildCreateAgentRequest(params);
2258
+ const request = await buildCreateAgentRequest(params);
2259
+ const profilePicture = getPersonalityDefaultMemoryFiles(params.personalityId).find((file) => file.path === "profile.png");
2260
+ if (!profilePicture) {
2261
+ return request;
2262
+ }
2263
+ const { getPersonalityAssetBase64 } = await import("./agent-presets-personality-asset-content.js");
2264
+ return {
2265
+ ...request,
2266
+ profile_picture: {
2267
+ content: await getPersonalityAssetBase64(profilePicture.assetId)
2268
+ }
2269
+ };
2255
2270
  }
2256
2271
  export {
2257
2272
  resolvePersonalityIdFromTags,
@@ -2275,4 +2290,4 @@ export {
2275
2290
  DEFAULT_CREATED_AGENT_BASE_TOOLS
2276
2291
  };
2277
2292
 
2278
- //# debugId=06F6E8E49135EA6464756E2164756E21
2293
+ //# debugId=3902D7508C4B157264756E2164756E21
@@ -9,9 +9,9 @@
9
9
  "/**\n * Agent memory block management\n * Loads memory blocks from .mdx files in src/agent/prompts\n */\n\nimport type { CreateBlock } from \"@letta-ai/letta-client/resources/blocks/blocks\";\nimport { READ_ONLY_BLOCK_LABELS } from \"./memory-constants\";\nimport { MEMORY_PROMPTS } from \"./prompt-assets\";\n\n/**\n * The memory block labels every standard (non-MemFS) agent is created with.\n * Each maps to a `<label>.mdx` file in src/agent/prompts. Per-project blocks\n * (skills/loaded_skills) were removed in LET-7353 — skills are now injected\n * via system reminders, leaving only these defaults.\n */\nexport const MEMORY_BLOCK_LABELS = [\"persona\", \"human\"] as const;\n\n/**\n * Block labels that should be read-only (agent cannot modify via memory tools).\n */\nexport { READ_ONLY_BLOCK_LABELS };\n\n/**\n * Parse frontmatter and content from an .mdx file\n */\nexport function parseMdxFrontmatter(content: string): {\n frontmatter: Record<string, string>;\n body: string;\n} {\n const frontmatterRegex = /^---\\n([\\s\\S]*?)\\n---\\n([\\s\\S]*)$/;\n const match = content.match(frontmatterRegex);\n\n if (!match || !match[1] || !match[2]) {\n return { frontmatter: {}, body: content };\n }\n\n const frontmatterText = match[1];\n const body = match[2];\n const frontmatter: Record<string, string> = {};\n\n // Parse YAML-like frontmatter (simple key: value pairs)\n for (const line of frontmatterText.split(\"\\n\")) {\n const colonIndex = line.indexOf(\":\");\n if (colonIndex > 0) {\n const key = line.slice(0, colonIndex).trim();\n const value = line.slice(colonIndex + 1).trim();\n frontmatter[key] = value;\n }\n }\n\n return { frontmatter, body: body.trim() };\n}\n\n/**\n * Load memory blocks from .mdx files in src/agent/prompts\n */\nasync function loadMemoryBlocksFromMdx(): Promise<CreateBlock[]> {\n const memoryBlocks: CreateBlock[] = [];\n\n const mdxFiles = MEMORY_BLOCK_LABELS.map((label) => `${label}.mdx`);\n\n for (const filename of mdxFiles) {\n try {\n const content = MEMORY_PROMPTS[filename];\n if (!content) {\n console.warn(`Missing embedded prompt file: ${filename}`);\n continue;\n }\n const { frontmatter, body } = parseMdxFrontmatter(content);\n\n const label = frontmatter.label || filename.replace(\".mdx\", \"\");\n const block: CreateBlock = {\n label,\n value: body,\n };\n\n if (frontmatter.description) {\n block.description = frontmatter.description;\n }\n\n // Set read-only for blocks managed by specific tools (not memory tools)\n if ((READ_ONLY_BLOCK_LABELS as readonly string[]).includes(label)) {\n block.read_only = true;\n }\n\n memoryBlocks.push(block);\n } catch (error) {\n console.error(`Error loading ${filename}:`, error);\n }\n }\n\n return memoryBlocks;\n}\n\n// Cache for loaded memory blocks\nlet cachedMemoryBlocks: CreateBlock[] | null = null;\n\n/**\n * Get default starter memory blocks for new agents\n */\nexport async function getDefaultMemoryBlocks(): Promise<CreateBlock[]> {\n if (!cachedMemoryBlocks) {\n cachedMemoryBlocks = await loadMemoryBlocksFromMdx();\n }\n return cachedMemoryBlocks;\n}\n",
10
10
  "/**\n * The runtime model catalog and pure handle resolution.\n *\n * Cloud mode hydrates this catalog from GET /v1/models/catalog. Local mode\n * hydrates it from the active backend's pi-ai model inventory. Keeping the\n * array identity stable lets synchronous consumers observe source changes\n * without bundling a second model registry.\n */\n\n/** A model catalog entry shared by cloud presets and local pi-ai models. */\nexport interface CatalogModel {\n id: string;\n handle: string;\n label: string;\n description: string;\n shortLabel?: string;\n isDefault?: boolean;\n isFeatured?: boolean;\n free?: boolean;\n updateArgs?: Record<string, unknown>;\n}\n\n/**\n * The live model catalog. Startup initializes it before model resolution:\n * cloud backends use GET /v1/models/catalog and local backends use pi-ai.\n * Source changes replace the contents in place, so consumers that read at\n * call time pick up current data without capturing a stale array reference.\n */\nexport const models: CatalogModel[] = [];\n\nconst BUILTIN_MODEL_ALIASES = new Map([\n [\"auto\", \"letta/auto\"],\n [\"auto-chat\", \"letta/auto-chat\"],\n [\"auto-fast\", \"letta/auto-fast\"],\n]);\n\nfunction resolveEstablishedCliAlias(\n modelIdentifier: string,\n): CatalogModel | null {\n if (modelIdentifier === \"haiku\") {\n return (\n models.find((model) => model.handle.includes(\"claude-haiku-4-5\")) ?? null\n );\n }\n if (modelIdentifier === \"sonnet-4.6-low\") {\n const matchingModels = models.filter((model) =>\n model.handle.includes(\"claude-sonnet-4-6\"),\n );\n const lowEffortModel = matchingModels.find(\n (model) => model.updateArgs?.reasoning_effort === \"low\",\n );\n if (lowEffortModel) return lowEffortModel;\n const baseModel = matchingModels[0];\n return baseModel\n ? {\n ...baseModel,\n id: modelIdentifier,\n updateArgs: {\n ...baseModel.updateArgs,\n reasoning_effort: \"low\",\n enable_reasoner: true,\n },\n }\n : null;\n }\n return null;\n}\n\n/** Resolve a model catalog entry by runtime ID, handle, or CLI alias. */\nexport function resolveCatalogModel(\n modelIdentifier: string,\n): CatalogModel | null {\n const byId = models.find((model) => model.id === modelIdentifier);\n if (byId) return byId;\n\n const byHandle = models.find((model) => model.handle === modelIdentifier);\n if (byHandle) return byHandle;\n\n const cliAlias = resolveEstablishedCliAlias(modelIdentifier);\n if (cliAlias) return cliAlias;\n\n // Runtime catalogs use provider-native model IDs as their short names.\n // Resolve one only when it identifies exactly one handle.\n const matches = models.filter(\n (model) => model.handle.split(\"/\").slice(1).join(\"/\") === modelIdentifier,\n );\n const matchingHandles = new Set(matches.map((model) => model.handle));\n return matchingHandles.size === 1 ? (matches[0] ?? null) : null;\n}\n\n/** Resolve a model by ID or handle. */\nexport function resolveModel(modelIdentifier: string): string | null {\n const entry = resolveCatalogModel(modelIdentifier);\n if (entry) return entry.handle;\n\n const builtinHandle = BUILTIN_MODEL_ALIASES.get(modelIdentifier);\n if (builtinHandle) return builtinHandle;\n\n // Runtime/custom catalogs can contain handles not known before startup.\n return modelIdentifier.includes(\"/\") ? modelIdentifier : null;\n}\n\n/** Get the default model handle from the active catalog. */\nexport function getDefaultModel(): string {\n if (models.length === 0) return \"letta/auto\";\n\n const autoModel = models.find((model) => model.id === \"auto\");\n if (autoModel) return autoModel.handle;\n\n const defaultModel = models.find((model) => model.isDefault);\n if (defaultModel) return defaultModel.handle;\n\n const firstModel = models[0];\n if (!firstModel) {\n throw new Error(\"Model catalog is unavailable.\");\n }\n return firstModel.handle;\n}\n",
11
11
  "/**\n * Pure personality preset definitions and content builders.\n *\n * This module must stay free of Node/backend imports: it is bundled into the\n * browser-safe `@letta-ai/letta-code/agent-presets` package export so that\n * other surfaces (e.g. the chat web app) can build byte-identical agent\n * creation payloads. Filesystem application of personalities lives in\n * `personality.ts`.\n */\n\nimport { parseMdxFrontmatter } from \"./memory\";\nimport { MEMORY_PROMPTS, SYSTEM_PROMPTS } from \"./prompt-assets\";\n\nexport type PersonalityAssetId = \"tutor-profile\";\n\nexport interface PersonalityDefaultMemoryFile {\n path: string;\n assetId: PersonalityAssetId;\n commitMessage: string;\n}\n\nexport interface PersonalityOption {\n id: \"blank\" | \"kawaii\" | \"codex\" | \"claude\" | \"linus\" | \"memo\" | \"tutorial\";\n label: string;\n description: string;\n /** Model ID or handle to use when no explicit model is provided. */\n defaultModel?: string;\n /** Binary files seeded into MemFS after the initial checkout. */\n defaultMemoryFiles?: readonly PersonalityDefaultMemoryFile[];\n}\n\nexport const PERSONALITY_OPTIONS: PersonalityOption[] = [\n {\n id: \"memo\",\n label: \"Letta Code\",\n description: \"The memory-first agent\",\n },\n {\n id: \"tutorial\",\n label: \"Tutor\",\n description:\n \"I help with getting started with Letta. I can answer any questions about Letta, and also help you create and configure agents.\",\n defaultMemoryFiles: [\n {\n path: \"profile.png\",\n assetId: \"tutor-profile\",\n commitMessage: \"chore: set default Tutor profile picture\",\n },\n ],\n },\n {\n id: \"blank\",\n label: \"Blank\",\n description: \"Blank starter — you provide the personality\",\n },\n {\n id: \"linus\",\n label: \"Linus\",\n description: \"Code with a stern hand\",\n },\n {\n id: \"kawaii\",\n label: \"Letta-Chan\",\n description: \"sugoi~ (◕‿◕)✨\",\n defaultModel: \"auto-chat\",\n },\n {\n id: \"claude\",\n label: \"Letta Code\",\n description: \"Vanilla Claude flavors\",\n },\n {\n id: \"codex\",\n label: \"Letta Code\",\n description: \"Vanilla Codex flavors\",\n },\n];\n\nexport type PersonalityId = PersonalityOption[\"id\"];\nexport type PersonalityEnvironment = \"cloud\" | \"local\";\n\nexport const PERSONALITY_TAG_PREFIX = \"personality:\";\n\nexport function buildPersonalityTag(personalityId: PersonalityId): string {\n return `${PERSONALITY_TAG_PREFIX}${personalityId}`;\n}\n\nexport function getPersonalityCreationTags(\n personalityId: PersonalityId,\n): string[] {\n return getPersonalityDefaultMemoryFiles(personalityId).length > 0\n ? [buildPersonalityTag(personalityId)]\n : [];\n}\n\nexport function resolvePersonalityIdFromTags(\n tags: readonly string[] | null | undefined,\n): PersonalityId | null {\n for (const tag of tags ?? []) {\n if (!tag.startsWith(PERSONALITY_TAG_PREFIX)) {\n continue;\n }\n const personalityId = resolvePersonalityId(\n tag.slice(PERSONALITY_TAG_PREFIX.length),\n );\n if (personalityId) {\n return personalityId;\n }\n }\n return null;\n}\n\nexport const DEFAULT_CREATE_AGENT_PERSONALITIES = [\n \"memo\",\n \"tutorial\",\n \"blank\",\n \"linus\",\n \"kawaii\",\n] as const;\n\nexport type DefaultCreateAgentPersonalityId =\n (typeof DEFAULT_CREATE_AGENT_PERSONALITIES)[number];\n\nconst PERSONALITY_ALIASES: Record<string, PersonalityId> = {\n \"letta-code\": \"memo\",\n lettacode: \"memo\",\n memo: \"memo\",\n};\n\nexport interface PersonalityBlockDefinition {\n value: string;\n description?: string;\n templatePromptAssetName: string;\n}\n\nexport const ONBOARDING_PERSONALITIES = [\n \"tutorial\",\n] as const satisfies readonly PersonalityId[];\n\nexport function supportsOnboardingBlock(\n personalityId: PersonalityId,\n): personalityId is (typeof ONBOARDING_PERSONALITIES)[number] {\n return (ONBOARDING_PERSONALITIES as readonly PersonalityId[]).includes(\n personalityId,\n );\n}\n\nexport const FRONTMATTER_REGEX = /^(---\\n[\\s\\S]*?\\n---)\\n*/;\nconst EDITABLE_FRONTMATTER_KEYS = [\n \"description\",\n \"limit\",\n \"read_only\",\n] as const;\n\nexport function normalizeComparableContent(content: string): string {\n return content.replace(/\\r\\n/g, \"\\n\").trim();\n}\n\nfunction ensureTrailingNewline(content: string): string {\n return `${content.trimEnd()}\\n`;\n}\n\nfunction getPromptTemplate(promptAssetName: string): {\n frontmatter: Record<string, string>;\n body: string;\n} {\n const rawPrompt = MEMORY_PROMPTS[promptAssetName];\n if (!rawPrompt) {\n throw new Error(`Missing built-in prompt content for ${promptAssetName}`);\n }\n\n return parseMdxFrontmatter(rawPrompt);\n}\n\nfunction getPromptBody(promptAssetName: string): string {\n const { body } = getPromptTemplate(promptAssetName);\n if (!body.trim()) {\n throw new Error(`${promptAssetName} has empty body content`);\n }\n\n return ensureTrailingNewline(body);\n}\n\nfunction getEditablePromptFrontmatter(\n promptAssetName: string,\n): Record<string, string> {\n const { frontmatter } = getPromptTemplate(promptAssetName);\n return Object.fromEntries(\n Object.entries(frontmatter).filter(([key]) =>\n (EDITABLE_FRONTMATTER_KEYS as readonly string[]).includes(key),\n ),\n );\n}\n\nexport function serializeFrontmatter(\n frontmatter: Record<string, string>,\n): string {\n const orderedKeys = [\n ...EDITABLE_FRONTMATTER_KEYS,\n ...Object.keys(frontmatter).filter(\n (key) => !(EDITABLE_FRONTMATTER_KEYS as readonly string[]).includes(key),\n ),\n ];\n const lines: string[] = [];\n\n for (const key of orderedKeys) {\n const value = frontmatter[key];\n if (value === undefined) {\n continue;\n }\n lines.push(`${key}: ${value}`);\n }\n\n return `---\\n${lines.join(\"\\n\")}\\n---`;\n}\n\nexport function buildDefaultMemoryFile(\n templatePromptAssetName: string,\n body: string,\n description?: string,\n): string {\n const normalizedBody = ensureTrailingNewline(body.trim());\n if (!normalizedBody.trim()) {\n throw new Error(\"Memory content cannot be empty\");\n }\n\n const frontmatter = getEditablePromptFrontmatter(templatePromptAssetName);\n if (description !== undefined) {\n frontmatter.description = description;\n }\n\n if (Object.keys(frontmatter).length === 0) {\n return normalizedBody;\n }\n\n return `${serializeFrontmatter(frontmatter)}\\n\\n${normalizedBody}`;\n}\n\nfunction getSystemPromptById(systemPromptId: string): string {\n const prompt = SYSTEM_PROMPTS.find(\n (candidate) => candidate.id === systemPromptId,\n );\n if (!prompt || !prompt.content.trim()) {\n throw new Error(`Missing built-in prompt content for ${systemPromptId}`);\n }\n return prompt.content;\n}\n\nexport function getPersonalityOption(\n personalityId: PersonalityId,\n): PersonalityOption {\n const option = PERSONALITY_OPTIONS.find(\n (candidate) => candidate.id === personalityId,\n );\n if (!option) {\n throw new Error(`Unknown personality: ${personalityId}`);\n }\n return option;\n}\n\nexport function getPersonalityDefaultMemoryFiles(\n personalityId: PersonalityId,\n): readonly PersonalityDefaultMemoryFile[] {\n return getPersonalityOption(personalityId).defaultMemoryFiles ?? [];\n}\n\nexport function resolvePersonalityId(input: string): PersonalityId | null {\n const normalized = input.trim().toLowerCase();\n if (!normalized) {\n return null;\n }\n\n const direct = PERSONALITY_OPTIONS.find(\n (candidate) => candidate.id === normalized,\n );\n if (direct) {\n return direct.id;\n }\n\n return PERSONALITY_ALIASES[normalized] ?? null;\n}\n\nexport function getPersonalityContent(personalityId: PersonalityId): string {\n if (personalityId === \"memo\") {\n return getPromptBody(\"persona_memo.mdx\");\n }\n\n if (personalityId === \"tutorial\") {\n return getPromptBody(\"persona_tutorial.mdx\");\n }\n\n if (personalityId === \"blank\") {\n return getPromptBody(\"persona_blank.mdx\");\n }\n\n if (personalityId === \"kawaii\") {\n return getPromptBody(\"persona_kawaii.mdx\");\n }\n\n if (personalityId === \"codex\") {\n return ensureTrailingNewline(getSystemPromptById(\"source-codex\"));\n }\n\n if (personalityId === \"linus\") {\n return getPromptBody(\"persona_linus.mdx\");\n }\n\n return ensureTrailingNewline(getSystemPromptById(\"source-claude\"));\n}\n\nexport function getDefaultHumanContent(): string {\n return getPromptBody(\"human.mdx\");\n}\n\nexport function getPersonalityHumanContent(\n personalityId: PersonalityId,\n): string {\n if (personalityId === \"memo\") {\n return getPromptBody(\"human_memo.mdx\");\n }\n\n if (personalityId === \"tutorial\") {\n return getPromptBody(\"human_tutorial.mdx\");\n }\n\n if (personalityId === \"linus\") {\n return getPromptBody(\"human_linus.mdx\");\n }\n\n if (personalityId === \"kawaii\") {\n return getPromptBody(\"human_kawaii.mdx\");\n }\n\n if (personalityId === \"blank\") {\n return getDefaultHumanContent();\n }\n\n return getDefaultHumanContent();\n}\n\nexport function getPersonalityBlockValues(personalityId: PersonalityId): {\n persona: string;\n human: string;\n} {\n const overrides = getPersonalityBlockDefinitions(personalityId);\n return {\n persona: overrides.persona.value,\n human: overrides.human.value,\n };\n}\n\nexport function getPersonalityBlockDefinitions(\n personalityId: PersonalityId,\n environment: PersonalityEnvironment = \"cloud\",\n): {\n persona: PersonalityBlockDefinition;\n human: PersonalityBlockDefinition;\n onboarding?: PersonalityBlockDefinition;\n} {\n const personaTemplatePromptAssetName =\n personalityId === \"memo\"\n ? \"persona_memo.mdx\"\n : personalityId === \"tutorial\"\n ? \"persona_tutorial.mdx\"\n : personalityId === \"blank\"\n ? \"persona_blank.mdx\"\n : personalityId === \"kawaii\"\n ? \"persona_kawaii.mdx\"\n : personalityId === \"linus\"\n ? \"persona_linus.mdx\"\n : \"persona.mdx\";\n const humanTemplatePromptAssetName =\n personalityId === \"memo\"\n ? \"human_memo.mdx\"\n : personalityId === \"tutorial\"\n ? \"human_tutorial.mdx\"\n : personalityId === \"kawaii\"\n ? \"human_kawaii.mdx\"\n : personalityId === \"linus\"\n ? \"human_linus.mdx\"\n : \"human.mdx\";\n const onboardingTemplatePromptAssetName =\n environment === \"local\" ? \"onboarding_local.mdx\" : \"onboarding.mdx\";\n\n return {\n persona: {\n value: getPersonalityContent(personalityId),\n description: getEditablePromptFrontmatter(personaTemplatePromptAssetName)\n .description,\n templatePromptAssetName: personaTemplatePromptAssetName,\n },\n human: {\n value: getPersonalityHumanContent(personalityId),\n description: getEditablePromptFrontmatter(humanTemplatePromptAssetName)\n .description,\n templatePromptAssetName: humanTemplatePromptAssetName,\n },\n ...(supportsOnboardingBlock(personalityId)\n ? {\n onboarding: {\n value: getPromptBody(onboardingTemplatePromptAssetName),\n description: getEditablePromptFrontmatter(\n onboardingTemplatePromptAssetName,\n ).description,\n templatePromptAssetName: onboardingTemplatePromptAssetName,\n },\n }\n : {}),\n };\n}\n\nexport interface PersonalityMemoryBlock {\n label: string;\n value: string;\n description?: string;\n}\n\n/**\n * Build the memory blocks a new agent gets for a personality: the default\n * blocks with persona/human values replaced by the personality's content,\n * plus the onboarding block for personalities that support it.\n *\n * Shared by the CLI create path (`buildCreateAgentOptionsForPersonality`) and\n * the exported wire payload builder (`buildCreateAgentRequestForPersonality`).\n */\nexport function buildPersonalityMemoryBlocks(\n personalityId: PersonalityId,\n defaultMemoryBlocks: Array<{\n label: string;\n value: string;\n description?: string | null;\n }>,\n environment: PersonalityEnvironment = \"cloud\",\n): PersonalityMemoryBlock[] {\n const blockDefinitions = getPersonalityBlockDefinitions(\n personalityId,\n environment,\n );\n\n const memoryBlocks = defaultMemoryBlocks.map((block) => {\n if (block.label === \"persona\") {\n return {\n label: block.label,\n value: blockDefinitions.persona.value,\n description:\n blockDefinitions.persona.description ??\n block.description ??\n undefined,\n };\n }\n\n if (block.label === \"human\") {\n return {\n label: block.label,\n value: blockDefinitions.human.value,\n description:\n blockDefinitions.human.description ?? block.description ?? undefined,\n };\n }\n\n return {\n label: block.label,\n value: block.value,\n description: block.description ?? undefined,\n };\n });\n\n if (blockDefinitions.onboarding) {\n memoryBlocks.push({\n label: \"onboarding\",\n value: blockDefinitions.onboarding.value,\n description: blockDefinitions.onboarding.description,\n });\n }\n\n return memoryBlocks;\n}\n",
12
- "/**\n * Pure builder for the `POST /v1/agents` wire payload of a Letta Code agent.\n *\n * This is the shared creation-policy choke point for the CLI and external\n * harness surfaces. It owns the defaults that must not drift between callers:\n * agent type, prompt mode, tags, server tools, initial messages, parallel tool\n * calls, and compaction. Callers may supply either a Letta Code personality or\n * their own identity blocks without rebuilding that policy.\n *\n * Everything reachable from this module must stay free of Node/backend imports\n * so it can be bundled in the browser-safe `agent-presets` package export.\n */\n\nimport type { CreateBlock } from \"@letta-ai/letta-client/resources/blocks/blocks\";\nimport { DEFAULT_SUMMARIZATION_MODEL } from \"@/constants\";\nimport { buildCreatedAgentTags } from \"./agent-tags\";\nimport { getDefaultMemoryBlocks } from \"./memory\";\nimport { getDefaultModel, resolveModel } from \"./model-catalog\";\nimport {\n buildPersonalityMemoryBlocks,\n getPersonalityCreationTags,\n getPersonalityOption,\n type PersonalityId,\n type PersonalityMemoryBlock,\n} from \"./personality-presets\";\nimport { buildSystemPrompt, type MemoryPromptMode } from \"./prompt-assets\";\n\n/** Agent type used for all Letta Code agents. */\nexport const LETTA_CODE_AGENT_TYPE = \"letta_v1_agent\";\n\n/**\n * Server-side tools attached to created agents. Client-side tools (Read,\n * Write, Bash, etc.) are passed via client_tools at runtime instead.\n */\nexport const DEFAULT_CREATED_AGENT_BASE_TOOLS = [\"web_search\", \"fetch_webpage\"];\n\nexport type CreateAgentMemoryBlock = CreateBlock;\n\nexport interface BuildCreateAgentRequestOptions {\n personalityId?: PersonalityId;\n name?: string;\n description?: string;\n /** Model ID or handle. Personality default, then catalog default, applies. */\n model?: string;\n /** Complete prompt override. Otherwise the standard prompt for prompt mode. */\n system?: string;\n memoryPromptMode?: MemoryPromptMode;\n /**\n * Caller-defined identity. With a personality, matching labels replace its\n * blocks and new labels append after the personality blocks.\n */\n memoryBlocks?: CreateAgentMemoryBlock[];\n blockIds?: string[];\n /** Extra tags appended after canonical Letta Code and personality tags. */\n extraTags?: string[];\n enableMemfs?: boolean;\n isSubagent?: boolean;\n /** Exact server-side tools. Omission uses the Letta Code web-tool defaults. */\n baseTools?: string[];\n embedding?: string;\n hidden?: boolean;\n parallelToolCalls?: boolean;\n compactionModel?: string;\n}\n\nexport interface CreateAgentRequest {\n agent_type: typeof LETTA_CODE_AGENT_TYPE;\n name?: string;\n description?: string;\n model: string;\n system: string;\n memory_blocks?: CreateAgentMemoryBlock[];\n block_ids?: string[];\n tags: string[];\n tools: string[];\n include_base_tools: false;\n include_base_tool_rules: false;\n initial_message_sequence: never[];\n parallel_tool_calls: boolean;\n compaction_settings: { model: string };\n embedding?: string;\n hidden?: boolean;\n}\n\nexport type CreateAgentRequestForPersonality = CreateAgentRequest & {\n name: string;\n description: string;\n memory_blocks: PersonalityMemoryBlock[];\n};\n\nfunction mergeMemoryBlocks(\n base: CreateAgentMemoryBlock[],\n overrides: CreateAgentMemoryBlock[] | undefined,\n): CreateAgentMemoryBlock[] {\n const blocks = base.map((block) => ({ ...block }));\n for (const override of overrides ?? []) {\n const index = blocks.findIndex((block) => block.label === override.label);\n if (index >= 0) {\n blocks[index] = { ...override };\n } else {\n blocks.push({ ...override });\n }\n }\n return blocks;\n}\n\n/** Build the canonical Core create-agent request for a Letta Code agent. */\nexport async function buildCreateAgentRequest(\n options: BuildCreateAgentRequestOptions = {},\n): Promise<CreateAgentRequest> {\n const personality = options.personalityId\n ? getPersonalityOption(options.personalityId)\n : undefined;\n const modelIdentifier = options.model ?? personality?.defaultModel;\n const modelHandle = modelIdentifier\n ? resolveModel(modelIdentifier)\n : getDefaultModel();\n if (!modelHandle) {\n throw new Error(`Unknown model: ${modelIdentifier}`);\n }\n\n if (\n !options.isSubagent &&\n options.enableMemfs !== undefined &&\n options.memoryPromptMode !== undefined &&\n options.enableMemfs !== (options.memoryPromptMode !== \"standard\")\n ) {\n throw new Error(\n \"enableMemfs and memoryPromptMode must describe the same memory mode\",\n );\n }\n const enableMemfs = options.isSubagent\n ? false\n : (options.enableMemfs ?? options.memoryPromptMode !== \"standard\");\n const memoryPromptMode = options.isSubagent\n ? \"standard\"\n : (options.memoryPromptMode ?? (enableMemfs ? \"memfs\" : \"standard\"));\n const personalityTags = options.personalityId\n ? getPersonalityCreationTags(options.personalityId)\n : [];\n const personalityBlocks = options.personalityId\n ? buildPersonalityMemoryBlocks(\n options.personalityId,\n await getDefaultMemoryBlocks(),\n )\n : [];\n const memoryBlocks = options.isSubagent\n ? undefined\n : options.personalityId || options.memoryBlocks !== undefined\n ? mergeMemoryBlocks(personalityBlocks, options.memoryBlocks)\n : undefined;\n const blockIds = options.isSubagent ? undefined : options.blockIds;\n\n return {\n agent_type: LETTA_CODE_AGENT_TYPE,\n ...(options.name !== undefined || personality\n ? { name: options.name ?? personality?.label }\n : {}),\n ...(options.description !== undefined || personality\n ? { description: options.description ?? personality?.description }\n : {}),\n model: modelHandle,\n system: options.system ?? buildSystemPrompt(\"default\", memoryPromptMode),\n ...(memoryBlocks !== undefined ? { memory_blocks: memoryBlocks } : {}),\n ...(blockIds && blockIds.length > 0 ? { block_ids: blockIds } : {}),\n tags: buildCreatedAgentTags({\n enableMemfs,\n isSubagent: options.isSubagent,\n tags: [...personalityTags, ...(options.extraTags ?? [])],\n }),\n tools: [...(options.baseTools ?? DEFAULT_CREATED_AGENT_BASE_TOOLS)],\n include_base_tools: false,\n include_base_tool_rules: false,\n initial_message_sequence: [],\n parallel_tool_calls: options.parallelToolCalls ?? true,\n compaction_settings: {\n model: options.compactionModel ?? DEFAULT_SUMMARIZATION_MODEL,\n },\n ...(options.embedding !== undefined\n ? { embedding: options.embedding }\n : {}),\n ...(options.isSubagent\n ? { hidden: true }\n : options.hidden !== undefined\n ? { hidden: options.hidden }\n : {}),\n };\n}\n\n/** Compatibility wrapper for callers that create a personality agent. */\nexport async function buildCreateAgentRequestForPersonality(params: {\n personalityId: PersonalityId;\n name?: string;\n description?: string;\n model?: string;\n extraTags?: string[];\n}): Promise<CreateAgentRequestForPersonality> {\n return (await buildCreateAgentRequest(\n params,\n )) as CreateAgentRequestForPersonality;\n}\n"
12
+ "/**\n * Pure builder for the `POST /v1/agents` wire payload of a Letta Code agent.\n *\n * This is the shared creation-policy choke point for the CLI and external\n * harness surfaces. It owns the defaults that must not drift between callers:\n * agent type, prompt mode, tags, server tools, initial messages, parallel tool\n * calls, and compaction. Callers may supply either a Letta Code personality or\n * their own identity blocks without rebuilding that policy.\n *\n * Everything reachable from this module must stay free of Node/backend imports\n * so it can be bundled in the browser-safe `agent-presets` package export.\n */\n\nimport type { CreateBlock } from \"@letta-ai/letta-client/resources/blocks/blocks\";\nimport { DEFAULT_SUMMARIZATION_MODEL } from \"@/constants\";\nimport { buildCreatedAgentTags } from \"./agent-tags\";\nimport { getDefaultMemoryBlocks } from \"./memory\";\nimport { getDefaultModel, resolveModel } from \"./model-catalog\";\nimport {\n buildPersonalityMemoryBlocks,\n getPersonalityCreationTags,\n getPersonalityDefaultMemoryFiles,\n getPersonalityOption,\n type PersonalityId,\n type PersonalityMemoryBlock,\n} from \"./personality-presets\";\nimport { buildSystemPrompt, type MemoryPromptMode } from \"./prompt-assets\";\n\n/** Agent type used for all Letta Code agents. */\nexport const LETTA_CODE_AGENT_TYPE = \"letta_v1_agent\";\n\n/**\n * Server-side tools attached to created agents. Client-side tools (Read,\n * Write, Bash, etc.) are passed via client_tools at runtime instead.\n */\nexport const DEFAULT_CREATED_AGENT_BASE_TOOLS = [\"web_search\", \"fetch_webpage\"];\n\nexport type CreateAgentMemoryBlock = CreateBlock;\n\nexport interface BuildCreateAgentRequestOptions {\n personalityId?: PersonalityId;\n name?: string;\n description?: string;\n /** Model ID or handle. Personality default, then catalog default, applies. */\n model?: string;\n /** Complete prompt override. Otherwise the standard prompt for prompt mode. */\n system?: string;\n memoryPromptMode?: MemoryPromptMode;\n /**\n * Caller-defined identity. With a personality, matching labels replace its\n * blocks and new labels append after the personality blocks.\n */\n memoryBlocks?: CreateAgentMemoryBlock[];\n blockIds?: string[];\n /** Extra tags appended after canonical Letta Code and personality tags. */\n extraTags?: string[];\n enableMemfs?: boolean;\n isSubagent?: boolean;\n /** Exact server-side tools. Omission uses the Letta Code web-tool defaults. */\n baseTools?: string[];\n embedding?: string;\n hidden?: boolean;\n parallelToolCalls?: boolean;\n compactionModel?: string;\n}\n\nexport interface CreateAgentRequest {\n agent_type: typeof LETTA_CODE_AGENT_TYPE;\n name?: string;\n description?: string;\n model: string;\n system: string;\n memory_blocks?: CreateAgentMemoryBlock[];\n block_ids?: string[];\n tags: string[];\n tools: string[];\n include_base_tools: false;\n include_base_tool_rules: false;\n initial_message_sequence: never[];\n parallel_tool_calls: boolean;\n compaction_settings: { model: string };\n embedding?: string;\n hidden?: boolean;\n}\n\nexport type CreateAgentRequestForPersonality = CreateAgentRequest & {\n name: string;\n description: string;\n memory_blocks: PersonalityMemoryBlock[];\n profile_picture?: {\n content: string;\n };\n};\n\nfunction mergeMemoryBlocks(\n base: CreateAgentMemoryBlock[],\n overrides: CreateAgentMemoryBlock[] | undefined,\n): CreateAgentMemoryBlock[] {\n const blocks = base.map((block) => ({ ...block }));\n for (const override of overrides ?? []) {\n const index = blocks.findIndex((block) => block.label === override.label);\n if (index >= 0) {\n blocks[index] = { ...override };\n } else {\n blocks.push({ ...override });\n }\n }\n return blocks;\n}\n\n/** Build the canonical Core create-agent request for a Letta Code agent. */\nexport async function buildCreateAgentRequest(\n options: BuildCreateAgentRequestOptions = {},\n): Promise<CreateAgentRequest> {\n const personality = options.personalityId\n ? getPersonalityOption(options.personalityId)\n : undefined;\n const modelIdentifier = options.model ?? personality?.defaultModel;\n const modelHandle = modelIdentifier\n ? resolveModel(modelIdentifier)\n : getDefaultModel();\n if (!modelHandle) {\n throw new Error(`Unknown model: ${modelIdentifier}`);\n }\n\n if (\n !options.isSubagent &&\n options.enableMemfs !== undefined &&\n options.memoryPromptMode !== undefined &&\n options.enableMemfs !== (options.memoryPromptMode !== \"standard\")\n ) {\n throw new Error(\n \"enableMemfs and memoryPromptMode must describe the same memory mode\",\n );\n }\n const enableMemfs = options.isSubagent\n ? false\n : (options.enableMemfs ?? options.memoryPromptMode !== \"standard\");\n const memoryPromptMode = options.isSubagent\n ? \"standard\"\n : (options.memoryPromptMode ?? (enableMemfs ? \"memfs\" : \"standard\"));\n const personalityTags = options.personalityId\n ? getPersonalityCreationTags(options.personalityId)\n : [];\n const personalityBlocks = options.personalityId\n ? buildPersonalityMemoryBlocks(\n options.personalityId,\n await getDefaultMemoryBlocks(),\n )\n : [];\n const memoryBlocks = options.isSubagent\n ? undefined\n : options.personalityId || options.memoryBlocks !== undefined\n ? mergeMemoryBlocks(personalityBlocks, options.memoryBlocks)\n : undefined;\n const blockIds = options.isSubagent ? undefined : options.blockIds;\n\n return {\n agent_type: LETTA_CODE_AGENT_TYPE,\n ...(options.name !== undefined || personality\n ? { name: options.name ?? personality?.label }\n : {}),\n ...(options.description !== undefined || personality\n ? { description: options.description ?? personality?.description }\n : {}),\n model: modelHandle,\n system: options.system ?? buildSystemPrompt(\"default\", memoryPromptMode),\n ...(memoryBlocks !== undefined ? { memory_blocks: memoryBlocks } : {}),\n ...(blockIds && blockIds.length > 0 ? { block_ids: blockIds } : {}),\n tags: buildCreatedAgentTags({\n enableMemfs,\n isSubagent: options.isSubagent,\n tags: [...personalityTags, ...(options.extraTags ?? [])],\n }),\n tools: [...(options.baseTools ?? DEFAULT_CREATED_AGENT_BASE_TOOLS)],\n include_base_tools: false,\n include_base_tool_rules: false,\n initial_message_sequence: [],\n parallel_tool_calls: options.parallelToolCalls ?? true,\n compaction_settings: {\n model: options.compactionModel ?? DEFAULT_SUMMARIZATION_MODEL,\n },\n ...(options.embedding !== undefined\n ? { embedding: options.embedding }\n : {}),\n ...(options.isSubagent\n ? { hidden: true }\n : options.hidden !== undefined\n ? { hidden: options.hidden }\n : {}),\n };\n}\n\n/** Compatibility wrapper for callers that create a personality agent. */\nexport async function buildCreateAgentRequestForPersonality(params: {\n personalityId: PersonalityId;\n name?: string;\n description?: string;\n model?: string;\n extraTags?: string[];\n}): Promise<CreateAgentRequestForPersonality> {\n const request = (await buildCreateAgentRequest(\n params,\n )) as CreateAgentRequestForPersonality;\n const profilePicture = getPersonalityDefaultMemoryFiles(\n params.personalityId,\n ).find((file) => file.path === \"profile.png\");\n if (!profilePicture) {\n return request;\n }\n const { getPersonalityAssetBase64 } = await import(\n \"./personality-asset-content\"\n );\n return {\n ...request,\n profile_picture: {\n content: await getPersonalityAssetBase64(profilePicture.assetId),\n },\n };\n}\n"
13
13
  ],
14
- "mappings": ";AAQO,IAAM,wBAAwB;AAG9B,IAAM,wBAAwB;AAG9B,IAAM,0BAA0B;AAGhC,IAAM,yBAAyB;AAQ/B,SAAS,qBAAqB,CACnC,UAAwC,CAAC,GAC/B;AAAA,EACV,MAAM,OAAO,CAAC,qBAAqB;AAAA,EACnC,IAAI,QAAQ,YAAY;AAAA,IACtB,KAAK,KAAK,uBAAuB;AAAA,EACnC;AAAA,EACA,IAAI,QAAQ,aAAa;AAAA,IACvB,KAAK,KAAK,sBAAsB;AAAA,EAClC;AAAA,EACA,IAAI,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAAA,IAC/C,KAAK,KAAK,GAAG,QAAQ,IAAI;AAAA,EAC3B;AAAA,EACA,OAAO,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC;AAAA;;AC1B1B,IAAM,8BAA8B;AA2BpC,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB,IAAI;AACjC,IAAM,wBAAwB,KAAK;AAEnC,IAAM,mBAAmB;AACzB,IAAM,oBAAoB,IAAI;AAC9B,IAAM,qBAAqB,KAAK;AAoBhC,IAAM,+BAA+B,KAAK;;;ACjE1C,IAAM,yBAAyB,CAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqCnD,IAAM,iBAAyC;AAAA,EACpD,eAAe;AAAA,EA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",
15
- "debugId": "06F6E8E49135EA6464756E2164756E21",
14
+ "mappings": ";;;;;AAQO,IAAM,wBAAwB;AAG9B,IAAM,wBAAwB;AAG9B,IAAM,0BAA0B;AAGhC,IAAM,yBAAyB;AAQ/B,SAAS,qBAAqB,CACnC,UAAwC,CAAC,GAC/B;AAAA,EACV,MAAM,OAAO,CAAC,qBAAqB;AAAA,EACnC,IAAI,QAAQ,YAAY;AAAA,IACtB,KAAK,KAAK,uBAAuB;AAAA,EACnC;AAAA,EACA,IAAI,QAAQ,aAAa;AAAA,IACvB,KAAK,KAAK,sBAAsB;AAAA,EAClC;AAAA,EACA,IAAI,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAAA,IAC/C,KAAK,KAAK,GAAG,QAAQ,IAAI;AAAA,EAC3B;AAAA,EACA,OAAO,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC;AAAA;;AC1B1B,IAAM,8BAA8B;AA2BpC,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB,IAAI;AACjC,IAAM,wBAAwB,KAAK;AAEnC,IAAM,mBAAmB;AACzB,IAAM,oBAAoB,IAAI;AAC9B,IAAM,qBAAqB,KAAK;AAoBhC,IAAM,+BAA+B,KAAK;;;ACjE1C,IAAM,yBAAyB,CAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqCnD,IAAM,iBAAyC;AAAA,EACpD,eAAe;AAA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",
15
+ "debugId": "3902D7508C4B157264756E2164756E21",
16
16
  "names": []
17
17
  }
@@ -1904,6 +1904,18 @@ function createChannelTurnProgressBuilder(options = {}) {
1904
1904
  }
1905
1905
  return { buildUpdates };
1906
1906
  }
1907
+ // src/channels/route-thread-key.ts
1908
+ var CHANNEL_ROOT_THREAD_KEY = "__root__";
1909
+ function resolveChannelRouteThreadKey(threadId) {
1910
+ const trimmed = threadId?.trim();
1911
+ return trimmed && trimmed.length > 0 ? trimmed : CHANNEL_ROOT_THREAD_KEY;
1912
+ }
1913
+ function channelRouteThreadIdFromKey(threadKey) {
1914
+ const trimmed = threadKey?.trim();
1915
+ if (!trimmed || trimmed === CHANNEL_ROOT_THREAD_KEY)
1916
+ return null;
1917
+ return trimmed;
1918
+ }
1907
1919
  export {
1908
1920
  sanitizeChannelLifecycleErrorText,
1909
1921
  runChannelReloadCommand,
@@ -1911,6 +1923,7 @@ export {
1911
1923
  runChannelModelUpdateCommand,
1912
1924
  runChannelModelListCommand,
1913
1925
  runChannelCancelCommand,
1926
+ resolveChannelRouteThreadKey,
1914
1927
  parseChannelSlashCommand,
1915
1928
  parseChannelModelCommand,
1916
1929
  parseChannelBangCommand,
@@ -1925,6 +1938,7 @@ export {
1925
1938
  defaultChannelDisplayName,
1926
1939
  createChannelTurnProgressBuilder,
1927
1940
  collectLettaSseAssistantText,
1941
+ channelRouteThreadIdFromKey,
1928
1942
  buildUnsupportedChannelCommandMessage,
1929
1943
  buildOutboundChannelMessageFromTurnSource,
1930
1944
  buildChannelTurnSource,
@@ -1941,7 +1955,8 @@ export {
1941
1955
  LettaStreamNoAssistantMessageError,
1942
1956
  LettaStreamCoreError,
1943
1957
  LETTA_STREAM_NO_ASSISTANT_MESSAGE_ERROR,
1958
+ CHANNEL_ROOT_THREAD_KEY,
1944
1959
  CHANNEL_LIFECYCLE_FALLBACK_ERROR_MESSAGE
1945
1960
  };
1946
1961
 
1947
- //# debugId=2F3AF69F97CABB6D64756E2164756E21
1962
+ //# debugId=DAE75575BAE4068264756E2164756E21