lettactl 0.7.20 → 0.7.21
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 +17 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +14 -4
- package/dist/commands/apply.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -118,6 +118,7 @@ lettactl apply -f agents.yml --agent my-agent # Deploy specific agent
|
|
|
118
118
|
lettactl apply -f agents.yml --dry-run # See what would change
|
|
119
119
|
lettactl apply -f agents.yml --root . # Specify root directory for file resolution
|
|
120
120
|
lettactl apply -f agents.yml -v # Verbose output
|
|
121
|
+
lettactl apply -f agents.yml -q # Quiet mode (for CI pipelines)
|
|
121
122
|
|
|
122
123
|
# Template mode: apply config to existing agents matching a glob pattern
|
|
123
124
|
lettactl apply -f template.yaml --match "*-assistant" # All agents ending in -assistant
|
|
@@ -272,11 +273,27 @@ lettactl describe tool my-tool -o json
|
|
|
272
273
|
lettactl messages my-agent # View conversation history
|
|
273
274
|
```
|
|
274
275
|
|
|
276
|
+
### Async Runs
|
|
277
|
+
```bash
|
|
278
|
+
lettactl runs # List async job runs
|
|
279
|
+
lettactl runs --active # Show only active runs
|
|
280
|
+
lettactl runs -a my-agent # Filter by agent
|
|
281
|
+
lettactl runs -o json # JSON output for scripting
|
|
282
|
+
lettactl run <run-id> # Get run details
|
|
283
|
+
lettactl run <run-id> --wait # Wait for run to complete
|
|
284
|
+
lettactl run <run-id> --messages # Show run messages
|
|
285
|
+
lettactl run <run-id> -o json # JSON output
|
|
286
|
+
lettactl run-delete <run-id> # Cancel/delete a run
|
|
287
|
+
```
|
|
288
|
+
|
|
275
289
|
### Observability
|
|
276
290
|
```bash
|
|
277
291
|
lettactl health # Check server connectivity
|
|
292
|
+
lettactl health -o json # JSON output for CI/scripts
|
|
278
293
|
lettactl files my-agent # Show attached files
|
|
294
|
+
lettactl files my-agent -o json # JSON output
|
|
279
295
|
lettactl context my-agent # Show context window usage
|
|
296
|
+
lettactl context my-agent -o json # JSON output
|
|
280
297
|
```
|
|
281
298
|
|
|
282
299
|
### Validate Configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"AAeA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"AAeA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,GAAG,iBA6N1I"}
|
package/dist/commands/apply.js
CHANGED
|
@@ -17,8 +17,9 @@ const logger_1 = require("../lib/logger");
|
|
|
17
17
|
async function applyCommand(options, command) {
|
|
18
18
|
// Quiet mode overrides verbose
|
|
19
19
|
const verbose = (0, logger_1.isQuietMode)() ? false : (command.parent?.opts().verbose || false);
|
|
20
|
+
const spinnerEnabled = (0, spinner_1.getSpinnerEnabled)(command);
|
|
20
21
|
try {
|
|
21
|
-
(0,
|
|
22
|
+
const parseSpinner = (0, spinner_1.createSpinner)(`Parsing ${options.file}...`, spinnerEnabled).start();
|
|
22
23
|
if (options.dryRun) {
|
|
23
24
|
(0, logger_1.log)('Dry-run mode enabled');
|
|
24
25
|
}
|
|
@@ -42,6 +43,7 @@ async function applyCommand(options, command) {
|
|
|
42
43
|
rootPath: options.root
|
|
43
44
|
});
|
|
44
45
|
const config = await parser.parseFleetConfig(options.file);
|
|
46
|
+
parseSpinner.succeed(`Parsed ${options.file} (${config.agents.length} agents)`);
|
|
45
47
|
if (verbose)
|
|
46
48
|
(0, logger_1.log)(`Found ${config.agents.length} agents in configuration`);
|
|
47
49
|
// Template mode: apply config to existing agents matching pattern
|
|
@@ -55,12 +57,14 @@ async function applyCommand(options, command) {
|
|
|
55
57
|
const diffEngine = new diff_engine_1.DiffEngine(client, blockManager, parser.basePath);
|
|
56
58
|
const fileTracker = new file_content_tracker_1.FileContentTracker(parser.basePath, parser.storageBackend);
|
|
57
59
|
// Load existing resources
|
|
60
|
+
const loadSpinner = (0, spinner_1.createSpinner)('Loading existing resources...', spinnerEnabled).start();
|
|
58
61
|
if (verbose)
|
|
59
62
|
(0, logger_1.log)('Loading existing blocks...');
|
|
60
63
|
await blockManager.loadExistingBlocks();
|
|
61
64
|
if (verbose)
|
|
62
65
|
(0, logger_1.log)('Loading existing agents...');
|
|
63
66
|
await agentManager.loadExistingAgents();
|
|
67
|
+
loadSpinner.succeed('Loaded existing resources');
|
|
64
68
|
// Dry-run mode: compute and display diffs without applying
|
|
65
69
|
if (options.dryRun) {
|
|
66
70
|
const results = await (0, dry_run_1.computeDryRunDiffs)(config, {
|
|
@@ -77,7 +81,9 @@ async function applyCommand(options, command) {
|
|
|
77
81
|
return;
|
|
78
82
|
}
|
|
79
83
|
// Process shared blocks
|
|
84
|
+
const blockSpinner = (0, spinner_1.createSpinner)('Processing shared blocks...', spinnerEnabled).start();
|
|
80
85
|
const sharedBlockIds = await (0, apply_helpers_1.processSharedBlocks)(config, blockManager, verbose);
|
|
86
|
+
blockSpinner.succeed(`Processed ${sharedBlockIds.size} shared blocks`);
|
|
81
87
|
// Generate tool source hashes and register tools
|
|
82
88
|
const allToolNames = new Set();
|
|
83
89
|
for (const agent of config.agents) {
|
|
@@ -86,14 +92,18 @@ async function applyCommand(options, command) {
|
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
const globalToolSourceHashes = fileTracker.generateToolSourceHashes(Array.from(allToolNames), parser.toolConfigs);
|
|
95
|
+
const toolSpinner = (0, spinner_1.createSpinner)('Registering tools...', spinnerEnabled).start();
|
|
89
96
|
if (verbose)
|
|
90
97
|
(0, logger_1.log)('Registering tools...');
|
|
91
98
|
const { toolNameToId, updatedTools, builtinTools } = await parser.registerRequiredTools(config, client, verbose, globalToolSourceHashes);
|
|
99
|
+
toolSpinner.succeed(`Registered ${Object.keys(toolNameToId).length} tools`);
|
|
92
100
|
// Register MCP servers
|
|
93
101
|
if (config.mcp_servers && config.mcp_servers.length > 0) {
|
|
102
|
+
const mcpSpinner = (0, spinner_1.createSpinner)('Registering MCP servers...', spinnerEnabled).start();
|
|
94
103
|
if (verbose)
|
|
95
104
|
(0, logger_1.log)('Registering MCP servers...');
|
|
96
105
|
const mcpResult = await parser.registerMcpServers(config, client, verbose);
|
|
106
|
+
mcpSpinner.succeed(`Registered ${config.mcp_servers.length} MCP servers`);
|
|
97
107
|
// Display MCP server operation summary
|
|
98
108
|
if (mcpResult.created.length > 0) {
|
|
99
109
|
(0, logger_1.log)(`MCP servers created: ${mcpResult.created.join(', ')}`);
|
|
@@ -109,15 +119,15 @@ async function applyCommand(options, command) {
|
|
|
109
119
|
}
|
|
110
120
|
}
|
|
111
121
|
// Process folders
|
|
122
|
+
const folderSpinner = (0, spinner_1.createSpinner)('Processing folders...', spinnerEnabled).start();
|
|
112
123
|
const createdFolders = await (0, apply_helpers_1.processFolders)(config, client, parser, options, verbose);
|
|
124
|
+
folderSpinner.succeed(`Processed ${Object.keys(createdFolders).length} folders`);
|
|
113
125
|
// Process agents
|
|
114
|
-
const spinnerEnabled = (0, spinner_1.getSpinnerEnabled)(command);
|
|
115
126
|
if (verbose)
|
|
116
127
|
(0, logger_1.log)('Processing agents...');
|
|
117
128
|
for (const agent of config.agents) {
|
|
118
129
|
if (options.agent && !agent.name.includes(options.agent))
|
|
119
130
|
continue;
|
|
120
|
-
(0, logger_1.log)(`Processing agent: ${agent.name}`);
|
|
121
131
|
if (verbose) {
|
|
122
132
|
(0, logger_1.log)(` Description: ${agent.description}`);
|
|
123
133
|
(0, logger_1.log)(` Tools: ${agent.tools?.join(', ') || 'none'}`);
|
|
@@ -158,7 +168,7 @@ async function applyCommand(options, command) {
|
|
|
158
168
|
// Check if changes needed
|
|
159
169
|
const changes = agentManager.getConfigChanges(existingAgent, agentConfig);
|
|
160
170
|
if (!changes.hasChanges) {
|
|
161
|
-
(0, logger_1.log)(`Agent ${agent.name} already
|
|
171
|
+
(0, logger_1.log)(`Agent ${agent.name} already up to date`);
|
|
162
172
|
continue;
|
|
163
173
|
}
|
|
164
174
|
// Read previous folder file hashes from agent metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":";;AAeA,
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
|