@neurcode-ai/cli 0.10.1 → 0.14.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 (199) hide show
  1. package/.telemetry-bundle/dist/contracts.d.ts +1 -1
  2. package/README.md +74 -25
  3. package/dist/commands/governance.d.ts.map +1 -1
  4. package/dist/commands/governance.js +12 -0
  5. package/dist/commands/governance.js.map +1 -1
  6. package/dist/commands/home.d.ts +21 -0
  7. package/dist/commands/home.d.ts.map +1 -0
  8. package/dist/commands/home.js +253 -0
  9. package/dist/commands/home.js.map +1 -0
  10. package/dist/commands/login.js +1 -1
  11. package/dist/commands/login.js.map +1 -1
  12. package/dist/commands/quickstart.d.ts.map +1 -1
  13. package/dist/commands/quickstart.js +13 -11
  14. package/dist/commands/quickstart.js.map +1 -1
  15. package/dist/commands/remediate-export.d.ts.map +1 -1
  16. package/dist/commands/remediate-export.js +17 -2
  17. package/dist/commands/remediate-export.js.map +1 -1
  18. package/dist/commands/replay.d.ts.map +1 -1
  19. package/dist/commands/replay.js +36 -0
  20. package/dist/commands/replay.js.map +1 -1
  21. package/dist/commands/verify-output.d.ts.map +1 -1
  22. package/dist/commands/verify-output.js +88 -4
  23. package/dist/commands/verify-output.js.map +1 -1
  24. package/dist/commands/verify.d.ts +22 -1
  25. package/dist/commands/verify.d.ts.map +1 -1
  26. package/dist/commands/verify.js +467 -37
  27. package/dist/commands/verify.js.map +1 -1
  28. package/dist/daemon/server.d.ts.map +1 -1
  29. package/dist/daemon/server.js +4 -0
  30. package/dist/daemon/server.js.map +1 -1
  31. package/dist/governance/canonical-pipeline.d.ts.map +1 -1
  32. package/dist/governance/canonical-pipeline.js +29 -3
  33. package/dist/governance/canonical-pipeline.js.map +1 -1
  34. package/dist/governance/intent/drift-detector.d.ts +100 -0
  35. package/dist/governance/intent/drift-detector.d.ts.map +1 -0
  36. package/dist/governance/intent/drift-detector.js +275 -0
  37. package/dist/governance/intent/drift-detector.js.map +1 -0
  38. package/dist/governance/intent/glob-match.d.ts +43 -0
  39. package/dist/governance/intent/glob-match.d.ts.map +1 -0
  40. package/dist/governance/intent/glob-match.js +108 -0
  41. package/dist/governance/intent/glob-match.js.map +1 -0
  42. package/dist/governance/intent/import-graph.d.ts +56 -0
  43. package/dist/governance/intent/import-graph.d.ts.map +1 -0
  44. package/dist/governance/intent/import-graph.js +133 -0
  45. package/dist/governance/intent/import-graph.js.map +1 -0
  46. package/dist/governance/intent/index.d.ts +23 -0
  47. package/dist/governance/intent/index.d.ts.map +1 -0
  48. package/dist/governance/intent/index.js +48 -0
  49. package/dist/governance/intent/index.js.map +1 -0
  50. package/dist/governance/intent/intelligence-boundaries.d.ts +69 -0
  51. package/dist/governance/intent/intelligence-boundaries.d.ts.map +1 -0
  52. package/dist/governance/intent/intelligence-boundaries.js +163 -0
  53. package/dist/governance/intent/intelligence-boundaries.js.map +1 -0
  54. package/dist/governance/intent/intent-contract.d.ts +76 -0
  55. package/dist/governance/intent/intent-contract.d.ts.map +1 -0
  56. package/dist/governance/intent/intent-contract.js +397 -0
  57. package/dist/governance/intent/intent-contract.js.map +1 -0
  58. package/dist/governance/intent/intent-graph.d.ts +135 -0
  59. package/dist/governance/intent/intent-graph.d.ts.map +1 -0
  60. package/dist/governance/intent/intent-graph.js +67 -0
  61. package/dist/governance/intent/intent-graph.js.map +1 -0
  62. package/dist/governance/pipeline/computation-trace.d.ts +52 -0
  63. package/dist/governance/pipeline/computation-trace.d.ts.map +1 -0
  64. package/dist/governance/pipeline/computation-trace.js +79 -0
  65. package/dist/governance/pipeline/computation-trace.js.map +1 -0
  66. package/dist/governance/pipeline/envelope-assembly.d.ts +132 -0
  67. package/dist/governance/pipeline/envelope-assembly.d.ts.map +1 -0
  68. package/dist/governance/pipeline/envelope-assembly.js +140 -0
  69. package/dist/governance/pipeline/envelope-assembly.js.map +1 -0
  70. package/dist/governance/pipeline/fingerprint.d.ts +34 -0
  71. package/dist/governance/pipeline/fingerprint.d.ts.map +1 -0
  72. package/dist/governance/pipeline/fingerprint.js +78 -0
  73. package/dist/governance/pipeline/fingerprint.js.map +1 -0
  74. package/dist/governance/pipeline/helpers.d.ts +74 -0
  75. package/dist/governance/pipeline/helpers.d.ts.map +1 -0
  76. package/dist/governance/pipeline/helpers.js +112 -0
  77. package/dist/governance/pipeline/helpers.js.map +1 -0
  78. package/dist/governance/pipeline/index.d.ts +27 -0
  79. package/dist/governance/pipeline/index.d.ts.map +1 -0
  80. package/dist/governance/pipeline/index.js +63 -0
  81. package/dist/governance/pipeline/index.js.map +1 -0
  82. package/dist/governance/pipeline/lineage.d.ts +26 -0
  83. package/dist/governance/pipeline/lineage.d.ts.map +1 -0
  84. package/dist/governance/pipeline/lineage.js +51 -0
  85. package/dist/governance/pipeline/lineage.js.map +1 -0
  86. package/dist/governance/pipeline/orchestration/advisory-mode-contract.d.ts +15 -0
  87. package/dist/governance/pipeline/orchestration/advisory-mode-contract.d.ts.map +1 -0
  88. package/dist/governance/pipeline/orchestration/advisory-mode-contract.js +44 -0
  89. package/dist/governance/pipeline/orchestration/advisory-mode-contract.js.map +1 -0
  90. package/dist/governance/pipeline/orchestration/advisory-mode.d.ts +102 -0
  91. package/dist/governance/pipeline/orchestration/advisory-mode.d.ts.map +1 -0
  92. package/dist/governance/pipeline/orchestration/advisory-mode.js +170 -0
  93. package/dist/governance/pipeline/orchestration/advisory-mode.js.map +1 -0
  94. package/dist/governance/pipeline/orchestration/evidence-lifecycle.d.ts +133 -0
  95. package/dist/governance/pipeline/orchestration/evidence-lifecycle.d.ts.map +1 -0
  96. package/dist/governance/pipeline/orchestration/evidence-lifecycle.js +125 -0
  97. package/dist/governance/pipeline/orchestration/evidence-lifecycle.js.map +1 -0
  98. package/dist/governance/pipeline/orchestration/index.d.ts +16 -0
  99. package/dist/governance/pipeline/orchestration/index.d.ts.map +1 -0
  100. package/dist/governance/pipeline/orchestration/index.js +30 -0
  101. package/dist/governance/pipeline/orchestration/index.js.map +1 -0
  102. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.d.ts +65 -0
  103. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.d.ts.map +1 -0
  104. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.js +102 -0
  105. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.js.map +1 -0
  106. package/dist/governance/pipeline/orchestration/plan-structural-analysis.d.ts +41 -0
  107. package/dist/governance/pipeline/orchestration/plan-structural-analysis.d.ts.map +1 -0
  108. package/dist/governance/pipeline/orchestration/plan-structural-analysis.js +74 -0
  109. package/dist/governance/pipeline/orchestration/plan-structural-analysis.js.map +1 -0
  110. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.d.ts +165 -0
  111. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.d.ts.map +1 -0
  112. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.js +160 -0
  113. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.js.map +1 -0
  114. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.d.ts +152 -0
  115. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.d.ts.map +1 -0
  116. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.js +188 -0
  117. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.js.map +1 -0
  118. package/dist/governance/pipeline/runtime.d.ts +70 -0
  119. package/dist/governance/pipeline/runtime.d.ts.map +1 -0
  120. package/dist/governance/pipeline/runtime.js +223 -0
  121. package/dist/governance/pipeline/runtime.js.map +1 -0
  122. package/dist/governance/pipeline/shared-types.d.ts +7 -0
  123. package/dist/governance/pipeline/shared-types.d.ts.map +1 -0
  124. package/dist/governance/pipeline/shared-types.js +7 -0
  125. package/dist/governance/pipeline/shared-types.js.map +1 -0
  126. package/dist/governance/pipeline/stages/compiled-policy-stage.d.ts +28 -0
  127. package/dist/governance/pipeline/stages/compiled-policy-stage.d.ts.map +1 -0
  128. package/dist/governance/pipeline/stages/compiled-policy-stage.js +53 -0
  129. package/dist/governance/pipeline/stages/compiled-policy-stage.js.map +1 -0
  130. package/dist/governance/pipeline/stages/diff-normalization-stage.d.ts +63 -0
  131. package/dist/governance/pipeline/stages/diff-normalization-stage.d.ts.map +1 -0
  132. package/dist/governance/pipeline/stages/diff-normalization-stage.js +140 -0
  133. package/dist/governance/pipeline/stages/diff-normalization-stage.js.map +1 -0
  134. package/dist/governance/pipeline/stages/governance-synthesis-stage.d.ts +53 -0
  135. package/dist/governance/pipeline/stages/governance-synthesis-stage.d.ts.map +1 -0
  136. package/dist/governance/pipeline/stages/governance-synthesis-stage.js +129 -0
  137. package/dist/governance/pipeline/stages/governance-synthesis-stage.js.map +1 -0
  138. package/dist/governance/pipeline/stages/index.d.ts +29 -0
  139. package/dist/governance/pipeline/stages/index.d.ts.map +1 -0
  140. package/dist/governance/pipeline/stages/index.js +40 -0
  141. package/dist/governance/pipeline/stages/index.js.map +1 -0
  142. package/dist/governance/pipeline/stages/policy-lock-stage.d.ts +31 -0
  143. package/dist/governance/pipeline/stages/policy-lock-stage.d.ts.map +1 -0
  144. package/dist/governance/pipeline/stages/policy-lock-stage.js +71 -0
  145. package/dist/governance/pipeline/stages/policy-lock-stage.js.map +1 -0
  146. package/dist/governance/pipeline/stages/runtime-guard-stage.d.ts +29 -0
  147. package/dist/governance/pipeline/stages/runtime-guard-stage.d.ts.map +1 -0
  148. package/dist/governance/pipeline/stages/runtime-guard-stage.js +65 -0
  149. package/dist/governance/pipeline/stages/runtime-guard-stage.js.map +1 -0
  150. package/dist/governance/pipeline/stages/structural-analysis-stage.d.ts +24 -0
  151. package/dist/governance/pipeline/stages/structural-analysis-stage.d.ts.map +1 -0
  152. package/dist/governance/pipeline/stages/structural-analysis-stage.js +58 -0
  153. package/dist/governance/pipeline/stages/structural-analysis-stage.js.map +1 -0
  154. package/dist/governance/pipeline/summary.d.ts +14 -0
  155. package/dist/governance/pipeline/summary.d.ts.map +1 -0
  156. package/dist/governance/pipeline/summary.js +50 -0
  157. package/dist/governance/pipeline/summary.js.map +1 -0
  158. package/dist/governance/pipeline/types.d.ts +69 -0
  159. package/dist/governance/pipeline/types.d.ts.map +1 -0
  160. package/dist/governance/pipeline/types.js +30 -0
  161. package/dist/governance/pipeline/types.js.map +1 -0
  162. package/dist/index.js +44 -3
  163. package/dist/index.js.map +1 -1
  164. package/dist/utils/active-engineering-context.d.ts +16 -0
  165. package/dist/utils/active-engineering-context.d.ts.map +1 -1
  166. package/dist/utils/active-engineering-context.js +302 -0
  167. package/dist/utils/active-engineering-context.js.map +1 -1
  168. package/dist/utils/import-edge-classifier.d.ts +76 -0
  169. package/dist/utils/import-edge-classifier.d.ts.map +1 -0
  170. package/dist/utils/import-edge-classifier.js +308 -0
  171. package/dist/utils/import-edge-classifier.js.map +1 -0
  172. package/dist/utils/import-edge-extractor.d.ts +52 -0
  173. package/dist/utils/import-edge-extractor.d.ts.map +1 -0
  174. package/dist/utils/import-edge-extractor.js +223 -0
  175. package/dist/utils/import-edge-extractor.js.map +1 -0
  176. package/dist/utils/import-edge-governance.d.ts +37 -0
  177. package/dist/utils/import-edge-governance.d.ts.map +1 -0
  178. package/dist/utils/import-edge-governance.js +56 -0
  179. package/dist/utils/import-edge-governance.js.map +1 -0
  180. package/dist/utils/messages.d.ts.map +1 -1
  181. package/dist/utils/messages.js +19 -10
  182. package/dist/utils/messages.js.map +1 -1
  183. package/dist/utils/path-boundary-classifier.d.ts +42 -0
  184. package/dist/utils/path-boundary-classifier.d.ts.map +1 -0
  185. package/dist/utils/path-boundary-classifier.js +143 -0
  186. package/dist/utils/path-boundary-classifier.js.map +1 -0
  187. package/dist/utils/replay-html-report.d.ts +29 -0
  188. package/dist/utils/replay-html-report.d.ts.map +1 -0
  189. package/dist/utils/replay-html-report.js +309 -0
  190. package/dist/utils/replay-html-report.js.map +1 -0
  191. package/dist/utils/runtime-state.d.ts +44 -0
  192. package/dist/utils/runtime-state.d.ts.map +1 -0
  193. package/dist/utils/runtime-state.js +151 -0
  194. package/dist/utils/runtime-state.js.map +1 -0
  195. package/package.json +3 -3
  196. package/dist/utils/box.d.ts +0 -16
  197. package/dist/utils/box.d.ts.map +0 -1
  198. package/dist/utils/box.js +0 -85
  199. package/dist/utils/box.js.map +0 -1
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * Runtime state guardrails.
4
+ *
5
+ * Detects the operational state of a project root and produces structured
6
+ * "what's next" guidance when a command would otherwise fail with a raw
7
+ * runtime / git / filesystem error.
8
+ *
9
+ * Pure, deterministic, no network. Read-only. No mutations to .neurcode/
10
+ * or any other on-disk state.
11
+ *
12
+ * Aesthetic discipline: subtle sophistication, no terminal theatrics.
13
+ * Aligned with the operational-experience refabrication phase
14
+ * (docs/ux/final-operational-experience-report.md).
15
+ */
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.detectRuntimeState = detectRuntimeState;
21
+ exports.renderRuntimeStateGuidance = renderRuntimeStateGuidance;
22
+ exports.guardRequired = guardRequired;
23
+ const fs_1 = require("fs");
24
+ const child_process_1 = require("child_process");
25
+ const path_1 = require("path");
26
+ const chalk_1 = __importDefault(require("chalk"));
27
+ function safeExec(cmd, cwd) {
28
+ try {
29
+ return (0, child_process_1.execSync)(cmd, { cwd, encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ function detectRuntimeState(projectRoot) {
36
+ const root = (0, path_1.resolve)(projectRoot);
37
+ const gitDir = safeExec('git rev-parse --git-dir', root);
38
+ const isGitRepo = !!gitDir;
39
+ const headSha = isGitRepo ? safeExec('git rev-parse --verify HEAD', root) : null;
40
+ const hasHeadCommit = !!headSha;
41
+ const hasNeurcodeDir = (0, fs_1.existsSync)((0, path_1.resolve)(root, '.neurcode'));
42
+ const hasIntentPack = (0, fs_1.existsSync)((0, path_1.resolve)(root, '.neurcode/intent-pack.json'));
43
+ const hasLastVerifyOutput = (0, fs_1.existsSync)((0, path_1.resolve)(root, '.neurcode/last-verify-output.json'));
44
+ return {
45
+ projectRoot: root,
46
+ isGitRepo,
47
+ hasHeadCommit,
48
+ hasNeurcodeDir,
49
+ hasIntentPack,
50
+ hasLastVerifyOutput,
51
+ };
52
+ }
53
+ /**
54
+ * Render an operational-guidance panel when a command cannot run because
55
+ * a prerequisite is not met. Same aesthetic as the welcome banner + the
56
+ * `neurcode home` panels: subtle, structured, no theatrics.
57
+ *
58
+ * The panel writes to stderr (so JSON-mode callers piping stdout get clean
59
+ * JSON or no output) and returns the exit code the caller should propagate.
60
+ */
61
+ function renderRuntimeStateGuidance(issue, state, options = {}) {
62
+ const label = options.commandLabel ?? 'this command';
63
+ const print = (line = '') => process.stderr.write(line + '\n');
64
+ print('');
65
+ print(chalk_1.default.bold(`neurcode · runtime state guidance`));
66
+ print(chalk_1.default.dim(` ${label} cannot continue — a prerequisite is not yet satisfied.`));
67
+ print('');
68
+ switch (issue) {
69
+ case 'not-a-git-repo':
70
+ print(` ${chalk_1.default.bold('Issue')} not inside a git repository`);
71
+ print(` ${chalk_1.default.bold('Path')} ${chalk_1.default.dim(state.projectRoot)}`);
72
+ print('');
73
+ print(` ${chalk_1.default.bold('Why this matters')}`);
74
+ print(chalk_1.default.dim(' Neurcode governs change against a declared intent contract. The'));
75
+ print(chalk_1.default.dim(' diff between the current working tree and a base ref is the input'));
76
+ print(chalk_1.default.dim(' to the verify pipeline. Without git, there is no diff to govern.'));
77
+ print('');
78
+ print(` ${chalk_1.default.bold('Recommended next step')}`);
79
+ print(chalk_1.default.cyan(' git init && git add . && git commit -m "chore: baseline"'));
80
+ print('');
81
+ break;
82
+ case 'no-head-commit':
83
+ print(` ${chalk_1.default.bold('Issue')} git repository has no HEAD commit yet`);
84
+ print(` ${chalk_1.default.bold('Path')} ${chalk_1.default.dim(state.projectRoot)}`);
85
+ print('');
86
+ print(` ${chalk_1.default.bold('Why this matters')}`);
87
+ print(chalk_1.default.dim(' Verify needs a base commit to diff against. A freshly-initialised'));
88
+ print(chalk_1.default.dim(' git repository has no HEAD until something is committed.'));
89
+ print('');
90
+ print(` ${chalk_1.default.bold('Recommended next step')}`);
91
+ print(chalk_1.default.cyan(' git add . && git commit -m "chore: baseline"'));
92
+ print(chalk_1.default.dim(' Then re-run verify; the working-tree diff will resolve cleanly.'));
93
+ print('');
94
+ break;
95
+ case 'no-neurcode-dir':
96
+ print(` ${chalk_1.default.bold('Issue')} no .neurcode/ directory in the project root`);
97
+ print(` ${chalk_1.default.bold('Path')} ${chalk_1.default.dim(state.projectRoot)}`);
98
+ print('');
99
+ print(` ${chalk_1.default.bold('Why this matters')}`);
100
+ print(chalk_1.default.dim(' Neurcode reads its governance state from .neurcode/ — the intent'));
101
+ print(chalk_1.default.dim(' contract, evidence artefacts, control-plane snapshots, and replay'));
102
+ print(chalk_1.default.dim(' state all live there. Without it, verify has no contract to enforce.'));
103
+ print('');
104
+ print(` ${chalk_1.default.bold('Recommended next step')}`);
105
+ print(chalk_1.default.cyan(' neurcode start') + chalk_1.default.dim(' "what you intend to change"'));
106
+ print(chalk_1.default.dim(' This declares the intent contract and initialises .neurcode/.'));
107
+ print('');
108
+ break;
109
+ case 'no-intent-pack':
110
+ print(` ${chalk_1.default.bold('Issue')} no intent contract on disk`);
111
+ print(` ${chalk_1.default.bold('Path')} ${chalk_1.default.dim(state.projectRoot)}/.neurcode/intent-pack.json`);
112
+ print('');
113
+ print(` ${chalk_1.default.bold('Why this matters')}`);
114
+ print(chalk_1.default.dim(' Neurcode is intent-first. Verify needs a declared intent contract'));
115
+ print(chalk_1.default.dim(' to know what scope to govern. Without it, runtime falls back to'));
116
+ print(chalk_1.default.dim(' structural rules only — the dominant value of the runtime (scope'));
117
+ print(chalk_1.default.dim(' guard, forbidden-boundary enforcement, import-edge governance) is'));
118
+ print(chalk_1.default.dim(' inactive.'));
119
+ print('');
120
+ print(` ${chalk_1.default.bold('Recommended next step')}`);
121
+ print(chalk_1.default.cyan(' neurcode start') + chalk_1.default.dim(' "what you intend to change"'));
122
+ print('');
123
+ break;
124
+ }
125
+ print(chalk_1.default.dim(' See: ') + chalk_1.default.cyan('neurcode home') + chalk_1.default.dim(' for the current runtime state.'));
126
+ print('');
127
+ return 2;
128
+ }
129
+ /**
130
+ * Convenience: detect state + render guidance + return the exit code for
131
+ * the FIRST unsatisfied prerequisite (in lifecycle order). Returns null if
132
+ * all required prerequisites are satisfied.
133
+ */
134
+ function guardRequired(projectRoot, required, options = {}) {
135
+ const state = detectRuntimeState(projectRoot);
136
+ const checks = [
137
+ ['not-a-git-repo', !state.isGitRepo],
138
+ ['no-head-commit', state.isGitRepo && !state.hasHeadCommit],
139
+ ['no-neurcode-dir', !state.hasNeurcodeDir],
140
+ ['no-intent-pack', !state.hasIntentPack],
141
+ ];
142
+ for (const [issue, failed] of checks) {
143
+ if (!required.includes(issue))
144
+ continue;
145
+ if (!failed)
146
+ continue;
147
+ return renderRuntimeStateGuidance(issue, state, options);
148
+ }
149
+ return null;
150
+ }
151
+ //# sourceMappingURL=runtime-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../../src/utils/runtime-state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;AA8BH,gDAiBC;AAUD,gEA+EC;AAOD,sCAkBC;AA/JD,2BAAgC;AAChC,iDAAyC;AACzC,+BAA+B;AAC/B,kDAA0B;AAiB1B,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,IAAA,wBAAQ,EAAC,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;IAChC,MAAM,cAAc,GAAG,IAAA,eAAU,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAA,eAAU,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,IAAA,eAAU,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC,CAAC;IAC3F,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,SAAS;QACT,aAAa;QACb,cAAc;QACd,aAAa;QACb,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACxC,KAAwB,EACxB,KAA2B,EAC3B,UAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,cAAc,CAAC;IAErD,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAE/D,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,KAAK,yDAAyD,CAAC,CAAC,CAAC;IACtF,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,gBAAgB;YACnB,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;YACrE,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACxF,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACzF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;YAClF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,MAAM;QAER,KAAK,gBAAgB;YACnB,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;YAC/E,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;YACjF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;YACtE,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACxF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,MAAM;QAER,KAAK,iBAAiB;YACpB,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;YACrF,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACzF,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC,CAAC;YAC7F,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACpF,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;YACtF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,MAAM;QAER,KAAK,gBAAgB;YACnB,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACpE,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;YACpG,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YACxF,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;YACzF,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAClC,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACpF,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,MAAM;IACV,CAAC;IAED,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACzG,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,WAAmB,EACnB,QAA0C,EAC1C,UAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAwC;QAClD,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACpC,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3D,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1C,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;KACzC,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,OAAO,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@neurcode-ai/cli",
3
- "version": "0.10.1",
4
- "description": "Neurcode CLI - intent-aware deterministic governance for AI-assisted engineering",
3
+ "version": "0.14.0",
4
+ "description": "Neurcode CLI deterministic operational governance runtime for AI-assisted engineering (intent contracts, import-edge governance, replay continuity)",
5
5
  "bin": {
6
6
  "neurcode": "dist/index.js"
7
7
  },
@@ -57,7 +57,7 @@
57
57
  "lowdb": "^1.0.0",
58
58
  "open": "^10.1.0",
59
59
  "ts-morph": "^24.0.0",
60
- "uuid": "^9.0.1",
60
+ "uuid": "^11.0.0",
61
61
  "zod": "^4.3.5"
62
62
  },
63
63
  "publishConfig": {
@@ -1,16 +0,0 @@
1
- /**
2
- * Box utility for creating terminal boxes
3
- * Creates high-contrast, professional-looking boxes using chalk
4
- */
5
- export interface BoxOptions {
6
- title?: string;
7
- padding?: number;
8
- borderColor?: 'green' | 'yellow' | 'red' | 'cyan' | 'white';
9
- titleColor?: 'green' | 'yellow' | 'red' | 'cyan' | 'white';
10
- align?: 'left' | 'center';
11
- }
12
- /**
13
- * Create a boxed message for terminal output
14
- */
15
- export declare function createBox(content: string, options?: BoxOptions): string;
16
- //# sourceMappingURL=box.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/utils/box.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5D,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAiF3E"}
package/dist/utils/box.js DELETED
@@ -1,85 +0,0 @@
1
- "use strict";
2
- /**
3
- * Box utility for creating terminal boxes
4
- * Creates high-contrast, professional-looking boxes using chalk
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createBox = createBox;
8
- let chalk;
9
- try {
10
- chalk = require('chalk');
11
- }
12
- catch {
13
- chalk = {
14
- green: (str) => str,
15
- yellow: (str) => str,
16
- red: (str) => str,
17
- cyan: (str) => str,
18
- white: (str) => str,
19
- bold: (str) => str,
20
- dim: (str) => str,
21
- };
22
- }
23
- /**
24
- * Create a boxed message for terminal output
25
- */
26
- function createBox(content, options = {}) {
27
- const { title, padding = 1, borderColor = 'cyan', titleColor = 'white', align = 'left', } = options;
28
- const borderChar = borderColor === 'green' ? chalk.green('─') :
29
- borderColor === 'yellow' ? chalk.yellow('─') :
30
- borderColor === 'red' ? chalk.red('─') :
31
- borderColor === 'cyan' ? chalk.cyan('─') :
32
- chalk.white('─');
33
- const cornerTL = borderColor === 'green' ? chalk.green('┌') :
34
- borderColor === 'yellow' ? chalk.yellow('┌') :
35
- borderColor === 'red' ? chalk.red('┌') :
36
- borderColor === 'cyan' ? chalk.cyan('┌') :
37
- chalk.white('┌');
38
- const cornerTR = borderColor === 'green' ? chalk.green('┐') :
39
- borderColor === 'yellow' ? chalk.yellow('┐') :
40
- borderColor === 'red' ? chalk.red('┐') :
41
- borderColor === 'cyan' ? chalk.cyan('┐') :
42
- chalk.white('┐');
43
- const cornerBL = borderColor === 'green' ? chalk.green('└') :
44
- borderColor === 'yellow' ? chalk.yellow('└') :
45
- borderColor === 'red' ? chalk.red('└') :
46
- borderColor === 'cyan' ? chalk.cyan('└') :
47
- chalk.white('└');
48
- const cornerBR = borderColor === 'green' ? chalk.green('┘') :
49
- borderColor === 'yellow' ? chalk.yellow('┘') :
50
- borderColor === 'red' ? chalk.red('┘') :
51
- borderColor === 'cyan' ? chalk.cyan('┘') :
52
- chalk.white('┘');
53
- const vertical = borderColor === 'green' ? chalk.green('│') :
54
- borderColor === 'yellow' ? chalk.yellow('│') :
55
- borderColor === 'red' ? chalk.red('│') :
56
- borderColor === 'cyan' ? chalk.cyan('│') :
57
- chalk.white('│');
58
- const titleColorFn = titleColor === 'green' ? chalk.green :
59
- titleColor === 'yellow' ? chalk.yellow :
60
- titleColor === 'red' ? chalk.red :
61
- titleColor === 'cyan' ? chalk.cyan :
62
- chalk.white;
63
- const lines = content.split('\n');
64
- const maxWidth = Math.max(...lines.map(line => line.length), title ? title.length + 2 : 0);
65
- let result = '';
66
- // Top border
67
- result += cornerTL + borderChar.repeat(maxWidth + padding * 2) + cornerTR + '\n';
68
- // Title (if provided)
69
- if (title) {
70
- const titleText = titleColorFn(chalk.bold(title));
71
- const titlePadding = ' '.repeat(padding);
72
- result += vertical + titlePadding + titleText + ' '.repeat(maxWidth - title.length + padding) + vertical + '\n';
73
- result += vertical + ' '.repeat(maxWidth + padding * 2) + vertical + '\n';
74
- }
75
- // Content lines
76
- for (const line of lines) {
77
- const linePadding = ' '.repeat(padding);
78
- const contentPadding = ' '.repeat(maxWidth - line.length);
79
- result += vertical + linePadding + line + contentPadding + linePadding + vertical + '\n';
80
- }
81
- // Bottom border
82
- result += cornerBL + borderChar.repeat(maxWidth + padding * 2) + cornerBR;
83
- return result;
84
- }
85
- //# sourceMappingURL=box.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/utils/box.ts"],"names":[],"mappings":"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"}