lettactl 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +230 -140
- package/dist/commands/apply.js +1 -1
- package/dist/commands/apply.js.map +1 -1
- package/dist/lib/fleet-parser.d.ts +6 -0
- package/dist/lib/fleet-parser.d.ts.map +1 -1
- package/dist/lib/fleet-parser.js +74 -68
- package/dist/lib/fleet-parser.js.map +1 -1
- package/dist/sdk.d.ts +40 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +133 -0
- package/dist/sdk.js.map +1 -0
- package/dist/types/fleet-config.d.ts +10 -2
- package/dist/types/fleet-config.d.ts.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -7,6 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
A kubectl-style CLI for managing stateful Letta AI agent fleets with declarative configuration. Think "Docker Compose" but for AI agents - define your entire agent setup in YAML and deploy with one command.
|
|
9
9
|
|
|
10
|
+
## Two Ways to Use LettaCtl
|
|
11
|
+
|
|
12
|
+
| **CLI Tool** | **Programmatic SDK** |
|
|
13
|
+
|--------------|---------------------|
|
|
14
|
+
| Command-line interface | Library for applications |
|
|
15
|
+
| Automated fleet management | Dynamic agent creation |
|
|
16
|
+
| `npm install -g lettactl` | `npm install lettactl` |
|
|
17
|
+
| Perfect for DevOps workflows | Perfect for SaaS platforms |
|
|
18
|
+
|
|
10
19
|
## Features
|
|
11
20
|
|
|
12
21
|
- 🚀 **Declarative Configuration** - Define agents in YAML, deploy with one command
|
|
@@ -17,14 +26,20 @@ A kubectl-style CLI for managing stateful Letta AI agent fleets with declarative
|
|
|
17
26
|
- 📦 **Resource Sharing** - Share memory blocks and tools across agents
|
|
18
27
|
- 🗑️ **Bulk Operations** - Pattern-based bulk delete with safety previews and shared resource preservation
|
|
19
28
|
- 🔧 **Tool And Documentation Discovery** - Auto-discover custom Python tools & all documents to be pushed to letta folders
|
|
29
|
+
- 🛠️ **Programmatic SDK** - Use as a library for building multi-tenant applications
|
|
30
|
+
- ☁️ **Cloud Storage** - Supabase integration for fleet configurations and content
|
|
20
31
|
|
|
21
|
-
##
|
|
22
|
-
|
|
23
|
-
### Prerequisites
|
|
32
|
+
## Prerequisites
|
|
24
33
|
- Node.js 18+
|
|
25
34
|
- A running Letta server instance
|
|
26
35
|
|
|
27
|
-
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# CLI Usage
|
|
39
|
+
|
|
40
|
+
For DevOps workflows
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
28
43
|
|
|
29
44
|
```bash
|
|
30
45
|
# Install globally from npm
|
|
@@ -35,24 +50,66 @@ export LETTA_API_URL=http://localhost:8283 # For self-hosting
|
|
|
35
50
|
export LETTA_API_KEY=your_api_key # Only needed for Letta Cloud
|
|
36
51
|
```
|
|
37
52
|
|
|
38
|
-
###
|
|
53
|
+
### Your First Fleet
|
|
39
54
|
|
|
40
|
-
|
|
55
|
+
Create a file called `agents.yml`
|
|
41
56
|
|
|
42
|
-
```
|
|
43
|
-
#
|
|
44
|
-
|
|
57
|
+
```yaml
|
|
58
|
+
# Fleet configuration demonstrating lettactl's capabilities
|
|
59
|
+
# Two different agent types showing various features
|
|
45
60
|
|
|
46
|
-
#
|
|
47
|
-
|
|
61
|
+
shared_blocks: # Memory blocks shared across agents
|
|
62
|
+
- name: shared_guidelines
|
|
63
|
+
description: "Shared operational guidelines for all agents"
|
|
64
|
+
limit: 5000
|
|
65
|
+
from_file: "memory-blocks/shared-guidelines.md" # Load from file
|
|
48
66
|
|
|
49
|
-
|
|
50
|
-
|
|
67
|
+
agents:
|
|
68
|
+
# 1. Simple agent with files only
|
|
69
|
+
- name: document-assistant
|
|
70
|
+
description: "AI assistant for document analysis and processing"
|
|
71
|
+
llm_config: # Required LLM settings
|
|
72
|
+
model: "google_ai/gemini-2.5-pro"
|
|
73
|
+
context_window: 32000
|
|
74
|
+
system_prompt:
|
|
75
|
+
value: "You are a document assistant. Help users analyze, summarize, and understand documents."
|
|
76
|
+
folders: # Files attached to agent
|
|
77
|
+
- name: documents
|
|
78
|
+
files:
|
|
79
|
+
- "files/*" # Auto-discover all files in files/
|
|
80
|
+
embedding: "letta/letta-free"
|
|
81
|
+
|
|
82
|
+
# 2. Cloud-powered agent using Supabase storage
|
|
83
|
+
- name: cloud-assistant
|
|
84
|
+
description: "AI assistant powered by cloud storage"
|
|
85
|
+
llm_config:
|
|
86
|
+
model: "google_ai/gemini-2.5-pro"
|
|
87
|
+
context_window: 32000
|
|
88
|
+
system_prompt:
|
|
89
|
+
from_bucket: # Load prompt from cloud storage
|
|
90
|
+
provider: supabase
|
|
91
|
+
bucket: test-bucket
|
|
92
|
+
path: prompts/system-prompt.md
|
|
93
|
+
shared_blocks: # Use shared memory blocks
|
|
94
|
+
- shared_guidelines
|
|
95
|
+
memory_blocks: # Agent-specific memory
|
|
96
|
+
- name: cloud_knowledge
|
|
97
|
+
description: "Knowledge base from cloud storage"
|
|
98
|
+
limit: 8000
|
|
99
|
+
from_bucket: # Load content from cloud storage
|
|
100
|
+
provider: supabase
|
|
101
|
+
bucket: test-bucket
|
|
102
|
+
path: knowledge/example.md
|
|
103
|
+
embedding: "letta/letta-free"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Deploy the entire fleet:
|
|
51
107
|
|
|
52
|
-
|
|
53
|
-
lettactl
|
|
108
|
+
```bash
|
|
109
|
+
lettactl apply -f agents.yml # Deploy all agents and shared resources
|
|
54
110
|
```
|
|
55
111
|
|
|
112
|
+
That's it! Your entire fleet is now running with shared resources and cloud storage.
|
|
56
113
|
|
|
57
114
|
## Commands
|
|
58
115
|
|
|
@@ -194,41 +251,172 @@ lettactl delete-all agents --force # Delete ALL agents (da
|
|
|
194
251
|
lettactl delete-all agents --pattern "test.*" # Shows preview, asks for --force
|
|
195
252
|
```
|
|
196
253
|
|
|
197
|
-
|
|
254
|
+
---
|
|
198
255
|
|
|
199
|
-
|
|
256
|
+
# SDK Usage
|
|
200
257
|
|
|
201
|
-
|
|
258
|
+
For building applications with dynamic agent creation.
|
|
202
259
|
|
|
203
|
-
|
|
260
|
+
## Installation
|
|
204
261
|
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
description: "A helpful AI assistant"
|
|
209
|
-
llm_config:
|
|
210
|
-
model: "google_ai/gemini-2.5-pro"
|
|
211
|
-
context_window: 32000
|
|
212
|
-
system_prompt:
|
|
213
|
-
value: "You are a helpful AI assistant."
|
|
214
|
-
tools:
|
|
215
|
-
- archival_memory_insert
|
|
216
|
-
- archival_memory_search
|
|
217
|
-
memory_blocks:
|
|
218
|
-
- name: user_preferences
|
|
219
|
-
description: "Remembers what the user likes"
|
|
220
|
-
limit: 2000
|
|
221
|
-
value: "User prefers concise, direct answers."
|
|
222
|
-
embedding: "letta/letta-free"
|
|
223
|
-
```
|
|
262
|
+
```bash
|
|
263
|
+
# Install locally for programmatic usage (choose your flavor)
|
|
264
|
+
npm install lettactl
|
|
224
265
|
|
|
225
|
-
|
|
266
|
+
# Or
|
|
267
|
+
yarn install lettactl
|
|
226
268
|
|
|
227
|
-
|
|
228
|
-
|
|
269
|
+
# Or
|
|
270
|
+
pnpm install lettactl
|
|
229
271
|
```
|
|
230
272
|
|
|
231
|
-
|
|
273
|
+
## Three Usage Patterns
|
|
274
|
+
|
|
275
|
+
### 1. Dynamic YAML Generation
|
|
276
|
+
Write YAML configuration as strings and deploy directly:
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
import { LettaCtl } from 'lettactl';
|
|
280
|
+
|
|
281
|
+
const lettactl = new LettaCtl({
|
|
282
|
+
lettaApiUrl: 'http://localhost:8283'
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
const userId = 'acme-corp';
|
|
286
|
+
|
|
287
|
+
// Write YAML configuration as a string with dynamic values
|
|
288
|
+
const yamlConfig = `
|
|
289
|
+
shared_blocks: # Memory blocks shared across agents
|
|
290
|
+
- name: shared-guidelines
|
|
291
|
+
description: "Shared operational guidelines for all agents"
|
|
292
|
+
limit: 5000
|
|
293
|
+
value: "Common guidelines for all user agents."
|
|
294
|
+
|
|
295
|
+
agents:
|
|
296
|
+
- name: user-${userId}-assistant # Dynamic user ID
|
|
297
|
+
description: "AI assistant for user ${userId}"
|
|
298
|
+
llm_config: # Required LLM settings
|
|
299
|
+
model: "google_ai/gemini-2.5-pro"
|
|
300
|
+
context_window: 32000
|
|
301
|
+
system_prompt: # How the agent behaves
|
|
302
|
+
value: "You are an assistant for user ${userId}."
|
|
303
|
+
shared_blocks: # Use shared memory blocks
|
|
304
|
+
- shared-guidelines
|
|
305
|
+
embedding: "letta/letta-free"
|
|
306
|
+
`;
|
|
307
|
+
|
|
308
|
+
// Deploy directly from YAML string (no file I/O needed)
|
|
309
|
+
await lettactl.deployFromYamlString(yamlConfig);
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### 2. Existing YAML Deployment
|
|
313
|
+
Deploy existing YAML files programmatically:
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
// Deploy existing configs
|
|
317
|
+
await lettactl.deployFromYaml('./configs/production.yaml');
|
|
318
|
+
|
|
319
|
+
// With filtering
|
|
320
|
+
await lettactl.deployFromYaml('./configs/all-agents.yaml', {
|
|
321
|
+
agentPattern: 'user-123', // Only deploy matching agents
|
|
322
|
+
dryRun: true // Preview changes
|
|
323
|
+
});
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### 3. Direct Deployment
|
|
327
|
+
Build and deploy fleet configurations directly in memory:
|
|
328
|
+
|
|
329
|
+
```typescript
|
|
330
|
+
// Build a fleet with shared resources and multiple agent types
|
|
331
|
+
const fleet = lettactl.createFleetConfig()
|
|
332
|
+
.addSharedBlock({ // Shared memory across agents
|
|
333
|
+
name: 'shared-guidelines',
|
|
334
|
+
description: 'Shared operational guidelines',
|
|
335
|
+
limit: 5000,
|
|
336
|
+
value: 'Common guidelines for all user agents.'
|
|
337
|
+
})
|
|
338
|
+
.addAgent({ // Simple document-focused agent
|
|
339
|
+
name: 'user-123-document-assistant',
|
|
340
|
+
description: 'Document assistant for user 123',
|
|
341
|
+
llm_config: { model: 'google_ai/gemini-2.5-pro', context_window: 32000 },
|
|
342
|
+
system_prompt: { value: 'You analyze documents for user 123.' },
|
|
343
|
+
folders: [{ name: 'documents', files: ['files/*'] }] // Auto-discover files
|
|
344
|
+
})
|
|
345
|
+
.addAgent({ // Cloud-powered agent with shared memory
|
|
346
|
+
name: 'user-123-cloud-assistant',
|
|
347
|
+
description: 'Cloud assistant for user 123',
|
|
348
|
+
llm_config: { model: 'google_ai/gemini-2.5-pro', context_window: 32000 },
|
|
349
|
+
system_prompt: { value: 'You are a cloud-powered assistant for user 123.' },
|
|
350
|
+
shared_blocks: ['shared-guidelines'], // Use shared memory
|
|
351
|
+
memory_blocks: [{
|
|
352
|
+
name: 'user-knowledge',
|
|
353
|
+
description: 'User-specific knowledge base',
|
|
354
|
+
limit: 8000,
|
|
355
|
+
value: 'User 123 knowledge and preferences.'
|
|
356
|
+
}]
|
|
357
|
+
})
|
|
358
|
+
.build();
|
|
359
|
+
|
|
360
|
+
await lettactl.deployFleet(fleet); // Deploy entire fleet
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Multi-Tenant SaaS Example
|
|
364
|
+
|
|
365
|
+
Create agents dynamically for different users:
|
|
366
|
+
|
|
367
|
+
```typescript
|
|
368
|
+
const lettactl = new LettaCtl();
|
|
369
|
+
|
|
370
|
+
// Single user onboarding
|
|
371
|
+
const userId = 'acme-corp';
|
|
372
|
+
const companyInfo = 'Acme Corp is a B2B software company specializing in CRM solutions.';
|
|
373
|
+
|
|
374
|
+
const fleet = lettactl.createFleetConfig()
|
|
375
|
+
.addAgent({
|
|
376
|
+
name: `${userId}-assistant`,
|
|
377
|
+
description: `AI assistant for ${userId}`,
|
|
378
|
+
llm_config: { model: 'google_ai/gemini-2.5-pro', context_window: 32000 },
|
|
379
|
+
system_prompt: { value: `You are an AI assistant for ${userId}. Help with tasks and answer questions.` },
|
|
380
|
+
memory_blocks: [{
|
|
381
|
+
name: 'company-info',
|
|
382
|
+
description: 'User company information',
|
|
383
|
+
limit: 8000,
|
|
384
|
+
value: companyInfo
|
|
385
|
+
}]
|
|
386
|
+
})
|
|
387
|
+
.build();
|
|
388
|
+
|
|
389
|
+
await lettactl.deployFleet(fleet);
|
|
390
|
+
|
|
391
|
+
// Batch user onboarding
|
|
392
|
+
const users = [
|
|
393
|
+
{ id: 'startup-1', info: 'Tech startup focused on AI tools' },
|
|
394
|
+
{ id: 'enterprise-2', info: 'Large enterprise with complex workflows' },
|
|
395
|
+
{ id: 'agency-3', info: 'Marketing agency serving B2B users' }
|
|
396
|
+
];
|
|
397
|
+
|
|
398
|
+
const batchFleet = lettactl.createFleetConfig();
|
|
399
|
+
for (const user of users) {
|
|
400
|
+
batchFleet.addAgent({
|
|
401
|
+
name: `${user.id}-assistant`,
|
|
402
|
+
description: `AI assistant for ${user.id}`,
|
|
403
|
+
llm_config: { model: 'google_ai/gemini-2.5-pro', context_window: 32000 },
|
|
404
|
+
system_prompt: { value: `You are an AI assistant for ${user.id}.` },
|
|
405
|
+
memory_blocks: [{
|
|
406
|
+
name: 'company-info',
|
|
407
|
+
description: 'Company information',
|
|
408
|
+
limit: 8000,
|
|
409
|
+
value: user.info
|
|
410
|
+
}]
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
await lettactl.deployFleet(batchFleet.build());
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
# Configuration Reference
|
|
232
420
|
|
|
233
421
|
## Essential Configuration
|
|
234
422
|
|
|
@@ -335,86 +523,6 @@ lettactl apply -f agents.yml
|
|
|
335
523
|
# Conversation history preserved! 🎉
|
|
336
524
|
```
|
|
337
525
|
|
|
338
|
-
## Core Features
|
|
339
|
-
|
|
340
|
-
### Smart Versioning
|
|
341
|
-
|
|
342
|
-
lettactl automatically handles versioning when content changes:
|
|
343
|
-
|
|
344
|
-
```yaml
|
|
345
|
-
memory_blocks:
|
|
346
|
-
- name: user_data
|
|
347
|
-
description: "User information"
|
|
348
|
-
value: "Updated content here"
|
|
349
|
-
# lettactl creates: user_data__v__20241202-a1b2c3d4
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
**User-defined versions:**
|
|
353
|
-
```yaml
|
|
354
|
-
memory_blocks:
|
|
355
|
-
- name: campaign_brief
|
|
356
|
-
version: "summer-2024-launch" # Your custom tag
|
|
357
|
-
value: "Summer campaign details..."
|
|
358
|
-
# Creates: campaign_brief__v__summer-2024-launch
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
### Diff-Based Updates
|
|
362
|
-
|
|
363
|
-
When you change system prompts or memory content, lettactl creates new versioned agents instead of overwriting existing ones:
|
|
364
|
-
|
|
365
|
-
```bash
|
|
366
|
-
# First apply creates: recipe-assistant
|
|
367
|
-
lettactl apply -f agents.yml
|
|
368
|
-
|
|
369
|
-
# After changing system prompt, creates: recipe-assistant__v__20241202-abc123
|
|
370
|
-
lettactl apply -f agents.yml
|
|
371
|
-
|
|
372
|
-
# Unchanged agents are left alone
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
### Shared Resources
|
|
376
|
-
|
|
377
|
-
Share memory blocks across multiple agents:
|
|
378
|
-
|
|
379
|
-
```yaml
|
|
380
|
-
shared_blocks:
|
|
381
|
-
- name: company_guidelines
|
|
382
|
-
description: "Company-wide AI guidelines"
|
|
383
|
-
limit: 5000
|
|
384
|
-
from_file: "shared/guidelines.md"
|
|
385
|
-
|
|
386
|
-
agents:
|
|
387
|
-
- name: sales-agent
|
|
388
|
-
shared_blocks:
|
|
389
|
-
- company_guidelines
|
|
390
|
-
# ... rest of config
|
|
391
|
-
|
|
392
|
-
- name: support-agent
|
|
393
|
-
shared_blocks:
|
|
394
|
-
- company_guidelines
|
|
395
|
-
# ... rest of config
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
### Custom Tools
|
|
399
|
-
|
|
400
|
-
Auto-discover Python tools:
|
|
401
|
-
|
|
402
|
-
```yaml
|
|
403
|
-
tools:
|
|
404
|
-
- tools/* # Auto-discover all .py files
|
|
405
|
-
- specific_tool_name # Or reference specific tools
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
Create `tools/my_tool.py`:
|
|
409
|
-
```python
|
|
410
|
-
from pydantic import BaseModel
|
|
411
|
-
|
|
412
|
-
def my_custom_tool(query: str) -> str:
|
|
413
|
-
"""Does something amazing with the query"""
|
|
414
|
-
return f"Processed: {query}"
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
|
|
418
526
|
## Complete Configuration Reference
|
|
419
527
|
|
|
420
528
|
### Agent Schema
|
|
@@ -500,16 +608,6 @@ your-project/
|
|
|
500
608
|
└── tool2.py
|
|
501
609
|
```
|
|
502
610
|
|
|
503
|
-
## Why lettactl?
|
|
504
|
-
|
|
505
|
-
Managing AI agents manually gets messy fast. You end up with:
|
|
506
|
-
- Inconsistent configurations across environments
|
|
507
|
-
- Lost work when recreating agents
|
|
508
|
-
- No version control for agent setups
|
|
509
|
-
- Painful collaboration between team members
|
|
510
|
-
|
|
511
|
-
lettactl treats your AI agents like infrastructure - versionable, reproducible, and manageable at scale.
|
|
512
|
-
|
|
513
611
|
## Advanced Features
|
|
514
612
|
|
|
515
613
|
### Fleet Cleanup Workflows
|
|
@@ -602,14 +700,6 @@ lettactl get agents
|
|
|
602
700
|
|
|
603
701
|
## Implementation Notes
|
|
604
702
|
|
|
605
|
-
### File Processing
|
|
606
|
-
|
|
607
|
-
lettactl uses efficient metadata checking for cloud storage files:
|
|
608
|
-
- Reads file metadata (size, etc.) before downloading to detect issues early
|
|
609
|
-
- Warns about very small files (≤40 bytes) that may be effectively empty
|
|
610
|
-
- Warns about very large files (>50MB) that may cause memory or timeout issues
|
|
611
|
-
- Only downloads file content when metadata checks pass
|
|
612
|
-
|
|
613
703
|
### Stateless Design
|
|
614
704
|
|
|
615
705
|
Like kubectl, lettactl is completely stateless:
|
package/dist/commands/apply.js
CHANGED
|
@@ -186,7 +186,7 @@ async function applyCommand(options, command) {
|
|
|
186
186
|
console.log(`Processing agent: ${agent.name}`);
|
|
187
187
|
if (verbose) {
|
|
188
188
|
console.log(` Description: ${agent.description}`);
|
|
189
|
-
console.log(` Tools: ${agent.tools
|
|
189
|
+
console.log(` Tools: ${agent.tools?.join(', ') || 'none'}`);
|
|
190
190
|
console.log(` Memory blocks: ${agent.memory_blocks?.length || 0}`);
|
|
191
191
|
console.log(` Folders: ${agent.folders?.length || 0}`);
|
|
192
192
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,15 @@ export interface FleetParserOptions {
|
|
|
6
6
|
export declare class FleetParser {
|
|
7
7
|
basePath: string;
|
|
8
8
|
private storageManager;
|
|
9
|
+
private toolConfigs;
|
|
9
10
|
constructor(configPath: string, options?: FleetParserOptions);
|
|
10
11
|
get storageBackend(): StorageBackendManager;
|
|
11
12
|
parseFleetConfig(configPath: string): Promise<FleetConfig>;
|
|
13
|
+
resolveConfig(config: FleetConfig): Promise<FleetConfig>;
|
|
14
|
+
/**
|
|
15
|
+
* Generic content resolver for any resource with from_file, from_bucket, or value
|
|
16
|
+
*/
|
|
17
|
+
private resolveContent;
|
|
12
18
|
private resolveBlockContent;
|
|
13
19
|
private resolvePromptContent;
|
|
14
20
|
private expandFileFolders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-parser.d.ts","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAgB,MAAM,mBAAmB,CAAC;AAGhG,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,qBAAa,WAAW;IACf,QAAQ,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,cAAc,CAAwB;
|
|
1
|
+
{"version":3,"file":"fleet-parser.d.ts","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAgB,MAAM,mBAAmB,CAAC;AAGhG,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,qBAAa,WAAW;IACf,QAAQ,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,WAAW,CAA+B;gBAEtC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAOhE,IAAI,cAAc,IAAI,qBAAqB,CAE1C;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAW1D,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAgC9D;;OAEG;YACW,cAAc;YA2Bd,mBAAmB;YAKnB,oBAAoB;IAmBlC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,oBAAoB;IA0CtB,qBAAqB,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,GAAG,EACX,OAAO,GAAE,OAAe,EACxB,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkFhC"}
|
package/dist/lib/fleet-parser.js
CHANGED
|
@@ -41,6 +41,7 @@ const storage_backend_1 = require("./storage-backend");
|
|
|
41
41
|
const config_validators_1 = require("./config-validators");
|
|
42
42
|
class FleetParser {
|
|
43
43
|
constructor(configPath, options = {}) {
|
|
44
|
+
this.toolConfigs = new Map();
|
|
44
45
|
this.basePath = path.dirname(configPath);
|
|
45
46
|
this.storageManager = new storage_backend_1.StorageBackendManager({
|
|
46
47
|
supabaseBackend: options.supabaseBackend
|
|
@@ -55,6 +56,9 @@ class FleetParser {
|
|
|
55
56
|
}
|
|
56
57
|
const configContent = fs.readFileSync(configPath, 'utf8');
|
|
57
58
|
const config = yaml.load(configContent);
|
|
59
|
+
return await this.resolveConfig(config);
|
|
60
|
+
}
|
|
61
|
+
async resolveConfig(config) {
|
|
58
62
|
// Validate configuration before processing
|
|
59
63
|
config_validators_1.FleetConfigValidator.validate(config);
|
|
60
64
|
// Auto-expand folders that reference "files" directory
|
|
@@ -79,29 +83,39 @@ class FleetParser {
|
|
|
79
83
|
}
|
|
80
84
|
return config;
|
|
81
85
|
}
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Generic content resolver for any resource with from_file, from_bucket, or value
|
|
88
|
+
*/
|
|
89
|
+
async resolveContent(config, defaultPath, resourceName) {
|
|
90
|
+
if (config.from_file) {
|
|
84
91
|
// Read from local filesystem
|
|
85
|
-
const filePath = path.resolve(this.basePath,
|
|
86
|
-
|
|
92
|
+
const filePath = path.resolve(this.basePath, config.from_file);
|
|
93
|
+
return fs.readFileSync(filePath, 'utf8');
|
|
87
94
|
}
|
|
88
|
-
else if (
|
|
89
|
-
// Read from cloud bucket
|
|
90
|
-
const bucketConfig =
|
|
91
|
-
|
|
95
|
+
else if (config.from_bucket) {
|
|
96
|
+
// Read from cloud bucket
|
|
97
|
+
const bucketConfig = config.from_bucket;
|
|
98
|
+
return await this.storageManager.readFromBucket(bucketConfig);
|
|
92
99
|
}
|
|
93
|
-
else if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
throw new Error(`Memory block '${block.name}' has no value, from_file, or from_bucket specified, and default file memory-blocks/${block.name}.md not found`);
|
|
100
|
+
else if (config.value) {
|
|
101
|
+
return config.value;
|
|
102
|
+
}
|
|
103
|
+
else if (defaultPath && fs.existsSync(defaultPath)) {
|
|
104
|
+
// Smart default fallback
|
|
105
|
+
const content = fs.readFileSync(defaultPath, 'utf8');
|
|
106
|
+
if (resourceName) {
|
|
107
|
+
console.log(`Auto-loaded ${resourceName} from ${path.relative(this.basePath, defaultPath)}`);
|
|
102
108
|
}
|
|
109
|
+
return content;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
throw new Error(`Resource has no value, from_file, or from_bucket specified${defaultPath ? `, and default file ${path.relative(this.basePath, defaultPath)} not found` : ''}`);
|
|
103
113
|
}
|
|
104
114
|
}
|
|
115
|
+
async resolveBlockContent(block) {
|
|
116
|
+
const defaultPath = path.resolve(this.basePath, 'memory-blocks', `${block.name}.md`);
|
|
117
|
+
block.value = await this.resolveContent(block, defaultPath, `memory block: ${block.name}`);
|
|
118
|
+
}
|
|
105
119
|
async resolvePromptContent(prompt) {
|
|
106
120
|
// Load base Letta system instructions
|
|
107
121
|
const basePath = path.resolve(this.basePath, 'config', 'base-letta-system.md');
|
|
@@ -109,22 +123,8 @@ class FleetParser {
|
|
|
109
123
|
if (fs.existsSync(basePath)) {
|
|
110
124
|
baseInstructions = fs.readFileSync(basePath, 'utf8').trim();
|
|
111
125
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const filePath = path.resolve(this.basePath, prompt.from_file);
|
|
115
|
-
userPrompt = fs.readFileSync(filePath, 'utf8').trim();
|
|
116
|
-
}
|
|
117
|
-
else if (prompt.from_bucket) {
|
|
118
|
-
// Read from cloud bucket using new structure
|
|
119
|
-
const bucketConfig = prompt.from_bucket;
|
|
120
|
-
userPrompt = (await this.storageManager.readFromBucket(bucketConfig)).trim();
|
|
121
|
-
}
|
|
122
|
-
else if (prompt.value) {
|
|
123
|
-
userPrompt = prompt.value.trim();
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
throw new Error(`System prompt has no value, from_file, or from_bucket specified`);
|
|
127
|
-
}
|
|
126
|
+
// Use generic content resolver
|
|
127
|
+
const userPrompt = (await this.resolveContent(prompt, undefined, 'system prompt')).trim();
|
|
128
128
|
// Concatenate base instructions with user prompt
|
|
129
129
|
if (baseInstructions) {
|
|
130
130
|
prompt.value = baseInstructions + '\n\n' + userPrompt;
|
|
@@ -194,26 +194,39 @@ class FleetParser {
|
|
|
194
194
|
return;
|
|
195
195
|
for (const agent of config.agents) {
|
|
196
196
|
if (agent.tools) {
|
|
197
|
-
//
|
|
197
|
+
// Cast to any[] to handle YAML parsing that can contain objects
|
|
198
|
+
const rawTools = agent.tools;
|
|
198
199
|
const expandedTools = [];
|
|
199
|
-
for (const tool of
|
|
200
|
-
if (tool === '
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
200
|
+
for (const tool of rawTools) {
|
|
201
|
+
if (typeof tool === 'string') {
|
|
202
|
+
if (tool === 'tools/*') {
|
|
203
|
+
// User explicitly requested auto-discovery of all tools
|
|
204
|
+
const toolsDir = path.resolve(this.basePath, 'tools');
|
|
205
|
+
if (fs.existsSync(toolsDir)) {
|
|
206
|
+
const toolFiles = fs.readdirSync(toolsDir)
|
|
207
|
+
.filter(file => file.endsWith('.py'))
|
|
208
|
+
.map(file => path.basename(file, '.py'));
|
|
209
|
+
expandedTools.push(...toolFiles);
|
|
210
|
+
console.log(`Auto-discovered ${toolFiles.length} tools: ${toolFiles.join(', ')}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// Regular tool name specified explicitly
|
|
215
|
+
expandedTools.push(tool);
|
|
209
216
|
}
|
|
210
217
|
}
|
|
218
|
+
else if (typeof tool === 'object' && tool.name) {
|
|
219
|
+
// Tool configuration object with bucket source
|
|
220
|
+
// Store the full config for later retrieval in registerRequiredTools
|
|
221
|
+
this.toolConfigs.set(tool.name, tool);
|
|
222
|
+
expandedTools.push(tool.name);
|
|
223
|
+
}
|
|
211
224
|
else {
|
|
212
|
-
// Regular tool name specified explicitly
|
|
225
|
+
// Regular tool name specified explicitly (backward compatibility)
|
|
213
226
|
expandedTools.push(tool);
|
|
214
227
|
}
|
|
215
228
|
}
|
|
216
|
-
//
|
|
229
|
+
// Set normalized tool names
|
|
217
230
|
agent.tools = [...new Set(expandedTools)];
|
|
218
231
|
}
|
|
219
232
|
}
|
|
@@ -226,16 +239,17 @@ class FleetParser {
|
|
|
226
239
|
? existingTools
|
|
227
240
|
: (existingTools.items || []);
|
|
228
241
|
// Collect all unique tool names from all agents
|
|
229
|
-
const
|
|
242
|
+
const requiredToolNames = new Set();
|
|
230
243
|
if (config.agents) {
|
|
231
244
|
for (const agent of config.agents) {
|
|
232
245
|
if (agent.tools) {
|
|
233
|
-
agent.tools.forEach(
|
|
246
|
+
agent.tools.forEach(toolName => requiredToolNames.add(toolName));
|
|
234
247
|
}
|
|
235
248
|
}
|
|
236
249
|
}
|
|
237
250
|
// Register missing tools
|
|
238
|
-
for (const toolName of
|
|
251
|
+
for (const toolName of requiredToolNames) {
|
|
252
|
+
const toolConfig = this.toolConfigs.get(toolName);
|
|
239
253
|
// Skip built-in tools
|
|
240
254
|
if (['archival_memory_insert', 'archival_memory_search'].includes(toolName)) {
|
|
241
255
|
const existingTool = existingToolsArray.find((t) => t.name === toolName);
|
|
@@ -246,40 +260,32 @@ class FleetParser {
|
|
|
246
260
|
}
|
|
247
261
|
// Check if tool already exists
|
|
248
262
|
let tool = existingToolsArray.find((t) => t.name === toolName);
|
|
249
|
-
const toolPath = path.join(this.basePath, 'tools', `${toolName}.py`);
|
|
250
263
|
if (!tool) {
|
|
251
264
|
// Tool doesn't exist - register it
|
|
252
|
-
|
|
265
|
+
try {
|
|
253
266
|
if (verbose)
|
|
254
267
|
console.log(`Registering tool: ${toolName}`);
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
console.warn(`Failed to register tool ${toolName}: ${error.message}`);
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
268
|
+
const defaultPath = path.join(this.basePath, 'tools', `${toolName}.py`);
|
|
269
|
+
const sourceCode = await this.resolveContent(typeof toolConfig === 'object' ? toolConfig : {}, defaultPath, `tool: ${toolName}`);
|
|
270
|
+
tool = await client.createTool({ source_code: sourceCode });
|
|
271
|
+
if (verbose)
|
|
272
|
+
console.log(`Tool ${toolName} registered`);
|
|
265
273
|
}
|
|
266
|
-
|
|
267
|
-
console.warn(`
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.warn(`Failed to register tool ${toolName}: ${error.message}`);
|
|
268
276
|
continue;
|
|
269
277
|
}
|
|
270
278
|
}
|
|
271
279
|
else {
|
|
272
280
|
// Tool exists - check if source code has changed
|
|
273
281
|
const currentSourceHash = toolSourceHashes[toolName];
|
|
274
|
-
if (currentSourceHash
|
|
282
|
+
if (currentSourceHash) {
|
|
275
283
|
// We have a hash for this tool, meaning source code is being tracked
|
|
276
|
-
// For comprehensive change detection, we would need to get the existing tool's
|
|
277
|
-
// source code and compare hashes. For now, we'll re-register tools when
|
|
278
|
-
// their source exists and they're being tracked for changes.
|
|
279
284
|
if (verbose)
|
|
280
285
|
console.log(`Re-registering tool due to potential source changes: ${toolName}`);
|
|
281
286
|
try {
|
|
282
|
-
const
|
|
287
|
+
const defaultPath = path.join(this.basePath, 'tools', `${toolName}.py`);
|
|
288
|
+
const sourceCode = await this.resolveContent(typeof toolConfig === 'object' ? toolConfig : {}, defaultPath, `tool: ${toolName}`);
|
|
283
289
|
tool = await client.createTool({ source_code: sourceCode });
|
|
284
290
|
if (verbose)
|
|
285
291
|
console.log(`Tool ${toolName} re-registered`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-parser.js","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,uCAAyB;AACzB,2CAA6B;AAE7B,uDAAgG;AAChG,2DAA2D;AAM3D,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"fleet-parser.js","sourceRoot":"","sources":["../../src/lib/fleet-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { FleetConfig, AgentConfig } from './types/fleet-config';
|
|
2
|
+
export interface LettaCtlOptions {
|
|
3
|
+
lettaApiUrl?: string;
|
|
4
|
+
lettaApiKey?: string;
|
|
5
|
+
supabaseUrl?: string;
|
|
6
|
+
supabaseAnonKey?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class LettaCtl {
|
|
9
|
+
private supabaseBackend?;
|
|
10
|
+
constructor(options?: LettaCtlOptions);
|
|
11
|
+
deployFleet(config: FleetConfig, options?: {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
agentPattern?: string;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
deployFromYaml(yamlPath: string, options?: {
|
|
16
|
+
dryRun?: boolean;
|
|
17
|
+
agentPattern?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
deployFromYamlString(yamlContent: string, options?: {
|
|
20
|
+
dryRun?: boolean;
|
|
21
|
+
agentPattern?: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
validateFleet(config: FleetConfig): boolean;
|
|
24
|
+
createFleetConfig(): FleetConfigBuilder;
|
|
25
|
+
}
|
|
26
|
+
export declare class FleetConfigBuilder {
|
|
27
|
+
private config;
|
|
28
|
+
addSharedBlock(block: {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
limit: number;
|
|
32
|
+
value?: string;
|
|
33
|
+
from_file?: string;
|
|
34
|
+
from_bucket?: any;
|
|
35
|
+
}): this;
|
|
36
|
+
addAgent(agent: AgentConfig): this;
|
|
37
|
+
build(): FleetConfig;
|
|
38
|
+
}
|
|
39
|
+
export { FleetConfig, AgentConfig } from './types/fleet-config';
|
|
40
|
+
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQhE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,eAAe,CAAC,CAAyB;gBAErC,OAAO,GAAE,eAAoB;IAWnC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAetG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrH,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAS3C,iBAAiB,IAAI,kBAAkB;CAGxC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI;IAQxI,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKlC,KAAK,IAAI,WAAW;CAGrB;AAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/sdk.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FleetConfigBuilder = exports.LettaCtl = void 0;
|
|
37
|
+
const storage_backend_1 = require("./lib/storage-backend");
|
|
38
|
+
const config_validators_1 = require("./lib/config-validators");
|
|
39
|
+
const apply_1 = require("./commands/apply");
|
|
40
|
+
const yaml = __importStar(require("js-yaml"));
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const os = __importStar(require("os"));
|
|
44
|
+
class LettaCtl {
|
|
45
|
+
constructor(options = {}) {
|
|
46
|
+
if (options.lettaApiUrl)
|
|
47
|
+
process.env.LETTA_API_URL = options.lettaApiUrl;
|
|
48
|
+
if (options.lettaApiKey)
|
|
49
|
+
process.env.LETTA_API_KEY = options.lettaApiKey;
|
|
50
|
+
if (options.supabaseUrl)
|
|
51
|
+
process.env.SUPABASE_URL = options.supabaseUrl;
|
|
52
|
+
if (options.supabaseAnonKey)
|
|
53
|
+
process.env.SUPABASE_ANON_KEY = options.supabaseAnonKey;
|
|
54
|
+
if (options.supabaseUrl && options.supabaseAnonKey) {
|
|
55
|
+
this.supabaseBackend = new storage_backend_1.SupabaseStorageBackend();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async deployFleet(config, options) {
|
|
59
|
+
config_validators_1.FleetConfigValidator.validate(config);
|
|
60
|
+
const tempDir = path.join(os.tmpdir(), `lettactl-${Date.now()}`);
|
|
61
|
+
const tempFile = path.join(tempDir, 'fleet.yaml');
|
|
62
|
+
try {
|
|
63
|
+
fs.mkdirSync(tempDir, { recursive: true });
|
|
64
|
+
fs.writeFileSync(tempFile, yaml.dump(config));
|
|
65
|
+
await (0, apply_1.applyCommand)({
|
|
66
|
+
file: tempFile,
|
|
67
|
+
agent: options?.agentPattern,
|
|
68
|
+
dryRun: options?.dryRun || false
|
|
69
|
+
}, {
|
|
70
|
+
parent: {
|
|
71
|
+
opts: () => ({ verbose: false })
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
if (fs.existsSync(tempFile)) {
|
|
77
|
+
fs.unlinkSync(tempFile);
|
|
78
|
+
}
|
|
79
|
+
if (fs.existsSync(tempDir)) {
|
|
80
|
+
fs.rmdirSync(tempDir);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async deployFromYaml(yamlPath, options) {
|
|
85
|
+
await (0, apply_1.applyCommand)({
|
|
86
|
+
file: yamlPath,
|
|
87
|
+
agent: options?.agentPattern,
|
|
88
|
+
dryRun: options?.dryRun || false
|
|
89
|
+
}, {
|
|
90
|
+
parent: {
|
|
91
|
+
opts: () => ({ verbose: false })
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async deployFromYamlString(yamlContent, options) {
|
|
96
|
+
const config = yaml.load(yamlContent);
|
|
97
|
+
await this.deployFleet(config, options);
|
|
98
|
+
}
|
|
99
|
+
validateFleet(config) {
|
|
100
|
+
try {
|
|
101
|
+
config_validators_1.FleetConfigValidator.validate(config);
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
createFleetConfig() {
|
|
109
|
+
return new FleetConfigBuilder();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.LettaCtl = LettaCtl;
|
|
113
|
+
class FleetConfigBuilder {
|
|
114
|
+
constructor() {
|
|
115
|
+
this.config = { agents: [] };
|
|
116
|
+
}
|
|
117
|
+
addSharedBlock(block) {
|
|
118
|
+
if (!this.config.shared_blocks) {
|
|
119
|
+
this.config.shared_blocks = [];
|
|
120
|
+
}
|
|
121
|
+
this.config.shared_blocks.push(block);
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
addAgent(agent) {
|
|
125
|
+
this.config.agents.push(agent);
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
build() {
|
|
129
|
+
return this.config;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.FleetConfigBuilder = FleetConfigBuilder;
|
|
133
|
+
//# sourceMappingURL=sdk.js.map
|
package/dist/sdk.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,21 @@ export interface AgentConfig {
|
|
|
14
14
|
name: string;
|
|
15
15
|
description: string;
|
|
16
16
|
system_prompt: PromptConfig;
|
|
17
|
-
|
|
17
|
+
llm_config: LLMConfig;
|
|
18
|
+
tools?: string[];
|
|
18
19
|
shared_blocks?: string[];
|
|
19
20
|
memory_blocks?: MemoryBlock[];
|
|
20
21
|
folders?: FolderConfig[];
|
|
21
|
-
llm_config?: LLMConfig;
|
|
22
22
|
embedding?: string;
|
|
23
23
|
}
|
|
24
|
+
export interface ToolConfig {
|
|
25
|
+
name: string;
|
|
26
|
+
from_bucket: {
|
|
27
|
+
provider: string;
|
|
28
|
+
bucket: string;
|
|
29
|
+
path: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
24
32
|
export interface FolderConfig {
|
|
25
33
|
name: string;
|
|
26
34
|
files: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-config.d.ts","sourceRoot":"","sources":["../../src/types/fleet-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,YAAY,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"fleet-config.d.ts","sourceRoot":"","sources":["../../src/types/fleet-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lettactl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "kubectl-style CLI for managing Letta AI agent fleets",
|
|
5
|
-
"main": "dist/
|
|
5
|
+
"main": "dist/sdk.js",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./dist/sdk.js",
|
|
8
|
+
"./cli": "./dist/index.js"
|
|
9
|
+
},
|
|
6
10
|
"bin": {
|
|
7
11
|
"lettactl": "./dist/index.js"
|
|
8
12
|
},
|