@nirnex/cli 3.0.0 → 4.0.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 (48) hide show
  1. package/dist/commands/runtime.d.ts +2 -0
  2. package/dist/commands/runtime.d.ts.map +1 -0
  3. package/dist/commands/runtime.js +60 -0
  4. package/dist/commands/runtime.js.map +1 -0
  5. package/dist/commands/setup.d.ts.map +1 -1
  6. package/dist/commands/setup.js +99 -0
  7. package/dist/commands/setup.js.map +1 -1
  8. package/dist/commands/status.d.ts.map +1 -1
  9. package/dist/commands/status.js +69 -1
  10. package/dist/commands/status.js.map +1 -1
  11. package/dist/commands/trace.d.ts.map +1 -1
  12. package/dist/commands/trace.js +74 -1
  13. package/dist/commands/trace.js.map +1 -1
  14. package/dist/index.js +12 -7
  15. package/dist/index.js.map +1 -1
  16. package/dist/runtime/bootstrap.d.ts +2 -0
  17. package/dist/runtime/bootstrap.d.ts.map +1 -0
  18. package/dist/runtime/bootstrap.js +90 -0
  19. package/dist/runtime/bootstrap.js.map +1 -0
  20. package/dist/runtime/entry.d.ts +2 -0
  21. package/dist/runtime/entry.d.ts.map +1 -0
  22. package/dist/runtime/entry.js +86 -0
  23. package/dist/runtime/entry.js.map +1 -0
  24. package/dist/runtime/envelope.d.ts +4 -0
  25. package/dist/runtime/envelope.d.ts.map +1 -0
  26. package/dist/runtime/envelope.js +113 -0
  27. package/dist/runtime/envelope.js.map +1 -0
  28. package/dist/runtime/guard.d.ts +2 -0
  29. package/dist/runtime/guard.d.ts.map +1 -0
  30. package/dist/runtime/guard.js +114 -0
  31. package/dist/runtime/guard.js.map +1 -0
  32. package/dist/runtime/session.d.ts +13 -0
  33. package/dist/runtime/session.d.ts.map +1 -0
  34. package/dist/runtime/session.js +111 -0
  35. package/dist/runtime/session.js.map +1 -0
  36. package/dist/runtime/trace-hook.d.ts +2 -0
  37. package/dist/runtime/trace-hook.d.ts.map +1 -0
  38. package/dist/runtime/trace-hook.js +102 -0
  39. package/dist/runtime/trace-hook.js.map +1 -0
  40. package/dist/runtime/types.d.ts +108 -0
  41. package/dist/runtime/types.d.ts.map +1 -0
  42. package/dist/runtime/types.js +3 -0
  43. package/dist/runtime/types.js.map +1 -0
  44. package/dist/runtime/validate.d.ts +2 -0
  45. package/dist/runtime/validate.d.ts.map +1 -0
  46. package/dist/runtime/validate.js +91 -0
  47. package/dist/runtime/validate.js.map +1 -0
  48. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export declare function runtimeCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"AAwBA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqClE"}
@@ -0,0 +1,60 @@
1
+ // Command: nirnex runtime <subcommand>
2
+ // Machine-facing runtime pipeline commands called by Claude hook scripts.
3
+ //
4
+ // Subcommands:
5
+ // bootstrap — SessionStart: hydrate env, create session state
6
+ // entry — UserPromptSubmit: build ECO, create envelope, inject context
7
+ // guard — PreToolUse: evaluate tool against lane policy
8
+ // trace — PostToolUse: append trace event, detect deviation
9
+ // validate — Stop: validate ACs, block or allow completion
10
+ const RUNTIME_USAGE = `
11
+ nirnex runtime <subcommand>
12
+
13
+ Subcommands (called by Claude hook scripts):
14
+ bootstrap SessionStart handler — hydrates session state and env vars
15
+ entry UserPromptSubmit handler — builds ECO and creates task envelope
16
+ guard PreToolUse handler — evaluates tool against lane policy
17
+ trace PostToolUse handler — appends trace event and detects deviation
18
+ validate Stop handler — validates acceptance criteria and completion
19
+
20
+ These commands read JSON from stdin and write JSON to stdout.
21
+ They are not intended for direct user invocation.
22
+ `.trimStart();
23
+ export async function runtimeCommand(args) {
24
+ const sub = args[0];
25
+ switch (sub) {
26
+ case 'bootstrap': {
27
+ const { runBootstrap } = await import('../runtime/bootstrap.js');
28
+ await runBootstrap();
29
+ break;
30
+ }
31
+ case 'entry': {
32
+ const { runEntry } = await import('../runtime/entry.js');
33
+ await runEntry();
34
+ break;
35
+ }
36
+ case 'guard': {
37
+ const { runGuard } = await import('../runtime/guard.js');
38
+ await runGuard();
39
+ break;
40
+ }
41
+ case 'trace': {
42
+ const { runTraceHook } = await import('../runtime/trace-hook.js');
43
+ await runTraceHook();
44
+ break;
45
+ }
46
+ case 'validate': {
47
+ const { runValidate } = await import('../runtime/validate.js');
48
+ await runValidate();
49
+ break;
50
+ }
51
+ default:
52
+ console.log(RUNTIME_USAGE);
53
+ if (sub && sub !== '--help' && sub !== '-h') {
54
+ console.error(`Unknown runtime subcommand: "${sub}"`);
55
+ process.exit(1);
56
+ }
57
+ break;
58
+ }
59
+ }
60
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,0EAA0E;AAC1E,EAAE;AACF,eAAe;AACf,iEAAiE;AACjE,8EAA8E;AAC9E,+DAA+D;AAC/D,mEAAmE;AACnE,+DAA+D;AAE/D,MAAM,aAAa,GAAG;;;;;;;;;;;;CAYrB,CAAC,SAAS,EAAE,CAAC;AAEd,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACzD,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACzD,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAClE,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC/D,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAyLA,iBAAe,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiI1E;AAID,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AA8OA,iBAAe,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyL1E;AAID,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE"}
@@ -76,6 +76,52 @@ Suggested files:
76
76
  const POST_COMMIT_HOOK = `#!/bin/sh
77
77
  nirnex index
78
78
  `;
79
+ // ─── Claude hook launcher templates ──────────────────────────────────────
80
+ const HOOK_BOOTSTRAP = `#!/bin/sh
81
+ exec nirnex runtime bootstrap
82
+ `;
83
+ const HOOK_ENTRY = `#!/bin/sh
84
+ exec nirnex runtime entry
85
+ `;
86
+ const HOOK_GUARD = `#!/bin/sh
87
+ exec nirnex runtime guard
88
+ `;
89
+ const HOOK_TRACE = `#!/bin/sh
90
+ exec nirnex runtime trace
91
+ `;
92
+ const HOOK_VALIDATE = `#!/bin/sh
93
+ exec nirnex runtime validate
94
+ `;
95
+ const CLAUDE_SETTINGS_HOOKS = {
96
+ hooks: {
97
+ SessionStart: [
98
+ {
99
+ hooks: [{ type: 'command', command: '.claude/hooks/nirnex-bootstrap.sh', timeout: 30 }],
100
+ },
101
+ ],
102
+ UserPromptSubmit: [
103
+ {
104
+ hooks: [{ type: 'command', command: '.claude/hooks/nirnex-entry.sh', timeout: 30 }],
105
+ },
106
+ ],
107
+ PreToolUse: [
108
+ {
109
+ matcher: 'Bash|Edit|Write|MultiEdit',
110
+ hooks: [{ type: 'command', command: '.claude/hooks/nirnex-guard.sh', timeout: 10 }],
111
+ },
112
+ ],
113
+ PostToolUse: [
114
+ {
115
+ hooks: [{ type: 'command', command: '.claude/hooks/nirnex-trace.sh', timeout: 10 }],
116
+ },
117
+ ],
118
+ Stop: [
119
+ {
120
+ hooks: [{ type: 'command', command: '.claude/hooks/nirnex-validate.sh', timeout: 10 }],
121
+ },
122
+ ],
123
+ },
124
+ };
79
125
  // ─── Helpers ─────────────────────────────────────────────────────────────
80
126
  function tick(msg) {
81
127
  process.stdout.write(` \x1b[32m✔\x1b[0m ${msg}\n`);
@@ -245,6 +291,10 @@ async function runSetup(cwd, opts) {
245
291
  llm: {
246
292
  provider: 'anthropic',
247
293
  },
294
+ hooks: {
295
+ enabled: true,
296
+ policyMode: 'standard',
297
+ },
248
298
  };
249
299
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf8');
250
300
  tick('Created nirnex.config.json');
@@ -265,6 +315,48 @@ async function runSetup(cwd, opts) {
265
315
  warn('Not a git repo — skipping post-commit hook');
266
316
  }
267
317
  }
318
+ // Install Claude hooks
319
+ {
320
+ const claudeDir = path.join(cwd, '.claude');
321
+ const hooksDir = path.join(claudeDir, 'hooks');
322
+ const settingsPath = path.join(claudeDir, 'settings.json');
323
+ mkdirSafe(claudeDir);
324
+ mkdirSafe(hooksDir);
325
+ const hookFiles = [
326
+ ['nirnex-bootstrap.sh', HOOK_BOOTSTRAP],
327
+ ['nirnex-entry.sh', HOOK_ENTRY],
328
+ ['nirnex-guard.sh', HOOK_GUARD],
329
+ ['nirnex-trace.sh', HOOK_TRACE],
330
+ ['nirnex-validate.sh', HOOK_VALIDATE],
331
+ ];
332
+ for (const [name, content] of hookFiles) {
333
+ const p = path.join(hooksDir, name);
334
+ if (!fs.existsSync(p)) {
335
+ fs.writeFileSync(p, content, { mode: 0o755 });
336
+ tick(`Created .claude/hooks/${name}`);
337
+ }
338
+ else {
339
+ info(`.claude/hooks/${name} (already exists, skipped)`);
340
+ }
341
+ }
342
+ // Merge hook config into .claude/settings.json
343
+ let existing = {};
344
+ if (fs.existsSync(settingsPath)) {
345
+ try {
346
+ existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
347
+ }
348
+ catch { }
349
+ }
350
+ // Only write if hooks section is not already present
351
+ if (!existing.hooks) {
352
+ const merged = { ...existing, ...CLAUDE_SETTINGS_HOOKS };
353
+ fs.writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + '\n', 'utf8');
354
+ tick('Wrote Claude hook bindings to .claude/settings.json');
355
+ }
356
+ else {
357
+ info('.claude/settings.json hooks already configured, skipped');
358
+ }
359
+ }
268
360
  // Run initial index
269
361
  if (runIndex) {
270
362
  process.stdout.write(` \x1b[90m·\x1b[0m Indexing project...\n`);
@@ -285,6 +377,13 @@ async function runSetup(cwd, opts) {
285
377
  console.log(' \x1b[1mnirnex plan "your task"\x1b[0m — generate your first plan');
286
378
  console.log(' \x1b[1mnirnex plan .ai/specs/foo.md\x1b[0m — plan from a spec file');
287
379
  console.log('');
380
+ console.log('Claude hooks installed:');
381
+ console.log(' SessionStart → .claude/hooks/nirnex-bootstrap.sh');
382
+ console.log(' UserPromptSubmit → .claude/hooks/nirnex-entry.sh');
383
+ console.log(' PreToolUse → .claude/hooks/nirnex-guard.sh');
384
+ console.log(' PostToolUse → .claude/hooks/nirnex-trace.sh');
385
+ console.log(' Stop → .claude/hooks/nirnex-validate.sh');
386
+ console.log('');
288
387
  }
289
388
  // ─── Exported command ─────────────────────────────────────────────────────
290
389
  export { runSetup };
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAoBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAgFnD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAoBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAiJnD"}
@@ -2,7 +2,7 @@
2
2
  // Shows project readiness, index health, and freshness.
3
3
  import { openDb, indexStats } from '@nirnex/core';
4
4
  import path from 'node:path';
5
- import { existsSync, readFileSync } from 'node:fs';
5
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
6
6
  import { execSync } from 'node:child_process';
7
7
  function tick(msg) {
8
8
  process.stdout.write(` \x1b[32m✔\x1b[0m ${msg}\n`);
@@ -89,6 +89,74 @@ export function statusCommand(_args) {
89
89
  existsSync(hookPath)
90
90
  ? tick('Git post-commit hook installed')
91
91
  : warn('Git post-commit hook not installed (index may drift)');
92
+ // Check Claude hooks
93
+ console.log('');
94
+ console.log('\x1b[1mClaude Hooks\x1b[0m');
95
+ const claudeSettingsPath = path.join(cwd, '.claude', 'settings.json');
96
+ if (!existsSync(claudeSettingsPath)) {
97
+ warn('.claude/settings.json not found — run nirnex setup to install hooks');
98
+ }
99
+ else {
100
+ try {
101
+ const settings = JSON.parse(readFileSync(claudeSettingsPath, 'utf8'));
102
+ settings.hooks
103
+ ? tick('.claude/settings.json hook bindings present')
104
+ : warn('.claude/settings.json has no hooks section — re-run nirnex setup');
105
+ }
106
+ catch {
107
+ warn('.claude/settings.json is malformed');
108
+ }
109
+ }
110
+ const claudeHooks = [
111
+ 'nirnex-bootstrap.sh',
112
+ 'nirnex-entry.sh',
113
+ 'nirnex-guard.sh',
114
+ 'nirnex-trace.sh',
115
+ 'nirnex-validate.sh',
116
+ ];
117
+ const hooksDir = path.join(cwd, '.claude', 'hooks');
118
+ let hooksMissing = 0;
119
+ for (const h of claudeHooks) {
120
+ if (!existsSync(path.join(hooksDir, h)))
121
+ hooksMissing++;
122
+ }
123
+ hooksMissing === 0
124
+ ? tick('All 5 Claude hook scripts present')
125
+ : warn(`${hooksMissing} Claude hook script(s) missing in .claude/hooks/ — re-run nirnex setup`);
126
+ // Check runtime state
127
+ const runtimeDir = path.join(cwd, '.ai-index', 'runtime');
128
+ const sessionsDir = path.join(runtimeDir, 'sessions');
129
+ const envelopesDir = path.join(runtimeDir, 'envelopes');
130
+ if (existsSync(sessionsDir)) {
131
+ try {
132
+ const sessions = readdirSync(sessionsDir).filter(f => f.endsWith('.json'));
133
+ tick(`Runtime sessions: ${sessions.length} recorded`);
134
+ }
135
+ catch {
136
+ warn('Could not read runtime sessions dir');
137
+ }
138
+ }
139
+ else {
140
+ tick('Runtime sessions: none yet (hooks not yet triggered)');
141
+ }
142
+ if (existsSync(envelopesDir)) {
143
+ try {
144
+ const envelopes = readdirSync(envelopesDir).filter(f => f.endsWith('.json'));
145
+ const activeCount = envelopes.filter(f => {
146
+ try {
147
+ const e = JSON.parse(readFileSync(path.join(envelopesDir, f), 'utf8'));
148
+ return e.status === 'active';
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ }).length;
154
+ tick(`Task envelopes: ${envelopes.length} total, ${activeCount} active`);
155
+ }
156
+ catch {
157
+ warn('Could not read envelopes dir');
158
+ }
159
+ }
92
160
  console.log('');
93
161
  }
94
162
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjD"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"AA6BA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiEjD"}
@@ -1,4 +1,77 @@
1
+ // Command: nirnex trace
2
+ // View execution traces from .ai-index/traces/
3
+ import path from 'node:path';
4
+ import { existsSync } from 'node:fs';
5
+ import { listTraces, readTrace } from '@nirnex/core/dist/trace.js';
6
+ function tick(msg) {
7
+ process.stdout.write(` \x1b[32m✔\x1b[0m ${msg}\n`);
8
+ }
9
+ function info(msg) {
10
+ process.stdout.write(` \x1b[90m·\x1b[0m ${msg}\n`);
11
+ }
12
+ function warn(msg) {
13
+ process.stdout.write(` \x1b[33m!\x1b[0m ${msg}\n`);
14
+ }
15
+ const TRACE_USAGE = `
16
+ nirnex trace [options]
17
+
18
+ Options:
19
+ --last Show the most recent trace in full
20
+ --list List recent traces (default)
21
+ --id <trace_id> Show a specific trace by ID
22
+ --limit <n> Number of traces to list (default: 20)
23
+ `.trimStart();
1
24
  export function traceCommand(args) {
2
- console.log('[dev trace] executing trace command');
25
+ const cwd = process.cwd();
26
+ const configPath = path.join(cwd, 'nirnex.config.json');
27
+ if (!existsSync(configPath)) {
28
+ warn('Not a Nirnex project. Run nirnex setup first.');
29
+ process.exit(1);
30
+ }
31
+ // Parse flags
32
+ const showLast = args.includes('--last');
33
+ const idIdx = args.indexOf('--id');
34
+ const traceId = idIdx !== -1 ? args[idIdx + 1] : undefined;
35
+ const limitIdx = args.indexOf('--limit');
36
+ const limit = limitIdx !== -1 ? parseInt(args[limitIdx + 1], 10) || 20 : 20;
37
+ const help = args.includes('--help') || args.includes('-h');
38
+ if (help) {
39
+ process.stdout.write(TRACE_USAGE + '\n');
40
+ return;
41
+ }
42
+ // Show specific trace by ID
43
+ if (traceId) {
44
+ const trace = readTrace(cwd, traceId);
45
+ if (!trace) {
46
+ warn(`Trace not found: ${traceId}`);
47
+ process.exit(1);
48
+ }
49
+ console.log(JSON.stringify(trace, null, 2));
50
+ return;
51
+ }
52
+ // List traces
53
+ const traces = listTraces(cwd, showLast ? 1 : limit);
54
+ if (traces.length === 0) {
55
+ info('No traces found in .ai-index/traces/');
56
+ info('Traces are written by nirnex plan and the runtime entry hook.');
57
+ return;
58
+ }
59
+ if (showLast) {
60
+ // Print full JSON of most recent trace
61
+ const full = readTrace(cwd, traces[0].trace_id);
62
+ console.log(JSON.stringify(full ?? traces[0], null, 2));
63
+ return;
64
+ }
65
+ // Print table
66
+ console.log('\n\x1b[1mNirnex Traces\x1b[0m\n');
67
+ console.log(` ${'Trace ID'.padEnd(34)} ${'Date'.padEnd(12)} ${'Intent'.padEnd(20)} ${'Conf'.padEnd(6)} ${'Lane'}`);
68
+ console.log(' ' + '─'.repeat(80));
69
+ for (const t of traces) {
70
+ const intent = (t.intent ?? 'unknown').slice(0, 18);
71
+ const score = t.confidence_score != null ? String(t.confidence_score) : '—';
72
+ const lane = t.lane ?? '—';
73
+ console.log(` ${t.trace_id.padEnd(34)} ${t.date.padEnd(12)} ${intent.padEnd(20)} ${score.padEnd(6)} ${lane}`);
74
+ }
75
+ console.log('');
3
76
  }
4
77
  //# sourceMappingURL=trace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/commands/trace.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,18 +8,20 @@ import { replayCommand } from './commands/replay.js';
8
8
  import { indexCommand } from './commands/index.js';
9
9
  import { traceCommand } from './commands/trace.js';
10
10
  import { setupCommand } from './commands/setup.js';
11
+ import { runtimeCommand } from './commands/runtime.js';
11
12
  const [, , command = '', ...rest] = process.argv;
12
13
  const USAGE = `
13
14
  Nirnex — Decision Intelligence for software delivery
14
15
 
15
16
  Usage:
16
- nirnex setup [options] Initialize Nirnex in this repository
17
- nirnex index [options] Index the codebase into the knowledge graph
18
- nirnex plan [options] Generate a delivery plan from a spec or query
19
- nirnex query [options] Query the knowledge graph
20
- nirnex status [options] Show index and project health
21
- nirnex trace [options] View execution traces
22
- nirnex replay [options] Replay a past analysis run
17
+ nirnex setup [options] Initialize Nirnex in this repository
18
+ nirnex index [options] Index the codebase into the knowledge graph
19
+ nirnex plan [options] Generate a delivery plan from a spec or query
20
+ nirnex query [options] Query the knowledge graph
21
+ nirnex status [options] Show index and project health
22
+ nirnex trace [options] View execution traces
23
+ nirnex replay [options] Replay a past analysis run
24
+ nirnex runtime <sub> Claude hook pipeline commands (machine-facing)
23
25
 
24
26
  Run \`nirnex setup\` to get started.
25
27
  `.trimStart();
@@ -45,6 +47,9 @@ switch (command) {
45
47
  case 'trace':
46
48
  traceCommand(rest);
47
49
  break;
50
+ case 'runtime':
51
+ runtimeCommand(rest).catch(console.error);
52
+ break;
48
53
  default:
49
54
  console.log(USAGE);
50
55
  if (command && command !== '--help' && command !== '-h') {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,2DAA2D;AAC3D,iCAAiC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAQ,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAO,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAO,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAO,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAO,qBAAqB,CAAC;AAEpD,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAEjD,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAab,CAAC,SAAS,EAAE,CAAC;AAEd,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR,KAAK,MAAM;QACT,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM;IACR,KAAK,QAAQ;QACX,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,QAAQ;QACX,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR;QACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM;AACV,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,2DAA2D;AAC3D,iCAAiC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAS,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAQ,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAO,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAO,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAQ,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAQ,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAQ,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAEjD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;CAcb,CAAC,SAAS,EAAE,CAAC;AAEd,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR,KAAK,MAAM;QACT,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM;IACR,KAAK,QAAQ;QACX,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,QAAQ;QACX,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,OAAO;QACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR,KAAK,SAAS;QACZ,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM;IACR;QACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM;AACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runBootstrap(): Promise<void>;
2
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/runtime/bootstrap.ts"],"names":[],"mappings":"AAsCA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DlD"}
@@ -0,0 +1,90 @@
1
+ // SessionStart hook handler.
2
+ // Called by .claude/hooks/nirnex-bootstrap.sh at the start of each Claude session.
3
+ // Reads nirnex.config.json, checks index freshness, writes env vars to CLAUDE_ENV_FILE,
4
+ // and creates a session state file.
5
+ import fs from 'node:fs';
6
+ import path from 'node:path';
7
+ import { execSync } from 'node:child_process';
8
+ import { createSession, saveSession, loadSession } from './session.js';
9
+ function readStdin() {
10
+ return new Promise(resolve => {
11
+ let buf = '';
12
+ process.stdin.setEncoding('utf8');
13
+ process.stdin.on('data', chunk => { buf += chunk; });
14
+ process.stdin.on('end', () => resolve(buf));
15
+ });
16
+ }
17
+ function getIndexFreshness(repoRoot) {
18
+ try {
19
+ const head = execSync('git rev-parse HEAD', { cwd: repoRoot, encoding: 'utf8' }).trim();
20
+ const dbPath = path.join(repoRoot, '.aidos.db');
21
+ if (!fs.existsSync(dbPath))
22
+ return { freshness: 'unknown', head };
23
+ // Read stored commit hash from DB
24
+ const { openDb } = require('@nirnex/core/dist/db.js');
25
+ const db = openDb(dbPath);
26
+ const meta = db.prepare('SELECT value FROM _meta WHERE key = ?').get('commit_hash');
27
+ db.close();
28
+ return { freshness: meta?.value === head ? 'fresh' : 'stale', head };
29
+ }
30
+ catch {
31
+ return { freshness: 'unknown', head: '' };
32
+ }
33
+ }
34
+ export async function runBootstrap() {
35
+ const raw = await readStdin();
36
+ let hookData = { session_id: 'unknown' };
37
+ try {
38
+ hookData = JSON.parse(raw || '{}');
39
+ }
40
+ catch {
41
+ // Non-fatal: proceed with generated session id
42
+ }
43
+ const sessionId = hookData.session_id || `sess_${Date.now().toString(36)}`;
44
+ const repoRoot = process.cwd();
45
+ // Verify project is Nirnex-enabled
46
+ const configPath = path.join(repoRoot, 'nirnex.config.json');
47
+ if (!fs.existsSync(configPath)) {
48
+ // Not a Nirnex project — exit silently
49
+ process.exit(0);
50
+ }
51
+ let config = {};
52
+ try {
53
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
54
+ }
55
+ catch {
56
+ process.exit(0);
57
+ }
58
+ const { freshness, head } = getIndexFreshness(repoRoot);
59
+ // Create or update session
60
+ const existing = loadSession(repoRoot, sessionId);
61
+ const session = existing ?? createSession(repoRoot, sessionId, {
62
+ index_freshness: freshness,
63
+ current_head: head,
64
+ policy_mode: config.hooks?.policyMode ?? 'standard',
65
+ });
66
+ if (!existing) {
67
+ saveSession(repoRoot, session);
68
+ }
69
+ // Write env vars to CLAUDE_ENV_FILE if set
70
+ const envFile = process.env.CLAUDE_ENV_FILE;
71
+ if (envFile) {
72
+ const envVars = [
73
+ `NIRNEX_REPO_ROOT=${repoRoot}`,
74
+ `NIRNEX_DB_PATH=${path.join(repoRoot, '.aidos.db')}`,
75
+ `NIRNEX_INDEX_FRESHNESS=${freshness}`,
76
+ `NIRNEX_CURRENT_HEAD=${head}`,
77
+ `NIRNEX_POLICY_MODE=${session.policy_mode}`,
78
+ `NIRNEX_SESSION_ID=${sessionId}`,
79
+ ].join('\n') + '\n';
80
+ try {
81
+ fs.writeFileSync(envFile, envVars, 'utf8');
82
+ }
83
+ catch {
84
+ // Non-fatal
85
+ }
86
+ }
87
+ // No JSON output needed for SessionStart (env vars are the output)
88
+ process.exit(0);
89
+ }
90
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/runtime/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runEntry(): Promise<void>;
2
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"AAoBA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA6E9C"}