swarm-engine 1.41.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.
Files changed (141) hide show
  1. package/README.md +145 -42
  2. package/agents/implementer.md +1 -14
  3. package/agents/orchestrator.md +127 -246
  4. package/agents/reviewer.md +3 -18
  5. package/dist/cli/commands/agents.js +13 -1
  6. package/dist/cli/commands/agents.js.map +1 -1
  7. package/dist/cli/commands/dashboard.d.ts +3 -0
  8. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  9. package/dist/cli/commands/dashboard.js +43 -0
  10. package/dist/cli/commands/dashboard.js.map +1 -0
  11. package/dist/cli/commands/orchestrate.d.ts.map +1 -1
  12. package/dist/cli/commands/orchestrate.js +17 -0
  13. package/dist/cli/commands/orchestrate.js.map +1 -1
  14. package/dist/cli/commands/run.d.ts.map +1 -1
  15. package/dist/cli/commands/run.js +20 -1
  16. package/dist/cli/commands/run.js.map +1 -1
  17. package/dist/cli/commands/status.d.ts +1 -0
  18. package/dist/cli/commands/status.d.ts.map +1 -1
  19. package/dist/cli/commands/status.js +5 -2
  20. package/dist/cli/commands/status.js.map +1 -1
  21. package/dist/core/event-bus.d.ts.map +1 -1
  22. package/dist/core/event-bus.js +4 -1
  23. package/dist/core/event-bus.js.map +1 -1
  24. package/dist/core/types.d.ts +26 -1
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/core/types.js +4 -0
  27. package/dist/core/types.js.map +1 -1
  28. package/dist/index.d.ts +18 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +12 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/memory/index.js +2 -2
  33. package/dist/memory/index.js.map +1 -1
  34. package/dist/runtime/acon.d.ts +61 -0
  35. package/dist/runtime/acon.d.ts.map +1 -0
  36. package/dist/runtime/acon.js +266 -0
  37. package/dist/runtime/acon.js.map +1 -0
  38. package/dist/runtime/agent-runner.d.ts +8 -0
  39. package/dist/runtime/agent-runner.d.ts.map +1 -1
  40. package/dist/runtime/agent-runner.js +93 -4
  41. package/dist/runtime/agent-runner.js.map +1 -1
  42. package/dist/runtime/backends/claude.d.ts +1 -0
  43. package/dist/runtime/backends/claude.d.ts.map +1 -1
  44. package/dist/runtime/backends/claude.js +50 -2
  45. package/dist/runtime/backends/claude.js.map +1 -1
  46. package/dist/runtime/backends/codex.d.ts.map +1 -1
  47. package/dist/runtime/backends/codex.js +4 -0
  48. package/dist/runtime/backends/codex.js.map +1 -1
  49. package/dist/runtime/backends/gemini.d.ts.map +1 -1
  50. package/dist/runtime/backends/gemini.js +4 -0
  51. package/dist/runtime/backends/gemini.js.map +1 -1
  52. package/dist/runtime/benefits.d.ts +250 -0
  53. package/dist/runtime/benefits.d.ts.map +1 -0
  54. package/dist/runtime/benefits.js +775 -0
  55. package/dist/runtime/benefits.js.map +1 -0
  56. package/dist/runtime/cache-optimizer.d.ts +7 -3
  57. package/dist/runtime/cache-optimizer.d.ts.map +1 -1
  58. package/dist/runtime/cache-optimizer.js +11 -7
  59. package/dist/runtime/cache-optimizer.js.map +1 -1
  60. package/dist/runtime/compaction.d.ts +6 -1
  61. package/dist/runtime/compaction.d.ts.map +1 -1
  62. package/dist/runtime/compaction.js +39 -2
  63. package/dist/runtime/compaction.js.map +1 -1
  64. package/dist/runtime/compactor.d.ts +90 -0
  65. package/dist/runtime/compactor.d.ts.map +1 -0
  66. package/dist/runtime/compactor.js +418 -0
  67. package/dist/runtime/compactor.js.map +1 -0
  68. package/dist/runtime/context-decay.d.ts +45 -0
  69. package/dist/runtime/context-decay.d.ts.map +1 -0
  70. package/dist/runtime/context-decay.js +149 -0
  71. package/dist/runtime/context-decay.js.map +1 -0
  72. package/dist/runtime/cost-model.d.ts.map +1 -1
  73. package/dist/runtime/cost-model.js +20 -17
  74. package/dist/runtime/cost-model.js.map +1 -1
  75. package/dist/runtime/engine.d.ts +2 -0
  76. package/dist/runtime/engine.d.ts.map +1 -1
  77. package/dist/runtime/engine.js +113 -3
  78. package/dist/runtime/engine.js.map +1 -1
  79. package/dist/runtime/graph-discovery.js +2 -2
  80. package/dist/runtime/graph-discovery.js.map +1 -1
  81. package/dist/runtime/graph-trajectory.js +3 -3
  82. package/dist/runtime/graph-trajectory.js.map +1 -1
  83. package/dist/runtime/lsp.d.ts.map +1 -1
  84. package/dist/runtime/lsp.js +4 -0
  85. package/dist/runtime/lsp.js.map +1 -1
  86. package/dist/runtime/mcp.d.ts +1 -0
  87. package/dist/runtime/mcp.d.ts.map +1 -1
  88. package/dist/runtime/mcp.js +38 -0
  89. package/dist/runtime/mcp.js.map +1 -1
  90. package/dist/runtime/output-schemas.d.ts +21 -0
  91. package/dist/runtime/output-schemas.d.ts.map +1 -0
  92. package/dist/runtime/output-schemas.js +252 -0
  93. package/dist/runtime/output-schemas.js.map +1 -0
  94. package/dist/runtime/output-summarizer.d.ts +45 -0
  95. package/dist/runtime/output-summarizer.d.ts.map +1 -0
  96. package/dist/runtime/output-summarizer.js +171 -0
  97. package/dist/runtime/output-summarizer.js.map +1 -0
  98. package/dist/runtime/plugins.d.ts +5 -1
  99. package/dist/runtime/plugins.d.ts.map +1 -1
  100. package/dist/runtime/plugins.js +14 -2
  101. package/dist/runtime/plugins.js.map +1 -1
  102. package/dist/runtime/prompt-tier.d.ts +33 -0
  103. package/dist/runtime/prompt-tier.d.ts.map +1 -0
  104. package/dist/runtime/prompt-tier.js +105 -0
  105. package/dist/runtime/prompt-tier.js.map +1 -0
  106. package/dist/runtime/sharing.js +2 -1
  107. package/dist/runtime/sharing.js.map +1 -1
  108. package/dist/runtime/stats.d.ts +2 -0
  109. package/dist/runtime/stats.d.ts.map +1 -1
  110. package/dist/runtime/stats.js +17 -3
  111. package/dist/runtime/stats.js.map +1 -1
  112. package/dist/utils/project-config.d.ts +20 -0
  113. package/dist/utils/project-config.d.ts.map +1 -1
  114. package/dist/utils/project-config.js +46 -1
  115. package/dist/utils/project-config.js.map +1 -1
  116. package/dist/utils/redact.d.ts.map +1 -1
  117. package/dist/utils/redact.js +5 -1
  118. package/dist/utils/redact.js.map +1 -1
  119. package/dist/web/bridge.d.ts +47 -0
  120. package/dist/web/bridge.d.ts.map +1 -0
  121. package/dist/web/bridge.js +267 -0
  122. package/dist/web/bridge.js.map +1 -0
  123. package/dist/web/graph-api.d.ts +19 -0
  124. package/dist/web/graph-api.d.ts.map +1 -0
  125. package/dist/web/graph-api.js +157 -0
  126. package/dist/web/graph-api.js.map +1 -0
  127. package/dist/web/index.d.ts +21 -0
  128. package/dist/web/index.d.ts.map +1 -0
  129. package/dist/web/index.js +38 -0
  130. package/dist/web/index.js.map +1 -0
  131. package/dist/web/public/index.html +1304 -0
  132. package/dist/web/public/public/index.html +1307 -0
  133. package/dist/web/server.d.ts +24 -0
  134. package/dist/web/server.d.ts.map +1 -0
  135. package/dist/web/server.js +113 -0
  136. package/dist/web/server.js.map +1 -0
  137. package/dist/web/tray.d.ts +23 -0
  138. package/dist/web/tray.d.ts.map +1 -0
  139. package/dist/web/tray.js +205 -0
  140. package/dist/web/tray.js.map +1 -0
  141. 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;IAOtC,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"}
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"}
@@ -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
- count += await this.loadDir(join(cwd ?? process.cwd(), '.swarm', 'plugins'));
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":"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"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/runtime/plugins.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
- return JSON.stringify({
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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"}
@@ -30,6 +30,8 @@ export declare class StatsCollector {
30
30
  durationMs: number;
31
31
  turns: number;
32
32
  toolCalls: number;
33
+ cacheReadInputTokens?: number;
34
+ cacheCreationInputTokens?: number;
33
35
  };
34
36
  success: boolean;
35
37
  confidence?: string;
@@ -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;IA2BlB,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;SACnB,CAAC;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IA4BR,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;IAuCvD,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"}
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"}
@@ -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":"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"}
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":"AAIA;;;;;;;;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;AAED,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"}
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"}