@vyuhlabs/dxkit 2.12.0 → 2.13.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 (52) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +192 -279
  3. package/dist/baseline/check.d.ts +7 -0
  4. package/dist/baseline/check.d.ts.map +1 -1
  5. package/dist/baseline/check.js +3 -1
  6. package/dist/baseline/check.js.map +1 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +81 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/generator.d.ts.map +1 -1
  11. package/dist/generator.js +5 -0
  12. package/dist/generator.js.map +1 -1
  13. package/dist/loop/demo.d.ts +11 -0
  14. package/dist/loop/demo.d.ts.map +1 -0
  15. package/dist/loop/demo.js +156 -0
  16. package/dist/loop/demo.js.map +1 -0
  17. package/dist/loop/doctor.d.ts +37 -0
  18. package/dist/loop/doctor.d.ts.map +1 -0
  19. package/dist/loop/doctor.js +294 -0
  20. package/dist/loop/doctor.js.map +1 -0
  21. package/dist/loop/ledger-cli.d.ts +7 -0
  22. package/dist/loop/ledger-cli.d.ts.map +1 -0
  23. package/dist/loop/ledger-cli.js +95 -0
  24. package/dist/loop/ledger-cli.js.map +1 -0
  25. package/dist/loop/ledger.d.ts +95 -0
  26. package/dist/loop/ledger.d.ts.map +1 -0
  27. package/dist/loop/ledger.js +201 -0
  28. package/dist/loop/ledger.js.map +1 -0
  29. package/dist/loop/policy.d.ts +35 -0
  30. package/dist/loop/policy.d.ts.map +1 -0
  31. package/dist/loop/policy.js +151 -0
  32. package/dist/loop/policy.js.map +1 -0
  33. package/dist/loop/scaffold.d.ts +26 -0
  34. package/dist/loop/scaffold.d.ts.map +1 -0
  35. package/dist/loop/scaffold.js +221 -0
  36. package/dist/loop/scaffold.js.map +1 -0
  37. package/dist/loop/stop-gate.d.ts +71 -0
  38. package/dist/loop/stop-gate.d.ts.map +1 -0
  39. package/dist/loop/stop-gate.js +295 -0
  40. package/dist/loop/stop-gate.js.map +1 -0
  41. package/dist/types.d.ts +4 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/update.d.ts.map +1 -1
  44. package/dist/update.js +9 -0
  45. package/dist/update.js.map +1 -1
  46. package/package.json +1 -1
  47. package/templates/.claude/skills/dxkit-config/SKILL.md +17 -0
  48. package/templates/.claude/skills/dxkit-init/SKILL.md +1 -0
  49. package/templates/.claude/skills/dxkit-learn/SKILL.md +17 -0
  50. package/templates/.claude/skills/dxkit-loop/SKILL.md +114 -0
  51. package/templates/.claude/skills/dxkit-onboard/SKILL.md +2 -0
  52. package/templates/.claude/skills/dxkit-update/SKILL.md +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Render the demo. Pure of process exit; returns the text blocks so a test can
3
+ * assert on them. The CLI wrapper prints + exits 0.
4
+ */
5
+ export declare function renderLoopGuardrailDemo(): {
6
+ blockMessage: string;
7
+ lines: string[];
8
+ };
9
+ /** CLI entry for `vyuh-dxkit demo loop-guardrail`. */
10
+ export declare function runLoopGuardrailDemo(): Promise<void>;
11
+ //# sourceMappingURL=demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/loop/demo.ts"],"names":[],"mappings":"AAiGA;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAOnF;AAED,sDAAsD;AACtD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC1D"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.renderLoopGuardrailDemo = renderLoopGuardrailDemo;
37
+ exports.runLoopGuardrailDemo = runLoopGuardrailDemo;
38
+ const check_renderers_1 = require("../baseline/check-renderers");
39
+ const stop_gate_1 = require("./stop-gate");
40
+ const logger = __importStar(require("../logger"));
41
+ /** A representative net-new finding for the demo: a hardcoded credential the
42
+ * agent introduced in a new payments module (blocked by `security-only`). */
43
+ const DEMO_FINDING = {
44
+ status: 'added',
45
+ blocks: true,
46
+ warns: false,
47
+ currentId: 'demo000000000001',
48
+ confidence: 1,
49
+ kind: 'secret',
50
+ severity: 'critical',
51
+ file: 'src/payments.js',
52
+ line: 12,
53
+ reasons: [
54
+ { code: 'exact-id', detail: 'hardcoded credential introduced on this branch (gitleaks)' },
55
+ ],
56
+ };
57
+ /** Build a complete, valid guardrail payload for the demo — `blocked: true`
58
+ * carries the example finding; `false` is the post-repair clean run. */
59
+ function demoPayload(blocked) {
60
+ const pairs = blocked ? [DEMO_FINDING] : [];
61
+ return {
62
+ schema: check_renderers_1.GUARDRAIL_JSON_SCHEMA,
63
+ verdict: { blocks: blocked, warns: false, exitCode: blocked ? 1 : 0 },
64
+ baseline: {
65
+ name: 'main',
66
+ createdAt: '2026-01-01T00:00:00.000Z',
67
+ commitSha: 'demo000',
68
+ branch: 'main',
69
+ findingsCount: 184,
70
+ mode: {
71
+ value: 'committed-full',
72
+ source: 'demo',
73
+ explanation: 'illustrative baseline for the offline demo',
74
+ },
75
+ },
76
+ current: {
77
+ commitSha: 'demo001',
78
+ branch: 'feature/payments',
79
+ findingsCount: blocked ? 185 : 184,
80
+ },
81
+ matcher: { gitAware: true },
82
+ envelopeDrift: {
83
+ toolchainHashChanged: false,
84
+ policyHashChanged: false,
85
+ ignoreHashChanged: false,
86
+ configHashChanged: false,
87
+ dxkitVersionChanged: false,
88
+ toolVersionDiffs: [],
89
+ coverageDrift: [],
90
+ },
91
+ policy: {
92
+ mode: 'brownfield',
93
+ block: [],
94
+ warn: ['uncertain'],
95
+ confidence: { critical: 0.75, high: 0.8, medium: 0.85, low: 0.9 },
96
+ blockRules: {
97
+ newSecret: true,
98
+ newCriticalSecurity: true,
99
+ newHighSecurity: true,
100
+ newCriticalDependencyVulnerability: true,
101
+ newHighReachableDependencyVulnerability: true,
102
+ newUntestedChangedSource: false,
103
+ newSevereQualityIssueInChangedFiles: false,
104
+ },
105
+ },
106
+ summary: {
107
+ pairs: pairs.length,
108
+ blocking: blocked ? 1 : 0,
109
+ suppressed: 0,
110
+ warning: 0,
111
+ persisted: 184,
112
+ resolved: 0,
113
+ },
114
+ pairs,
115
+ };
116
+ }
117
+ /**
118
+ * Render the demo. Pure of process exit; returns the text blocks so a test can
119
+ * assert on them. The CLI wrapper prints + exits 0.
120
+ */
121
+ function renderLoopGuardrailDemo() {
122
+ const blocked = demoPayload(true);
123
+ const blockMessage = (0, stop_gate_1.buildRepairMessage)(blocked);
124
+ const lines = [];
125
+ lines.push('This is what the dxkit Stop-gate does when a coding loop tries to stop.');
126
+ lines.push('No Claude Code session, no API key, no scanners — just the gate.');
127
+ return { blockMessage, lines };
128
+ }
129
+ /** CLI entry for `vyuh-dxkit demo loop-guardrail`. */
130
+ async function runLoopGuardrailDemo() {
131
+ const { blockMessage } = renderLoopGuardrailDemo();
132
+ logger.header('vyuh-dxkit demo: loop guardrail');
133
+ logger.dim('A no-API, offline walkthrough of the Stop-gate blocking a loop and the agent repairing.');
134
+ console.log(''); // slop-ok
135
+ // 1. The loop declares done with a net-new finding.
136
+ logger.info('agent ▸ Done — added the payments module.');
137
+ console.log(''); // slop-ok
138
+ // 2. The gate runs on Stop and BLOCKS, feeding the model the repair message.
139
+ logger.fail('dxkit Stop-gate ▸ BLOCKED — completion withheld');
140
+ console.log(''); // slop-ok
141
+ for (const line of blockMessage.split('\n'))
142
+ logger.dim(' ' + line);
143
+ console.log(''); // slop-ok
144
+ logger.dim(' (delivered to the model as an exit-0 {"decision":"block","reason":…} — a warm-context repair instruction)');
145
+ console.log(''); // slop-ok
146
+ // 3. The agent repairs and tries to stop again.
147
+ logger.info('agent ▸ Moved the key to an env var and added a test. Done.');
148
+ console.log(''); // slop-ok
149
+ // 4. The gate re-runs and allows the clean stop.
150
+ logger.success('dxkit Stop-gate ▸ CLEAN — loop may stop');
151
+ console.log(''); // slop-ok
152
+ logger.dim('Blocked and repaired inside the same warm loop. Same verdict every time, in seconds, offline.');
153
+ logger.dim('Wire it into your own loop: `vyuh-dxkit init --claude-loop` → `vyuh-dxkit loop doctor`.');
154
+ process.exit(0);
155
+ }
156
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/loop/demo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,0DAOC;AAGD,oDAsCC;AAxID,iEAAoE;AACpE,2CAAiD;AACjD,kDAAoC;AAIpC;8EAC8E;AAC9E,MAAM,YAAY,GAAa;IAC7B,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,2DAA2D,EAAE;KAC1F;CACF,CAAC;AAEF;yEACyE;AACzE,SAAS,WAAW,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,OAAO;QACL,MAAM,EAAE,uCAAqB;QAC7B,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACrE,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,0BAA0B;YACrC,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,GAAG;YAClB,IAAI,EAAE;gBACJ,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,4CAA4C;aAC1D;SACF;QACD,OAAO,EAAE;YACP,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,kBAAkB;YAC1B,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SACnC;QACD,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3B,aAAa,EAAE;YACb,oBAAoB,EAAE,KAAK;YAC3B,iBAAiB,EAAE,KAAK;YACxB,iBAAiB,EAAE,KAAK;YACxB,iBAAiB,EAAE,KAAK;YACxB,mBAAmB,EAAE,KAAK;YAC1B,gBAAgB,EAAE,EAAE;YACpB,aAAa,EAAE,EAAE;SAClB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,CAAC,WAAW,CAAC;YACnB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;YACjE,UAAU,EAAE;gBACV,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,IAAI;gBACzB,eAAe,EAAE,IAAI;gBACrB,kCAAkC,EAAE,IAAI;gBACxC,uCAAuC,EAAE,IAAI;gBAC7C,wBAAwB,EAAE,KAAK;gBAC/B,mCAAmC,EAAE,KAAK;aAC3C;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,CAAC;SACZ;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,sDAAsD;AAC/C,KAAK,UAAU,oBAAoB;IACxC,MAAM,EAAE,YAAY,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAEnD,MAAM,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,CACR,yFAAyF,CAC1F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3B,oDAAoD;IACpD,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3B,6EAA6E;IAC7E,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAC3B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAC3B,MAAM,CAAC,GAAG,CACR,6GAA6G,CAC9G,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3B,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3B,iDAAiD;IACjD,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3B,MAAM,CAAC,GAAG,CACR,+FAA+F,CAChG,CAAC;IACF,MAAM,CAAC,GAAG,CACR,yFAAyF,CAC1F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /** Severity of one preflight check. `fail` = the loop is unsafe to run
2
+ * unattended; `warn` = a degraded-but-usable condition; `pass` = good. */
3
+ export type LoopCheckStatus = 'pass' | 'fail' | 'warn';
4
+ export interface LoopCheck {
5
+ readonly label: string;
6
+ readonly status: LoopCheckStatus;
7
+ /** One-line detail shown under the label. */
8
+ readonly detail: string;
9
+ /** Repair metadata — present when status !== 'pass' and a fix is known. */
10
+ readonly fix?: {
11
+ readonly hint: string;
12
+ readonly command?: string;
13
+ readonly skill?: string;
14
+ };
15
+ }
16
+ export interface LoopDoctorReport {
17
+ readonly schema: 'loop-doctor.v1';
18
+ readonly generatedAt: string;
19
+ readonly cwd: string;
20
+ /** Active loop posture (`security-only` / `full-debt`). */
21
+ readonly preset: string;
22
+ readonly checks: ReadonlyArray<LoopCheck>;
23
+ /** True when no check failed (warnings allowed). The loop is safe to
24
+ * run unattended only when this is true. */
25
+ readonly ok: boolean;
26
+ }
27
+ /** Build the structured preflight report (pure of process I/O). */
28
+ export declare function buildLoopDoctorReport(cwd: string): LoopDoctorReport;
29
+ /**
30
+ * CLI entry for `vyuh-dxkit loop doctor`. Renders the preflight report
31
+ * (or JSON with `--json`) and exits non-zero when any check failed so it
32
+ * can gate a CI loop-setup step.
33
+ */
34
+ export declare function runLoopDoctor(cwd: string, opts?: {
35
+ json?: boolean;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/loop/doctor.ts"],"names":[],"mappings":"AAuBA;2EAC2E;AAC3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C;iDAC6C;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAkDD,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAmJnE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7F"}
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildLoopDoctorReport = buildLoopDoctorReport;
37
+ exports.runLoopDoctor = runLoopDoctor;
38
+ /**
39
+ * `vyuh-dxkit loop doctor` — preflight for an autonomous coding loop.
40
+ *
41
+ * The Stop-gate only protects a loop if three things are true before the
42
+ * loop starts: there is a baseline to diff against, the gate is actually
43
+ * wired into Claude Code (a registered Stop hook), and the guardrail can
44
+ * run. If any is missing the loop runs UNPROTECTED — and silently, because
45
+ * an unregistered hook never fires. This command makes that failure mode
46
+ * visible up front instead of after an unattended run shipped debt.
47
+ *
48
+ * It mirrors the structured shape of `src/doctor.ts` (label + ok + fix)
49
+ * so `dxkit-loop` / `dxkit-fix` can drive repairs conversationally, but it
50
+ * is loop-scoped: every check here is a precondition for safe unattended
51
+ * looping, not general install health.
52
+ */
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ const child_process_1 = require("child_process");
56
+ const modes_1 = require("../baseline/modes");
57
+ const policy_1 = require("./policy");
58
+ const ledger_1 = require("./ledger");
59
+ const logger = __importStar(require("../logger"));
60
+ function isGitRepo(cwd) {
61
+ try {
62
+ (0, child_process_1.execFileSync)('git', ['rev-parse', '--is-inside-work-tree'], {
63
+ cwd,
64
+ stdio: ['ignore', 'pipe', 'ignore'],
65
+ });
66
+ return true;
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
72
+ function refResolves(cwd, ref) {
73
+ try {
74
+ (0, child_process_1.execFileSync)('git', ['rev-parse', '--verify', '--quiet', `${ref}^{commit}`], {
75
+ cwd,
76
+ stdio: ['ignore', 'pipe', 'ignore'],
77
+ });
78
+ return true;
79
+ }
80
+ catch {
81
+ return false;
82
+ }
83
+ }
84
+ /**
85
+ * Does `.claude/settings.json` register the Stop-gate hook? Reads the
86
+ * file defensively (absent / malformed → not registered) and looks for a
87
+ * Stop hook whose command invokes `hook stop-gate`. This is the check
88
+ * that catches the silent-failure class: a loop with no registered Stop
89
+ * hook runs with no gate at all.
90
+ */
91
+ function stopHookRegistered(cwd) {
92
+ try {
93
+ const raw = fs.readFileSync(path.join(cwd, '.claude', 'settings.json'), 'utf8');
94
+ const parsed = JSON.parse(raw);
95
+ const stop = parsed.hooks?.Stop ?? [];
96
+ return stop.some((entry) => (entry.hooks ?? []).some((h) => typeof h.command === 'string' && /hook\s+stop-gate/.test(h.command)));
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ /** Build the structured preflight report (pure of process I/O). */
103
+ function buildLoopDoctorReport(cwd) {
104
+ const checks = [];
105
+ const preset = (0, policy_1.resolveLoopPreset)(cwd);
106
+ // 1. Git repo — the gate diffs the working tree against a baseline.
107
+ const git = isGitRepo(cwd);
108
+ checks.push({
109
+ label: 'git repository',
110
+ status: git ? 'pass' : 'fail',
111
+ detail: git ? 'inside a git work tree' : 'not a git repository',
112
+ ...(git
113
+ ? {}
114
+ : { fix: { hint: 'Run the loop from inside a git repository.', command: 'git init' } }),
115
+ });
116
+ // 2. Baseline present / resolvable. Without a prior side the gate
117
+ // fail-closes (block-operator) on every Stop — the loop can never
118
+ // cleanly finish. Ref-based modes need a resolvable ref, not a file.
119
+ const mode = (0, modes_1.resolveBaselineMode)({ cwd });
120
+ if (mode.mode === 'ref-based') {
121
+ const ref = mode.ref ?? 'origin/main';
122
+ const ok = !git ? false : refResolves(cwd, ref);
123
+ checks.push({
124
+ label: `baseline (ref-based: ${ref})`,
125
+ status: ok ? 'pass' : 'fail',
126
+ detail: ok ? 'comparison ref resolves' : `comparison ref ${ref} does not resolve`,
127
+ ...(ok
128
+ ? {}
129
+ : {
130
+ fix: {
131
+ hint: `Fetch the comparison ref so the gate can recompute the prior side, or pin a reachable ref in .dxkit/policy.json.`,
132
+ command: `git fetch origin`,
133
+ skill: 'dxkit-config',
134
+ },
135
+ }),
136
+ });
137
+ }
138
+ else {
139
+ const baselinePath = path.join(cwd, '.dxkit', 'baselines', 'main.json');
140
+ const ok = fs.existsSync(baselinePath);
141
+ checks.push({
142
+ label: `baseline (.dxkit/baselines/main.json, mode: ${mode.mode})`,
143
+ status: ok ? 'pass' : 'fail',
144
+ detail: ok ? 'committed baseline present' : 'no committed baseline',
145
+ ...(ok
146
+ ? {}
147
+ : {
148
+ fix: {
149
+ hint: 'Capture the current state as the loop baseline; existing debt is locked in, only net-new findings block.',
150
+ command: 'npx vyuh-dxkit baseline create',
151
+ skill: 'dxkit-init',
152
+ },
153
+ }),
154
+ });
155
+ }
156
+ // 3. Stop hook registered. The safety guarantee is entirely contingent
157
+ // on this — an unregistered hook never fires, so the loop runs with no
158
+ // gate and no error.
159
+ const hook = stopHookRegistered(cwd);
160
+ checks.push({
161
+ label: 'Stop-gate hook registered',
162
+ status: hook ? 'pass' : 'fail',
163
+ detail: hook
164
+ ? '.claude/settings.json invokes `vyuh-dxkit hook stop-gate` on Stop'
165
+ : 'no Stop hook invoking the gate — the loop would run UNPROTECTED',
166
+ ...(hook
167
+ ? {}
168
+ : {
169
+ fix: {
170
+ hint: 'Register the Stop-gate hook in .claude/settings.json (additive — your existing hooks are preserved).',
171
+ command: 'npx vyuh-dxkit init --claude-loop',
172
+ skill: 'dxkit-loop',
173
+ },
174
+ }),
175
+ });
176
+ // 4. Active preset — informational. Surfaces the posture so an operator
177
+ // knows what the loop will block on before trusting it unattended.
178
+ checks.push({
179
+ label: `loop preset: ${preset}`,
180
+ status: 'pass',
181
+ detail: preset === 'security-only'
182
+ ? 'blocks net-new secrets + crit/high security + reachable dep-vulns; test-gap + quality warn only'
183
+ : 'blocks every net-new finding incl. test-gap + quality (can drive open-ended repair)',
184
+ });
185
+ // 5. Postflight test command — optional. When unset the gate skips the
186
+ // post-pass test run; that is a real reduction in coverage, so warn.
187
+ const testCmd = process.env.DXKIT_LOOP_TEST_COMMAND;
188
+ checks.push({
189
+ label: 'postflight test command',
190
+ status: testCmd && testCmd.trim() ? 'pass' : 'warn',
191
+ detail: testCmd && testCmd.trim()
192
+ ? `DXKIT_LOOP_TEST_COMMAND set (${testCmd.trim().slice(0, 60)})`
193
+ : 'DXKIT_LOOP_TEST_COMMAND unset — the gate will not run tests after the guardrail passes',
194
+ ...(testCmd && testCmd.trim()
195
+ ? {}
196
+ : {
197
+ fix: {
198
+ hint: 'Optionally export DXKIT_LOOP_TEST_COMMAND so the gate also blocks completion on a failing test suite.',
199
+ },
200
+ }),
201
+ });
202
+ // 6. Graph freshness — only relevant when a graph is present (the
203
+ // feature/orientation surface). Stale is usable (fail-open), so warn.
204
+ const graphPath = path.join(cwd, '.dxkit', 'reports', 'graph.json');
205
+ if (fs.existsSync(graphPath)) {
206
+ const fresh = git ? graphFresh(cwd, graphPath) : true;
207
+ checks.push({
208
+ label: 'code graph freshness',
209
+ status: fresh ? 'pass' : 'warn',
210
+ detail: fresh
211
+ ? 'graph.json is newer than the last commit'
212
+ : 'graph.json predates the last commit — orientation context may be stale',
213
+ ...(fresh
214
+ ? {}
215
+ : {
216
+ fix: {
217
+ hint: 'Regenerate the code graph so orientation context matches current code.',
218
+ command: 'npx vyuh-dxkit explore graph',
219
+ skill: 'dxkit-feature',
220
+ },
221
+ }),
222
+ });
223
+ }
224
+ const ledgerExists = fs.existsSync(path.join(cwd, ledger_1.LEDGER_FILE));
225
+ checks.push({
226
+ label: 'loop ledger',
227
+ status: 'pass',
228
+ detail: ledgerExists
229
+ ? `audit trail present (${ledger_1.LEDGER_FILE})`
230
+ : 'no ledger yet — created on the first Stop event',
231
+ });
232
+ const ok = !checks.some((c) => c.status === 'fail');
233
+ return {
234
+ schema: 'loop-doctor.v1',
235
+ generatedAt: new Date().toISOString(),
236
+ cwd,
237
+ preset,
238
+ checks,
239
+ ok,
240
+ };
241
+ }
242
+ /**
243
+ * CLI entry for `vyuh-dxkit loop doctor`. Renders the preflight report
244
+ * (or JSON with `--json`) and exits non-zero when any check failed so it
245
+ * can gate a CI loop-setup step.
246
+ */
247
+ async function runLoopDoctor(cwd, opts = {}) {
248
+ const report = buildLoopDoctorReport(cwd);
249
+ if (opts.json) {
250
+ process.stdout.write(JSON.stringify(report, null, 2) + '\n');
251
+ process.exit(report.ok ? 0 : 1);
252
+ }
253
+ logger.header('vyuh-dxkit loop doctor');
254
+ for (const c of report.checks) {
255
+ const line = `${c.label} — ${c.detail}`;
256
+ if (c.status === 'pass')
257
+ logger.success(line);
258
+ else if (c.status === 'warn')
259
+ logger.warn(line);
260
+ else
261
+ logger.fail(line);
262
+ if (c.fix && c.status !== 'pass') {
263
+ logger.dim(` → ${c.fix.hint}`);
264
+ if (c.fix.command)
265
+ logger.dim(` ${c.fix.command}`);
266
+ }
267
+ }
268
+ console.log(''); // slop-ok
269
+ if (report.ok) {
270
+ logger.success('Loop preflight passed — safe to run unattended.');
271
+ }
272
+ else {
273
+ logger.fail('Loop preflight failed — fix the items above before running unattended.');
274
+ }
275
+ process.exit(report.ok ? 0 : 1);
276
+ }
277
+ /** Graph is fresh when its mtime is at or after the last commit time. */
278
+ function graphFresh(cwd, graphPath) {
279
+ try {
280
+ const committedAt = (0, child_process_1.execFileSync)('git', ['log', '-1', '--format=%ct'], {
281
+ cwd,
282
+ encoding: 'utf8',
283
+ stdio: ['ignore', 'pipe', 'ignore'],
284
+ }).trim();
285
+ const commitMs = parseInt(committedAt, 10) * 1000;
286
+ if (!Number.isFinite(commitMs))
287
+ return true; // can't tell → don't cry wolf
288
+ return fs.statSync(graphPath).mtimeMs >= commitMs;
289
+ }
290
+ catch {
291
+ return true;
292
+ }
293
+ }
294
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/loop/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface LoopLedgerOptions {
2
+ readonly json?: boolean;
3
+ /** For `show`: cap to the last N events. */
4
+ readonly limit?: string;
5
+ }
6
+ export declare function runLoopLedger(cwd: string, action: string | undefined, opts: LoopLedgerOptions): Promise<void>;
7
+ //# sourceMappingURL=ledger-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-cli.d.ts","sourceRoot":"","sources":["../../src/loop/ledger-cli.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AASD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}