swarm-engine 1.43.0 → 1.51.0
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 +145 -42
- package/agents/implementer.md +1 -14
- package/agents/orchestrator.md +127 -246
- package/agents/reviewer.md +3 -18
- package/dist/cli/commands/agents.js +13 -1
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/dashboard.d.ts +3 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +43 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/orchestrate.d.ts.map +1 -1
- package/dist/cli/commands/orchestrate.js +17 -0
- package/dist/cli/commands/orchestrate.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +20 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +5 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +4 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/types.d.ts +24 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/index.js +2 -2
- package/dist/memory/index.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts +8 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -1
- package/dist/runtime/agent-runner.js +93 -4
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/runtime/backends/claude.d.ts +1 -0
- package/dist/runtime/backends/claude.d.ts.map +1 -1
- package/dist/runtime/backends/claude.js +50 -2
- package/dist/runtime/backends/claude.js.map +1 -1
- package/dist/runtime/backends/codex.d.ts.map +1 -1
- package/dist/runtime/backends/codex.js +4 -0
- package/dist/runtime/backends/codex.js.map +1 -1
- package/dist/runtime/backends/gemini.d.ts.map +1 -1
- package/dist/runtime/backends/gemini.js +4 -0
- package/dist/runtime/backends/gemini.js.map +1 -1
- package/dist/runtime/benefits.d.ts +81 -1
- package/dist/runtime/benefits.d.ts.map +1 -1
- package/dist/runtime/benefits.js +199 -12
- package/dist/runtime/benefits.js.map +1 -1
- package/dist/runtime/cache-optimizer.d.ts +7 -3
- package/dist/runtime/cache-optimizer.d.ts.map +1 -1
- package/dist/runtime/cache-optimizer.js +11 -7
- package/dist/runtime/cache-optimizer.js.map +1 -1
- package/dist/runtime/compaction.d.ts +6 -1
- package/dist/runtime/compaction.d.ts.map +1 -1
- package/dist/runtime/compaction.js +39 -2
- package/dist/runtime/compaction.js.map +1 -1
- package/dist/runtime/cost-model.d.ts.map +1 -1
- package/dist/runtime/cost-model.js +20 -17
- package/dist/runtime/cost-model.js.map +1 -1
- package/dist/runtime/engine.d.ts +1 -0
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +62 -2
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/graph-discovery.js +2 -2
- package/dist/runtime/graph-discovery.js.map +1 -1
- package/dist/runtime/graph-trajectory.js +3 -3
- package/dist/runtime/graph-trajectory.js.map +1 -1
- package/dist/runtime/lsp.d.ts.map +1 -1
- package/dist/runtime/lsp.js +4 -0
- package/dist/runtime/lsp.js.map +1 -1
- package/dist/runtime/mcp.d.ts +1 -0
- package/dist/runtime/mcp.d.ts.map +1 -1
- package/dist/runtime/mcp.js +38 -0
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/runtime/output-summarizer.d.ts +45 -0
- package/dist/runtime/output-summarizer.d.ts.map +1 -0
- package/dist/runtime/output-summarizer.js +171 -0
- package/dist/runtime/output-summarizer.js.map +1 -0
- package/dist/runtime/plugins.d.ts +5 -1
- package/dist/runtime/plugins.d.ts.map +1 -1
- package/dist/runtime/plugins.js +14 -2
- package/dist/runtime/plugins.js.map +1 -1
- package/dist/runtime/prompt-tier.d.ts +33 -0
- package/dist/runtime/prompt-tier.d.ts.map +1 -0
- package/dist/runtime/prompt-tier.js +105 -0
- package/dist/runtime/prompt-tier.js.map +1 -0
- package/dist/runtime/sharing.js +2 -1
- package/dist/runtime/sharing.js.map +1 -1
- package/dist/runtime/stats.d.ts +2 -0
- package/dist/runtime/stats.d.ts.map +1 -1
- package/dist/runtime/stats.js +17 -3
- package/dist/runtime/stats.js.map +1 -1
- package/dist/utils/project-config.d.ts +20 -0
- package/dist/utils/project-config.d.ts.map +1 -1
- package/dist/utils/project-config.js +46 -1
- package/dist/utils/project-config.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js +5 -1
- package/dist/utils/redact.js.map +1 -1
- package/dist/web/bridge.d.ts +47 -0
- package/dist/web/bridge.d.ts.map +1 -0
- package/dist/web/bridge.js +267 -0
- package/dist/web/bridge.js.map +1 -0
- package/dist/web/graph-api.d.ts +19 -0
- package/dist/web/graph-api.d.ts.map +1 -0
- package/dist/web/graph-api.js +157 -0
- package/dist/web/graph-api.js.map +1 -0
- package/dist/web/index.d.ts +21 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +38 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/public/index.html +1304 -0
- package/dist/web/public/public/index.html +1307 -0
- package/dist/web/server.d.ts +24 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +113 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/tray.d.ts +23 -0
- package/dist/web/tray.d.ts.map +1 -0
- package/dist/web/tray.js +205 -0
- package/dist/web/tray.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostToolUse hook that injects compact summaries after verbose tool output.
|
|
3
|
+
*
|
|
4
|
+
* The Claude Agent SDK doesn't allow replacing built-in tool output (only MCP tools
|
|
5
|
+
* via `updatedMCPToolOutput`). So the raw output still enters context. But by injecting
|
|
6
|
+
* an `additionalContext` summary, we give the model a compressed signal of what matters —
|
|
7
|
+
* reducing downstream reasoning tokens and helping the model focus on errors/failures
|
|
8
|
+
* rather than parsing 500 lines of passing tests.
|
|
9
|
+
*
|
|
10
|
+
* Fires only when output exceeds a line threshold (default: 50 lines).
|
|
11
|
+
* Targets: Bash tool output (test runs, builds, logs, verbose commands).
|
|
12
|
+
*/
|
|
13
|
+
export interface OutputSummary {
|
|
14
|
+
totalLines: number;
|
|
15
|
+
summaryLines: string[];
|
|
16
|
+
category: 'test' | 'build' | 'error' | 'log' | 'generic';
|
|
17
|
+
errorCount: number;
|
|
18
|
+
warningCount: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Summarize verbose tool output into a compact digest.
|
|
22
|
+
* Returns null if the output is short enough to not need summarization.
|
|
23
|
+
*/
|
|
24
|
+
export declare function summarizeOutput(output: string): OutputSummary | null;
|
|
25
|
+
/**
|
|
26
|
+
* Format a summary into the additionalContext string injected after tool output.
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatSummaryContext(summary: OutputSummary): string;
|
|
29
|
+
/**
|
|
30
|
+
* Build a PostToolUse hook callback for the Claude Agent SDK.
|
|
31
|
+
* Injects additionalContext after verbose Bash output.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createOutputSummarizerHook(): (input: {
|
|
34
|
+
tool_name: string;
|
|
35
|
+
tool_response: unknown;
|
|
36
|
+
}, toolUseID: string | undefined, options: {
|
|
37
|
+
signal: AbortSignal;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
continue: true;
|
|
40
|
+
hookSpecificOutput?: {
|
|
41
|
+
hookEventName: 'PostToolUse';
|
|
42
|
+
additionalContext?: string;
|
|
43
|
+
};
|
|
44
|
+
}>;
|
|
45
|
+
//# sourceMappingURL=output-summarizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-summarizer.d.ts","sourceRoot":"","sources":["../../src/runtime/output-summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkDH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgEpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAanE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,CAC5C,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,EACpD,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC7B,OAAO,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,kBAAkB,CAAC,EAAE;QACnB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH,CAAC,CAuBD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostToolUse hook that injects compact summaries after verbose tool output.
|
|
3
|
+
*
|
|
4
|
+
* The Claude Agent SDK doesn't allow replacing built-in tool output (only MCP tools
|
|
5
|
+
* via `updatedMCPToolOutput`). So the raw output still enters context. But by injecting
|
|
6
|
+
* an `additionalContext` summary, we give the model a compressed signal of what matters —
|
|
7
|
+
* reducing downstream reasoning tokens and helping the model focus on errors/failures
|
|
8
|
+
* rather than parsing 500 lines of passing tests.
|
|
9
|
+
*
|
|
10
|
+
* Fires only when output exceeds a line threshold (default: 50 lines).
|
|
11
|
+
* Targets: Bash tool output (test runs, builds, logs, verbose commands).
|
|
12
|
+
*/
|
|
13
|
+
/** Minimum output lines before the summarizer activates. */
|
|
14
|
+
const MIN_LINES_TO_SUMMARIZE = 50;
|
|
15
|
+
/** Maximum lines to include in the summary extract. */
|
|
16
|
+
const MAX_SUMMARY_LINES = 30;
|
|
17
|
+
/** Patterns that indicate important lines worth keeping in the summary. */
|
|
18
|
+
const IMPORTANT_PATTERNS = [
|
|
19
|
+
/error/i,
|
|
20
|
+
/fail/i,
|
|
21
|
+
/FAIL/,
|
|
22
|
+
/panic/i,
|
|
23
|
+
/exception/i,
|
|
24
|
+
/warn(?:ing)?/i,
|
|
25
|
+
/^\s*✗|^\s*✕|^\s*×/,
|
|
26
|
+
/^\s*FATAL/,
|
|
27
|
+
/not found/i,
|
|
28
|
+
/permission denied/i,
|
|
29
|
+
/timed?\s*out/i,
|
|
30
|
+
/segfault|segmentation/i,
|
|
31
|
+
/exit\s+code\s+[1-9]/i,
|
|
32
|
+
/assert(?:ion)?.*fail/i,
|
|
33
|
+
/^\s*-\s.*\bexpect/i,
|
|
34
|
+
/diff\s/,
|
|
35
|
+
];
|
|
36
|
+
/** Patterns that indicate test summary lines. */
|
|
37
|
+
const TEST_SUMMARY_PATTERNS = [
|
|
38
|
+
/\d+\s+(?:test|spec|suite)s?\s+(?:passed|failed|skipped|pending)/i,
|
|
39
|
+
/Tests?:\s+\d+/i,
|
|
40
|
+
/Test Files\s+\d+/i,
|
|
41
|
+
/(?:PASS|FAIL)\s/,
|
|
42
|
+
/\d+\s+passing/i,
|
|
43
|
+
/\d+\s+failing/i,
|
|
44
|
+
/coverage/i,
|
|
45
|
+
/Duration:/i,
|
|
46
|
+
];
|
|
47
|
+
/** Patterns for build output summary lines. */
|
|
48
|
+
const BUILD_SUMMARY_PATTERNS = [
|
|
49
|
+
/compiled?\s+(?:success|with\s+\d+\s+error)/i,
|
|
50
|
+
/build\s+(?:success|fail|complete)/i,
|
|
51
|
+
/bundle\s+size/i,
|
|
52
|
+
/\d+\s+error/i,
|
|
53
|
+
/\d+\s+warning/i,
|
|
54
|
+
/✓\s+built/i,
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Summarize verbose tool output into a compact digest.
|
|
58
|
+
* Returns null if the output is short enough to not need summarization.
|
|
59
|
+
*/
|
|
60
|
+
export function summarizeOutput(output) {
|
|
61
|
+
if (!output)
|
|
62
|
+
return null;
|
|
63
|
+
const lines = output.split('\n');
|
|
64
|
+
if (lines.length < MIN_LINES_TO_SUMMARIZE)
|
|
65
|
+
return null;
|
|
66
|
+
// Classify output category
|
|
67
|
+
const category = classifyOutput(lines);
|
|
68
|
+
// Extract important lines
|
|
69
|
+
const important = [];
|
|
70
|
+
let errorCount = 0;
|
|
71
|
+
let warningCount = 0;
|
|
72
|
+
for (const line of lines) {
|
|
73
|
+
if (IMPORTANT_PATTERNS.some((p) => p.test(line))) {
|
|
74
|
+
important.push(line.trimEnd());
|
|
75
|
+
if (/error|fail|panic|exception/i.test(line))
|
|
76
|
+
errorCount++;
|
|
77
|
+
if (/warn(?:ing)?/i.test(line))
|
|
78
|
+
warningCount++;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Extract summary lines (test results, build status)
|
|
82
|
+
const summaryPatterns = category === 'test' ? TEST_SUMMARY_PATTERNS : BUILD_SUMMARY_PATTERNS;
|
|
83
|
+
const summaryMatches = [];
|
|
84
|
+
for (const line of lines) {
|
|
85
|
+
if (summaryPatterns.some((p) => p.test(line))) {
|
|
86
|
+
summaryMatches.push(line.trimEnd());
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Build the summary: first/last lines for context + important lines + summary lines
|
|
90
|
+
const firstLines = lines.slice(0, 3).map((l) => l.trimEnd());
|
|
91
|
+
const lastLines = lines.slice(-5).map((l) => l.trimEnd());
|
|
92
|
+
// Deduplicate and assemble
|
|
93
|
+
const seen = new Set();
|
|
94
|
+
const result = [];
|
|
95
|
+
const addUnique = (arr) => {
|
|
96
|
+
for (const line of arr) {
|
|
97
|
+
const trimmed = line.trim();
|
|
98
|
+
if (trimmed && !seen.has(trimmed)) {
|
|
99
|
+
seen.add(trimmed);
|
|
100
|
+
result.push(line);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
addUnique(firstLines);
|
|
105
|
+
addUnique(summaryMatches);
|
|
106
|
+
addUnique(important.slice(0, 15)); // cap important lines
|
|
107
|
+
addUnique(lastLines);
|
|
108
|
+
// Truncate if still too long
|
|
109
|
+
const summaryLines = result.slice(0, MAX_SUMMARY_LINES);
|
|
110
|
+
return {
|
|
111
|
+
totalLines: lines.length,
|
|
112
|
+
summaryLines,
|
|
113
|
+
category,
|
|
114
|
+
errorCount,
|
|
115
|
+
warningCount,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Format a summary into the additionalContext string injected after tool output.
|
|
120
|
+
*/
|
|
121
|
+
export function formatSummaryContext(summary) {
|
|
122
|
+
const parts = [];
|
|
123
|
+
parts.push(`[Output summary: ${summary.totalLines} lines, ${summary.category}`);
|
|
124
|
+
if (summary.errorCount > 0)
|
|
125
|
+
parts[0] += `, ${summary.errorCount} errors`;
|
|
126
|
+
if (summary.warningCount > 0)
|
|
127
|
+
parts[0] += `, ${summary.warningCount} warnings`;
|
|
128
|
+
parts[0] += ']';
|
|
129
|
+
for (const line of summary.summaryLines) {
|
|
130
|
+
parts.push(line);
|
|
131
|
+
}
|
|
132
|
+
return parts.join('\n');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Build a PostToolUse hook callback for the Claude Agent SDK.
|
|
136
|
+
* Injects additionalContext after verbose Bash output.
|
|
137
|
+
*/
|
|
138
|
+
export function createOutputSummarizerHook() {
|
|
139
|
+
return async (input) => {
|
|
140
|
+
// Only summarize Bash output
|
|
141
|
+
if (input.tool_name !== 'Bash') {
|
|
142
|
+
return { continue: true };
|
|
143
|
+
}
|
|
144
|
+
const response = typeof input.tool_response === 'string' ? input.tool_response : JSON.stringify(input.tool_response);
|
|
145
|
+
const summary = summarizeOutput(response);
|
|
146
|
+
if (!summary) {
|
|
147
|
+
return { continue: true };
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
continue: true,
|
|
151
|
+
hookSpecificOutput: {
|
|
152
|
+
hookEventName: 'PostToolUse',
|
|
153
|
+
additionalContext: formatSummaryContext(summary),
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// ─── Internal ────────────────────────────────────────────────
|
|
159
|
+
function classifyOutput(lines) {
|
|
160
|
+
const sample = lines.slice(0, 50).join('\n');
|
|
161
|
+
if (TEST_SUMMARY_PATTERNS.some((p) => p.test(sample)))
|
|
162
|
+
return 'test';
|
|
163
|
+
if (BUILD_SUMMARY_PATTERNS.some((p) => p.test(sample)))
|
|
164
|
+
return 'build';
|
|
165
|
+
if (/error|exception|panic|fatal/i.test(sample))
|
|
166
|
+
return 'error';
|
|
167
|
+
if (/\d{4}-\d{2}-\d{2}|timestamp|level.*info|log\b/i.test(sample))
|
|
168
|
+
return 'log';
|
|
169
|
+
return 'generic';
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=output-summarizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-summarizer.js","sourceRoot":"","sources":["../../src/runtime/output-summarizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { EventBus } from '../core/event-bus.js';
|
|
2
|
+
export interface LoadAllOptions {
|
|
3
|
+
/** When true, load plugins from cwd/.swarm/plugins/ (untrusted repo-local). Default: false */
|
|
4
|
+
trustLocalPlugins?: boolean;
|
|
5
|
+
}
|
|
2
6
|
export interface PluginTool {
|
|
3
7
|
name: string;
|
|
4
8
|
description: string;
|
|
@@ -46,7 +50,7 @@ export declare class PluginLoader {
|
|
|
46
50
|
private tools;
|
|
47
51
|
private bus;
|
|
48
52
|
constructor(bus?: EventBus);
|
|
49
|
-
loadAll(cwd?: string): Promise<number>;
|
|
53
|
+
loadAll(cwd?: string, options?: LoadAllOptions): Promise<number>;
|
|
50
54
|
loadDir(dir: string): Promise<number>;
|
|
51
55
|
private register;
|
|
52
56
|
getAllTools(): PluginTool[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/runtime/plugins.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/G;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,GAAG,CAAkB;gBAEjB,GAAG,CAAC,EAAE,QAAQ;IAIpB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/runtime/plugins.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/G;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,GAAG,CAAkB;gBAEjB,GAAG,CAAC,EAAE,QAAQ;IAIpB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBhE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAkC7B,QAAQ;IAWtB,WAAW,IAAI,UAAU,EAAE;IAG3B,WAAW,IAAI,WAAW,EAAE;IAItB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7E,mDAAmD;IACnD,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAkDxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAWjC"}
|
package/dist/runtime/plugins.js
CHANGED
|
@@ -8,9 +8,21 @@ export class PluginLoader {
|
|
|
8
8
|
constructor(bus) {
|
|
9
9
|
this.bus = bus ?? null;
|
|
10
10
|
}
|
|
11
|
-
async loadAll(cwd) {
|
|
11
|
+
async loadAll(cwd, options) {
|
|
12
12
|
let count = 0;
|
|
13
|
-
|
|
13
|
+
const localDir = join(cwd ?? process.cwd(), '.swarm', 'plugins');
|
|
14
|
+
if (options?.trustLocalPlugins) {
|
|
15
|
+
count += await this.loadDir(localDir);
|
|
16
|
+
}
|
|
17
|
+
else if (existsSync(localDir)) {
|
|
18
|
+
// Count local plugins to warn the user
|
|
19
|
+
const localFiles = readdirSync(localDir, { withFileTypes: true }).filter((e) => (e.isFile() && ['.ts', '.js'].includes(extname(e.name))) ||
|
|
20
|
+
(e.isDirectory() && existsSync(join(localDir, e.name, 'plugin.json'))));
|
|
21
|
+
if (localFiles.length > 0) {
|
|
22
|
+
console.warn(`[swarm] Skipping ${localFiles.length} local plugin(s) in .swarm/plugins/ — use --allow-plugins to enable`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// User-global plugins are always trusted
|
|
14
26
|
count += await this.loadDir(join(process.env.HOME ?? '', '.swarm', 'plugins'));
|
|
15
27
|
return count;
|
|
16
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/runtime/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/runtime/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAuCpC,MAAM,OAAO,YAAY;IACf,OAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC9C,KAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAC3C,GAAG,CAAkB;IAE7B,YAAY,GAAc;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,OAAwB;QAClD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAC/B,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,uCAAuC;YACvC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CACtE,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CACzE,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,oBAAoB,UAAU,CAAC,MAAM,qEAAqE,CAC3G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACvE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;oBAC9C,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;oBACnF,MAAM,QAAQ,GAAmB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBACzG,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;wBACxE,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnF,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;oBACxC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC5B,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;oBAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC5B,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,EAAE,IAAI,CACZ,gBAAgB,EAChB,EAAE,OAAO,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EACjF,SAAS,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAmB;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA6B;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,mDAAmD;IACnD,SAAS,CAAC,GAAa;QACrB,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,KAAK;gBAAE,SAAS;YAElC,IAAI,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;gBAC9C,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+B,CAAC;oBACnD,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBACzF,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC;gBAChD,GAAG,CAAC,EAAE,CAAC,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+B,CAAC;oBACnD,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC;4BACT,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;4BACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;4BACjC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;yBACzC,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,YAAY,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,uBAAuB,CAAC;gBACxD,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+B,CAAC;oBACnD,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC;4BACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;4BACnC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;4BACjC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;yBACzC,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AgentConfig, PromptDietConfig } from '../core/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Auto-select a promptTier for an agent based on its role, turn budget, and
|
|
4
|
+
* the orchestration's prompt-diet configuration.
|
|
5
|
+
*
|
|
6
|
+
* Precedence (strongest first):
|
|
7
|
+
* 1. `config.promptTier` (explicit per-agent setting always wins)
|
|
8
|
+
* 2. `dietConfig.overrides` matching the agent's type (case-insensitive substring)
|
|
9
|
+
* 3. `mode === 'conservative'` → no auto-tiering (legacy behavior)
|
|
10
|
+
* 4. `maxTurns ≤ 3` → 'minimal' (regardless of mode — short agents can't
|
|
11
|
+
* afford full-prompt overhead per turn)
|
|
12
|
+
* 5. `mode === 'aggressive'` → 'lite' for everyone, including PROTECTED_ROLES
|
|
13
|
+
* 6. `mode === 'balanced'` (default) → PROTECTED_ROLES stay full;
|
|
14
|
+
* LITE_ELIGIBLE_ROLES → 'lite'; unknown roles → full (safe default)
|
|
15
|
+
*
|
|
16
|
+
* @param config Agent configuration. Reads `config.agentType` (registry type)
|
|
17
|
+
* and falls back to `config.name` (instance label) for role matching.
|
|
18
|
+
* @param dietConfig Orchestration-level diet settings. Defaults to `balanced`
|
|
19
|
+
* when `dietConfig` is supplied without a `default`. Pass `undefined` to use
|
|
20
|
+
* `balanced` defaults.
|
|
21
|
+
*/
|
|
22
|
+
export declare function autoSelectPromptTier(config: AgentConfig, dietConfig?: PromptDietConfig): 'full' | 'lite' | 'minimal' | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a {@link PromptDietConfig} from the `SWARM_PROMPT_DIET` environment
|
|
25
|
+
* variable. Returns `undefined` when the env var is unset or has an invalid
|
|
26
|
+
* value (so callers fall through to orchestration config / `balanced` default).
|
|
27
|
+
*
|
|
28
|
+
* Logs a warning when the env var is set but unrecognized so the operator
|
|
29
|
+
* notices the typo (the CLI flag rejects with exit-1, but env vars otherwise
|
|
30
|
+
* fall through silently).
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveDietFromEnv(): PromptDietConfig | undefined;
|
|
33
|
+
//# sourceMappingURL=prompt-tier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-tier.d.ts","sourceRoot":"","sources":["../../src/runtime/prompt-tier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;AAkCtF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAoCzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,GAAG,SAAS,CAUjE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents whose system prompts contain load-bearing structure (orchestration
|
|
3
|
+
* decision-making, adversarial probing, refactor safety scaffolding) where
|
|
4
|
+
* trimming risks behavior drift. Stay at `full` under `balanced` mode.
|
|
5
|
+
*
|
|
6
|
+
* `aggressive` mode bypasses this list — operator opted in to the risk.
|
|
7
|
+
*/
|
|
8
|
+
const PROTECTED_ROLES = ['orchestrator', 'grounding', 'devils-advocate', 'judge', 'refactorer'];
|
|
9
|
+
/**
|
|
10
|
+
* Worker/reviewer/researcher roles that have been validated as safe to trim
|
|
11
|
+
* to `lite` (Before-You-Act / Self-Check / Debt / Meta sections stripped).
|
|
12
|
+
*
|
|
13
|
+
* Substring match is intentional: `security-reviewer`, `testing-reviewer`,
|
|
14
|
+
* `convention-reviewer` all match `reviewer`; `my-custom-implementer` matches
|
|
15
|
+
* `implementer`. New review/worker roles get the savings automatically.
|
|
16
|
+
*/
|
|
17
|
+
const LITE_ELIGIBLE_ROLES = [
|
|
18
|
+
'reviewer',
|
|
19
|
+
'checker',
|
|
20
|
+
'implementer',
|
|
21
|
+
'researcher',
|
|
22
|
+
'tester',
|
|
23
|
+
'debugger',
|
|
24
|
+
'planner',
|
|
25
|
+
'integrator',
|
|
26
|
+
'guardian',
|
|
27
|
+
'sentinel',
|
|
28
|
+
'librarian',
|
|
29
|
+
'documenter',
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Auto-select a promptTier for an agent based on its role, turn budget, and
|
|
33
|
+
* the orchestration's prompt-diet configuration.
|
|
34
|
+
*
|
|
35
|
+
* Precedence (strongest first):
|
|
36
|
+
* 1. `config.promptTier` (explicit per-agent setting always wins)
|
|
37
|
+
* 2. `dietConfig.overrides` matching the agent's type (case-insensitive substring)
|
|
38
|
+
* 3. `mode === 'conservative'` → no auto-tiering (legacy behavior)
|
|
39
|
+
* 4. `maxTurns ≤ 3` → 'minimal' (regardless of mode — short agents can't
|
|
40
|
+
* afford full-prompt overhead per turn)
|
|
41
|
+
* 5. `mode === 'aggressive'` → 'lite' for everyone, including PROTECTED_ROLES
|
|
42
|
+
* 6. `mode === 'balanced'` (default) → PROTECTED_ROLES stay full;
|
|
43
|
+
* LITE_ELIGIBLE_ROLES → 'lite'; unknown roles → full (safe default)
|
|
44
|
+
*
|
|
45
|
+
* @param config Agent configuration. Reads `config.agentType` (registry type)
|
|
46
|
+
* and falls back to `config.name` (instance label) for role matching.
|
|
47
|
+
* @param dietConfig Orchestration-level diet settings. Defaults to `balanced`
|
|
48
|
+
* when `dietConfig` is supplied without a `default`. Pass `undefined` to use
|
|
49
|
+
* `balanced` defaults.
|
|
50
|
+
*/
|
|
51
|
+
export function autoSelectPromptTier(config, dietConfig) {
|
|
52
|
+
// 1. Explicit tier on AgentConfig always wins
|
|
53
|
+
if (config.promptTier)
|
|
54
|
+
return config.promptTier;
|
|
55
|
+
const mode = dietConfig?.default ?? 'balanced';
|
|
56
|
+
const role = (config.agentType || config.name || '').toLowerCase();
|
|
57
|
+
// 2. Per-agent-type override (case-insensitive substring) beats mode.
|
|
58
|
+
// Sort keys longest-first so more specific keys win over shorter prefixes
|
|
59
|
+
// (e.g. `security-implementer` matches before `implementer`).
|
|
60
|
+
if (dietConfig?.overrides) {
|
|
61
|
+
const entries = Object.entries(dietConfig.overrides).sort(([a], [b]) => b.length - a.length);
|
|
62
|
+
for (const [key, tier] of entries) {
|
|
63
|
+
if (role.includes(key.toLowerCase()))
|
|
64
|
+
return tier;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// 3. Conservative mode: no automatic trimming
|
|
68
|
+
if (mode === 'conservative')
|
|
69
|
+
return undefined;
|
|
70
|
+
// 4. Short-running agents always get minimal regardless of mode
|
|
71
|
+
const maxTurns = config.maxTurns ?? 50;
|
|
72
|
+
if (maxTurns <= 3)
|
|
73
|
+
return 'minimal';
|
|
74
|
+
const isProtected = PROTECTED_ROLES.some((r) => role.includes(r));
|
|
75
|
+
// 5. Aggressive mode trims even protected agents to lite
|
|
76
|
+
if (mode === 'aggressive')
|
|
77
|
+
return 'lite';
|
|
78
|
+
// 6. Balanced mode (default): protected stay full
|
|
79
|
+
if (isProtected)
|
|
80
|
+
return undefined;
|
|
81
|
+
if (LITE_ELIGIBLE_ROLES.some((r) => role.includes(r)))
|
|
82
|
+
return 'lite';
|
|
83
|
+
// Unknown agent type → leave at full (safe default)
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Resolve a {@link PromptDietConfig} from the `SWARM_PROMPT_DIET` environment
|
|
88
|
+
* variable. Returns `undefined` when the env var is unset or has an invalid
|
|
89
|
+
* value (so callers fall through to orchestration config / `balanced` default).
|
|
90
|
+
*
|
|
91
|
+
* Logs a warning when the env var is set but unrecognized so the operator
|
|
92
|
+
* notices the typo (the CLI flag rejects with exit-1, but env vars otherwise
|
|
93
|
+
* fall through silently).
|
|
94
|
+
*/
|
|
95
|
+
export function resolveDietFromEnv() {
|
|
96
|
+
const mode = process.env.SWARM_PROMPT_DIET;
|
|
97
|
+
if (!mode)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (mode === 'aggressive' || mode === 'balanced' || mode === 'conservative') {
|
|
100
|
+
return { default: mode };
|
|
101
|
+
}
|
|
102
|
+
console.warn(`[swarm] SWARM_PROMPT_DIET="${mode}" is not a valid mode (expected: aggressive | balanced | conservative). Ignoring.`);
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=prompt-tier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-tier.js","sourceRoot":"","sources":["../../src/runtime/prompt-tier.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,SAAS;IACT,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,SAAS;IACT,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,YAAY;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,UAA6B;IAE7B,8CAA8C;IAC9C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAEhD,MAAM,IAAI,GAAmB,UAAU,EAAE,OAAO,IAAI,UAAU,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnE,sEAAsE;IACtE,0EAA0E;IAC1E,8DAA8D;IAC9D,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7F,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpD,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,IAAI,KAAK,cAAc;QAAE,OAAO,SAAS,CAAC;IAE9C,gEAAgE;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,yDAAyD;IACzD,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAEzC,kDAAkD;IAClD,IAAI,WAAW;QAAE,OAAO,SAAS,CAAC;IAElC,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAErE,oDAAoD;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,IAAI,CACV,8BAA8B,IAAI,mFAAmF,CACtH,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/runtime/sharing.js
CHANGED
|
@@ -50,7 +50,7 @@ h1{font-size:24px}pre{background:#f5f5f5;padding:16px;border-radius:8px;overflow
|
|
|
50
50
|
</head><body><pre>${esc(genMD(orchestration, opts))}</pre></body></html>`;
|
|
51
51
|
}
|
|
52
52
|
function genJSON(orchestration) {
|
|
53
|
-
|
|
53
|
+
const raw = JSON.stringify({
|
|
54
54
|
id: orchestration.config.id,
|
|
55
55
|
name: orchestration.config.name,
|
|
56
56
|
pattern: orchestration.config.pattern,
|
|
@@ -66,6 +66,7 @@ function genJSON(orchestration) {
|
|
|
66
66
|
})),
|
|
67
67
|
usage: orchestration.usage,
|
|
68
68
|
}, null, 2);
|
|
69
|
+
return redactSecrets(raw);
|
|
69
70
|
}
|
|
70
71
|
function fmt(ms) {
|
|
71
72
|
return ms < 60000 ? `${(ms / 1000).toFixed(1)}s` : `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../../src/runtime/sharing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../../src/runtime/sharing.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/stats.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/runtime/stats.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM;IAe3B,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/runtime/stats.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM;IAe3B,OAAO,CAAC,UAAU;IAwClB,yCAAyC;IACzC,MAAM,CAAC,IAAI,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;SACnC,CAAC;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IA8BR,qDAAqD;IACrD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAmDrE,6BAA6B;IAC7B,cAAc,IAAI,UAAU,EAAE;IAY9B,oDAAoD;IACpD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAyCvD,yEAAyE;IACzE,iBAAiB,CACf,OAAO,CAAC,EAAE,MAAM,GACf,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BzG,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/runtime/stats.js
CHANGED
|
@@ -38,6 +38,8 @@ export class StatsCollector {
|
|
|
38
38
|
duration_ms INTEGER DEFAULT 0,
|
|
39
39
|
turns INTEGER DEFAULT 0,
|
|
40
40
|
tool_calls INTEGER DEFAULT 0,
|
|
41
|
+
cache_read_tokens INTEGER DEFAULT 0,
|
|
42
|
+
cache_creation_tokens INTEGER DEFAULT 0,
|
|
41
43
|
success INTEGER DEFAULT 1,
|
|
42
44
|
confidence TEXT,
|
|
43
45
|
retries INTEGER DEFAULT 0,
|
|
@@ -46,15 +48,25 @@ export class StatsCollector {
|
|
|
46
48
|
CREATE INDEX IF NOT EXISTS idx_stats_agent ON execution_stats(agent_type, model);
|
|
47
49
|
CREATE INDEX IF NOT EXISTS idx_stats_pattern ON execution_stats(pattern);
|
|
48
50
|
`);
|
|
51
|
+
// Defensive schema migration — add cache token columns if upgrading from older version.
|
|
52
|
+
// There's no migration framework, so we check column existence and ALTER TABLE as needed.
|
|
53
|
+
const cols = this.db.prepare(`PRAGMA table_info(execution_stats)`).all();
|
|
54
|
+
const colNames = new Set(cols.map((c) => c.name));
|
|
55
|
+
if (!colNames.has('cache_read_tokens')) {
|
|
56
|
+
this.db.exec(`ALTER TABLE execution_stats ADD COLUMN cache_read_tokens INTEGER DEFAULT 0`);
|
|
57
|
+
}
|
|
58
|
+
if (!colNames.has('cache_creation_tokens')) {
|
|
59
|
+
this.db.exec(`ALTER TABLE execution_stats ADD COLUMN cache_creation_tokens INTEGER DEFAULT 0`);
|
|
60
|
+
}
|
|
49
61
|
}
|
|
50
62
|
/** Record a completed agent execution */
|
|
51
63
|
record(data) {
|
|
52
64
|
this.db
|
|
53
65
|
.prepare(`
|
|
54
|
-
INSERT INTO execution_stats (agent_type, agent_name, model, backend, pattern, phase, input_tokens, output_tokens, total_tokens, cost_usd, duration_ms, turns, tool_calls, success, confidence, retries)
|
|
55
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
66
|
+
INSERT INTO execution_stats (agent_type, agent_name, model, backend, pattern, phase, input_tokens, output_tokens, total_tokens, cost_usd, duration_ms, turns, tool_calls, cache_read_tokens, cache_creation_tokens, success, confidence, retries)
|
|
67
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
56
68
|
`)
|
|
57
|
-
.run(data.agentType, data.agentName ?? null, data.model, data.backend ?? null, data.pattern ?? null, data.phase ?? null, data.usage.inputTokens, data.usage.outputTokens, data.usage.totalTokens, data.usage.costUsd, data.usage.durationMs, data.usage.turns, data.usage.toolCalls, data.success ? 1 : 0, data.confidence ?? null, data.retries ?? 0);
|
|
69
|
+
.run(data.agentType, data.agentName ?? null, data.model, data.backend ?? null, data.pattern ?? null, data.phase ?? null, data.usage.inputTokens, data.usage.outputTokens, data.usage.totalTokens, data.usage.costUsd, data.usage.durationMs, data.usage.turns, data.usage.toolCalls, data.usage.cacheReadInputTokens ?? 0, data.usage.cacheCreationInputTokens ?? 0, data.success ? 1 : 0, data.confidence ?? null, data.retries ?? 0);
|
|
58
70
|
}
|
|
59
71
|
/** Get aggregated stats for an agent type + model */
|
|
60
72
|
getAgentProfile(agentType, model) {
|
|
@@ -129,6 +141,8 @@ export class StatsCollector {
|
|
|
129
141
|
durationMs: usage.durationMs ?? 0,
|
|
130
142
|
turns: usage.turns ?? 0,
|
|
131
143
|
toolCalls: usage.toolCalls ?? 0,
|
|
144
|
+
cacheReadInputTokens: usage.cacheReadInputTokens ?? 0,
|
|
145
|
+
cacheCreationInputTokens: usage.cacheCreationInputTokens ?? 0,
|
|
132
146
|
},
|
|
133
147
|
success: true,
|
|
134
148
|
confidence: String(data.result?.confidence ?? ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/runtime/stats.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAQ,OAAO,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,MAAM,OAAO,cAAc;IACjB,EAAE,CAAoB;IACtB,KAAK,CAAU;IAEvB,YAAY,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/runtime/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
/**
|
|
2
3
|
* Project-level config loaded from .swarm.yml / .swarm.yaml (snake_case).
|
|
3
4
|
*
|
|
@@ -23,6 +24,25 @@ export interface ProjectConfig {
|
|
|
23
24
|
disabled?: boolean;
|
|
24
25
|
}>;
|
|
25
26
|
}
|
|
27
|
+
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
28
|
+
project: z.ZodOptional<z.ZodString>;
|
|
29
|
+
default_backend: z.ZodOptional<z.ZodString>;
|
|
30
|
+
default_pattern: z.ZodOptional<z.ZodString>;
|
|
31
|
+
cost_budget: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
autonomy: z.ZodOptional<z.ZodEnum<{
|
|
33
|
+
ask: "ask";
|
|
34
|
+
auto: "auto";
|
|
35
|
+
}>>;
|
|
36
|
+
agents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
37
|
+
extra_rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
38
|
+
model: z.ZodOptional<z.ZodString>;
|
|
39
|
+
backend: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strict>>>;
|
|
41
|
+
context_files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
42
|
+
patterns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
43
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
}, z.core.$strict>>>;
|
|
45
|
+
}, z.core.$strip>;
|
|
26
46
|
export declare function loadProjectConfig(cwd?: string): ProjectConfig | null;
|
|
27
47
|
/**
|
|
28
48
|
* Resolve the effective default backend from project config (.swarm.yml).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN;QAEE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CACF,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QAEE,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CACF,CAAC;CACH;AAgBD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iBAS9B,CAAC;AA2BH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAmBpE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpE;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB1D"}
|