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.
Files changed (74) hide show
  1. package/README.md +34 -3
  2. package/dist/cli/agent/loop.d.ts.map +1 -1
  3. package/dist/cli/agent/loop.js +8 -4
  4. package/dist/cli/agent/loop.js.map +1 -1
  5. package/dist/cli/agent/permissions.d.ts +8 -2
  6. package/dist/cli/agent/permissions.d.ts.map +1 -1
  7. package/dist/cli/agent/permissions.js +19 -8
  8. package/dist/cli/agent/permissions.js.map +1 -1
  9. package/dist/cli/agent/tools/bug-list.js +8 -1
  10. package/dist/cli/agent/tools/bug-list.js.map +1 -1
  11. package/dist/cli/agent/tools/git-commit.js +12 -13
  12. package/dist/cli/agent/tools/git-commit.js.map +1 -1
  13. package/dist/cli/agent/tools/git-diff.js +3 -4
  14. package/dist/cli/agent/tools/git-diff.js.map +1 -1
  15. package/dist/cli/agent/tools/git-exec.d.ts +36 -0
  16. package/dist/cli/agent/tools/git-exec.d.ts.map +1 -0
  17. package/dist/cli/agent/tools/git-exec.js +56 -0
  18. package/dist/cli/agent/tools/git-exec.js.map +1 -0
  19. package/dist/cli/agent/tools/git-log.js +4 -5
  20. package/dist/cli/agent/tools/git-log.js.map +1 -1
  21. package/dist/cli/agent/tools/git-status.js +6 -6
  22. package/dist/cli/agent/tools/git-status.js.map +1 -1
  23. package/dist/cli/agent/tools/registry.d.ts +9 -0
  24. package/dist/cli/agent/tools/registry.d.ts.map +1 -1
  25. package/dist/cli/agent/tools/registry.js.map +1 -1
  26. package/dist/cli/agent/tools/run-command.js +22 -0
  27. package/dist/cli/agent/tools/run-command.js.map +1 -1
  28. package/dist/cli/agent/tools/web-research.js +7 -3
  29. package/dist/cli/agent/tools/web-research.js.map +1 -1
  30. package/dist/cli/bugs/journal.d.ts +11 -0
  31. package/dist/cli/bugs/journal.d.ts.map +1 -1
  32. package/dist/cli/bugs/journal.js +67 -2
  33. package/dist/cli/bugs/journal.js.map +1 -1
  34. package/dist/cli/bugs/types.d.ts +2 -0
  35. package/dist/cli/bugs/types.d.ts.map +1 -1
  36. package/dist/cli/commands/chat.d.ts.map +1 -1
  37. package/dist/cli/commands/chat.js +317 -18
  38. package/dist/cli/commands/chat.js.map +1 -1
  39. package/dist/cli/core/stdin-envelope.d.ts +41 -0
  40. package/dist/cli/core/stdin-envelope.d.ts.map +1 -0
  41. package/dist/cli/core/stdin-envelope.js +107 -0
  42. package/dist/cli/core/stdin-envelope.js.map +1 -0
  43. package/dist/cli/jarvis/notifications.js +1 -1
  44. package/dist/cli/jarvis/telemetry.js +1 -1
  45. package/dist/cli/jarvis/types.d.ts +2 -2
  46. package/dist/cli/jarvis/types.d.ts.map +1 -1
  47. package/dist/cli/jarvis/types.js.map +1 -1
  48. package/dist/cli/license/checker.js +1 -1
  49. package/dist/cli/ui/select-menu.d.ts +12 -0
  50. package/dist/cli/ui/select-menu.d.ts.map +1 -1
  51. package/dist/cli/ui/select-menu.js +47 -27
  52. package/dist/cli/ui/select-menu.js.map +1 -1
  53. package/dist/cli/validation/static-checks.d.ts.map +1 -1
  54. package/dist/cli/validation/static-checks.js +62 -3
  55. package/dist/cli/validation/static-checks.js.map +1 -1
  56. package/dist/cli/validation/stats.d.ts.map +1 -1
  57. package/dist/cli/validation/stats.js +5 -3
  58. package/dist/cli/validation/stats.js.map +1 -1
  59. package/dist/spiral/cloud/search-provider.d.ts.map +1 -1
  60. package/dist/spiral/cloud/search-provider.js +29 -1
  61. package/dist/spiral/cloud/search-provider.js.map +1 -1
  62. package/dist/spiral/engine.d.ts +13 -0
  63. package/dist/spiral/engine.d.ts.map +1 -1
  64. package/dist/spiral/engine.js +35 -0
  65. package/dist/spiral/engine.js.map +1 -1
  66. package/dist/spiral/injection.d.ts +13 -0
  67. package/dist/spiral/injection.d.ts.map +1 -1
  68. package/dist/spiral/injection.js +66 -1
  69. package/dist/spiral/injection.js.map +1 -1
  70. package/dist/spiral/provenance.d.ts +37 -0
  71. package/dist/spiral/provenance.d.ts.map +1 -0
  72. package/dist/spiral/provenance.js +167 -0
  73. package/dist/spiral/provenance.js.map +1 -0
  74. 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
- execFileSync('git', ['rev-parse', '--is-inside-work-tree'], { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' });
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 = execFileSync('git', args, { cwd: ctx.executionRoot, encoding: 'utf-8' }).trim();
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,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,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,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5H,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,6DAA6D;YAC7D,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,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAE5F,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,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
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
- execSync('git rev-parse --is-inside-work-tree', { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' });
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 = execSync('git branch --show-current', { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' }).trim();
23
- const status = execSync('git status --short', { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' }).trim();
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 = execSync('git rev-list --count @{upstream}..HEAD', { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' }).trim();
28
- behind = execSync('git rev-list --count HEAD..@{upstream}', { cwd: ctx.executionRoot, encoding: 'utf-8', stdio: 'pipe' }).trim();
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,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,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,QAAQ,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAChH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,gDAAgD,GAAG,CAAC,aAAa,sGAAsG,CAAC;QACjL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1H,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnH,IAAI,KAAK,GAAG,GAAG,CAAC;YAChB,IAAI,MAAM,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,QAAQ,CAAC,wCAAwC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChI,MAAM,GAAG,QAAQ,CAAC,wCAAwC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnI,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"}
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;CAC3B;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
+ {"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":"AA8BA,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"}
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
- const searchResults = await webSearch(query, maxResults + 2);
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
- const content = await fetchPageContent(result.url, 8000);
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":"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"}
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":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAkB,SAAS,EAAE,MAAM,YAAY,CAAC;AAInF,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAyC;gBAE9C,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI;IAMlF,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;IAkBZ,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"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/cli/bugs/journal.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export interface BugEntry {
18
18
  relatedFiles: string[];
19
19
  spiralNodeId?: string;
20
20
  fixDescription?: string;
21
+ fileHash?: string;
22
+ contentStatus?: 'fresh' | 'stale';
21
23
  }
22
24
  export interface BugJournalData {
23
25
  version: 1;
@@ -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;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB"}
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":"AA6FA,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;AA6ND,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAo/HrE"}
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"}