helixmind 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -3
- package/dist/cli/agent/loop.d.ts.map +1 -1
- package/dist/cli/agent/loop.js +8 -4
- package/dist/cli/agent/loop.js.map +1 -1
- package/dist/cli/agent/permissions.d.ts +8 -2
- package/dist/cli/agent/permissions.d.ts.map +1 -1
- package/dist/cli/agent/permissions.js +19 -8
- package/dist/cli/agent/permissions.js.map +1 -1
- package/dist/cli/agent/tools/bug-list.js +8 -1
- package/dist/cli/agent/tools/bug-list.js.map +1 -1
- package/dist/cli/agent/tools/git-commit.js +12 -13
- package/dist/cli/agent/tools/git-commit.js.map +1 -1
- package/dist/cli/agent/tools/git-diff.js +3 -4
- package/dist/cli/agent/tools/git-diff.js.map +1 -1
- package/dist/cli/agent/tools/git-exec.d.ts +36 -0
- package/dist/cli/agent/tools/git-exec.d.ts.map +1 -0
- package/dist/cli/agent/tools/git-exec.js +56 -0
- package/dist/cli/agent/tools/git-exec.js.map +1 -0
- package/dist/cli/agent/tools/git-log.js +4 -5
- package/dist/cli/agent/tools/git-log.js.map +1 -1
- package/dist/cli/agent/tools/git-status.js +6 -6
- package/dist/cli/agent/tools/git-status.js.map +1 -1
- package/dist/cli/agent/tools/registry.d.ts +9 -0
- package/dist/cli/agent/tools/registry.d.ts.map +1 -1
- package/dist/cli/agent/tools/registry.js.map +1 -1
- package/dist/cli/agent/tools/run-command.js +22 -0
- package/dist/cli/agent/tools/run-command.js.map +1 -1
- package/dist/cli/agent/tools/web-research.js +7 -3
- package/dist/cli/agent/tools/web-research.js.map +1 -1
- package/dist/cli/bugs/journal.d.ts +11 -0
- package/dist/cli/bugs/journal.d.ts.map +1 -1
- package/dist/cli/bugs/journal.js +67 -2
- package/dist/cli/bugs/journal.js.map +1 -1
- package/dist/cli/bugs/types.d.ts +2 -0
- package/dist/cli/bugs/types.d.ts.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +317 -18
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/core/stdin-envelope.d.ts +41 -0
- package/dist/cli/core/stdin-envelope.d.ts.map +1 -0
- package/dist/cli/core/stdin-envelope.js +107 -0
- package/dist/cli/core/stdin-envelope.js.map +1 -0
- package/dist/cli/jarvis/notifications.js +1 -1
- package/dist/cli/jarvis/telemetry.js +1 -1
- package/dist/cli/jarvis/types.d.ts +2 -2
- package/dist/cli/jarvis/types.d.ts.map +1 -1
- package/dist/cli/jarvis/types.js.map +1 -1
- package/dist/cli/license/checker.js +1 -1
- package/dist/cli/ui/select-menu.d.ts +12 -0
- package/dist/cli/ui/select-menu.d.ts.map +1 -1
- package/dist/cli/ui/select-menu.js +47 -27
- package/dist/cli/ui/select-menu.js.map +1 -1
- package/dist/cli/validation/static-checks.d.ts.map +1 -1
- package/dist/cli/validation/static-checks.js +62 -3
- package/dist/cli/validation/static-checks.js.map +1 -1
- package/dist/cli/validation/stats.d.ts.map +1 -1
- package/dist/cli/validation/stats.js +5 -3
- package/dist/cli/validation/stats.js.map +1 -1
- package/dist/spiral/cloud/search-provider.d.ts.map +1 -1
- package/dist/spiral/cloud/search-provider.js +29 -1
- package/dist/spiral/cloud/search-provider.js.map +1 -1
- package/dist/spiral/engine.d.ts +13 -0
- package/dist/spiral/engine.d.ts.map +1 -1
- package/dist/spiral/engine.js +35 -0
- package/dist/spiral/engine.js.map +1 -1
- package/dist/spiral/injection.d.ts +13 -0
- package/dist/spiral/injection.d.ts.map +1 -1
- package/dist/spiral/injection.js +66 -1
- package/dist/spiral/injection.js.map +1 -1
- package/dist/spiral/provenance.d.ts +37 -0
- package/dist/spiral/provenance.d.ts.map +1 -0
- package/dist/spiral/provenance.js +167 -0
- package/dist/spiral/provenance.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Default timeout for git invocations from agent tools. Hung pre-commit
|
|
4
|
+
* hooks, network-backed `git status` on large repos, or commit-msg hooks
|
|
5
|
+
* waiting on stdin previously froze the entire agent loop synchronously.
|
|
6
|
+
*
|
|
7
|
+
* 30 seconds is generous enough for a slow checkout + commit on a large
|
|
8
|
+
* repository, and short enough that an actually-stuck process surfaces as
|
|
9
|
+
* a tool error within one human attention span.
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
|
|
12
|
+
/**
|
|
13
|
+
* Execute a git command synchronously with a hard timeout, EOF stdin, and
|
|
14
|
+
* captured stdout. Returns the stdout as utf-8 text.
|
|
15
|
+
*
|
|
16
|
+
* Callers MUST pass git arguments as an array (no shell). This avoids
|
|
17
|
+
* command injection via tool inputs that get spliced into a shell string.
|
|
18
|
+
*
|
|
19
|
+
* On timeout: throws an Error whose message starts with "git timeout:" so
|
|
20
|
+
* tool implementations can surface it cleanly to the agent.
|
|
21
|
+
*/
|
|
22
|
+
export function gitExec(args, cwd, opts = {}) {
|
|
23
|
+
const timeoutMs = opts.timeoutMs ?? DEFAULT_GIT_TIMEOUT_MS;
|
|
24
|
+
try {
|
|
25
|
+
const out = execFileSync('git', args, {
|
|
26
|
+
cwd,
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
29
|
+
timeout: timeoutMs,
|
|
30
|
+
maxBuffer: opts.maxBufferBytes ?? 8 * 1024 * 1024,
|
|
31
|
+
input: opts.input ?? '',
|
|
32
|
+
// Inherit a minimal env; explicitly set GIT_TERMINAL_PROMPT=0 so a
|
|
33
|
+
// credential prompt cannot block. Hooks are still run by default;
|
|
34
|
+
// operators who want to skip them can set GIT_HOOKS=0 themselves.
|
|
35
|
+
env: {
|
|
36
|
+
...process.env,
|
|
37
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
return typeof out === 'string' ? out : out.toString('utf-8');
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
const e = err;
|
|
44
|
+
if (e.signal === 'SIGTERM' || e.code === 'ETIMEDOUT') {
|
|
45
|
+
throw new Error(`git timeout: 'git ${args.join(' ')}' exceeded ${timeoutMs}ms in ${cwd}`);
|
|
46
|
+
}
|
|
47
|
+
// Surface git's stderr when present — most useful diagnostic.
|
|
48
|
+
const stderr = e.stderr
|
|
49
|
+
? (typeof e.stderr === 'string' ? e.stderr : e.stderr.toString('utf-8')).trim()
|
|
50
|
+
: '';
|
|
51
|
+
if (stderr)
|
|
52
|
+
throw new Error(`git error: ${stderr}`);
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=git-exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-exec.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/git-exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAiB7C;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CACrB,IAAc,EACd,GAAW,EACX,OAAuB,EAAE;IAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YACpC,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,mBAAmB,EAAE,GAAG;aACzB;SACF,CAAC,CAAC;QACH,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA6F,CAAC;QACxG,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,SAAS,SAAS,GAAG,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;YACrB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;YAC/E,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
1
|
import { registerTool } from './registry.js';
|
|
2
|
+
import { gitExec } from './git-exec.js';
|
|
3
3
|
registerTool({
|
|
4
4
|
definition: {
|
|
5
5
|
name: 'git_log',
|
|
@@ -15,7 +15,7 @@ registerTool({
|
|
|
15
15
|
},
|
|
16
16
|
async execute(input, ctx) {
|
|
17
17
|
try {
|
|
18
|
-
|
|
18
|
+
gitExec(['rev-parse', '--is-inside-work-tree'], ctx.executionRoot);
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
21
21
|
return `Not a git repository. The current directory (${ctx.executionRoot}) is not tracked by git.`;
|
|
@@ -23,18 +23,17 @@ registerTool({
|
|
|
23
23
|
try {
|
|
24
24
|
const rawCount = Number(input.count);
|
|
25
25
|
const count = Number.isInteger(rawCount) && rawCount > 0 && rawCount <= 100 ? rawCount : 10;
|
|
26
|
-
// Use execFileSync to prevent shell injection via file paths
|
|
27
26
|
const args = ['log', `-${count}`, '--format=%h %s (%ar) <%an>'];
|
|
28
27
|
if (input.file)
|
|
29
28
|
args.push('--', String(input.file));
|
|
30
|
-
const log =
|
|
29
|
+
const log = gitExec(args, ctx.executionRoot).trim();
|
|
31
30
|
if (!log) {
|
|
32
31
|
return 'No commits found.';
|
|
33
32
|
}
|
|
34
33
|
return `Recent commits:\n\n${log}`;
|
|
35
34
|
}
|
|
36
35
|
catch (err) {
|
|
37
|
-
return `Error: ${err}`;
|
|
36
|
+
return `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
38
37
|
}
|
|
39
38
|
},
|
|
40
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-log.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/git-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"git-log.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/git-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,YAAY,CAAC;IACX,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sEAAsE;QACnF,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;aACrF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,gDAAgD,GAAG,CAAC,aAAa,0BAA0B,CAAC;QACrG,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE,+BAA+B,CAAC,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,OAAO,sBAAsB,GAAG,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { execSync } from 'node:child_process';
|
|
2
1
|
import { registerTool } from './registry.js';
|
|
2
|
+
import { gitExec } from './git-exec.js';
|
|
3
3
|
registerTool({
|
|
4
4
|
definition: {
|
|
5
5
|
name: 'git_status',
|
|
@@ -13,19 +13,19 @@ registerTool({
|
|
|
13
13
|
async execute(_input, ctx) {
|
|
14
14
|
// Quick check: is this a git repository?
|
|
15
15
|
try {
|
|
16
|
-
|
|
16
|
+
gitExec(['rev-parse', '--is-inside-work-tree'], ctx.executionRoot);
|
|
17
17
|
}
|
|
18
18
|
catch {
|
|
19
19
|
return `Not a git repository. The current directory (${ctx.executionRoot}) is not tracked by git. Use \`git init\` to initialize one, or navigate to a project that uses git.`;
|
|
20
20
|
}
|
|
21
21
|
try {
|
|
22
|
-
const branch =
|
|
23
|
-
const status =
|
|
22
|
+
const branch = gitExec(['branch', '--show-current'], ctx.executionRoot).trim();
|
|
23
|
+
const status = gitExec(['status', '--short'], ctx.executionRoot).trim();
|
|
24
24
|
let ahead = '0';
|
|
25
25
|
let behind = '0';
|
|
26
26
|
try {
|
|
27
|
-
ahead =
|
|
28
|
-
behind =
|
|
27
|
+
ahead = gitExec(['rev-list', '--count', '@{upstream}..HEAD'], ctx.executionRoot).trim();
|
|
28
|
+
behind = gitExec(['rev-list', '--count', 'HEAD..@{upstream}'], ctx.executionRoot).trim();
|
|
29
29
|
}
|
|
30
30
|
catch {
|
|
31
31
|
// No upstream configured — skip ahead/behind
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-status.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/git-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"git-status.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/git-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,YAAY,CAAC;IACX,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8FAA8F;QAC3G,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,yCAAyC;QACzC,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,gDAAgD,GAAG,CAAC,aAAa,sGAAsG,CAAC;QACjL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAExE,IAAI,KAAK,GAAG,GAAG,CAAC;YAChB,IAAI,MAAM,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxF,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;YAC/C,CAAC;YAED,IAAI,MAAM,GAAG,WAAW,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,KAAK,SAAS,CAAC;YACjD,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,MAAM,UAAU,CAAC;YACpD,MAAM,IAAI,IAAI,CAAC;YAEf,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,eAAe,MAAM,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,sBAAsB,CAAC;YACnC,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -25,6 +25,15 @@ export interface ToolContext {
|
|
|
25
25
|
lockFile?: (path: string) => boolean;
|
|
26
26
|
unlockFile?: (path: string) => void;
|
|
27
27
|
worktree?: WorktreeHandle;
|
|
28
|
+
/**
|
|
29
|
+
* audit-009: agent abort signal. Tools that perform long-running I/O
|
|
30
|
+
* (network requests, browser actions, child processes) should observe
|
|
31
|
+
* this signal and cancel cleanly when it fires. Tools that don't take
|
|
32
|
+
* meaningful time may ignore it. The signal is provided by the agent
|
|
33
|
+
* loop's AgentController; it fires on user ESC, max-iterations, or
|
|
34
|
+
* external abort (session manager, swarm coordinator).
|
|
35
|
+
*/
|
|
36
|
+
signal?: AbortSignal;
|
|
28
37
|
}
|
|
29
38
|
export interface ToolHandler {
|
|
30
39
|
definition: ToolDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/cli/agent/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/cli/agent/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAChF;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7D;AAED,wBAAgB,qBAAqB,IAAI,cAAc,EAAE,CAExD;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,2EAA2E;AAC3E,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAqCrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/registry.ts"],"names":[],"mappings":"AAuCA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,qEAAqE;IACrE,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,gBAAgB,CAAC;QACxB,MAAM,CAAC,iBAAiB,CAAC;QACzB,MAAM,CAAC,gBAAgB,CAAC;QACxB,MAAM,CAAC,eAAe,CAAC;QACvB,MAAM,CAAC,aAAa,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC;QACnB,MAAM,CAAC,kBAAkB,CAAC;QAC1B,MAAM,CAAC,iBAAiB,CAAC;QACzB,MAAM,CAAC,eAAe,CAAC;QACvB,MAAM,CAAC,iBAAiB,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC;QACtB,MAAM,CAAC,mBAAmB,CAAC;QAC3B,MAAM,CAAC,mBAAmB,CAAC;QAC3B,MAAM,CAAC,mBAAmB,CAAC;QAC3B,MAAM,CAAC,iBAAiB,CAAC;QACzB,MAAM,CAAC,eAAe,CAAC;KACxB,CAAC,CAAC;IAEH,2DAA2D;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,MAAM,CAAC,mBAAmB,CAAC;YAC3B,MAAM,CAAC,uBAAuB,CAAC;YAC/B,MAAM,CAAC,yBAAyB,CAAC;YACjC,MAAM,CAAC,oBAAoB,CAAC;YAC5B,MAAM,CAAC,mBAAmB,CAAC;YAC3B,MAAM,CAAC,oBAAoB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -70,6 +70,28 @@ registerTool({
|
|
|
70
70
|
}, 5000);
|
|
71
71
|
resolve(`Command timed out after ${timeoutSec}s.\n\nPartial stdout:\n${stdout}\n\nPartial stderr:\n${stderr}`);
|
|
72
72
|
}, timeoutSec * 1000);
|
|
73
|
+
// audit-009: kill the child process when the agent abort signal fires.
|
|
74
|
+
// Without this, ESC during a long-running run_command (e.g. test suite)
|
|
75
|
+
// left the child running until its own timeout. SIGTERM first, then
|
|
76
|
+
// SIGKILL after 2s to give it a chance to clean up subprocesses.
|
|
77
|
+
const onAbort = () => {
|
|
78
|
+
try {
|
|
79
|
+
proc.kill('SIGTERM');
|
|
80
|
+
}
|
|
81
|
+
catch { /* already exited */ }
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
try {
|
|
84
|
+
proc.kill('SIGKILL');
|
|
85
|
+
}
|
|
86
|
+
catch { /* already exited */ }
|
|
87
|
+
}, 2000);
|
|
88
|
+
};
|
|
89
|
+
if (ctx.signal) {
|
|
90
|
+
if (ctx.signal.aborted)
|
|
91
|
+
onAbort();
|
|
92
|
+
else
|
|
93
|
+
ctx.signal.addEventListener('abort', onAbort, { once: true });
|
|
94
|
+
}
|
|
73
95
|
const maxBuffer = 5 * 1024 * 1024;
|
|
74
96
|
proc.stdout.on('data', (data) => {
|
|
75
97
|
const text = data.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/run-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/run-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,10 @@ registerTool({
|
|
|
29
29
|
try {
|
|
30
30
|
const { webSearch, fetchPageContent } = await import('../../../spiral/cloud/search-provider.js');
|
|
31
31
|
const { extractKnowledge, formatForSpiral } = await import('../../../spiral/cloud/content-extractor.js');
|
|
32
|
-
// Search the web
|
|
33
|
-
|
|
32
|
+
// Search the web. audit-009: thread the agent abort signal so a
|
|
33
|
+
// user pressing ESC during a slow web_research doesn't have to wait
|
|
34
|
+
// for the request to finish naturally.
|
|
35
|
+
const searchResults = await webSearch(query, maxResults + 2, ctx.signal);
|
|
34
36
|
if (searchResults.length === 0) {
|
|
35
37
|
return `No web results found for "${query}". The search may have failed due to network issues.`;
|
|
36
38
|
}
|
|
@@ -46,7 +48,9 @@ registerTool({
|
|
|
46
48
|
}
|
|
47
49
|
// Fetch and extract content if enabled
|
|
48
50
|
if (fetchContent) {
|
|
49
|
-
|
|
51
|
+
if (ctx.signal?.aborted)
|
|
52
|
+
break;
|
|
53
|
+
const content = await fetchPageContent(result.url, 8000, ctx.signal);
|
|
50
54
|
if (content) {
|
|
51
55
|
const knowledge = extractKnowledge(content, result.url, query);
|
|
52
56
|
if (knowledge.quality >= 0.3) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-research.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/web-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,YAAY,CAAC;IACX,UAAU,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,oSAAoS;QACjT,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uGAAuG;iBACrH;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uEAAuE;iBACrF;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6GAA6G;iBAC3H;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,WAAsB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAI,KAAK,CAAC,aAAyB,IAAI,IAAI,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;YACjG,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAEzG,
|
|
1
|
+
{"version":3,"file":"web-research.js","sourceRoot":"","sources":["../../../../src/cli/agent/tools/web-research.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { BugEntry, BugEvidence, BugStatus } from './types.js';
|
|
|
2
2
|
export declare class BugJournal {
|
|
3
3
|
private data;
|
|
4
4
|
private filePath;
|
|
5
|
+
private projectRoot;
|
|
5
6
|
private onChange?;
|
|
6
7
|
constructor(projectRoot: string, onChange?: (event: string, bug: BugEntry) => void);
|
|
7
8
|
private load;
|
|
@@ -12,6 +13,16 @@ export declare class BugJournal {
|
|
|
12
13
|
evidence?: BugEvidence[];
|
|
13
14
|
relatedFiles?: string[];
|
|
14
15
|
}): BugEntry;
|
|
16
|
+
/**
|
|
17
|
+
* audit-017: re-check every bug's file hash against the on-disk file.
|
|
18
|
+
* Bugs whose source has changed get contentStatus='stale'. Called by
|
|
19
|
+
* bug_list before returning entries to the agent so the LLM sees the
|
|
20
|
+
* staleness signal alongside the description.
|
|
21
|
+
*
|
|
22
|
+
* Persists the updated statuses so the next call is faster (only files
|
|
23
|
+
* whose mtime suggests a possible change are re-hashed).
|
|
24
|
+
*/
|
|
25
|
+
refreshStaleness(): void;
|
|
15
26
|
get(id: number): BugEntry | undefined;
|
|
16
27
|
update(id: number, updates: Partial<Pick<BugEntry, 'description' | 'status' | 'file' | 'line' | 'fixDescription'>>): BugEntry | undefined;
|
|
17
28
|
addEvidence(id: number, evidence: BugEvidence): BugEntry | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/cli/bugs/journal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/cli/bugs/journal.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAkB,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBnF,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAyC;gBAE9C,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI;IAOlF,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,IAAI;IAWZ,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GAAG,QAAQ;IA6BZ;;;;;;;;OAQG;IACH,gBAAgB,IAAI,IAAI;IAuBxB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS;IAmBzI,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS;IAWpE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAYlE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIpE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI9C,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE;IAI1C,WAAW,IAAI,QAAQ,EAAE;IAIzB,UAAU,IAAI,QAAQ,EAAE;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS3B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAuCpC;;OAEG;IACH,gGAAgG;IAChG,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAIlE,aAAa,IAAI,MAAM;CAexB"}
|
package/dist/cli/bugs/journal.js
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, renameSync, existsSync, mkdirSync } from 'node:fs';
|
|
2
|
-
import { join, dirname } from 'node:path';
|
|
1
|
+
import { readFileSync, writeFileSync, renameSync, existsSync, mkdirSync, statSync } from 'node:fs';
|
|
2
|
+
import { join, dirname, isAbsolute, resolve } from 'node:path';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
3
4
|
const EMPTY_DATA = { version: 1, nextId: 1, bugs: [] };
|
|
5
|
+
const BUG_FILE_HASH_CAP_BYTES = 5 * 1024 * 1024;
|
|
6
|
+
/**
|
|
7
|
+
* audit-017: read a file and return its SHA-256 + mtime, or null if
|
|
8
|
+
* unreadable / oversized. Mirrors the Spiral Provenance helper so the
|
|
9
|
+
* staleness semantics are identical between bug journal and spiral.
|
|
10
|
+
*/
|
|
11
|
+
function hashFileForBug(absPath) {
|
|
12
|
+
try {
|
|
13
|
+
const stat = statSync(absPath);
|
|
14
|
+
if (!stat.isFile() || stat.size > BUG_FILE_HASH_CAP_BYTES)
|
|
15
|
+
return null;
|
|
16
|
+
return createHash('sha256').update(readFileSync(absPath)).digest('hex');
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
4
22
|
export class BugJournal {
|
|
5
23
|
data;
|
|
6
24
|
filePath;
|
|
25
|
+
projectRoot;
|
|
7
26
|
onChange;
|
|
8
27
|
constructor(projectRoot, onChange) {
|
|
28
|
+
this.projectRoot = projectRoot;
|
|
9
29
|
this.filePath = join(projectRoot, '.helixmind', 'bugs.json');
|
|
10
30
|
this.onChange = onChange;
|
|
11
31
|
this.data = this.load();
|
|
@@ -36,6 +56,15 @@ export class BugJournal {
|
|
|
36
56
|
renameSync(tmpPath, this.filePath);
|
|
37
57
|
}
|
|
38
58
|
create(description, opts) {
|
|
59
|
+
// audit-017: capture file hash at report time so bug_list can later
|
|
60
|
+
// detect stale pointers (file refactored, line numbers shifted, etc.)
|
|
61
|
+
let fileHash;
|
|
62
|
+
if (opts?.file) {
|
|
63
|
+
const abs = isAbsolute(opts.file) ? opts.file : resolve(this.projectRoot, opts.file);
|
|
64
|
+
const h = hashFileForBug(abs);
|
|
65
|
+
if (h)
|
|
66
|
+
fileHash = h;
|
|
67
|
+
}
|
|
39
68
|
const bug = {
|
|
40
69
|
id: this.data.nextId++,
|
|
41
70
|
description,
|
|
@@ -46,12 +75,48 @@ export class BugJournal {
|
|
|
46
75
|
updatedAt: Date.now(),
|
|
47
76
|
evidence: opts?.evidence ?? [],
|
|
48
77
|
relatedFiles: opts?.relatedFiles ?? [],
|
|
78
|
+
fileHash,
|
|
79
|
+
contentStatus: fileHash ? 'fresh' : undefined,
|
|
49
80
|
};
|
|
50
81
|
this.data.bugs.push(bug);
|
|
51
82
|
this.save();
|
|
52
83
|
this.onChange?.('bug_created', bug);
|
|
53
84
|
return bug;
|
|
54
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* audit-017: re-check every bug's file hash against the on-disk file.
|
|
88
|
+
* Bugs whose source has changed get contentStatus='stale'. Called by
|
|
89
|
+
* bug_list before returning entries to the agent so the LLM sees the
|
|
90
|
+
* staleness signal alongside the description.
|
|
91
|
+
*
|
|
92
|
+
* Persists the updated statuses so the next call is faster (only files
|
|
93
|
+
* whose mtime suggests a possible change are re-hashed).
|
|
94
|
+
*/
|
|
95
|
+
refreshStaleness() {
|
|
96
|
+
let dirty = false;
|
|
97
|
+
for (const bug of this.data.bugs) {
|
|
98
|
+
if (!bug.file || !bug.fileHash)
|
|
99
|
+
continue;
|
|
100
|
+
if (bug.status === 'verified' || bug.status === 'fixed')
|
|
101
|
+
continue;
|
|
102
|
+
const abs = isAbsolute(bug.file) ? bug.file : resolve(this.projectRoot, bug.file);
|
|
103
|
+
if (!existsSync(abs)) {
|
|
104
|
+
if (bug.contentStatus !== 'stale') {
|
|
105
|
+
bug.contentStatus = 'stale';
|
|
106
|
+
dirty = true;
|
|
107
|
+
}
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const current = hashFileForBug(abs);
|
|
111
|
+
const expected = current === bug.fileHash ? 'fresh' : 'stale';
|
|
112
|
+
if (bug.contentStatus !== expected) {
|
|
113
|
+
bug.contentStatus = expected;
|
|
114
|
+
dirty = true;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (dirty)
|
|
118
|
+
this.save();
|
|
119
|
+
}
|
|
55
120
|
get(id) {
|
|
56
121
|
return this.data.bugs.find(b => b.id === id);
|
|
57
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/cli/bugs/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/cli/bugs/journal.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/bugs/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/bugs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/bugs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAOxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AA8FA,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA+ND,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuuIrE"}
|