lettactl 0.9.15 → 0.9.17

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 (152) hide show
  1. package/README.md +106 -6
  2. package/dist/commands/apply/apply.d.ts.map +1 -1
  3. package/dist/commands/apply/apply.js +127 -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/describe/agent.d.ts.map +1 -1
  25. package/dist/commands/describe/agent.js +8 -0
  26. package/dist/commands/describe/agent.js.map +1 -1
  27. package/dist/commands/describe/archive.d.ts +5 -0
  28. package/dist/commands/describe/archive.d.ts.map +1 -0
  29. package/dist/commands/describe/archive.js +42 -0
  30. package/dist/commands/describe/archive.js.map +1 -0
  31. package/dist/commands/describe/index.d.ts.map +1 -1
  32. package/dist/commands/describe/index.js +4 -0
  33. package/dist/commands/describe/index.js.map +1 -1
  34. package/dist/commands/describe/types.d.ts.map +1 -1
  35. package/dist/commands/describe/types.js +1 -1
  36. package/dist/commands/describe/types.js.map +1 -1
  37. package/dist/commands/get/archives.d.ts +5 -0
  38. package/dist/commands/get/archives.d.ts.map +1 -0
  39. package/dist/commands/get/archives.js +58 -0
  40. package/dist/commands/get/archives.js.map +1 -0
  41. package/dist/commands/get/index.d.ts.map +1 -1
  42. package/dist/commands/get/index.js +4 -0
  43. package/dist/commands/get/index.js.map +1 -1
  44. package/dist/commands/get/types.d.ts.map +1 -1
  45. package/dist/commands/get/types.js +1 -1
  46. package/dist/commands/get/types.js.map +1 -1
  47. package/dist/commands/messages/send.d.ts.map +1 -1
  48. package/dist/commands/messages/send.js +20 -15
  49. package/dist/commands/messages/send.js.map +1 -1
  50. package/dist/commands/runs/utils.d.ts.map +1 -1
  51. package/dist/commands/runs/utils.js +9 -6
  52. package/dist/commands/runs/utils.js.map +1 -1
  53. package/dist/index.js +6 -5
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/agent-manager.d.ts +18 -0
  56. package/dist/lib/agent-manager.d.ts.map +1 -1
  57. package/dist/lib/agent-manager.js +18 -3
  58. package/dist/lib/agent-manager.js.map +1 -1
  59. package/dist/lib/agent-manifest.d.ts +55 -0
  60. package/dist/lib/agent-manifest.d.ts.map +1 -0
  61. package/dist/lib/agent-manifest.js +210 -0
  62. package/dist/lib/agent-manifest.js.map +1 -0
  63. package/dist/lib/agent-resolver.d.ts.map +1 -1
  64. package/dist/lib/agent-resolver.js +9 -0
  65. package/dist/lib/agent-resolver.js.map +1 -1
  66. package/dist/lib/apply-helpers.d.ts +7 -1
  67. package/dist/lib/apply-helpers.d.ts.map +1 -1
  68. package/dist/lib/apply-helpers.js +61 -15
  69. package/dist/lib/apply-helpers.js.map +1 -1
  70. package/dist/lib/archive-manager.d.ts +23 -0
  71. package/dist/lib/archive-manager.d.ts.map +1 -0
  72. package/dist/lib/archive-manager.js +58 -0
  73. package/dist/lib/archive-manager.js.map +1 -0
  74. package/dist/lib/block-manager.d.ts.map +1 -1
  75. package/dist/lib/block-manager.js +6 -1
  76. package/dist/lib/block-manager.js.map +1 -1
  77. package/dist/lib/bulk-messenger.d.ts.map +1 -1
  78. package/dist/lib/bulk-messenger.js +18 -13
  79. package/dist/lib/bulk-messenger.js.map +1 -1
  80. package/dist/lib/config-validators.d.ts +14 -0
  81. package/dist/lib/config-validators.d.ts.map +1 -1
  82. package/dist/lib/config-validators.js +95 -2
  83. package/dist/lib/config-validators.js.map +1 -1
  84. package/dist/lib/diff-analyzers.d.ts +8 -1
  85. package/dist/lib/diff-analyzers.d.ts.map +1 -1
  86. package/dist/lib/diff-analyzers.js +62 -0
  87. package/dist/lib/diff-analyzers.js.map +1 -1
  88. package/dist/lib/diff-applier.d.ts.map +1 -1
  89. package/dist/lib/diff-applier.js +23 -0
  90. package/dist/lib/diff-applier.js.map +1 -1
  91. package/dist/lib/diff-engine.d.ts +11 -2
  92. package/dist/lib/diff-engine.d.ts.map +1 -1
  93. package/dist/lib/diff-engine.js +29 -1
  94. package/dist/lib/diff-engine.js.map +1 -1
  95. package/dist/lib/dry-run.d.ts +2 -0
  96. package/dist/lib/dry-run.d.ts.map +1 -1
  97. package/dist/lib/dry-run.js +33 -0
  98. package/dist/lib/dry-run.js.map +1 -1
  99. package/dist/lib/file-content-tracker.d.ts.map +1 -1
  100. package/dist/lib/file-content-tracker.js +5 -0
  101. package/dist/lib/file-content-tracker.js.map +1 -1
  102. package/dist/lib/fleet-parser.d.ts +1 -0
  103. package/dist/lib/fleet-parser.d.ts.map +1 -1
  104. package/dist/lib/fleet-parser.js +42 -6
  105. package/dist/lib/fleet-parser.js.map +1 -1
  106. package/dist/lib/letta-client.d.ts +12 -0
  107. package/dist/lib/letta-client.d.ts.map +1 -1
  108. package/dist/lib/letta-client.js +35 -0
  109. package/dist/lib/letta-client.js.map +1 -1
  110. package/dist/lib/mcp-tools.d.ts +4 -0
  111. package/dist/lib/mcp-tools.d.ts.map +1 -0
  112. package/dist/lib/mcp-tools.js +84 -0
  113. package/dist/lib/mcp-tools.js.map +1 -0
  114. package/dist/lib/resource-classifier.d.ts +4 -0
  115. package/dist/lib/resource-classifier.d.ts.map +1 -1
  116. package/dist/lib/resource-classifier.js +18 -0
  117. package/dist/lib/resource-classifier.js.map +1 -1
  118. package/dist/lib/resource-usage.d.ts +2 -2
  119. package/dist/lib/resource-usage.d.ts.map +1 -1
  120. package/dist/lib/resource-usage.js +3 -0
  121. package/dist/lib/resource-usage.js.map +1 -1
  122. package/dist/lib/run-utils.d.ts +23 -0
  123. package/dist/lib/run-utils.d.ts.map +1 -0
  124. package/dist/lib/run-utils.js +64 -0
  125. package/dist/lib/run-utils.js.map +1 -0
  126. package/dist/lib/ux/display/details.d.ts +19 -0
  127. package/dist/lib/ux/display/details.d.ts.map +1 -1
  128. package/dist/lib/ux/display/details.js +69 -0
  129. package/dist/lib/ux/display/details.js.map +1 -1
  130. package/dist/lib/ux/display/index.d.ts +2 -2
  131. package/dist/lib/ux/display/index.d.ts.map +1 -1
  132. package/dist/lib/ux/display/index.js +3 -1
  133. package/dist/lib/ux/display/index.js.map +1 -1
  134. package/dist/lib/ux/display/resources.d.ts +7 -0
  135. package/dist/lib/ux/display/resources.d.ts.map +1 -1
  136. package/dist/lib/ux/display/resources.js +48 -0
  137. package/dist/lib/ux/display/resources.js.map +1 -1
  138. package/dist/lib/ux/output-formatter.d.ts +5 -0
  139. package/dist/lib/ux/output-formatter.d.ts.map +1 -1
  140. package/dist/lib/ux/output-formatter.js +29 -0
  141. package/dist/lib/ux/output-formatter.js.map +1 -1
  142. package/dist/sdk.d.ts +11 -0
  143. package/dist/sdk.d.ts.map +1 -1
  144. package/dist/sdk.js +30 -0
  145. package/dist/sdk.js.map +1 -1
  146. package/dist/types/agent.d.ts +1 -0
  147. package/dist/types/agent.d.ts.map +1 -1
  148. package/dist/types/diff.d.ts +21 -0
  149. package/dist/types/diff.d.ts.map +1 -1
  150. package/dist/types/fleet-config.d.ts +14 -0
  151. package/dist/types/fleet-config.d.ts.map +1 -1
  152. package/package.json +3 -3
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![CI](https://github.com/nouamanecodes/lettactl/actions/workflows/ci.yml/badge.svg)](https://github.com/nouamanecodes/lettactl/actions)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
6
+ [![Socket Badge](https://socket.dev/api/badge/npm/package/lettactl)](https://socket.dev/npm/package/lettactl)
6
7
 
7
8
  ![LettaCTL](assets/main.png)
8
9
 
@@ -95,7 +96,7 @@ agents:
95
96
  - name: documents
96
97
  files:
97
98
  - "files/*" # Auto-discover all files in files/
98
- embedding: "letta/letta-free"
99
+ embedding: "openai/text-embedding-3-small"
99
100
 
100
101
  # 2. Cloud-powered agent using Supabase storage
101
102
  - name: cloud-assistant
@@ -118,7 +119,7 @@ agents:
118
119
  provider: supabase
119
120
  bucket: test-bucket
120
121
  path: knowledge/example.md
121
- embedding: "letta/letta-free"
122
+ embedding: "openai/text-embedding-3-small"
122
123
  ```
123
124
 
124
125
  Deploy the entire fleet:
@@ -139,6 +140,8 @@ lettactl apply -f agents.yml --dry-run # See what would change
139
140
  lettactl apply -f agents.yml --root . # Specify root directory for file resolution
140
141
  lettactl apply -f agents.yml -v # Verbose output
141
142
  lettactl apply -f agents.yml -q # Quiet mode (for CI pipelines)
143
+ lettactl apply -f agents.yml --manifest # Generate manifest with all resource IDs
144
+ lettactl apply -f agents.yml --manifest output.json # Custom manifest path
142
145
 
143
146
  # Template mode: apply config to existing agents matching a glob pattern
144
147
  lettactl apply -f template.yaml --match "*-assistant" # All agents ending in -assistant
@@ -149,6 +152,13 @@ lettactl apply -f template.yaml --match "*" --dry-run # Preview changes to all
149
152
  **Template Mode (`--match`):**
150
153
  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
154
 
155
+ **Agent Manifests (`--manifest`):**
156
+ Generate a JSON manifest with all resolved resource IDs after deployment. Useful for CI/CD pipelines that need to track what was deployed:
157
+ ```bash
158
+ lettactl apply -f agents.yml --manifest
159
+ # Generates agents.manifest.json with agent IDs, tool IDs, block IDs, etc.
160
+ ```
161
+
152
162
  ### Create Agents
153
163
  ```bash
154
164
  # Create basic agent
@@ -160,7 +170,7 @@ lettactl create agent advanced-agent \
160
170
  --model "google_ai/gemini-2.5-pro" \
161
171
  --system "You are an expert assistant." \
162
172
  --context-window 32000 \
163
- --embedding "letta/letta-free" \
173
+ --embedding "openai/text-embedding-3-small" \
164
174
  --tags "production,assistant"
165
175
  ```
166
176
 
@@ -246,6 +256,7 @@ lettactl delete-all agents --pattern "PROD.*" --force # Matches "prod-agent-1"
246
256
 
247
257
  **What gets deleted:**
248
258
  - Agent-specific memory blocks
259
+ - Agent archival memory archives
249
260
  - Agent-specific folders (if not shared)
250
261
  - Associated conversation history
251
262
 
@@ -264,17 +275,20 @@ lettactl delete-all agents --pattern "PROD.*" --force # Matches "prod-agent-1"
264
275
  # Preview orphaned resources (dry-run by default)
265
276
  lettactl cleanup blocks # Find orphaned blocks
266
277
  lettactl cleanup folders # Find orphaned folders (and their files)
278
+ lettactl cleanup archives # Find orphaned archives
267
279
  lettactl cleanup all # Find all orphaned resources
268
280
 
269
281
  # Actually delete orphaned resources
270
282
  lettactl cleanup blocks --force # Delete orphaned blocks
271
283
  lettactl cleanup folders --force # Delete orphaned folders (cascades to files)
284
+ lettactl cleanup archives --force # Delete orphaned archives (and their passages)
272
285
  lettactl cleanup all --force # Delete all orphaned resources
273
286
  ```
274
287
 
275
288
  **What gets cleaned up:**
276
289
  - **Orphaned blocks**: Memory blocks attached to 0 agents
277
290
  - **Orphaned folders**: Folders attached to 0 agents (files inside are also deleted)
291
+ - **Orphaned archives**: Archives attached to 0 agents
278
292
 
279
293
  **Safety Features:**
280
294
  - Dry-run by default - shows what would be deleted
@@ -282,11 +296,33 @@ lettactl cleanup all --force # Delete all orphaned resources
282
296
  - Shows file counts for orphaned folders
283
297
  - Uses API's native orphan detection for efficiency
284
298
 
299
+ ### Archival Memory (Archives)
300
+ Archives are the archival memory stores attached to agents.
301
+
302
+ **Key points:**
303
+ - Archives are **per-agent** and **one per agent** (validated).
304
+ - `apply` will create and attach the archive if it does not exist.
305
+ - Removing an archive from config only detaches it when `--force` is used.
306
+ - Passages are managed by the agent/tools (`archival_memory_insert/search`), not by lettactl.
307
+ - Export/import includes archives and passages via Letta server export/import.
308
+
309
+ **Example:**
310
+ ```yaml
311
+ agents:
312
+ - name: my-agent
313
+ archives:
314
+ - name: my-archive
315
+ description: "Long-term knowledge base"
316
+ embedding: "openai/text-embedding-3-small"
317
+ # embedding_config: {} # Optional provider-specific config
318
+ ```
319
+
285
320
  ### View Resources
286
321
  ```bash
287
322
  # List resources
288
323
  lettactl get agents # List all agents
289
324
  lettactl get blocks # List all memory blocks
325
+ lettactl get archives # List all archives (archival memory stores)
290
326
  lettactl get tools # List all tools
291
327
  lettactl get folders # List all folders (with file counts)
292
328
  lettactl get files # List all files (deduplicated by name)
@@ -303,6 +339,7 @@ lettactl get files -o wide # Shows every file instance per folder
303
339
 
304
340
  # Scoped to specific agent
305
341
  lettactl get blocks -a my-agent # Blocks attached to my-agent
342
+ lettactl get archives -a my-agent # Archives attached to my-agent
306
343
  lettactl get tools -a my-agent # Tools attached to my-agent
307
344
  lettactl get folders -a my-agent # Folders attached to my-agent
308
345
  lettactl get files -a my-agent # Files accessible to my-agent
@@ -310,6 +347,7 @@ lettactl get files -a my-agent # Files accessible to my-agent
310
347
  # Fleet analysis
311
348
  lettactl get tools --shared # Tools used by 2+ agents
312
349
  lettactl get blocks --orphaned # Blocks not attached to any agent
350
+ lettactl get archives --orphaned # Archives not attached to any agent
313
351
  lettactl get folders --shared # Shared folders with agent counts
314
352
  lettactl get files --shared # Files in folders used by 2+ agents
315
353
  lettactl get files --orphaned # Files in folders not used by any agent
@@ -317,6 +355,7 @@ lettactl get files --orphaned # Files in folders not used by any agent
317
355
  # Detailed resource info
318
356
  lettactl describe agent my-agent # Agent details + blocks/tools/folders/messages/archival
319
357
  lettactl describe block persona # Block details + attached agents + value preview
358
+ lettactl describe archive kb-store # Archive details + attached agents
320
359
  lettactl describe tool my-tool # Tool details + attached agents + source code
321
360
  lettactl describe folder docs # Folder details + files + attached agents
322
361
  lettactl describe file report.pdf # File details + which folders contain it
@@ -373,6 +412,29 @@ lettactl delete mcp-servers my-server --force
373
412
 
374
413
  MCP servers are created/updated automatically during `lettactl apply` when defined in your configuration.
375
414
 
415
+ **Using MCP Tools in Agents:**
416
+
417
+ Once MCP servers are defined, reference their tools in agent configs using `mcp_tools`:
418
+
419
+ ```yaml
420
+ mcp_servers:
421
+ - name: filesystem
422
+ type: stdio
423
+ command: npx
424
+ args: ["-y", "@anthropic/mcp-filesystem"]
425
+
426
+ agents:
427
+ - name: file-agent
428
+ mcp_tools:
429
+ - server: filesystem
430
+ tools: all # Include all tools from the server
431
+ # Or pick specific tools:
432
+ # - server: filesystem
433
+ # tools: [read_file, write_file]
434
+ ```
435
+
436
+ The tools are expanded and attached to the agent during apply.
437
+
376
438
  ---
377
439
 
378
440
  # SDK Usage
@@ -438,7 +500,7 @@ agents:
438
500
  value: "You are an assistant for user ${userId}."
439
501
  shared_blocks: # Use shared memory blocks
440
502
  - shared-guidelines
441
- embedding: "letta/letta-free"
503
+ embedding: "openai/text-embedding-3-small"
442
504
  `;
443
505
 
444
506
  // Deploy directly from YAML string (no file I/O needed)
@@ -571,6 +633,27 @@ await lettactl.deleteAgent('orphaned-agent');
571
633
  - Deletes the agent from the Letta server
572
634
  - Updates `.lettactl/fleet.yaml` (removes the agent entry, or deletes the file if no agents remain)
573
635
 
636
+ ### Messaging
637
+
638
+ Send messages to agents programmatically:
639
+
640
+ ```typescript
641
+ // Send a message (async - returns immediately with run ID)
642
+ const run = await lettactl.sendMessage(agentId, 'Hello, how are you?');
643
+ console.log(run.id); // run-abc123...
644
+
645
+ // Wait for completion (polls with robust stop_reason detection)
646
+ const completed = await lettactl.waitForRun(run.id);
647
+ console.log(completed.status); // 'completed'
648
+
649
+ // With timeout (in seconds)
650
+ const completed = await lettactl.waitForRun(run.id, { timeout: 120 });
651
+ ```
652
+
653
+ `sendMessage()` uses async messaging - it returns a `Run` object immediately with a job ID you can use to track progress. This prevents timeouts in applications with request limits.
654
+
655
+ `waitForRun()` polls until the run reaches a terminal state, using robust detection that checks both `status` and `stop_reason` fields. This handles edge cases where the Letta server completes a run but doesn't update the status field.
656
+
574
657
  ---
575
658
 
576
659
  # Configuration Reference
@@ -745,7 +828,8 @@ lettactl apply -f agents.yml
745
828
  agents:
746
829
  - name: agent-name # Required: unique identifier
747
830
  description: "What this agent does" # Required: human description
748
-
831
+ reasoning: true # Optional: enable reasoning (default: true)
832
+
749
833
  # LLM configuration (required, should be first)
750
834
  llm_config:
751
835
  model: "google_ai/gemini-2.5-pro" # Required
@@ -763,6 +847,15 @@ agents:
763
847
  - archival_memory_search
764
848
  - tools/* # Auto-discover from tools/ folder
765
849
  - custom_tool_name # Specific custom tools
850
+
851
+ # MCP tools (optional) - reference tools from MCP servers
852
+ mcp_tools:
853
+ - server: my-mcp-server # MCP server name (defined in mcp_servers)
854
+ tools: all # Include all tools from server
855
+ - server: another-server
856
+ tools: # Or specify individual tools
857
+ - specific_tool_1
858
+ - specific_tool_2
766
859
 
767
860
  # Shared blocks (optional)
768
861
  shared_blocks:
@@ -777,6 +870,13 @@ agents:
777
870
  mutable: true # Optional: if false, value syncs from YAML on every apply
778
871
  value: "Direct content" # Option 1: inline
779
872
  from_file: "blocks/file.md" # Option 2: from file
873
+
874
+ # Archives (archival memory store) (optional)
875
+ archives:
876
+ # Note: only one archive is supported per agent
877
+ - name: knowledge-archive
878
+ description: "Long-term knowledge base"
879
+ embedding: "letta/letta-free"
780
880
 
781
881
  # File attachments (optional)
782
882
  folders:
@@ -785,7 +885,7 @@ agents:
785
885
  - "files/*" # Auto-discover files
786
886
  - "files/specific-file.pdf" # Specific files
787
887
 
788
- embedding: "letta/letta-free" # Optional: embedding model
888
+ embedding: "openai/text-embedding-3-small" # Optional: embedding model
789
889
  ```
790
890
 
791
891
  ### 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,iBA6RrE"}
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,6 +242,7 @@ 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,
196
247
  reasoning: agent.reasoning,
197
248
  memoryBlocks: (agent.memory_blocks || []).map((block) => ({
@@ -201,6 +252,20 @@ async function applyCommand(options, command) {
201
252
  value: block.value || '',
202
253
  mutable: block.mutable
203
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
+ }),
204
269
  memoryBlockFileHashes,
205
270
  folders: (agent.folders || []).map((folder) => ({
206
271
  name: folder.name,
@@ -216,6 +281,10 @@ async function applyCommand(options, command) {
216
281
  const changes = agentManager.getConfigChanges(existingAgent, agentConfig);
217
282
  if (!changes.hasChanges) {
218
283
  skipped.push(agent.name);
284
+ appliedAgents.set(agent.name, {
285
+ id: existingAgent.id,
286
+ resolvedName: existingAgent.name
287
+ });
219
288
  if (verbose)
220
289
  (0, logger_1.log)(`Agent ${agent.name} already up to date`);
221
290
  continue;
@@ -233,18 +302,24 @@ async function applyCommand(options, command) {
233
302
  builtinTools,
234
303
  createdFolders,
235
304
  sharedBlockIds,
305
+ archiveManager,
236
306
  spinnerEnabled,
237
307
  verbose,
238
308
  force: options.force || false,
239
309
  previousFolderFileHashes
240
310
  });
241
311
  succeeded.push(agent.name);
312
+ appliedAgents.set(agent.name, {
313
+ id: existingAgent.id,
314
+ resolvedName: existingAgent.name
315
+ });
242
316
  }
243
317
  else {
244
318
  // Create new agent
245
- await (0, apply_helpers_1.createNewAgent)(agent, agentName, {
319
+ const createdAgent = await (0, apply_helpers_1.createNewAgent)(agent, agentName, {
246
320
  client,
247
321
  blockManager,
322
+ archiveManager,
248
323
  agentManager,
249
324
  toolNameToId,
250
325
  builtinTools,
@@ -255,6 +330,10 @@ async function applyCommand(options, command) {
255
330
  folderContentHashes
256
331
  });
257
332
  succeeded.push(agent.name);
333
+ appliedAgents.set(agent.name, {
334
+ id: createdAgent.id,
335
+ resolvedName: createdAgent.name
336
+ });
258
337
  }
259
338
  }
260
339
  catch (err) {
@@ -274,6 +353,28 @@ async function applyCommand(options, command) {
274
353
  else {
275
354
  (0, logger_1.log)((0, display_1.displayApplySummary)(summaryData));
276
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
+ }
277
378
  }
278
379
  catch (err) {
279
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
  };