lettactl 0.9.14 → 0.9.16

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 (142) hide show
  1. package/README.md +84 -6
  2. package/dist/commands/apply/apply.d.ts.map +1 -1
  3. package/dist/commands/apply/apply.js +128 -26
  4. package/dist/commands/apply/apply.js.map +1 -1
  5. package/dist/commands/apply/template.d.ts +1 -0
  6. package/dist/commands/apply/template.d.ts.map +1 -1
  7. package/dist/commands/apply/template.js +15 -2
  8. package/dist/commands/apply/template.js.map +1 -1
  9. package/dist/commands/apply/types.d.ts +1 -0
  10. package/dist/commands/apply/types.d.ts.map +1 -1
  11. package/dist/commands/cleanup/archives.d.ts +4 -0
  12. package/dist/commands/cleanup/archives.d.ts.map +1 -0
  13. package/dist/commands/cleanup/archives.js +51 -0
  14. package/dist/commands/cleanup/archives.js.map +1 -0
  15. package/dist/commands/cleanup/cleanup.d.ts.map +1 -1
  16. package/dist/commands/cleanup/cleanup.js +5 -0
  17. package/dist/commands/cleanup/cleanup.js.map +1 -1
  18. package/dist/commands/cleanup/types.d.ts.map +1 -1
  19. package/dist/commands/cleanup/types.js +1 -1
  20. package/dist/commands/cleanup/types.js.map +1 -1
  21. package/dist/commands/completion/completion.d.ts.map +1 -1
  22. package/dist/commands/completion/completion.js +7 -5
  23. package/dist/commands/completion/completion.js.map +1 -1
  24. package/dist/commands/create/create.d.ts.map +1 -1
  25. package/dist/commands/create/create.js +3 -2
  26. package/dist/commands/create/create.js.map +1 -1
  27. package/dist/commands/describe/agent.d.ts.map +1 -1
  28. package/dist/commands/describe/agent.js +8 -0
  29. package/dist/commands/describe/agent.js.map +1 -1
  30. package/dist/commands/describe/archive.d.ts +5 -0
  31. package/dist/commands/describe/archive.d.ts.map +1 -0
  32. package/dist/commands/describe/archive.js +42 -0
  33. package/dist/commands/describe/archive.js.map +1 -0
  34. package/dist/commands/describe/index.d.ts.map +1 -1
  35. package/dist/commands/describe/index.js +4 -0
  36. package/dist/commands/describe/index.js.map +1 -1
  37. package/dist/commands/describe/types.d.ts.map +1 -1
  38. package/dist/commands/describe/types.js +1 -1
  39. package/dist/commands/describe/types.js.map +1 -1
  40. package/dist/commands/get/archives.d.ts +5 -0
  41. package/dist/commands/get/archives.d.ts.map +1 -0
  42. package/dist/commands/get/archives.js +58 -0
  43. package/dist/commands/get/archives.js.map +1 -0
  44. package/dist/commands/get/index.d.ts.map +1 -1
  45. package/dist/commands/get/index.js +4 -0
  46. package/dist/commands/get/index.js.map +1 -1
  47. package/dist/commands/get/types.d.ts.map +1 -1
  48. package/dist/commands/get/types.js +1 -1
  49. package/dist/commands/get/types.js.map +1 -1
  50. package/dist/index.js +6 -5
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/agent-manager.d.ts +18 -0
  53. package/dist/lib/agent-manager.d.ts.map +1 -1
  54. package/dist/lib/agent-manager.js +21 -5
  55. package/dist/lib/agent-manager.js.map +1 -1
  56. package/dist/lib/agent-manifest.d.ts +55 -0
  57. package/dist/lib/agent-manifest.d.ts.map +1 -0
  58. package/dist/lib/agent-manifest.js +210 -0
  59. package/dist/lib/agent-manifest.js.map +1 -0
  60. package/dist/lib/agent-resolver.d.ts.map +1 -1
  61. package/dist/lib/agent-resolver.js +9 -0
  62. package/dist/lib/agent-resolver.js.map +1 -1
  63. package/dist/lib/apply-helpers.d.ts +7 -1
  64. package/dist/lib/apply-helpers.d.ts.map +1 -1
  65. package/dist/lib/apply-helpers.js +51 -7
  66. package/dist/lib/apply-helpers.js.map +1 -1
  67. package/dist/lib/archive-manager.d.ts +23 -0
  68. package/dist/lib/archive-manager.d.ts.map +1 -0
  69. package/dist/lib/archive-manager.js +58 -0
  70. package/dist/lib/archive-manager.js.map +1 -0
  71. package/dist/lib/block-manager.d.ts.map +1 -1
  72. package/dist/lib/block-manager.js +6 -1
  73. package/dist/lib/block-manager.js.map +1 -1
  74. package/dist/lib/config-validators.d.ts +14 -0
  75. package/dist/lib/config-validators.d.ts.map +1 -1
  76. package/dist/lib/config-validators.js +96 -3
  77. package/dist/lib/config-validators.js.map +1 -1
  78. package/dist/lib/constants.d.ts +5 -0
  79. package/dist/lib/constants.d.ts.map +1 -0
  80. package/dist/lib/constants.js +9 -0
  81. package/dist/lib/constants.js.map +1 -0
  82. package/dist/lib/diff-analyzers.d.ts +8 -1
  83. package/dist/lib/diff-analyzers.d.ts.map +1 -1
  84. package/dist/lib/diff-analyzers.js +62 -0
  85. package/dist/lib/diff-analyzers.js.map +1 -1
  86. package/dist/lib/diff-applier.d.ts.map +1 -1
  87. package/dist/lib/diff-applier.js +26 -0
  88. package/dist/lib/diff-applier.js.map +1 -1
  89. package/dist/lib/diff-engine.d.ts +12 -2
  90. package/dist/lib/diff-engine.d.ts.map +1 -1
  91. package/dist/lib/diff-engine.js +39 -4
  92. package/dist/lib/diff-engine.js.map +1 -1
  93. package/dist/lib/dry-run.d.ts +2 -0
  94. package/dist/lib/dry-run.d.ts.map +1 -1
  95. package/dist/lib/dry-run.js +33 -0
  96. package/dist/lib/dry-run.js.map +1 -1
  97. package/dist/lib/file-content-tracker.d.ts.map +1 -1
  98. package/dist/lib/file-content-tracker.js +5 -0
  99. package/dist/lib/file-content-tracker.js.map +1 -1
  100. package/dist/lib/fleet-parser.d.ts +1 -0
  101. package/dist/lib/fleet-parser.d.ts.map +1 -1
  102. package/dist/lib/fleet-parser.js +42 -6
  103. package/dist/lib/fleet-parser.js.map +1 -1
  104. package/dist/lib/letta-client.d.ts +12 -0
  105. package/dist/lib/letta-client.d.ts.map +1 -1
  106. package/dist/lib/letta-client.js +35 -0
  107. package/dist/lib/letta-client.js.map +1 -1
  108. package/dist/lib/mcp-tools.d.ts +4 -0
  109. package/dist/lib/mcp-tools.d.ts.map +1 -0
  110. package/dist/lib/mcp-tools.js +84 -0
  111. package/dist/lib/mcp-tools.js.map +1 -0
  112. package/dist/lib/resource-classifier.d.ts +4 -0
  113. package/dist/lib/resource-classifier.d.ts.map +1 -1
  114. package/dist/lib/resource-classifier.js +18 -0
  115. package/dist/lib/resource-classifier.js.map +1 -1
  116. package/dist/lib/resource-usage.d.ts +2 -2
  117. package/dist/lib/resource-usage.d.ts.map +1 -1
  118. package/dist/lib/resource-usage.js +3 -0
  119. package/dist/lib/resource-usage.js.map +1 -1
  120. package/dist/lib/ux/display/details.d.ts +19 -0
  121. package/dist/lib/ux/display/details.d.ts.map +1 -1
  122. package/dist/lib/ux/display/details.js +69 -0
  123. package/dist/lib/ux/display/details.js.map +1 -1
  124. package/dist/lib/ux/display/index.d.ts +2 -2
  125. package/dist/lib/ux/display/index.d.ts.map +1 -1
  126. package/dist/lib/ux/display/index.js +3 -1
  127. package/dist/lib/ux/display/index.js.map +1 -1
  128. package/dist/lib/ux/display/resources.d.ts +7 -0
  129. package/dist/lib/ux/display/resources.d.ts.map +1 -1
  130. package/dist/lib/ux/display/resources.js +48 -0
  131. package/dist/lib/ux/display/resources.js.map +1 -1
  132. package/dist/lib/ux/output-formatter.d.ts +5 -0
  133. package/dist/lib/ux/output-formatter.d.ts.map +1 -1
  134. package/dist/lib/ux/output-formatter.js +29 -0
  135. package/dist/lib/ux/output-formatter.js.map +1 -1
  136. package/dist/types/agent.d.ts +1 -0
  137. package/dist/types/agent.d.ts.map +1 -1
  138. package/dist/types/diff.d.ts +22 -0
  139. package/dist/types/diff.d.ts.map +1 -1
  140. package/dist/types/fleet-config.d.ts +15 -0
  141. package/dist/types/fleet-config.d.ts.map +1 -1
  142. package/package.json +3 -3
package/README.md CHANGED
@@ -95,7 +95,7 @@ agents:
95
95
  - name: documents
96
96
  files:
97
97
  - "files/*" # Auto-discover all files in files/
98
- embedding: "letta/letta-free"
98
+ embedding: "openai/text-embedding-3-small"
99
99
 
100
100
  # 2. Cloud-powered agent using Supabase storage
101
101
  - name: cloud-assistant
@@ -118,7 +118,7 @@ agents:
118
118
  provider: supabase
119
119
  bucket: test-bucket
120
120
  path: knowledge/example.md
121
- embedding: "letta/letta-free"
121
+ embedding: "openai/text-embedding-3-small"
122
122
  ```
123
123
 
124
124
  Deploy the entire fleet:
@@ -139,6 +139,8 @@ lettactl apply -f agents.yml --dry-run # See what would change
139
139
  lettactl apply -f agents.yml --root . # Specify root directory for file resolution
140
140
  lettactl apply -f agents.yml -v # Verbose output
141
141
  lettactl apply -f agents.yml -q # Quiet mode (for CI pipelines)
142
+ lettactl apply -f agents.yml --manifest # Generate manifest with all resource IDs
143
+ lettactl apply -f agents.yml --manifest output.json # Custom manifest path
142
144
 
143
145
  # Template mode: apply config to existing agents matching a glob pattern
144
146
  lettactl apply -f template.yaml --match "*-assistant" # All agents ending in -assistant
@@ -149,6 +151,13 @@ lettactl apply -f template.yaml --match "*" --dry-run # Preview changes to all
149
151
  **Template Mode (`--match`):**
150
152
  Apply a template configuration to multiple existing agents at once. Uses merge semantics - adds/updates tools, blocks, and prompts without removing existing resources. Perfect for propagating tool updates or shared config changes across agent fleets.
151
153
 
154
+ **Agent Manifests (`--manifest`):**
155
+ Generate a JSON manifest with all resolved resource IDs after deployment. Useful for CI/CD pipelines that need to track what was deployed:
156
+ ```bash
157
+ lettactl apply -f agents.yml --manifest
158
+ # Generates agents.manifest.json with agent IDs, tool IDs, block IDs, etc.
159
+ ```
160
+
152
161
  ### Create Agents
153
162
  ```bash
154
163
  # Create basic agent
@@ -160,7 +169,7 @@ lettactl create agent advanced-agent \
160
169
  --model "google_ai/gemini-2.5-pro" \
161
170
  --system "You are an expert assistant." \
162
171
  --context-window 32000 \
163
- --embedding "letta/letta-free" \
172
+ --embedding "openai/text-embedding-3-small" \
164
173
  --tags "production,assistant"
165
174
  ```
166
175
 
@@ -246,6 +255,7 @@ lettactl delete-all agents --pattern "PROD.*" --force # Matches "prod-agent-1"
246
255
 
247
256
  **What gets deleted:**
248
257
  - Agent-specific memory blocks
258
+ - Agent archival memory archives
249
259
  - Agent-specific folders (if not shared)
250
260
  - Associated conversation history
251
261
 
@@ -264,17 +274,20 @@ lettactl delete-all agents --pattern "PROD.*" --force # Matches "prod-agent-1"
264
274
  # Preview orphaned resources (dry-run by default)
265
275
  lettactl cleanup blocks # Find orphaned blocks
266
276
  lettactl cleanup folders # Find orphaned folders (and their files)
277
+ lettactl cleanup archives # Find orphaned archives
267
278
  lettactl cleanup all # Find all orphaned resources
268
279
 
269
280
  # Actually delete orphaned resources
270
281
  lettactl cleanup blocks --force # Delete orphaned blocks
271
282
  lettactl cleanup folders --force # Delete orphaned folders (cascades to files)
283
+ lettactl cleanup archives --force # Delete orphaned archives (and their passages)
272
284
  lettactl cleanup all --force # Delete all orphaned resources
273
285
  ```
274
286
 
275
287
  **What gets cleaned up:**
276
288
  - **Orphaned blocks**: Memory blocks attached to 0 agents
277
289
  - **Orphaned folders**: Folders attached to 0 agents (files inside are also deleted)
290
+ - **Orphaned archives**: Archives attached to 0 agents
278
291
 
279
292
  **Safety Features:**
280
293
  - Dry-run by default - shows what would be deleted
@@ -282,11 +295,33 @@ lettactl cleanup all --force # Delete all orphaned resources
282
295
  - Shows file counts for orphaned folders
283
296
  - Uses API's native orphan detection for efficiency
284
297
 
298
+ ### Archival Memory (Archives)
299
+ Archives are the archival memory stores attached to agents.
300
+
301
+ **Key points:**
302
+ - Archives are **per-agent** and **one per agent** (validated).
303
+ - `apply` will create and attach the archive if it does not exist.
304
+ - Removing an archive from config only detaches it when `--force` is used.
305
+ - Passages are managed by the agent/tools (`archival_memory_insert/search`), not by lettactl.
306
+ - Export/import includes archives and passages via Letta server export/import.
307
+
308
+ **Example:**
309
+ ```yaml
310
+ agents:
311
+ - name: my-agent
312
+ archives:
313
+ - name: my-archive
314
+ description: "Long-term knowledge base"
315
+ embedding: "openai/text-embedding-3-small"
316
+ # embedding_config: {} # Optional provider-specific config
317
+ ```
318
+
285
319
  ### View Resources
286
320
  ```bash
287
321
  # List resources
288
322
  lettactl get agents # List all agents
289
323
  lettactl get blocks # List all memory blocks
324
+ lettactl get archives # List all archives (archival memory stores)
290
325
  lettactl get tools # List all tools
291
326
  lettactl get folders # List all folders (with file counts)
292
327
  lettactl get files # List all files (deduplicated by name)
@@ -303,6 +338,7 @@ lettactl get files -o wide # Shows every file instance per folder
303
338
 
304
339
  # Scoped to specific agent
305
340
  lettactl get blocks -a my-agent # Blocks attached to my-agent
341
+ lettactl get archives -a my-agent # Archives attached to my-agent
306
342
  lettactl get tools -a my-agent # Tools attached to my-agent
307
343
  lettactl get folders -a my-agent # Folders attached to my-agent
308
344
  lettactl get files -a my-agent # Files accessible to my-agent
@@ -310,6 +346,7 @@ lettactl get files -a my-agent # Files accessible to my-agent
310
346
  # Fleet analysis
311
347
  lettactl get tools --shared # Tools used by 2+ agents
312
348
  lettactl get blocks --orphaned # Blocks not attached to any agent
349
+ lettactl get archives --orphaned # Archives not attached to any agent
313
350
  lettactl get folders --shared # Shared folders with agent counts
314
351
  lettactl get files --shared # Files in folders used by 2+ agents
315
352
  lettactl get files --orphaned # Files in folders not used by any agent
@@ -317,6 +354,7 @@ lettactl get files --orphaned # Files in folders not used by any agent
317
354
  # Detailed resource info
318
355
  lettactl describe agent my-agent # Agent details + blocks/tools/folders/messages/archival
319
356
  lettactl describe block persona # Block details + attached agents + value preview
357
+ lettactl describe archive kb-store # Archive details + attached agents
320
358
  lettactl describe tool my-tool # Tool details + attached agents + source code
321
359
  lettactl describe folder docs # Folder details + files + attached agents
322
360
  lettactl describe file report.pdf # File details + which folders contain it
@@ -373,6 +411,29 @@ lettactl delete mcp-servers my-server --force
373
411
 
374
412
  MCP servers are created/updated automatically during `lettactl apply` when defined in your configuration.
375
413
 
414
+ **Using MCP Tools in Agents:**
415
+
416
+ Once MCP servers are defined, reference their tools in agent configs using `mcp_tools`:
417
+
418
+ ```yaml
419
+ mcp_servers:
420
+ - name: filesystem
421
+ type: stdio
422
+ command: npx
423
+ args: ["-y", "@anthropic/mcp-filesystem"]
424
+
425
+ agents:
426
+ - name: file-agent
427
+ mcp_tools:
428
+ - server: filesystem
429
+ tools: all # Include all tools from the server
430
+ # Or pick specific tools:
431
+ # - server: filesystem
432
+ # tools: [read_file, write_file]
433
+ ```
434
+
435
+ The tools are expanded and attached to the agent during apply.
436
+
376
437
  ---
377
438
 
378
439
  # SDK Usage
@@ -438,7 +499,7 @@ agents:
438
499
  value: "You are an assistant for user ${userId}."
439
500
  shared_blocks: # Use shared memory blocks
440
501
  - shared-guidelines
441
- embedding: "letta/letta-free"
502
+ embedding: "openai/text-embedding-3-small"
442
503
  `;
443
504
 
444
505
  // Deploy directly from YAML string (no file I/O needed)
@@ -745,7 +806,8 @@ lettactl apply -f agents.yml
745
806
  agents:
746
807
  - name: agent-name # Required: unique identifier
747
808
  description: "What this agent does" # Required: human description
748
-
809
+ reasoning: true # Optional: enable reasoning (default: true)
810
+
749
811
  # LLM configuration (required, should be first)
750
812
  llm_config:
751
813
  model: "google_ai/gemini-2.5-pro" # Required
@@ -763,6 +825,15 @@ agents:
763
825
  - archival_memory_search
764
826
  - tools/* # Auto-discover from tools/ folder
765
827
  - custom_tool_name # Specific custom tools
828
+
829
+ # MCP tools (optional) - reference tools from MCP servers
830
+ mcp_tools:
831
+ - server: my-mcp-server # MCP server name (defined in mcp_servers)
832
+ tools: all # Include all tools from server
833
+ - server: another-server
834
+ tools: # Or specify individual tools
835
+ - specific_tool_1
836
+ - specific_tool_2
766
837
 
767
838
  # Shared blocks (optional)
768
839
  shared_blocks:
@@ -777,6 +848,13 @@ agents:
777
848
  mutable: true # Optional: if false, value syncs from YAML on every apply
778
849
  value: "Direct content" # Option 1: inline
779
850
  from_file: "blocks/file.md" # Option 2: from file
851
+
852
+ # Archives (archival memory store) (optional)
853
+ archives:
854
+ # Note: only one archive is supported per agent
855
+ - name: knowledge-archive
856
+ description: "Long-term knowledge base"
857
+ embedding: "letta/letta-free"
780
858
 
781
859
  # File attachments (optional)
782
860
  folders:
@@ -785,7 +863,7 @@ agents:
785
863
  - "files/*" # Auto-discover files
786
864
  - "files/specific-file.pdf" # Specific files
787
865
 
788
- embedding: "letta/letta-free" # Optional: embedding model
866
+ embedding: "openai/text-embedding-3-small" # Optional: embedding model
789
867
  ```
790
868
 
791
869
  ### Shared Blocks Schema
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/apply/apply.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,iBA4RrE"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/commands/apply/apply.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,iBA6VrE"}
@@ -1,9 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.applyCommand = applyCommand;
4
37
  const fleet_parser_1 = require("../../lib/fleet-parser");
5
38
  const letta_client_1 = require("../../lib/letta-client");
6
39
  const block_manager_1 = require("../../lib/block-manager");
40
+ const archive_manager_1 = require("../../lib/archive-manager");
7
41
  const agent_manager_1 = require("../../lib/agent-manager");
8
42
  const diff_engine_1 = require("../../lib/diff-engine");
9
43
  const file_content_tracker_1 = require("../../lib/file-content-tracker");
@@ -16,6 +50,9 @@ const dry_run_1 = require("../../lib/dry-run");
16
50
  const logger_1 = require("../../lib/logger");
17
51
  const builtin_tools_1 = require("../../lib/builtin-tools");
18
52
  const display_1 = require("../../lib/ux/display");
53
+ const mcp_tools_1 = require("../../lib/mcp-tools");
54
+ const agent_manifest_1 = require("../../lib/agent-manifest");
55
+ const path = __importStar(require("path"));
19
56
  async function applyCommand(options, command) {
20
57
  // Quiet mode overrides verbose
21
58
  const verbose = (0, logger_1.isQuietMode)() ? false : (command.parent?.opts().verbose || false);
@@ -49,13 +86,16 @@ async function applyCommand(options, command) {
49
86
  // Validate embedding configuration for self-hosted environments
50
87
  const isSelfHosted = !process.env.LETTA_BASE_URL?.includes('letta.com');
51
88
  if (isSelfHosted) {
52
- const agentsWithoutEmbedding = config.agents.filter((agent) => !agent.embedding);
89
+ const agentsWithoutEmbedding = config.agents.filter((agent) => !agent.embedding && !agent.embedding_config);
53
90
  if (agentsWithoutEmbedding.length > 0) {
54
91
  const names = agentsWithoutEmbedding.map((a) => a.name).join(', ');
55
92
  throw new Error(`Self-hosted Letta requires explicit embedding configuration.\n` +
56
93
  `Agents missing embedding: ${names}\n\n` +
57
- `Add an embedding field to each agent:\n` +
58
- ` embedding: "openai/text-embedding-3-small"\n\n` +
94
+ `Add an embedding or embedding_config field to each agent:\n` +
95
+ ` embedding: "openai/text-embedding-3-small"\n` +
96
+ ` # OR\n` +
97
+ ` embedding_config:\n` +
98
+ ` embedding_model: "nomic-embed-text:latest"\n\n` +
59
99
  `Common embedding providers:\n` +
60
100
  ` - openai/text-embedding-3-small\n` +
61
101
  ` - openai/text-embedding-3-large\n` +
@@ -72,13 +112,17 @@ async function applyCommand(options, command) {
72
112
  const client = new letta_client_1.LettaClientWrapper();
73
113
  const blockManager = new block_manager_1.BlockManager(client);
74
114
  const agentManager = new agent_manager_1.AgentManager(client);
75
- const diffEngine = new diff_engine_1.DiffEngine(client, blockManager, parser.basePath);
115
+ const archiveManager = new archive_manager_1.ArchiveManager(client);
116
+ const diffEngine = new diff_engine_1.DiffEngine(client, blockManager, archiveManager, parser.basePath);
76
117
  const fileTracker = new file_content_tracker_1.FileContentTracker(parser.basePath, parser.storageBackend);
77
118
  // Load existing resources
78
119
  const loadSpinner = (0, spinner_1.createSpinner)('Loading existing resources...', spinnerEnabled).start();
79
120
  if (verbose)
80
121
  (0, logger_1.log)('Loading existing blocks...');
81
122
  await blockManager.loadExistingBlocks();
123
+ if (verbose)
124
+ (0, logger_1.log)('Loading existing archives...');
125
+ await archiveManager.loadExistingArchives();
82
126
  if (verbose)
83
127
  (0, logger_1.log)('Loading existing agents...');
84
128
  await agentManager.loadExistingAgents();
@@ -88,6 +132,7 @@ async function applyCommand(options, command) {
88
132
  const results = await (0, dry_run_1.computeDryRunDiffs)(config, {
89
133
  client,
90
134
  blockManager,
135
+ archiveManager,
91
136
  agentManager,
92
137
  diffEngine,
93
138
  fileTracker,
@@ -102,28 +147,8 @@ async function applyCommand(options, command) {
102
147
  const blockSpinner = (0, spinner_1.createSpinner)('Processing shared blocks...', spinnerEnabled).start();
103
148
  const sharedBlockIds = await (0, apply_helpers_1.processSharedBlocks)(config, blockManager, verbose);
104
149
  blockSpinner.succeed(`Processed ${sharedBlockIds.size} shared blocks`);
105
- // Generate tool source hashes and register tools
106
- const allToolNames = new Set();
107
- for (const agent of config.agents) {
108
- for (const toolName of agent.tools || []) {
109
- allToolNames.add(toolName);
110
- }
111
- // Include file search tools for agents with folders
112
- if ((agent.folders || []).length > 0) {
113
- for (const fileTool of builtin_tools_1.FILE_SEARCH_TOOLS) {
114
- allToolNames.add(fileTool);
115
- }
116
- }
117
- }
118
- const globalToolSourceHashes = fileTracker.generateToolSourceHashes(Array.from(allToolNames), parser.toolConfigs);
119
- const toolSpinner = (0, spinner_1.createSpinner)('Registering tools...', spinnerEnabled).start();
120
- if (verbose)
121
- (0, logger_1.log)('Registering tools...');
122
- const { toolNameToId, updatedTools, builtinTools } = await parser.registerRequiredTools(config, client, verbose, globalToolSourceHashes);
123
- const builtinCount = builtinTools.size;
124
- const customCount = toolNameToId.size - builtinCount;
125
- toolSpinner.succeed(`Registered ${customCount} custom, ${builtinCount} builtin tools`);
126
150
  // Register MCP servers
151
+ let mcpServerNameToId = new Map();
127
152
  if (config.mcp_servers && config.mcp_servers.length > 0) {
128
153
  const mcpSpinner = (0, spinner_1.createSpinner)('Registering MCP servers...', spinnerEnabled).start();
129
154
  if (verbose)
@@ -144,6 +169,29 @@ async function applyCommand(options, command) {
144
169
  (0, logger_1.warn)(`MCP servers failed: ${mcpResult.failed.join(', ')}`);
145
170
  }
146
171
  }
172
+ mcpServerNameToId = await (0, mcp_tools_1.buildMcpServerRegistry)(client);
173
+ await (0, mcp_tools_1.expandMcpToolsForAgents)(config, client, mcpServerNameToId, verbose);
174
+ // Generate tool source hashes and register tools
175
+ const allToolNames = new Set();
176
+ for (const agent of config.agents) {
177
+ for (const toolName of agent.tools || []) {
178
+ allToolNames.add(toolName);
179
+ }
180
+ // Include file search tools for agents with folders
181
+ if ((agent.folders || []).length > 0) {
182
+ for (const fileTool of builtin_tools_1.FILE_SEARCH_TOOLS) {
183
+ allToolNames.add(fileTool);
184
+ }
185
+ }
186
+ }
187
+ const globalToolSourceHashes = fileTracker.generateToolSourceHashes(Array.from(allToolNames), parser.toolConfigs);
188
+ const toolSpinner = (0, spinner_1.createSpinner)('Registering tools...', spinnerEnabled).start();
189
+ if (verbose)
190
+ (0, logger_1.log)('Registering tools...');
191
+ const { toolNameToId, updatedTools, builtinTools } = await parser.registerRequiredTools(config, client, verbose, globalToolSourceHashes);
192
+ const builtinCount = builtinTools.size;
193
+ const customCount = toolNameToId.size - builtinCount;
194
+ toolSpinner.succeed(`Registered ${customCount} custom, ${builtinCount} builtin tools`);
147
195
  // Process folders
148
196
  const folderSpinner = (0, spinner_1.createSpinner)('Processing folders...', spinnerEnabled).start();
149
197
  const createdFolders = await (0, apply_helpers_1.processFolders)(config, client, parser, options, verbose);
@@ -155,6 +203,7 @@ async function applyCommand(options, command) {
155
203
  const succeeded = [];
156
204
  const failed = [];
157
205
  const skipped = [];
206
+ const appliedAgents = new Map();
158
207
  for (const agent of config.agents) {
159
208
  if (options.agent && !agent.name.includes(options.agent))
160
209
  continue;
@@ -162,6 +211,7 @@ async function applyCommand(options, command) {
162
211
  (0, logger_1.log)(` Description: ${agent.description}`);
163
212
  (0, logger_1.log)(` Tools: ${agent.tools?.join(', ') || 'none'}`);
164
213
  (0, logger_1.log)(` Memory blocks: ${agent.memory_blocks?.length || 0}`);
214
+ (0, logger_1.log)(` Archives: ${agent.archives?.length || 0}`);
165
215
  (0, logger_1.log)(` Folders: ${agent.folders?.length || 0}`);
166
216
  }
167
217
  try {
@@ -192,7 +242,9 @@ async function applyCommand(options, command) {
192
242
  toolSourceHashes,
193
243
  model: agent.llm_config?.model,
194
244
  embedding: agent.embedding,
245
+ embeddingConfig: agent.embedding_config,
195
246
  contextWindow: agent.llm_config?.context_window,
247
+ reasoning: agent.reasoning,
196
248
  memoryBlocks: (agent.memory_blocks || []).map((block) => ({
197
249
  name: block.name,
198
250
  description: block.description,
@@ -200,6 +252,20 @@ async function applyCommand(options, command) {
200
252
  value: block.value || '',
201
253
  mutable: block.mutable
202
254
  })),
255
+ archives: (agent.archives || []).map((archive) => {
256
+ const resolved = {
257
+ name: archive.name,
258
+ description: archive.description,
259
+ embedding_config: archive.embedding_config
260
+ };
261
+ if (archive.embedding) {
262
+ resolved.embedding = archive.embedding;
263
+ }
264
+ else if (!archive.embedding_config && agent.embedding) {
265
+ resolved.embedding = agent.embedding;
266
+ }
267
+ return resolved;
268
+ }),
203
269
  memoryBlockFileHashes,
204
270
  folders: (agent.folders || []).map((folder) => ({
205
271
  name: folder.name,
@@ -215,6 +281,10 @@ async function applyCommand(options, command) {
215
281
  const changes = agentManager.getConfigChanges(existingAgent, agentConfig);
216
282
  if (!changes.hasChanges) {
217
283
  skipped.push(agent.name);
284
+ appliedAgents.set(agent.name, {
285
+ id: existingAgent.id,
286
+ resolvedName: existingAgent.name
287
+ });
218
288
  if (verbose)
219
289
  (0, logger_1.log)(`Agent ${agent.name} already up to date`);
220
290
  continue;
@@ -232,18 +302,24 @@ async function applyCommand(options, command) {
232
302
  builtinTools,
233
303
  createdFolders,
234
304
  sharedBlockIds,
305
+ archiveManager,
235
306
  spinnerEnabled,
236
307
  verbose,
237
308
  force: options.force || false,
238
309
  previousFolderFileHashes
239
310
  });
240
311
  succeeded.push(agent.name);
312
+ appliedAgents.set(agent.name, {
313
+ id: existingAgent.id,
314
+ resolvedName: existingAgent.name
315
+ });
241
316
  }
242
317
  else {
243
318
  // Create new agent
244
- await (0, apply_helpers_1.createNewAgent)(agent, agentName, {
319
+ const createdAgent = await (0, apply_helpers_1.createNewAgent)(agent, agentName, {
245
320
  client,
246
321
  blockManager,
322
+ archiveManager,
247
323
  agentManager,
248
324
  toolNameToId,
249
325
  builtinTools,
@@ -254,6 +330,10 @@ async function applyCommand(options, command) {
254
330
  folderContentHashes
255
331
  });
256
332
  succeeded.push(agent.name);
333
+ appliedAgents.set(agent.name, {
334
+ id: createdAgent.id,
335
+ resolvedName: createdAgent.name
336
+ });
257
337
  }
258
338
  }
259
339
  catch (err) {
@@ -273,6 +353,28 @@ async function applyCommand(options, command) {
273
353
  else {
274
354
  (0, logger_1.log)((0, display_1.displayApplySummary)(summaryData));
275
355
  }
356
+ // Only generate manifest if explicitly requested via --manifest flag
357
+ if (options.manifest !== undefined) {
358
+ // --manifest without path gives true, --manifest <path> gives the path string
359
+ const manifestPath = typeof options.manifest === 'string'
360
+ ? path.resolve(options.manifest)
361
+ : (0, agent_manifest_1.getDefaultManifestPath)(options.file);
362
+ const manifest = (0, agent_manifest_1.buildAgentManifest)({
363
+ config,
364
+ configPath: options.file,
365
+ basePath: parser.basePath,
366
+ appliedAgents,
367
+ agentManager,
368
+ blockManager,
369
+ archiveManager,
370
+ sharedBlockIds,
371
+ toolNameToId,
372
+ folderNameToId: createdFolders,
373
+ mcpServerNameToId
374
+ });
375
+ (0, agent_manifest_1.writeAgentManifest)(manifest, manifestPath);
376
+ (0, logger_1.log)(`Agent manifest written to ${manifestPath}`);
377
+ }
276
378
  }
277
379
  catch (err) {
278
380
  throw new Error(`Apply failed: ${(0, error_handler_1.formatLettaError)(err.message || err)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/apply/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/apply/apply.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,6 @@ export declare function applyTemplateMode(options: {
9
9
  match: string;
10
10
  dryRun?: boolean;
11
11
  root?: string;
12
+ manifest?: string;
12
13
  }, config: any, parser: FleetParser, command: any): Promise<void>;
13
14
  //# sourceMappingURL=template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/commands/apply/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAYrD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACzE,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAyKf"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/commands/apply/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAcrD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5F,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAqLf"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyTemplateMode = applyTemplateMode;
4
4
  const letta_client_1 = require("../../lib/letta-client");
5
5
  const block_manager_1 = require("../../lib/block-manager");
6
+ const archive_manager_1 = require("../../lib/archive-manager");
6
7
  const diff_engine_1 = require("../../lib/diff-engine");
7
8
  const file_content_tracker_1 = require("../../lib/file-content-tracker");
8
9
  const output_formatter_1 = require("../../lib/ux/output-formatter");
@@ -11,6 +12,7 @@ const minimatch_1 = require("minimatch");
11
12
  const last_applied_config_1 = require("../../lib/last-applied-config");
12
13
  const response_normalizer_1 = require("../../lib/response-normalizer");
13
14
  const logger_1 = require("../../lib/logger");
15
+ const mcp_tools_1 = require("../../lib/mcp-tools");
14
16
  /**
15
17
  * Template mode: apply a template config to all existing agents matching a glob pattern.
16
18
  * Uses kubectl-style three-way merge: removes resources only if they were previously
@@ -54,10 +56,20 @@ async function applyTemplateMode(options, config, parser, command) {
54
56
  }
55
57
  // Initialize managers
56
58
  const blockManager = new block_manager_1.BlockManager(client);
57
- const diffEngine = new diff_engine_1.DiffEngine(client, blockManager, parser.basePath);
59
+ const archiveManager = new archive_manager_1.ArchiveManager(client);
60
+ const diffEngine = new diff_engine_1.DiffEngine(client, blockManager, archiveManager, parser.basePath);
58
61
  const fileTracker = new file_content_tracker_1.FileContentTracker(parser.basePath, parser.storageBackend);
59
62
  const createdFolders = new Map();
60
63
  await blockManager.loadExistingBlocks();
64
+ await archiveManager.loadExistingArchives();
65
+ // Register MCP servers (if configured) and expand MCP tool selections
66
+ if (config.mcp_servers && config.mcp_servers.length > 0) {
67
+ const mcpSpinner = (0, spinner_1.createSpinner)('Registering MCP servers...', spinnerEnabled).start();
68
+ await parser.registerMcpServers(config, client, verbose);
69
+ mcpSpinner.succeed(`Registered ${config.mcp_servers.length} MCP servers`);
70
+ }
71
+ const mcpServerNameToId = await (0, mcp_tools_1.buildMcpServerRegistry)(client);
72
+ await (0, mcp_tools_1.expandMcpToolsForAgents)(config, client, mcpServerNameToId, verbose);
61
73
  // Process shared blocks from template
62
74
  const sharedBlockIds = new Map();
63
75
  if (config.shared_blocks?.length) {
@@ -95,6 +107,7 @@ async function applyTemplateMode(options, config, parser, command) {
95
107
  toolSourceHashes,
96
108
  sharedBlocks: templateSharedBlocks,
97
109
  embedding: templateAgent?.embedding,
110
+ embeddingConfig: templateAgent?.embedding_config,
98
111
  model: templateAgent?.llm_config?.model,
99
112
  contextWindow: templateAgent?.llm_config?.context_window,
100
113
  };
@@ -103,7 +116,7 @@ async function applyTemplateMode(options, config, parser, command) {
103
116
  id: existingAgent.id,
104
117
  name: existingAgent.name,
105
118
  baseName: existingAgent.name,
106
- configHashes: { overall: '', systemPrompt: '', tools: '', model: '', memoryBlocks: '', folders: '', sharedBlocks: '' },
119
+ configHashes: { overall: '', systemPrompt: '', tools: '', model: '', memoryBlocks: '', folders: '', sharedBlocks: '', archives: '' },
107
120
  version: 'latest',
108
121
  lastUpdated: existingAgent.updated_at || new Date().toISOString()
109
122
  };