daedalus-cli 3.30.0 → 3.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/agents/completion-guard.d.ts +2 -0
- package/dist/agents/completion-guard.d.ts.map +1 -1
- package/dist/agents/completion-guard.js +26 -0
- package/dist/agents/completion-guard.js.map +1 -1
- package/dist/agents/completion-guard.test.js +33 -1
- package/dist/agents/completion-guard.test.js.map +1 -1
- package/dist/agents/loop-guards.d.ts +35 -0
- package/dist/agents/loop-guards.d.ts.map +1 -0
- package/dist/agents/loop-guards.js +84 -0
- package/dist/agents/loop-guards.js.map +1 -0
- package/dist/agents/loop-guards.test.d.ts +2 -0
- package/dist/agents/loop-guards.test.d.ts.map +1 -0
- package/dist/agents/loop-guards.test.js +65 -0
- package/dist/agents/loop-guards.test.js.map +1 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +71 -1
- package/dist/model.js.map +1 -1
- package/dist/skills/auto-synthesis.d.ts +1 -8
- package/dist/skills/auto-synthesis.d.ts.map +1 -1
- package/dist/skills/auto-synthesis.js +15 -0
- package/dist/skills/auto-synthesis.js.map +1 -1
- package/dist/skills/auto-synthesis.test.js +30 -1
- package/dist/skills/auto-synthesis.test.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [3.30.1](https://github.com/bgill55/daedalus/compare/v3.30.0...v3.30.1) (2026-08-16)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **loop:** add idle re-read breaker and block green build/test claims after circuit breaker ([#117](https://github.com/bgill55/daedalus/issues/117)) ([b3a63ef](https://github.com/bgill55/daedalus/commit/b3a63efa161e09c75204f1bc68ec6f673b657bbb))
|
|
7
|
+
* **skills:** skip auto-synthesis for trivial ack/transition turns and no-work summaries ([#116](https://github.com/bgill55/daedalus/issues/116)) ([69a7739](https://github.com/bgill55/daedalus/commit/69a77396f4dbc3ad9dc54fd9efcbebce1ab361e5))
|
|
8
|
+
|
|
1
9
|
# [3.30.0](https://github.com/bgill55/daedalus/compare/v3.29.1...v3.30.0) (2026-08-14)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -9,4 +9,6 @@ export declare function countIncompleteTodos(todos: SqliteTodo[]): number;
|
|
|
9
9
|
export declare function detectFalseCompletion(text: string, todos: SqliteTodo[]): boolean;
|
|
10
10
|
export declare function falseCompletionWarning(remaining: number): string;
|
|
11
11
|
export declare function detectFalseCompletionOnDisk(text: string, context: ToolContext | undefined): string | null;
|
|
12
|
+
export declare function isScopeOverstatedSummary(text: string, todos: SqliteTodo[]): boolean;
|
|
13
|
+
export declare function scopeOverstatementWarning(remaining: number): string;
|
|
12
14
|
//# sourceMappingURL=completion-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-guard.d.ts","sourceRoot":"","sources":["../../src/agents/completion-guard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAIhF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQhE;AAkDD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAwBzG"}
|
|
1
|
+
{"version":3,"file":"completion-guard.d.ts","sourceRoot":"","sources":["../../src/agents/completion-guard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAIhF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQhE;AAkDD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAwBzG;AAcD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAMnF;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CASnE"}
|
|
@@ -108,4 +108,30 @@ export function detectFalseCompletionOnDisk(text, context) {
|
|
|
108
108
|
}
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
|
+
// Scope-overstatement guard for closing summaries. A turn that wraps up with a
|
|
112
|
+
// deliverable checklist ("Task 1 - ... Done", "Task 3 - Refine Workflow: ...") while its
|
|
113
|
+
// tracked todo list still has open items is over-reporting — it enumerates sub-deliverables
|
|
114
|
+
// as if complete but the run's own task tracker disagrees. This catches the case where the
|
|
115
|
+
// agent relabels a partially-shipped feature (e.g. "Refine workflow" reduced to "editable
|
|
116
|
+
// textarea") as fully delivered in the summary. We only fire on a closing summary (the turn
|
|
117
|
+
// is ending) that contains a "Task N:" deliverable enumeration AND a completion-ish verb.
|
|
118
|
+
const SUMMARY_TASK_ENUM_RE = /(task\s*\d+|step\s*\d+|issue\s*#?\d+|#\d+)\s*[:—-]|✅\s*(task|step|issue)|all \d+ (tasks|sprints|issues)/i;
|
|
119
|
+
const SUMMARY_DONE_VERB_RE = /\b(complete|completed|done|delivered|finished|shipped|resolved|implemented|all (tasks|sprints|issues) (are )?(complete|done))\b/i;
|
|
120
|
+
export function isScopeOverstatedSummary(text, todos) {
|
|
121
|
+
if (!text || !SUMMARY_TASK_ENUM_RE.test(text))
|
|
122
|
+
return false;
|
|
123
|
+
// If every todo is closed, the enumeration is accurate — no over-statement.
|
|
124
|
+
if (todos.length === 0 || countIncompleteTodos(todos) === 0)
|
|
125
|
+
return false;
|
|
126
|
+
// Only flag when the summary asserts completion of the enumerated tasks.
|
|
127
|
+
return SUMMARY_DONE_VERB_RE.test(text);
|
|
128
|
+
}
|
|
129
|
+
export function scopeOverstatementWarning(remaining) {
|
|
130
|
+
return (`[SYSTEM WARNING] Your closing summary enumerates sub-tasks/steps as delivered, but ${remaining} ` +
|
|
131
|
+
`tracked todo item(s) are still open. Do NOT present the deliverable checklist as complete. ` +
|
|
132
|
+
`Either (1) finish the remaining items and update the todo list before summarizing, or (2) clearly ` +
|
|
133
|
+
`label which enumerated items are partially done vs fully done (e.g. "Task 3 - Refine Workflow: ` +
|
|
134
|
+
`PARTIAL — editable textarea shipped; Save-to-Existing dropdown not implemented"). Keep the summary ` +
|
|
135
|
+
`scoped to what actually shipped.`);
|
|
136
|
+
}
|
|
111
137
|
//# sourceMappingURL=completion-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-guard.js","sourceRoot":"","sources":["../../src/agents/completion-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion-guard.js","sourceRoot":"","sources":["../../src/agents/completion-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { isCompletionClaim, countIncompleteTodos, detectFalseCompletion, falseCompletionWarning, detectFalseCompletionOnDisk, } from './completion-guard.js';
|
|
2
|
+
import { isCompletionClaim, countIncompleteTodos, detectFalseCompletion, falseCompletionWarning, detectFalseCompletionOnDisk, isScopeOverstatedSummary, } from './completion-guard.js';
|
|
3
3
|
function todo(status) {
|
|
4
4
|
return { id: Math.random().toString(36), content: 'x', status };
|
|
5
5
|
}
|
|
@@ -78,4 +78,36 @@ describe('detectFalseCompletionOnDisk', () => {
|
|
|
78
78
|
expect(detectFalseCompletionOnDisk('All issues resolved, createApp no longer starts the server (src/server.ts)', c)).toBe('src/server.ts');
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
+
describe('isScopeOverstatedSummary', () => {
|
|
82
|
+
function todo(status) {
|
|
83
|
+
return { id: Math.random().toString(36), content: 'x', status };
|
|
84
|
+
}
|
|
85
|
+
it('flags a deliverable checklist summary while todos remain open', () => {
|
|
86
|
+
const todos = [todo('completed'), todo('pending'), todo('pending')];
|
|
87
|
+
const summary = 'Task 1 - Preview Validation: Done. Task 2 - safeParseJson Tests: Done. ' +
|
|
88
|
+
'Task 3 - Refine Workflow: Done. All changes shipped.';
|
|
89
|
+
expect(isScopeOverstatedSummary(summary, todos)).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
it('does NOT flag when all todos are completed', () => {
|
|
92
|
+
const todos = [todo('completed'), todo('completed'), todo('completed')];
|
|
93
|
+
const summary = 'Task 1 - Preview Validation: Done. Task 2 - safeParseJson Tests: Done. Task 3 - Refine Workflow: Done.';
|
|
94
|
+
expect(isScopeOverstatedSummary(summary, todos)).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
it('does NOT flag a summary without a task enumeration', () => {
|
|
97
|
+
const todos = [todo('completed'), todo('pending')];
|
|
98
|
+
const summary = 'All the changes are complete and the build is green.';
|
|
99
|
+
expect(isScopeOverstatedSummary(summary, todos)).toBe(false);
|
|
100
|
+
});
|
|
101
|
+
it('does NOT flag an enumeration that is not claimed done', () => {
|
|
102
|
+
const todos = [todo('completed'), todo('pending')];
|
|
103
|
+
const summary = 'Task 1 - Preview Validation: in progress. Task 2 - safeParseJson Tests: planned. ' +
|
|
104
|
+
'Here is where things stand.';
|
|
105
|
+
expect(isScopeOverstatedSummary(summary, todos)).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
it('flags an Issue #N enumeration claimed complete with open todos', () => {
|
|
108
|
+
const todos = [todo('completed'), todo('pending')];
|
|
109
|
+
const summary = 'Issue #1: completed. Issue #2: completed. Everything is resolved.';
|
|
110
|
+
expect(isScopeOverstatedSummary(summary, todos)).toBe(true);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
81
113
|
//# sourceMappingURL=completion-guard.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-guard.test.js","sourceRoot":"","sources":["../../src/agents/completion-guard.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"completion-guard.test.js","sourceRoot":"","sources":["../../src/agents/completion-guard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare class ReadStallDetector {
|
|
2
|
+
private threshold;
|
|
3
|
+
private counts;
|
|
4
|
+
private anyWrite;
|
|
5
|
+
private lastReadFile;
|
|
6
|
+
private consecutiveSameFile;
|
|
7
|
+
constructor(threshold?: number);
|
|
8
|
+
/**
|
|
9
|
+
* Record a read tool result. Returns true once the SAME file has been read
|
|
10
|
+
* `threshold` times CONSECUTIVELY (no other tool between reads) and the turn has not
|
|
11
|
+
* written any file (a write breaks the stall assumption). This isolates the real
|
|
12
|
+
* "fix was already present — re-reading the same file forever" pathology from normal
|
|
13
|
+
* multi-file review or budget-exhaustion loops that alternate files.
|
|
14
|
+
*/
|
|
15
|
+
registerRead(filePath: string | undefined): boolean;
|
|
16
|
+
/** A successful file write breaks the stall assumption for the rest of the turn. */
|
|
17
|
+
registerWrite(): void;
|
|
18
|
+
get readCount(): number;
|
|
19
|
+
/** True once the same file has been read `threshold` times consecutively with no write. */
|
|
20
|
+
get stalled(): boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* True if `text` asserts a green build/test/lint outcome. Used to block such claims when
|
|
24
|
+
* the verify command just tripped the circuit breaker without a real successful run.
|
|
25
|
+
* Fires when the text names a verify command (npm/vitest/tsc/...) OR explicitly references
|
|
26
|
+
* the build/test/lint being green.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isGreenBuildTestClaim(text: string): boolean;
|
|
29
|
+
/** True when `text` reports that a verify command (build/test/lint) was run successfully. */
|
|
30
|
+
export declare function isVerifyRunReport(text: string): boolean;
|
|
31
|
+
export declare const __test: {
|
|
32
|
+
BUILD_OR_TEST_RE: RegExp;
|
|
33
|
+
GREEN_BUILD_RE: RegExp;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=loop-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-guards.d.ts","sourceRoot":"","sources":["../../src/agents/loop-guards.ts"],"names":[],"mappings":"AAeA,qBAAa,iBAAiB;IAShB,OAAO,CAAC,SAAS;IAR7B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAS;IAIzB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,mBAAmB,CAAK;gBAEZ,SAAS,SAA0B;IAEvD;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAcnD,oFAAoF;IACpF,aAAa,IAAI,IAAI;IAOrB,IAAI,SAAS,IAAI,MAAM,CAItB;IAED,2FAA2F;IAC3F,IAAI,OAAO,IAAI,OAAO,CAErB;CACF;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,eAAO,MAAM,MAAM;;;CAAuC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Loop-guard helpers shared by the single-agent turn loop (model.ts). These catch
|
|
2
|
+
// two wasteful patterns observed in real sessions:
|
|
3
|
+
//
|
|
4
|
+
// 1. Idle re-read stall — the agent spends a long turn re-reading the same file
|
|
5
|
+
// (often after discovering the "fix" was already present) without making any edit.
|
|
6
|
+
// At trivial-token cost it wastes minutes of wall-clock and model budget. We detect
|
|
7
|
+
// a single file read many times with no intervening write and short-circuit the turn.
|
|
8
|
+
//
|
|
9
|
+
// 2. Post-circuit-breaker verification claim — after a `npm run build && npm run test`
|
|
10
|
+
// command trips the circuit breaker (no progress), the turn sometimes still reports
|
|
11
|
+
// "Build passes / Tests green" without a fresh, successful run. We record that the
|
|
12
|
+
// breaker fired and block a green build/test claim until a real success is observed.
|
|
13
|
+
const DEFAULT_STALL_THRESHOLD = 15;
|
|
14
|
+
export class ReadStallDetector {
|
|
15
|
+
threshold;
|
|
16
|
+
counts = new Map();
|
|
17
|
+
anyWrite = false;
|
|
18
|
+
// Tracks a TIGHT re-read loop: the same file read repeatedly with no other tool in
|
|
19
|
+
// between. Alternating reads (a.ts -> b.ts -> a.ts) or reads interleaved with real work
|
|
20
|
+
// do NOT count as a stall — only an unbroken same-file read streak does.
|
|
21
|
+
lastReadFile;
|
|
22
|
+
consecutiveSameFile = 0;
|
|
23
|
+
constructor(threshold = DEFAULT_STALL_THRESHOLD) {
|
|
24
|
+
this.threshold = threshold;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Record a read tool result. Returns true once the SAME file has been read
|
|
28
|
+
* `threshold` times CONSECUTIVELY (no other tool between reads) and the turn has not
|
|
29
|
+
* written any file (a write breaks the stall assumption). This isolates the real
|
|
30
|
+
* "fix was already present — re-reading the same file forever" pathology from normal
|
|
31
|
+
* multi-file review or budget-exhaustion loops that alternate files.
|
|
32
|
+
*/
|
|
33
|
+
registerRead(filePath) {
|
|
34
|
+
if (this.anyWrite)
|
|
35
|
+
return false;
|
|
36
|
+
if (!filePath)
|
|
37
|
+
return false;
|
|
38
|
+
if (filePath === this.lastReadFile) {
|
|
39
|
+
this.consecutiveSameFile += 1;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.lastReadFile = filePath;
|
|
43
|
+
this.consecutiveSameFile = 1;
|
|
44
|
+
}
|
|
45
|
+
const prev = this.counts.get(filePath) ?? 0;
|
|
46
|
+
this.counts.set(filePath, prev + 1);
|
|
47
|
+
return this.consecutiveSameFile >= this.threshold;
|
|
48
|
+
}
|
|
49
|
+
/** A successful file write breaks the stall assumption for the rest of the turn. */
|
|
50
|
+
registerWrite() {
|
|
51
|
+
this.anyWrite = true;
|
|
52
|
+
this.counts.clear();
|
|
53
|
+
this.consecutiveSameFile = 0;
|
|
54
|
+
this.lastReadFile = undefined;
|
|
55
|
+
}
|
|
56
|
+
get readCount() {
|
|
57
|
+
let max = 0;
|
|
58
|
+
for (const v of this.counts.values())
|
|
59
|
+
max = Math.max(max, v);
|
|
60
|
+
return max;
|
|
61
|
+
}
|
|
62
|
+
/** True once the same file has been read `threshold` times consecutively with no write. */
|
|
63
|
+
get stalled() {
|
|
64
|
+
return !this.anyWrite && this.consecutiveSameFile >= this.threshold;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const BUILD_OR_TEST_RE = /\b(npm run (build|test|lint)|pnpm (run )?(build|test|lint)|yarn (build|test|lint)|tsc(\s+--noEmit)?|vitest|jest|npm test)\b/i;
|
|
68
|
+
const GREEN_BUILD_RE = /\b(build (passes|is (clean|green)|succeeded)|tests? (pass(es|ing|ed)?|green)|(clean|green) (build|tests)|9\/\d passing|\d+\/\d+ (passing|tests? passed)|✅|passes|green|clean)\b/i;
|
|
69
|
+
/**
|
|
70
|
+
* True if `text` asserts a green build/test/lint outcome. Used to block such claims when
|
|
71
|
+
* the verify command just tripped the circuit breaker without a real successful run.
|
|
72
|
+
* Fires when the text names a verify command (npm/vitest/tsc/...) OR explicitly references
|
|
73
|
+
* the build/test/lint being green.
|
|
74
|
+
*/
|
|
75
|
+
export function isGreenBuildTestClaim(text) {
|
|
76
|
+
const namesVerify = BUILD_OR_TEST_RE.test(text) || /\b(build|tests?|lint(ing)?)\b/i.test(text);
|
|
77
|
+
return namesVerify && GREEN_BUILD_RE.test(text);
|
|
78
|
+
}
|
|
79
|
+
/** True when `text` reports that a verify command (build/test/lint) was run successfully. */
|
|
80
|
+
export function isVerifyRunReport(text) {
|
|
81
|
+
return BUILD_OR_TEST_RE.test(text) && /\b(pass|passed|clean|green|✅|0 errors|succeed)/i.test(text);
|
|
82
|
+
}
|
|
83
|
+
export const __test = { BUILD_OR_TEST_RE, GREEN_BUILD_RE };
|
|
84
|
+
//# sourceMappingURL=loop-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-guards.js","sourceRoot":"","sources":["../../src/agents/loop-guards.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,mDAAmD;AACnD,EAAE;AACF,iFAAiF;AACjF,uFAAuF;AACvF,wFAAwF;AACxF,0FAA0F;AAC1F,EAAE;AACF,wFAAwF;AACxF,wFAAwF;AACxF,uFAAuF;AACvF,yFAAyF;AAEzF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,OAAO,iBAAiB;IASR;IARZ,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnC,QAAQ,GAAG,KAAK,CAAC;IACzB,mFAAmF;IACnF,wFAAwF;IACxF,yEAAyE;IACjE,YAAY,CAAqB;IACjC,mBAAmB,GAAG,CAAC,CAAC;IAEhC,YAAoB,YAAY,uBAAuB;QAAnC,cAAS,GAAT,SAAS,CAA0B;IAAG,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,QAA4B;QACvC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,oFAAoF;IACpF,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,SAAS;QACX,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,2FAA2F;IAC3F,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC;IACtE,CAAC;CACF;AAED,MAAM,gBAAgB,GACpB,8HAA8H,CAAC;AAEjI,MAAM,cAAc,GAClB,kLAAkL,CAAC;AAErL;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,OAAO,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-guards.test.d.ts","sourceRoot":"","sources":["../../src/agents/loop-guards.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ReadStallDetector, isGreenBuildTestClaim, isVerifyRunReport } from './loop-guards.js';
|
|
3
|
+
describe('ReadStallDetector', () => {
|
|
4
|
+
it('does not flag a few reads of the same file', () => {
|
|
5
|
+
const d = new ReadStallDetector(15);
|
|
6
|
+
for (let i = 0; i < 5; i++)
|
|
7
|
+
expect(d.registerRead('/repo/src/db.ts')).toBe(false);
|
|
8
|
+
expect(d.readCount).toBe(5);
|
|
9
|
+
});
|
|
10
|
+
it('flags once a single file is read >= threshold times with no write', () => {
|
|
11
|
+
const d = new ReadStallDetector(15);
|
|
12
|
+
let stalled = false;
|
|
13
|
+
for (let i = 0; i < 15; i++) {
|
|
14
|
+
if (d.registerRead('/repo/src/db.ts'))
|
|
15
|
+
stalled = true;
|
|
16
|
+
}
|
|
17
|
+
expect(stalled).toBe(true);
|
|
18
|
+
expect(d.readCount).toBe(15);
|
|
19
|
+
});
|
|
20
|
+
it('counts different files separately (no false stall)', () => {
|
|
21
|
+
const d = new ReadStallDetector(3);
|
|
22
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
23
|
+
expect(d.registerRead('/b.ts')).toBe(false);
|
|
24
|
+
expect(d.registerRead('/c.ts')).toBe(false);
|
|
25
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
26
|
+
expect(d.registerRead('/b.ts')).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it('a successful write resets the stall assumption', () => {
|
|
29
|
+
const d = new ReadStallDetector(3);
|
|
30
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
31
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
32
|
+
d.registerWrite();
|
|
33
|
+
// Repeated reads while actively editing are fine — no stall.
|
|
34
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
35
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
36
|
+
expect(d.registerRead('/a.ts')).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
it('ignores reads with no path', () => {
|
|
39
|
+
const d = new ReadStallDetector(2);
|
|
40
|
+
expect(d.registerRead(undefined)).toBe(false);
|
|
41
|
+
expect(d.registerRead(undefined)).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
describe('isGreenBuildTestClaim', () => {
|
|
45
|
+
it('true for a green build claim', () => {
|
|
46
|
+
expect(isGreenBuildTestClaim('Build: ✅ Passes (tsc --noEmit)')).toBe(true);
|
|
47
|
+
expect(isGreenBuildTestClaim('Tests: ✅ 9/9 passing')).toBe(true);
|
|
48
|
+
expect(isGreenBuildTestClaim('Both the build and tests are green.')).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it('false when no verify command is mentioned', () => {
|
|
51
|
+
expect(isGreenBuildTestClaim('All tasks are complete and the code is clean.')).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
it('false when a verify command is mentioned but no green outcome', () => {
|
|
54
|
+
expect(isGreenBuildTestClaim('I ran npm run build and got errors.')).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('isVerifyRunReport', () => {
|
|
58
|
+
it('true for a successful verify run report', () => {
|
|
59
|
+
expect(isVerifyRunReport('> npm run test\n ✓ 16 passed')).toBe(true);
|
|
60
|
+
});
|
|
61
|
+
it('false for a verify command with failures', () => {
|
|
62
|
+
expect(isVerifyRunReport('> npm run build\nerror TS2375')).toBe(false);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=loop-guards.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-guards.test.js","sourceRoot":"","sources":["../../src/agents/loop-guards.test.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkBxD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,eAAO,IAAI,sBAAsB,EAAE,eAAe,GAAG,IAAW,CAAC;AAGjE,wBAAgB,SAAS,IAAI,IAAI,CAKhC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAuBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAqCtD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAiBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS;sCAInC,MAAM,gBACL,MAAM,KACnB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;yCA0pBJ,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EAsCjG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAOrF;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5C,kBAAkB,CAIpB"}
|
package/dist/model.js
CHANGED
|
@@ -2,7 +2,8 @@ import pc from 'picocolors';
|
|
|
2
2
|
import { BUILTIN_TOOLS, POWER_TOOLS } from './tools/definitions.js';
|
|
3
3
|
import { executeToolCalls } from './tools/executor.js';
|
|
4
4
|
import { getSessionTodos } from './tools/builtin/todo.js';
|
|
5
|
-
import { detectFalseCompletion, falseCompletionWarning, detectFalseCompletionOnDisk } from './agents/completion-guard.js';
|
|
5
|
+
import { detectFalseCompletion, falseCompletionWarning, detectFalseCompletionOnDisk, isScopeOverstatedSummary, scopeOverstatementWarning } from './agents/completion-guard.js';
|
|
6
|
+
import { ReadStallDetector, isGreenBuildTestClaim } from './agents/loop-guards.js';
|
|
6
7
|
import { mcpRegistry } from './tools/mcp/registry.js';
|
|
7
8
|
import { DaedalusSpinner } from './tools/daedalus-spinner.js';
|
|
8
9
|
import { calculateSessionTokens, pruneMessages } from './session/tokens.js';
|
|
@@ -197,6 +198,15 @@ export function createModelFunctions(deps) {
|
|
|
197
198
|
const isWriteToolSyntaxLoop = (name, errText) => ['patch', 'write_file'].includes(name) &&
|
|
198
199
|
/syntax error|revert|invalid (ts|typescript)|unexpected token|expected ['"]|circuit breaker|consecutive times|patch failed \d+ consecutive/i.test(errText);
|
|
199
200
|
const executedToolNames = new Set();
|
|
201
|
+
// Layer B: idle re-read breaker. A turn that reads the same file many times with no
|
|
202
|
+
// intervening write is usually "the fix was already present" spinning on re-reads.
|
|
203
|
+
// Short-circuit it before it burns minutes of wall-clock + model budget.
|
|
204
|
+
const readStall = new ReadStallDetector(15);
|
|
205
|
+
// Layer C: verification-claim guard. Set true if a build/test/lint verify command
|
|
206
|
+
// trips the terminal circuit breaker this turn; cleared by a real successful run.
|
|
207
|
+
let verifyBreakerTrippedThisTurn = false;
|
|
208
|
+
let verifyBreakerTrippedLastTurn = toolContext.verifyBreakerTrippedLastTurn ?? false;
|
|
209
|
+
const CIRCUIT_BREAKER_RE = /\[CIRCUIT BREAKER\][^\n]*unchanged with no progress/i;
|
|
200
210
|
const signatureHistory = [];
|
|
201
211
|
let pinnedModel;
|
|
202
212
|
let escalationCount = 0;
|
|
@@ -391,6 +401,44 @@ export function createModelFunctions(deps) {
|
|
|
391
401
|
});
|
|
392
402
|
continue;
|
|
393
403
|
}
|
|
404
|
+
// Hard guard (scope): do not let a closing summary present a deliverable checklist
|
|
405
|
+
// ("Task 1 ... Task 3 ...") as complete while the todo list still has open items. That
|
|
406
|
+
// is a scope over-statement (e.g. relabeling a partial feature as fully shipped). Force
|
|
407
|
+
// the summary to be scoped to what actually landed or honestly mark the partial items.
|
|
408
|
+
const scopeTodos = getSessionTodos(toolContext.sessionId);
|
|
409
|
+
if (scopeTodos.length > 0 && isScopeOverstatedSummary(cleanContent, scopeTodos)) {
|
|
410
|
+
const remaining = scopeTodos.filter((t) => t.status !== 'completed').length;
|
|
411
|
+
console.log(pc.dim(`\n [CHECK] Verifying completion claim — summary enumerates tasks as done but ${remaining} todo(s) still open.`));
|
|
412
|
+
messages.push({ role: 'assistant', content: cleanContent });
|
|
413
|
+
messages.push({
|
|
414
|
+
role: 'user',
|
|
415
|
+
content: scopeOverstatementWarning(remaining),
|
|
416
|
+
});
|
|
417
|
+
continue;
|
|
418
|
+
}
|
|
419
|
+
// Layer B: idle re-read breaker. If the turn spent its budget re-reading the same
|
|
420
|
+
// file (the "fix was already present" spin) with no edit, force it to report the
|
|
421
|
+
// blocker honestly instead of looping. Close the turn with a concise note.
|
|
422
|
+
if (readStall.stalled) {
|
|
423
|
+
closeAssistantBlock(cleanContent.length, Date.now() - overallStart, totalToolCalls, router.lastRoutedModel, turnUsageOut, router.lastRoutedTier);
|
|
424
|
+
console.log(pc.dim(`\n [DONE] Idle re-read stall: same file read ${readStall.readCount} times consecutively with no edit. Closing turn.`));
|
|
425
|
+
toolContext.verifyBreakerTrippedLastTurn = verifyBreakerTrippedThisTurn || verifyBreakerTrippedLastTurn;
|
|
426
|
+
return { content: `${cleanContent}\n\n[SELF-CORRECT] I re-read the same file ${readStall.readCount} times without making changes — the change is likely already present on disk. Report the actual on-disk state to the user rather than continuing to read.`, toolCalls: [] };
|
|
427
|
+
}
|
|
428
|
+
// Layer C: verification-claim guard. Block a green build/test claim when the verify
|
|
429
|
+
// command tripped the circuit breaker this turn (or last turn) and no fresh
|
|
430
|
+
// successful run cleared it — forces a real re-run or an honest blocker report.
|
|
431
|
+
if (isGreenBuildTestClaim(cleanContent) && (verifyBreakerTrippedThisTurn || verifyBreakerTrippedLastTurn)) {
|
|
432
|
+
console.log(pc.dim(`\n [CHECK] Verifying completion claim — build/test command tripped the circuit breaker; no fresh successful run observed.`));
|
|
433
|
+
toolContext.verifyBreakerTrippedLastTurn = true;
|
|
434
|
+
messages.push({ role: 'assistant', content: cleanContent });
|
|
435
|
+
messages.push({
|
|
436
|
+
role: 'user',
|
|
437
|
+
content: `[SYSTEM WARNING] You reported the build/tests pass, but the verify command tripped the circuit breaker this session (no progress) and no fresh successful run was observed. Do NOT claim green without re-running the command and seeing a real pass. Either (1) run \`npm run build && npm run test\` again and confirm real output, or (2) report the blocker honestly (e.g. the command hung / was blocked).`,
|
|
438
|
+
});
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
441
|
+
toolContext.verifyBreakerTrippedLastTurn = verifyBreakerTrippedThisTurn || verifyBreakerTrippedLastTurn;
|
|
394
442
|
messages.push({ role: 'assistant', content: cleanContent });
|
|
395
443
|
return { content: cleanContent, toolCalls: [] };
|
|
396
444
|
}
|
|
@@ -508,6 +556,28 @@ export function createModelFunctions(deps) {
|
|
|
508
556
|
tool_call_id: result.toolCallId || approvedCalls[ri]?.id || '',
|
|
509
557
|
});
|
|
510
558
|
printToolResult(result.name, result.success, result.error);
|
|
559
|
+
// Layer B: feed the read-stall detector. A read_file with no error is a "read";
|
|
560
|
+
// a successful patch/write_file is a "write" (breaks the stall assumption).
|
|
561
|
+
if (result.success && result.name === 'read_file') {
|
|
562
|
+
let readPath;
|
|
563
|
+
try {
|
|
564
|
+
readPath = JSON.parse(approvedCalls[ri]?.function?.arguments ?? '{}').path;
|
|
565
|
+
}
|
|
566
|
+
catch { /* ignore */ }
|
|
567
|
+
if (!readStall.registerRead(readPath)) { /* not stalled yet */ }
|
|
568
|
+
}
|
|
569
|
+
if (result.success && (result.name === 'patch' || result.name === 'write_file')) {
|
|
570
|
+
readStall.registerWrite();
|
|
571
|
+
}
|
|
572
|
+
// Layer C: detect a terminal circuit-breaker on a build/test/lint verify command.
|
|
573
|
+
if (result.name === 'terminal' && CIRCUIT_BREAKER_RE.test(`${result.error ?? ''}\n${result.content ?? ''}`)) {
|
|
574
|
+
verifyBreakerTrippedThisTurn = true;
|
|
575
|
+
}
|
|
576
|
+
// A real successful build/test/lint run this turn clears the breaker flag — proof.
|
|
577
|
+
if (result.name === 'terminal' && result.success && /\b(npm run (build|test|lint)|pnpm (run )?(build|test|lint)|yarn (build|test|lint)|tsc(\s+--noEmit)?|vitest|jest)\b/i.test(`${result.content ?? ''}`) && /(pass|passed|clean|green|✅|0 errors|succeed)/i.test(`${result.content ?? ''}`)) {
|
|
578
|
+
verifyBreakerTrippedThisTurn = false;
|
|
579
|
+
verifyBreakerTrippedLastTurn = false;
|
|
580
|
+
}
|
|
511
581
|
if (result.success && result.name === 'todo') {
|
|
512
582
|
const todos = getSessionTodos(toolContext.sessionId);
|
|
513
583
|
const done = todos.filter(t => t.status === 'completed').length;
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,6 @@ export interface SynthesisResult {
|
|
|
4
4
|
filePath?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare function slugify(text: string): string;
|
|
7
|
-
|
|
8
|
-
* Auto-synthesize a skill DRAFT from a successful turn. Writes to the shared
|
|
9
|
-
* draft store (~/.daedalus/skills/.drafts/<slug>.json) so it surfaces in /skills
|
|
10
|
-
* for human review/approval. Never becomes active until a human approves it.
|
|
11
|
-
*
|
|
12
|
-
* The draft store deliberately ignores project-local paths and the shipped
|
|
13
|
-
* skills dir, so this can only ever propose — never auto-activate — a skill.
|
|
14
|
-
*/
|
|
7
|
+
export declare function isTrivialPrompt(prompt: string): boolean;
|
|
15
8
|
export declare function synthesizeSkillFromTurn(userPrompt: string, turnSummary: string): SynthesisResult;
|
|
16
9
|
//# sourceMappingURL=auto-synthesis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-synthesis.d.ts","sourceRoot":"","sources":["../../src/skills/auto-synthesis.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C;
|
|
1
|
+
{"version":3,"file":"auto-synthesis.d.ts","sourceRoot":"","sources":["../../src/skills/auto-synthesis.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C;AAgBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvD;AAQD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,eAAe,CA6BjB"}
|
|
@@ -15,11 +15,26 @@ export function slugify(text) {
|
|
|
15
15
|
* The draft store deliberately ignores project-local paths and the shipped
|
|
16
16
|
* skills dir, so this can only ever propose — never auto-activate — a skill.
|
|
17
17
|
*/
|
|
18
|
+
// Turns that are mere acknowledgements / transitions carry no reusable recipe and
|
|
19
|
+
// only pollute the .drafts store ("yes", "ok lets move on to #4", "awesome"). We skip
|
|
20
|
+
// them rather than synthesizing a skill from trivial conversation.
|
|
21
|
+
const TRIVIAL_PROMPT_RE = /^(\s*(yes|yeah|yep|yup|ok|okay|sure|cool|nice|sweet|awesome|great|thanks|thank you|fine|go ahead|proceed|continue|lets? (go|move (on|forward)|do (that|it))|let's (go|move (on|forward)|do (that|it))|move on to (#\w+|\w+)|next)\b)/i;
|
|
22
|
+
export function isTrivialPrompt(prompt) {
|
|
23
|
+
return TRIVIAL_PROMPT_RE.test(prompt.trim());
|
|
24
|
+
}
|
|
25
|
+
// A turn summary that shows no actual work performed (no edit/run confirmation, no
|
|
26
|
+
// file change) is not a reusable playbook. We require at least one "did work" signal
|
|
27
|
+
// before proposing a skill, so read-only summaries and "nothing to do" turns don't synth.
|
|
28
|
+
const NO_WORK_SUMMARY_RE = /\b(no (changes|patches|edits|fix(es)?) (were )?made|already (fixed|resolved|done|present)|nothing (to do|left|changed)|no further (changes|action)|change[s]? (already )?(present|in place|existing))\b/i;
|
|
18
29
|
export function synthesizeSkillFromTurn(userPrompt, turnSummary) {
|
|
19
30
|
if (!userPrompt || userPrompt.length < 10)
|
|
20
31
|
return { synthesized: false };
|
|
21
32
|
if (!turnSummary || turnSummary.length < 30)
|
|
22
33
|
return { synthesized: false };
|
|
34
|
+
if (isTrivialPrompt(userPrompt))
|
|
35
|
+
return { synthesized: false };
|
|
36
|
+
if (NO_WORK_SUMMARY_RE.test(turnSummary))
|
|
37
|
+
return { synthesized: false };
|
|
23
38
|
const slug = slugify(userPrompt);
|
|
24
39
|
if (!slug || slug.length < 3)
|
|
25
40
|
return { synthesized: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-synthesis.js","sourceRoot":"","sources":["../../src/skills/auto-synthesis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,WAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACzE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE3E,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE5D,oFAAoF;IACpF,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACtG,IAAI,QAAQ;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,wDAAwD,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IACxH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC;YAC/B,IAAI;YACJ,WAAW;YACX,OAAO,EAAE,IAAI;YACb,mEAAmE;YACnE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,wIAAwI,UAAU,6BAA6B,WAAW,EAAE;SACnM,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"auto-synthesis.js","sourceRoot":"","sources":["../../src/skills/auto-synthesis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,kFAAkF;AAClF,sFAAsF;AACtF,mEAAmE;AACnE,MAAM,iBAAiB,GACrB,uOAAuO,CAAC;AAE1O,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,mFAAmF;AACnF,qFAAqF;AACrF,0FAA0F;AAC1F,MAAM,kBAAkB,GACtB,0MAA0M,CAAC;AAE7M,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,WAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACzE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE3E,IAAI,eAAe,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC/D,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAExE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE5D,oFAAoF;IACpF,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACtG,IAAI,QAAQ;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,wDAAwD,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IACxH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC;YAC/B,IAAI;YACJ,WAAW;YACX,OAAO,EAAE,IAAI;YACb,mEAAmE;YACnE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,wIAAwI,UAAU,6BAA6B,WAAW,EAAE;SACnM,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { synthesizeSkillFromTurn, slugify } from './auto-synthesis.js';
|
|
2
|
+
import { synthesizeSkillFromTurn, slugify, isTrivialPrompt } from './auto-synthesis.js';
|
|
3
3
|
import { setSkillsBaseDir, listSkillDrafts } from './draft.js';
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import os from 'os';
|
|
@@ -42,5 +42,34 @@ describe('Auto Skill Synthesis', () => {
|
|
|
42
42
|
expect(second.synthesized).toBe(false);
|
|
43
43
|
expect(listSkillDrafts().length).toBe(1);
|
|
44
44
|
});
|
|
45
|
+
describe('isTrivialPrompt', () => {
|
|
46
|
+
it('flags bare acknowledgements as trivial', () => {
|
|
47
|
+
expect(isTrivialPrompt('yes')).toBe(true);
|
|
48
|
+
expect(isTrivialPrompt('ok')).toBe(true);
|
|
49
|
+
expect(isTrivialPrompt('awesome')).toBe(true);
|
|
50
|
+
expect(isTrivialPrompt(' Yes ')).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('flags transition/continuation prompts as trivial', () => {
|
|
53
|
+
expect(isTrivialPrompt('lets move on to #4')).toBe(true);
|
|
54
|
+
expect(isTrivialPrompt('move on to issue 5')).toBe(true);
|
|
55
|
+
expect(isTrivialPrompt('lets do that start with 1 and 2')).toBe(true);
|
|
56
|
+
expect(isTrivialPrompt('ok awesome, lets look at the project as a whole')).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
it('does NOT flag substantive task prompts as trivial', () => {
|
|
59
|
+
expect(isTrivialPrompt('Fix typescript module resolution error in Express router')).toBe(false);
|
|
60
|
+
expect(isTrivialPrompt('Add input validation for the preview panel')).toBe(false);
|
|
61
|
+
expect(isTrivialPrompt('Implement a refine workflow with a save-to-existing dropdown')).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
it('skips synthesis for trivial acknowledgement turns', () => {
|
|
65
|
+
const res = synthesizeSkillFromTurn('yes', 'The fix is already in place on disk.');
|
|
66
|
+
expect(res.synthesized).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
it('skips synthesis when the summary reports no work was performed', () => {
|
|
69
|
+
const prompt = 'Check whether the dead exports were already removed from src/types.ts';
|
|
70
|
+
const summary = 'Both issues are already resolved in the current codebase. No further changes are required.';
|
|
71
|
+
const res = synthesizeSkillFromTurn(prompt, summary);
|
|
72
|
+
expect(res.synthesized).toBe(false);
|
|
73
|
+
});
|
|
45
74
|
});
|
|
46
75
|
//# sourceMappingURL=auto-synthesis.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-synthesis.test.js","sourceRoot":"","sources":["../../src/skills/auto-synthesis.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-synthesis.test.js","sourceRoot":"","sources":["../../src/skills/auto-synthesis.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -63,6 +63,7 @@ export interface ToolContext {
|
|
|
63
63
|
patchFailureTotal?: number;
|
|
64
64
|
terminalFailureStreak?: Map<string, number>;
|
|
65
65
|
terminalRepeatStreak?: Map<string, number>;
|
|
66
|
+
verifyBreakerTrippedLastTurn?: boolean;
|
|
66
67
|
askLine?: (prompt: string) => Promise<string>;
|
|
67
68
|
allowTestEdits?: boolean;
|
|
68
69
|
testApprovalGranted?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;YACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;SAChC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC;AAEtE,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAO/D;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|