swarm-engine 1.38.0 → 1.41.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/dist/core/patterns.d.ts +7 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +23 -0
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/types.d.ts +9 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -9
- package/dist/memory/index.js.map +1 -1
- package/dist/runtime/adaptive.d.ts +1 -0
- package/dist/runtime/adaptive.d.ts.map +1 -1
- package/dist/runtime/adaptive.js +18 -4
- package/dist/runtime/adaptive.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 +79 -4
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/runtime/backends/claude-session.d.ts +49 -0
- package/dist/runtime/backends/claude-session.d.ts.map +1 -0
- package/dist/runtime/backends/claude-session.js +237 -0
- package/dist/runtime/backends/claude-session.js.map +1 -0
- package/dist/runtime/backends/claude.d.ts.map +1 -1
- package/dist/runtime/backends/claude.js +90 -4
- package/dist/runtime/backends/claude.js.map +1 -1
- package/dist/runtime/backends/types.d.ts +31 -1
- package/dist/runtime/backends/types.d.ts.map +1 -1
- package/dist/runtime/compaction.d.ts +7 -1
- package/dist/runtime/compaction.d.ts.map +1 -1
- package/dist/runtime/compaction.js +12 -2
- package/dist/runtime/compaction.js.map +1 -1
- package/dist/runtime/distiller.d.ts +1 -0
- package/dist/runtime/distiller.d.ts.map +1 -1
- package/dist/runtime/distiller.js +8 -2
- package/dist/runtime/distiller.js.map +1 -1
- package/dist/runtime/engine.d.ts +43 -15
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +355 -67
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/execution-graph.d.ts.map +1 -1
- package/dist/runtime/execution-graph.js.map +1 -1
- package/dist/runtime/executor.d.ts +7 -1
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +20 -0
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/graph-adversarial.d.ts.map +1 -1
- package/dist/runtime/graph-adversarial.js.map +1 -1
- package/dist/runtime/graph-analyzer.d.ts.map +1 -1
- package/dist/runtime/graph-analyzer.js.map +1 -1
- package/dist/runtime/graph-discovery.d.ts.map +1 -1
- package/dist/runtime/graph-discovery.js +1 -4
- package/dist/runtime/graph-discovery.js.map +1 -1
- package/dist/runtime/graph-dropout.d.ts.map +1 -1
- package/dist/runtime/graph-dropout.js +10 -2
- package/dist/runtime/graph-dropout.js.map +1 -1
- package/dist/runtime/graph-embeddings.d.ts.map +1 -1
- package/dist/runtime/graph-embeddings.js +1 -3
- package/dist/runtime/graph-embeddings.js.map +1 -1
- package/dist/runtime/graph-feedback.d.ts.map +1 -1
- package/dist/runtime/graph-feedback.js +1 -3
- package/dist/runtime/graph-feedback.js.map +1 -1
- package/dist/runtime/graph-gnn.d.ts.map +1 -1
- package/dist/runtime/graph-gnn.js.map +1 -1
- package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -1
- package/dist/runtime/graph-meta-adversarial.js.map +1 -1
- package/dist/runtime/graph-meta.d.ts.map +1 -1
- package/dist/runtime/graph-meta.js +48 -20
- package/dist/runtime/graph-meta.js.map +1 -1
- package/dist/runtime/graph-self-evolve.d.ts.map +1 -1
- package/dist/runtime/graph-self-evolve.js.map +1 -1
- package/dist/runtime/graph-synthesis.d.ts.map +1 -1
- package/dist/runtime/graph-synthesis.js.map +1 -1
- package/dist/runtime/graph-trajectory.d.ts.map +1 -1
- package/dist/runtime/graph-trajectory.js +3 -8
- package/dist/runtime/graph-trajectory.js.map +1 -1
- package/dist/runtime/learning-engine.d.ts.map +1 -1
- package/dist/runtime/learning-engine.js +10 -4
- package/dist/runtime/learning-engine.js.map +1 -1
- package/dist/runtime/prompt-compressor.d.ts +16 -0
- package/dist/runtime/prompt-compressor.d.ts.map +1 -0
- package/dist/runtime/prompt-compressor.js +68 -0
- package/dist/runtime/prompt-compressor.js.map +1 -0
- package/dist/runtime/repo-map.d.ts +40 -0
- package/dist/runtime/repo-map.d.ts.map +1 -0
- package/dist/runtime/repo-map.js +358 -0
- package/dist/runtime/repo-map.js.map +1 -0
- package/dist/runtime/sdk-mcp-server.d.ts +44 -0
- package/dist/runtime/sdk-mcp-server.d.ts.map +1 -0
- package/dist/runtime/sdk-mcp-server.js +133 -0
- package/dist/runtime/sdk-mcp-server.js.map +1 -0
- package/dist/runtime/structured-handoff.d.ts +41 -0
- package/dist/runtime/structured-handoff.d.ts.map +1 -0
- package/dist/runtime/structured-handoff.js +279 -0
- package/dist/runtime/structured-handoff.js.map +1 -0
- package/dist/runtime/token-analytics.d.ts +38 -0
- package/dist/runtime/token-analytics.d.ts.map +1 -0
- package/dist/runtime/token-analytics.js +59 -0
- package/dist/runtime/token-analytics.js.map +1 -0
- package/dist/runtime/verifier.d.ts +10 -0
- package/dist/runtime/verifier.d.ts.map +1 -1
- package/dist/runtime/verifier.js +97 -1
- package/dist/runtime/verifier.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface StructuredHandoff {
|
|
2
|
+
filesTouched: string[];
|
|
3
|
+
decisions: string[];
|
|
4
|
+
constraints: string[];
|
|
5
|
+
codeSnippets: Array<{
|
|
6
|
+
file: string;
|
|
7
|
+
code: string;
|
|
8
|
+
}>;
|
|
9
|
+
testResults: {
|
|
10
|
+
passed: string[];
|
|
11
|
+
failed: string[];
|
|
12
|
+
};
|
|
13
|
+
openQuestions: string[];
|
|
14
|
+
summary: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class HandoffParser {
|
|
17
|
+
/**
|
|
18
|
+
* Parse agent output into a structured handoff.
|
|
19
|
+
*/
|
|
20
|
+
static parseAgentOutput(output: string): StructuredHandoff;
|
|
21
|
+
/**
|
|
22
|
+
* Serialize handoffs for the next phase within a character budget.
|
|
23
|
+
* Drop-in replacement for output.slice(0, 2000) — returns a string.
|
|
24
|
+
*/
|
|
25
|
+
static serializeForNextPhase(handoffs: Array<{
|
|
26
|
+
agentName: string;
|
|
27
|
+
handoff: StructuredHandoff;
|
|
28
|
+
}>, budget?: number): string;
|
|
29
|
+
/**
|
|
30
|
+
* Fallback truncation that preserves structure instead of blind slicing.
|
|
31
|
+
*/
|
|
32
|
+
static fallbackTruncate(output: string, maxChars: number): string;
|
|
33
|
+
private static extractFiles;
|
|
34
|
+
private static extractDecisions;
|
|
35
|
+
private static extractConstraints;
|
|
36
|
+
private static extractCodeSnippets;
|
|
37
|
+
private static extractTestResults;
|
|
38
|
+
private static extractOpenQuestions;
|
|
39
|
+
private static extractSummary;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=structured-handoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-handoff.d.ts","sourceRoot":"","sources":["../../src/runtime/structured-handoff.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AA2CD,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAwB1D;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAC1B,QAAQ,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAE,CAAC,EAClE,MAAM,GAAE,MAAa,GACpB,MAAM;IAoGT;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAoCjE,OAAO,CAAC,MAAM,CAAC,YAAY;IAqB3B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAMjC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA0BlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAqBjC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAQnC,OAAO,CAAC,MAAM,CAAC,cAAc;CAiB9B"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
// ─── Structured Inter-Phase Handoff ─────────────────────────────────
|
|
2
|
+
// Replaces blind output.slice(0, 2000) with structured extraction
|
|
3
|
+
// from agent prose, preserving high-value information for downstream phases.
|
|
4
|
+
// ─── Regex Patterns ─────────────────────────────────────────────────
|
|
5
|
+
const FILE_LIST_RE = /(?:files?\s+(?:touched|modified|changed|created|edited))\s*[:]\s*(.+)/gi;
|
|
6
|
+
const INLINE_FILE_RE = /`([\w./-]+\.\w{1,4})`/g;
|
|
7
|
+
const DECISION_RE = /(?:decision|decided|chose)\s*[:]\s*(.+)/gi;
|
|
8
|
+
const CONSTRAINT_RE = /(?:constraint|limitation|requirement)\s*[:]\s*(.+)/gi;
|
|
9
|
+
const MUST_RE = /^[-*]?\s*((?:must(?:\s+not)?|cannot|requires?)\s+.+)/gim;
|
|
10
|
+
const CODE_BLOCK_RE = /```\w*\n([\s\S]*?)```/g;
|
|
11
|
+
const TEST_PASS_RE = /(?:test|spec)\s+(?:passed|pass|✓|PASS)\s*[:]?\s*(.+)?/gi;
|
|
12
|
+
const TEST_FAIL_RE = /(?:test|spec)\s+(?:failed|fail|✗|FAIL)\s*[:]?\s*(.+)?/gi;
|
|
13
|
+
const QUESTION_RE = /(?:question|todo|open|unclear|need\s+to)\s*[:]\s*(.+)/gi;
|
|
14
|
+
const QUESTION_MARK_RE = /^[-*]?\s*(.+\?)\s*$/gm;
|
|
15
|
+
const SUMMARY_SECTION_RE = /##\s*Summary\s*\n([\s\S]*?)(?=\n##|\n$|$)/i;
|
|
16
|
+
// ─── Helpers ────────────────────────────────────────────────────────
|
|
17
|
+
function matchAll(re, text) {
|
|
18
|
+
const results = [];
|
|
19
|
+
// Reset lastIndex to avoid stale state from prior calls
|
|
20
|
+
re.lastIndex = 0;
|
|
21
|
+
let m;
|
|
22
|
+
while ((m = re.exec(text)) !== null) {
|
|
23
|
+
const val = (m[1] ?? '').trim();
|
|
24
|
+
if (val)
|
|
25
|
+
results.push(val);
|
|
26
|
+
}
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
function unique(arr) {
|
|
30
|
+
return [...new Set(arr)];
|
|
31
|
+
}
|
|
32
|
+
function splitList(s) {
|
|
33
|
+
return s
|
|
34
|
+
.split(/[,;]/)
|
|
35
|
+
.map((x) => x.trim())
|
|
36
|
+
.filter(Boolean);
|
|
37
|
+
}
|
|
38
|
+
// ─── Parser ─────────────────────────────────────────────────────────
|
|
39
|
+
export class HandoffParser {
|
|
40
|
+
/**
|
|
41
|
+
* Parse agent output into a structured handoff.
|
|
42
|
+
*/
|
|
43
|
+
static parseAgentOutput(output) {
|
|
44
|
+
if (!output || !output.trim()) {
|
|
45
|
+
return {
|
|
46
|
+
filesTouched: [],
|
|
47
|
+
decisions: [],
|
|
48
|
+
constraints: [],
|
|
49
|
+
codeSnippets: [],
|
|
50
|
+
testResults: { passed: [], failed: [] },
|
|
51
|
+
openQuestions: [],
|
|
52
|
+
summary: '',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const filesTouched = HandoffParser.extractFiles(output);
|
|
56
|
+
const decisions = HandoffParser.extractDecisions(output);
|
|
57
|
+
const constraints = HandoffParser.extractConstraints(output);
|
|
58
|
+
const codeSnippets = HandoffParser.extractCodeSnippets(output);
|
|
59
|
+
const testResults = HandoffParser.extractTestResults(output);
|
|
60
|
+
const openQuestions = HandoffParser.extractOpenQuestions(output);
|
|
61
|
+
const summary = HandoffParser.extractSummary(output);
|
|
62
|
+
return { filesTouched, decisions, constraints, codeSnippets, testResults, openQuestions, summary };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Serialize handoffs for the next phase within a character budget.
|
|
66
|
+
* Drop-in replacement for output.slice(0, 2000) — returns a string.
|
|
67
|
+
*/
|
|
68
|
+
static serializeForNextPhase(handoffs, budget = 4000) {
|
|
69
|
+
const sections = [];
|
|
70
|
+
const perAgent = Math.floor(budget / Math.max(handoffs.length, 1));
|
|
71
|
+
for (const { agentName, handoff } of handoffs) {
|
|
72
|
+
const parts = [];
|
|
73
|
+
let used = 0;
|
|
74
|
+
// Header
|
|
75
|
+
const header = `## ${agentName} Output`;
|
|
76
|
+
parts.push(header);
|
|
77
|
+
used += header.length + 1;
|
|
78
|
+
// Priority 1: Summary (always)
|
|
79
|
+
if (handoff.summary) {
|
|
80
|
+
const summaryLine = `**Summary**: ${handoff.summary}`;
|
|
81
|
+
const truncated = summaryLine.length > perAgent / 3 ? summaryLine.slice(0, Math.floor(perAgent / 3)) + '...' : summaryLine;
|
|
82
|
+
parts.push(truncated);
|
|
83
|
+
used += truncated.length + 1;
|
|
84
|
+
}
|
|
85
|
+
// Priority 2: Files (always — small)
|
|
86
|
+
if (handoff.filesTouched.length > 0) {
|
|
87
|
+
const filesLine = `**Files**: ${handoff.filesTouched.join(', ')}`;
|
|
88
|
+
parts.push(filesLine);
|
|
89
|
+
used += filesLine.length + 1;
|
|
90
|
+
}
|
|
91
|
+
// Priority 3: Test results (always — critical)
|
|
92
|
+
const { passed, failed } = handoff.testResults;
|
|
93
|
+
if (passed.length > 0 || failed.length > 0) {
|
|
94
|
+
const passStr = passed.length > 0 ? `${passed.length} passed` : '';
|
|
95
|
+
const failStr = failed.length > 0 ? `${failed.length} failed (${failed.join(', ')})` : '';
|
|
96
|
+
const testLine = `**Test Results**: ${[passStr, failStr].filter(Boolean).join(', ')}`;
|
|
97
|
+
parts.push(testLine);
|
|
98
|
+
used += testLine.length + 1;
|
|
99
|
+
}
|
|
100
|
+
// Priority 4: Decisions (if budget allows)
|
|
101
|
+
if (handoff.decisions.length > 0 && used < perAgent * 0.7) {
|
|
102
|
+
const decisionsLine = `**Decisions**: ${handoff.decisions.join('; ')}`;
|
|
103
|
+
const remaining = perAgent - used;
|
|
104
|
+
if (decisionsLine.length <= remaining) {
|
|
105
|
+
parts.push(decisionsLine);
|
|
106
|
+
used += decisionsLine.length + 1;
|
|
107
|
+
}
|
|
108
|
+
else if (remaining > 30) {
|
|
109
|
+
parts.push(decisionsLine.slice(0, remaining - 3) + '...');
|
|
110
|
+
used = perAgent;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Priority 5: Constraints (if budget allows)
|
|
114
|
+
if (handoff.constraints.length > 0 && used < perAgent * 0.8) {
|
|
115
|
+
const constraintsLine = `**Constraints**: ${handoff.constraints.join('; ')}`;
|
|
116
|
+
const remaining = perAgent - used;
|
|
117
|
+
if (constraintsLine.length <= remaining) {
|
|
118
|
+
parts.push(constraintsLine);
|
|
119
|
+
used += constraintsLine.length + 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Priority 6: Open questions (if budget allows)
|
|
123
|
+
if (handoff.openQuestions.length > 0 && used < perAgent * 0.85) {
|
|
124
|
+
const questionsLine = `**Open Questions**: ${handoff.openQuestions.join('; ')}`;
|
|
125
|
+
const remaining = perAgent - used;
|
|
126
|
+
if (questionsLine.length <= remaining) {
|
|
127
|
+
parts.push(questionsLine);
|
|
128
|
+
used += questionsLine.length + 1;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Priority 7: Code snippets (if budget allows, truncate largest first)
|
|
132
|
+
if (handoff.codeSnippets.length > 0 && used < perAgent * 0.9) {
|
|
133
|
+
const remaining = perAgent - used;
|
|
134
|
+
const sorted = [...handoff.codeSnippets].sort((a, b) => a.code.length - b.code.length);
|
|
135
|
+
let snippetBudget = remaining;
|
|
136
|
+
const snippetParts = [];
|
|
137
|
+
for (const snippet of sorted) {
|
|
138
|
+
const line = `\`${snippet.file}\`: \`\`\`${snippet.code}\`\`\``;
|
|
139
|
+
if (line.length <= snippetBudget) {
|
|
140
|
+
snippetParts.push(line);
|
|
141
|
+
snippetBudget -= line.length + 1;
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (snippetParts.length > 0) {
|
|
148
|
+
parts.push(`**Code**: ${snippetParts.join(' | ')}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
sections.push(parts.join('\n'));
|
|
152
|
+
}
|
|
153
|
+
return sections.join('\n\n');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Fallback truncation that preserves structure instead of blind slicing.
|
|
157
|
+
*/
|
|
158
|
+
static fallbackTruncate(output, maxChars) {
|
|
159
|
+
if (output.length <= maxChars)
|
|
160
|
+
return output;
|
|
161
|
+
// Try to find a summary section first
|
|
162
|
+
const summaryMatch = SUMMARY_SECTION_RE.exec(output);
|
|
163
|
+
if (summaryMatch) {
|
|
164
|
+
const summary = summaryMatch[1].trim();
|
|
165
|
+
if (summary.length <= maxChars) {
|
|
166
|
+
return summary;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Extract first paragraph
|
|
170
|
+
const firstParagraph = output.split(/\n\s*\n/)[0] || '';
|
|
171
|
+
// Extract file references
|
|
172
|
+
const fileRefs = unique(HandoffParser.extractFiles(output));
|
|
173
|
+
const fileSection = fileRefs.length > 0 ? `\nFiles: ${fileRefs.join(', ')}` : '';
|
|
174
|
+
// Get the end of the output (often contains conclusions)
|
|
175
|
+
const headerSize = firstParagraph.length + fileSection.length + 20; // 20 for separator
|
|
176
|
+
const tailBudget = maxChars - headerSize;
|
|
177
|
+
if (tailBudget > 100) {
|
|
178
|
+
const tail = output.slice(output.length - tailBudget);
|
|
179
|
+
return `${firstParagraph}${fileSection}\n\n[...]\n\n${tail}`;
|
|
180
|
+
}
|
|
181
|
+
// Just first paragraph + files if budget is very tight
|
|
182
|
+
const combined = `${firstParagraph}${fileSection}`;
|
|
183
|
+
if (combined.length <= maxChars)
|
|
184
|
+
return combined;
|
|
185
|
+
return combined.slice(0, maxChars - 3) + '...';
|
|
186
|
+
}
|
|
187
|
+
// ─── Private Extractors ──────────────────────────────────────────
|
|
188
|
+
static extractFiles(output) {
|
|
189
|
+
const fromLists = [];
|
|
190
|
+
for (const raw of matchAll(FILE_LIST_RE, output)) {
|
|
191
|
+
fromLists.push(...splitList(raw));
|
|
192
|
+
}
|
|
193
|
+
const fromInline = [];
|
|
194
|
+
INLINE_FILE_RE.lastIndex = 0;
|
|
195
|
+
let m;
|
|
196
|
+
while ((m = INLINE_FILE_RE.exec(output)) !== null) {
|
|
197
|
+
const candidate = m[1];
|
|
198
|
+
// Filter out common non-file patterns (single words without path separators
|
|
199
|
+
// that don't look like files, e.g. `true`, `false`, `null`)
|
|
200
|
+
if (candidate.includes('/') || candidate.includes('.')) {
|
|
201
|
+
fromInline.push(candidate);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return unique([...fromLists, ...fromInline]);
|
|
205
|
+
}
|
|
206
|
+
static extractDecisions(output) {
|
|
207
|
+
return unique(matchAll(DECISION_RE, output));
|
|
208
|
+
}
|
|
209
|
+
static extractConstraints(output) {
|
|
210
|
+
const explicit = matchAll(CONSTRAINT_RE, output);
|
|
211
|
+
const must = matchAll(MUST_RE, output);
|
|
212
|
+
return unique([...explicit, ...must]);
|
|
213
|
+
}
|
|
214
|
+
static extractCodeSnippets(output) {
|
|
215
|
+
const snippets = [];
|
|
216
|
+
CODE_BLOCK_RE.lastIndex = 0;
|
|
217
|
+
let m;
|
|
218
|
+
while ((m = CODE_BLOCK_RE.exec(output)) !== null) {
|
|
219
|
+
const code = m[1].trim();
|
|
220
|
+
if (!code)
|
|
221
|
+
continue;
|
|
222
|
+
// Try to find a file reference in the 200 chars preceding the code block
|
|
223
|
+
const precedingStart = Math.max(0, m.index - 200);
|
|
224
|
+
const preceding = output.slice(precedingStart, m.index);
|
|
225
|
+
INLINE_FILE_RE.lastIndex = 0;
|
|
226
|
+
let fileMatch = null;
|
|
227
|
+
let lastFile = null;
|
|
228
|
+
while ((fileMatch = INLINE_FILE_RE.exec(preceding)) !== null) {
|
|
229
|
+
lastFile = fileMatch;
|
|
230
|
+
}
|
|
231
|
+
const file = lastFile ? lastFile[1] : 'unknown';
|
|
232
|
+
snippets.push({ file, code });
|
|
233
|
+
}
|
|
234
|
+
return snippets;
|
|
235
|
+
}
|
|
236
|
+
static extractTestResults(output) {
|
|
237
|
+
const passed = matchAll(TEST_PASS_RE, output).flatMap(splitList).filter(Boolean);
|
|
238
|
+
const failed = matchAll(TEST_FAIL_RE, output).flatMap(splitList).filter(Boolean);
|
|
239
|
+
// Also look for ✓/✗ markers in line context
|
|
240
|
+
const lines = output.split('\n');
|
|
241
|
+
for (const line of lines) {
|
|
242
|
+
const trimmed = line.trim();
|
|
243
|
+
if (/^[✓✔]\s+(.+)/.test(trimmed)) {
|
|
244
|
+
const name = trimmed.replace(/^[✓✔]\s+/, '').trim();
|
|
245
|
+
if (name && !passed.includes(name))
|
|
246
|
+
passed.push(name);
|
|
247
|
+
}
|
|
248
|
+
if (/^[✗✘]\s+(.+)/.test(trimmed)) {
|
|
249
|
+
const name = trimmed.replace(/^[✗✘]\s+/, '').trim();
|
|
250
|
+
if (name && !failed.includes(name))
|
|
251
|
+
failed.push(name);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return { passed: unique(passed), failed: unique(failed) };
|
|
255
|
+
}
|
|
256
|
+
static extractOpenQuestions(output) {
|
|
257
|
+
const explicit = matchAll(QUESTION_RE, output);
|
|
258
|
+
const questionMarks = matchAll(QUESTION_MARK_RE, output);
|
|
259
|
+
// Filter question-mark lines to avoid picking up rhetorical questions in prose
|
|
260
|
+
const filtered = questionMarks.filter((q) => q.length < 200);
|
|
261
|
+
return unique([...explicit, ...filtered]);
|
|
262
|
+
}
|
|
263
|
+
static extractSummary(output) {
|
|
264
|
+
// Check for explicit summary section
|
|
265
|
+
SUMMARY_SECTION_RE.lastIndex = 0;
|
|
266
|
+
const sectionMatch = SUMMARY_SECTION_RE.exec(output);
|
|
267
|
+
if (sectionMatch) {
|
|
268
|
+
return sectionMatch[1].trim().slice(0, 500);
|
|
269
|
+
}
|
|
270
|
+
// Fallback: first paragraph
|
|
271
|
+
const firstParagraph = output.split(/\n\s*\n/)[0]?.trim() || '';
|
|
272
|
+
if (firstParagraph.length > 0) {
|
|
273
|
+
return firstParagraph.slice(0, 500);
|
|
274
|
+
}
|
|
275
|
+
// Last resort: first 200 chars
|
|
276
|
+
return output.trim().slice(0, 200);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=structured-handoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-handoff.js","sourceRoot":"","sources":["../../src/runtime/structured-handoff.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,6EAA6E;AAY7E,uEAAuE;AAEvE,MAAM,YAAY,GAAG,yEAAyE,CAAC;AAC/F,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAChE,MAAM,aAAa,GAAG,sDAAsD,CAAC;AAC7E,MAAM,OAAO,GAAG,yDAAyD,CAAC;AAC1E,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,YAAY,GAAG,yDAAyD,CAAC;AAC/E,MAAM,YAAY,GAAG,yDAAyD,CAAC;AAC/E,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAC9E,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AAExE,uEAAuE;AAEvE,SAAS,QAAQ,CAAC,EAAU,EAAE,IAAY;IACxC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,wDAAwD;IACxD,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;IACjB,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,GAAa;IAC3B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,uEAAuE;AAEvE,MAAM,OAAO,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAc;QACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,OAAO;gBACL,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACrG,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAC1B,QAAkE,EAClE,SAAiB,IAAI;QAErB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnE,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,SAAS;YACT,MAAM,MAAM,GAAG,MAAM,SAAS,SAAS,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,+BAA+B;YAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC;gBACtD,MAAM,SAAS,GACb,WAAW,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC3G,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,qCAAqC;YACrC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,cAAc,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,+CAA+C;YAC/C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,2CAA2C;YAC3C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC1D,MAAM,aAAa,GAAG,kBAAkB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;gBAClC,IAAI,aAAa,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC1B,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBAC1D,IAAI,GAAG,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC5D,MAAM,eAAe,GAAG,oBAAoB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;gBAClC,IAAI,eAAe,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;oBACxC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC5B,IAAI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;gBAC/D,MAAM,aAAa,GAAG,uBAAuB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChF,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;gBAClC,IAAI,aAAa,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC1B,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC7D,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;gBAClC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvF,IAAI,aAAa,GAAG,SAAS,CAAC;gBAC9B,MAAM,YAAY,GAAa,EAAE,CAAC;gBAElC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,KAAK,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,IAAI,QAAQ,CAAC;oBAChE,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;wBACjC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxB,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACN,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,QAAgB;QACtD,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO,MAAM,CAAC;QAE7C,sCAAsC;QACtC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExD,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjF,yDAAyD;QACzD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,mBAAmB;QACvF,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;QAEzC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;YACtD,OAAO,GAAG,cAAc,GAAG,WAAW,gBAAgB,IAAI,EAAE,CAAC;QAC/D,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,GAAG,cAAc,GAAG,WAAW,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,oEAAoE;IAE5D,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,4EAA4E;YAC5E,4DAA4D;YAC5D,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,MAAc;QAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,MAAc;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,MAAc;QAC/C,MAAM,QAAQ,GAA0C,EAAE,CAAC;QAC3D,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAyB,CAAC;QAE9B,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,yEAAyE;YACzE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,SAAS,GAA2B,IAAI,CAAC;YAC7C,IAAI,QAAQ,GAA2B,IAAI,CAAC;YAC5C,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7D,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,MAAc;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjF,4CAA4C;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5D,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACzD,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,MAAc;QAC1C,qCAAqC;QACrC,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,4BAA4B;QAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,+BAA+B;QAC/B,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TokenAnalytics — tracks and analyzes token usage patterns across agents.
|
|
3
|
+
*/
|
|
4
|
+
export interface AgentTokenRecord {
|
|
5
|
+
agentId: string;
|
|
6
|
+
agentType: string;
|
|
7
|
+
phaseKind: string;
|
|
8
|
+
inputTokens: number;
|
|
9
|
+
outputTokens: number;
|
|
10
|
+
totalTokens: number;
|
|
11
|
+
outputLength: number;
|
|
12
|
+
turnsUsed: number;
|
|
13
|
+
costUsd: number;
|
|
14
|
+
efficiency: number;
|
|
15
|
+
}
|
|
16
|
+
export interface WasteReport {
|
|
17
|
+
totalTokens: number;
|
|
18
|
+
estimatedWastedTokens: number;
|
|
19
|
+
efficiencyScore: number;
|
|
20
|
+
byAgent: AgentTokenRecord[];
|
|
21
|
+
savingsOpportunities: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare class TokenAnalytics {
|
|
24
|
+
private records;
|
|
25
|
+
/** Record token usage for an agent */
|
|
26
|
+
record(rec: Omit<AgentTokenRecord, 'efficiency'>): void;
|
|
27
|
+
/** Get waste analysis */
|
|
28
|
+
getWasteReport(): WasteReport;
|
|
29
|
+
/** Get per-phase breakdown */
|
|
30
|
+
getPhaseBreakdown(): Map<string, {
|
|
31
|
+
tokens: number;
|
|
32
|
+
agents: number;
|
|
33
|
+
avgEfficiency: number;
|
|
34
|
+
}>;
|
|
35
|
+
/** Reset for new orchestration */
|
|
36
|
+
reset(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=token-analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-analytics.d.ts","sourceRoot":"","sources":["../../src/runtime/token-analytics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA0B;IAEzC,sCAAsC;IACtC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG,IAAI;IAKvD,yBAAyB;IACzB,cAAc,IAAI,WAAW;IA+B7B,8BAA8B;IAC9B,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB3F,kCAAkC;IAClC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TokenAnalytics — tracks and analyzes token usage patterns across agents.
|
|
3
|
+
*/
|
|
4
|
+
export class TokenAnalytics {
|
|
5
|
+
records = [];
|
|
6
|
+
/** Record token usage for an agent */
|
|
7
|
+
record(rec) {
|
|
8
|
+
const efficiency = rec.totalTokens > 0 ? rec.outputLength / rec.totalTokens : 0;
|
|
9
|
+
this.records.push({ ...rec, efficiency });
|
|
10
|
+
}
|
|
11
|
+
/** Get waste analysis */
|
|
12
|
+
getWasteReport() {
|
|
13
|
+
const totalTokens = this.records.reduce((s, r) => s + r.totalTokens, 0);
|
|
14
|
+
const opportunities = [];
|
|
15
|
+
// 1. Agents with efficiency < 0.1 (used many tokens, produced little)
|
|
16
|
+
const inefficient = this.records.filter((r) => r.efficiency < 0.1 && r.totalTokens > 1000);
|
|
17
|
+
if (inefficient.length) {
|
|
18
|
+
opportunities.push(`${inefficient.length} agent(s) with <10% efficiency: ${inefficient.map((r) => r.agentType).join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
// 2. Agents that exceeded typical turns for their type
|
|
21
|
+
const turnLimits = { researcher: 15, implementer: 25, reviewer: 10 };
|
|
22
|
+
const overTurns = this.records.filter((r) => r.turnsUsed > (turnLimits[r.agentType] || 20));
|
|
23
|
+
if (overTurns.length) {
|
|
24
|
+
opportunities.push(`${overTurns.length} agent(s) exceeded turn limits`);
|
|
25
|
+
}
|
|
26
|
+
const estimatedWasted = inefficient.reduce((s, r) => s + r.totalTokens * 0.7, 0);
|
|
27
|
+
const efficiencyScore = totalTokens > 0 ? 1 - estimatedWasted / totalTokens : 1;
|
|
28
|
+
return {
|
|
29
|
+
totalTokens,
|
|
30
|
+
estimatedWastedTokens: Math.round(estimatedWasted),
|
|
31
|
+
efficiencyScore: Math.round(efficiencyScore * 100) / 100,
|
|
32
|
+
byAgent: [...this.records].sort((a, b) => b.totalTokens - a.totalTokens),
|
|
33
|
+
savingsOpportunities: opportunities,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Get per-phase breakdown */
|
|
37
|
+
getPhaseBreakdown() {
|
|
38
|
+
const byPhase = new Map();
|
|
39
|
+
for (const r of this.records) {
|
|
40
|
+
if (!byPhase.has(r.phaseKind))
|
|
41
|
+
byPhase.set(r.phaseKind, []);
|
|
42
|
+
byPhase.get(r.phaseKind).push(r);
|
|
43
|
+
}
|
|
44
|
+
const result = new Map();
|
|
45
|
+
for (const [phase, recs] of byPhase) {
|
|
46
|
+
result.set(phase, {
|
|
47
|
+
tokens: recs.reduce((s, r) => s + r.totalTokens, 0),
|
|
48
|
+
agents: recs.length,
|
|
49
|
+
avgEfficiency: recs.reduce((s, r) => s + r.efficiency, 0) / recs.length,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
/** Reset for new orchestration */
|
|
55
|
+
reset() {
|
|
56
|
+
this.records = [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=token-analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-analytics.js","sourceRoot":"","sources":["../../src/runtime/token-analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,16 @@ export declare class Verifier {
|
|
|
29
29
|
static summarize(results: VerificationResult[]): string;
|
|
30
30
|
/** Auto-detect verification commands from project files */
|
|
31
31
|
private detectCommands;
|
|
32
|
+
/** Map changed files to their corresponding test files and run only those */
|
|
33
|
+
getRelevantTests(changedFiles: string[]): Promise<{
|
|
34
|
+
results: string;
|
|
35
|
+
passed: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
/** Run lint and typecheck before the review phase */
|
|
38
|
+
runPreReviewChecks(): Promise<{
|
|
39
|
+
issues: string;
|
|
40
|
+
hasIssues: boolean;
|
|
41
|
+
}>;
|
|
32
42
|
/** Get configured commands */
|
|
33
43
|
getCommands(): VerificationCommand[];
|
|
34
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/runtime/verifier.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,cAI9B,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAUzD,uDAAuD;IACjD,MAAM,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkC7C,wCAAwC;IAClC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKjC,mDAAmD;IACnD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM;IAKvD,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IA2DtB,8BAA8B;IAC9B,WAAW,IAAI,mBAAmB,EAAE;CAGrC;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAA4B;gBAEnC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAa;IAMxE,wCAAwC;IACxC,KAAK,IAAI,IAAI;IAYb,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAOZ,oCAAoC;IACpC,cAAc,IAAI,kBAAkB,EAAE;IAItC,OAAO,CAAC,oBAAoB;CAwB7B"}
|
|
1
|
+
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/runtime/verifier.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,cAI9B,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAUzD,uDAAuD;IACjD,MAAM,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkC7C,wCAAwC;IAClC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAKjC,mDAAmD;IACnD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM;IAKvD,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IA2DtB,6EAA6E;IACvE,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IA6D7F,qDAAqD;IAC/C,kBAAkB,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAoC3E,8BAA8B;IAC9B,WAAW,IAAI,mBAAmB,EAAE;CAGrC;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAA4B;gBAEnC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAa;IAMxE,wCAAwC;IACxC,KAAK,IAAI,IAAI;IAYb,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAOZ,oCAAoC;IACpC,cAAc,IAAI,kBAAkB,EAAE;IAItC,OAAO,CAAC,oBAAoB;CAwB7B"}
|
package/dist/runtime/verifier.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execFile } from 'child_process';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
3
|
import { existsSync, readFileSync } from 'fs';
|
|
4
|
-
import { join } from 'path';
|
|
4
|
+
import { join, dirname, basename } from 'path';
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
6
|
export const DEFAULT_VERIFIER = {
|
|
7
7
|
enabled: true,
|
|
@@ -112,6 +112,102 @@ export class Verifier {
|
|
|
112
112
|
}
|
|
113
113
|
return commands;
|
|
114
114
|
}
|
|
115
|
+
/** Map changed files to their corresponding test files and run only those */
|
|
116
|
+
async getRelevantTests(changedFiles) {
|
|
117
|
+
const testFiles = [];
|
|
118
|
+
for (const file of changedFiles) {
|
|
119
|
+
// TypeScript/JavaScript
|
|
120
|
+
if (file.match(/\.(ts|js|tsx|jsx)$/)) {
|
|
121
|
+
const ext = file.match(/\.(ts|js|tsx|jsx)$/)[1];
|
|
122
|
+
const testPath = file.replace(/^src\//, 'tests/').replace(/\.(ts|js|tsx|jsx)$/, `.test.${ext}`);
|
|
123
|
+
if (existsSync(join(this.cwd, testPath))) {
|
|
124
|
+
testFiles.push(testPath);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Python
|
|
128
|
+
if (file.endsWith('.py')) {
|
|
129
|
+
const dir = dirname(file);
|
|
130
|
+
const base = basename(file, '.py');
|
|
131
|
+
const testPath = join(dir.replace(/^(src|lib)(\/|$)/, 'tests$2'), `test_${base}.py`);
|
|
132
|
+
if (existsSync(join(this.cwd, testPath))) {
|
|
133
|
+
testFiles.push(testPath);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Go
|
|
137
|
+
if (file.endsWith('.go') && !file.endsWith('_test.go')) {
|
|
138
|
+
const testPath = file.replace(/\.go$/, '_test.go');
|
|
139
|
+
if (existsSync(join(this.cwd, testPath))) {
|
|
140
|
+
testFiles.push(testPath);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (testFiles.length === 0) {
|
|
145
|
+
return { results: 'No relevant test files found.', passed: true };
|
|
146
|
+
}
|
|
147
|
+
// Run relevant tests — detect test runner from project type
|
|
148
|
+
try {
|
|
149
|
+
let cmd, args;
|
|
150
|
+
if (existsSync(join(this.cwd, 'vitest.config.ts')) || existsSync(join(this.cwd, 'vitest.config.js'))) {
|
|
151
|
+
cmd = 'npx';
|
|
152
|
+
args = ['vitest', 'run', ...testFiles];
|
|
153
|
+
}
|
|
154
|
+
else if (existsSync(join(this.cwd, 'jest.config.ts')) || existsSync(join(this.cwd, 'jest.config.js'))) {
|
|
155
|
+
cmd = 'npx';
|
|
156
|
+
args = ['jest', '--no-coverage', ...testFiles];
|
|
157
|
+
}
|
|
158
|
+
else if (existsSync(join(this.cwd, 'package.json'))) {
|
|
159
|
+
cmd = 'npx';
|
|
160
|
+
args = ['vitest', 'run', ...testFiles]; // default for TS
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return { results: 'Could not detect test runner.', passed: true };
|
|
164
|
+
}
|
|
165
|
+
const { stdout } = await execFileAsync(cmd, args, {
|
|
166
|
+
cwd: this.cwd,
|
|
167
|
+
timeout: 30000,
|
|
168
|
+
encoding: 'utf-8',
|
|
169
|
+
});
|
|
170
|
+
return { results: stdout.slice(-1000), passed: true };
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
return { results: (e.stdout || e.stderr || e.message || '').slice(-1000), passed: false };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** Run lint and typecheck before the review phase */
|
|
177
|
+
async runPreReviewChecks() {
|
|
178
|
+
const issues = [];
|
|
179
|
+
// TypeScript typecheck
|
|
180
|
+
if (existsSync(join(this.cwd, 'tsconfig.json'))) {
|
|
181
|
+
try {
|
|
182
|
+
await execFileAsync('npx', ['tsc', '--noEmit'], {
|
|
183
|
+
cwd: this.cwd,
|
|
184
|
+
timeout: 30000,
|
|
185
|
+
encoding: 'utf-8',
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
issues.push(`TypeScript errors:\n${(e.stdout || e.stderr || e.message || '').slice(0, 1000)}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// ESLint
|
|
193
|
+
const eslintConfigs = ['eslint.config.js', 'eslint.config.mjs', '.eslintrc.json', '.eslintrc.js'];
|
|
194
|
+
if (eslintConfigs.some((c) => existsSync(join(this.cwd, c)))) {
|
|
195
|
+
try {
|
|
196
|
+
await execFileAsync('npx', ['eslint', '.', '--max-warnings=0'], {
|
|
197
|
+
cwd: this.cwd,
|
|
198
|
+
timeout: 30000,
|
|
199
|
+
encoding: 'utf-8',
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
issues.push(`ESLint issues:\n${(e.stdout || e.stderr || e.message || '').slice(0, 1000)}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
issues: issues.join('\n\n'),
|
|
208
|
+
hasIssues: issues.length > 0,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
115
211
|
/** Get configured commands */
|
|
116
212
|
getCommands() {
|
|
117
213
|
return this.config.commands;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/runtime/verifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/runtime/verifier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swarm-engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"description": "Self-aware multi-agent orchestration engine with knowledge graph, causal inference, GNN failure prediction, and self-evolving rules — pure TypeScript",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|