@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.
- package/dist/commands/runtime.d.ts +2 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +60 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +99 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +69 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/trace.d.ts.map +1 -1
- package/dist/commands/trace.js +74 -1
- package/dist/commands/trace.js.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +2 -0
- package/dist/runtime/bootstrap.d.ts.map +1 -0
- package/dist/runtime/bootstrap.js +90 -0
- package/dist/runtime/bootstrap.js.map +1 -0
- package/dist/runtime/entry.d.ts +2 -0
- package/dist/runtime/entry.d.ts.map +1 -0
- package/dist/runtime/entry.js +86 -0
- package/dist/runtime/entry.js.map +1 -0
- package/dist/runtime/envelope.d.ts +4 -0
- package/dist/runtime/envelope.d.ts.map +1 -0
- package/dist/runtime/envelope.js +113 -0
- package/dist/runtime/envelope.js.map +1 -0
- package/dist/runtime/guard.d.ts +2 -0
- package/dist/runtime/guard.d.ts.map +1 -0
- package/dist/runtime/guard.js +114 -0
- package/dist/runtime/guard.js.map +1 -0
- package/dist/runtime/session.d.ts +13 -0
- package/dist/runtime/session.d.ts.map +1 -0
- package/dist/runtime/session.js +111 -0
- package/dist/runtime/session.js.map +1 -0
- package/dist/runtime/trace-hook.d.ts +2 -0
- package/dist/runtime/trace-hook.d.ts.map +1 -0
- package/dist/runtime/trace-hook.js +102 -0
- package/dist/runtime/trace-hook.js.map +1 -0
- package/dist/runtime/types.d.ts +108 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +3 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/validate.d.ts +2 -0
- package/dist/runtime/validate.d.ts.map +1 -0
- package/dist/runtime/validate.js +91 -0
- package/dist/runtime/validate.js.map +1 -0
- package/package.json +1 -1
|
@@ -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":"
|
|
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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -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":"AAAA,wBAAwB;AACxB,uEAAuE;AACvE,2EAA2E;AAE3E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,6EAA6E;AAE7E,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB9B,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,0BAA0B,GAAG;;;;;;;;;;CAUlC,CAAC;AAEF,MAAM,gBAAgB,GAAG;;CAExB,CAAC;AAEF,4EAA4E;AAE5E,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,OAAe,EAAE,KAAa;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM;oBAAE,SAAS;gBACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACzD,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAE7E,SAAS,MAAM,CAAC,EAAsB,EAAE,QAAgB;IACtD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAsB,EAAE,QAAgB,EAAE,UAAU,GAAG,IAAI;IACjF,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAChC,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,KAAK,CAAC;AAC9C,CAAC;AAED,6EAA6E;AAE7E,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAsB;IACzD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,qBAAqB;IACrB,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE7B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,4BAA4B,WAAW,UAAU,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,+BAA+B;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,2DAA2D,EAAE,IAAI,CAAC,CAAC;YACpG,QAAQ,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAElD,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,cAAc,CAAC,CAAC;IAErB,SAAS,CAAC,UAAU,CAAC,CAAC;IACtB,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAE7B,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpB,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE3B,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,0BAA0B,EAAE,mCAAmC,CAAC,CAAC;IAEvH,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,sBAAsB,EAAE,gCAAgC,CAAC,CAAC;IAChH,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;IACzG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,oCAAoC,CAAC,CAAC;IAErH,SAAS,CAAC,UAAU,CAAC,CAAC;IACtB,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE3B,2BAA2B;IAC3B,MAAM,MAAM,GAAG;QACb,WAAW;QACX,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,aAAa,EAAE,WAAW;QAC1B,iBAAiB,EAAE,wBAAwB;QAC3C,OAAO,EAAE;YACP,OAAO,EAAE,wBAAwB;YACjC,WAAW,EAAE,4BAA4B;SAC1C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,WAAW;YACf,WAAW,EAAE,WAAW;SACzB;QACD,GAAG,EAAE;YACH,qBAAqB,EAAE,WAAW;SACnC;QACD,GAAG,EAAE;YACH,QAAQ,EAAE,WAAW;SACtB;KACF,CAAC;IAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAEnC,mBAAmB;IACnB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YACpD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,SAAS,qBAAqB,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,oBAAoB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,6EAA6E;AAE7E,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
|
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,
|
|
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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -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":"AAAA,yBAAyB;AACzB,wDAAwD;AAExD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
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":"
|
|
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"}
|
package/dist/commands/trace.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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
|
|
17
|
-
nirnex index
|
|
18
|
-
nirnex plan
|
|
19
|
-
nirnex query
|
|
20
|
-
nirnex status
|
|
21
|
-
nirnex trace
|
|
22
|
-
nirnex replay
|
|
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,
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"AAoBA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA6E9C"}
|