@neurcode-ai/cli 0.14.0 → 0.15.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 (188) hide show
  1. package/README.md +60 -8
  2. package/dist/api-client.d.ts +284 -0
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +111 -0
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/commands/activate.d.ts +82 -0
  7. package/dist/commands/activate.d.ts.map +1 -0
  8. package/dist/commands/activate.js +551 -0
  9. package/dist/commands/activate.js.map +1 -0
  10. package/dist/commands/admission.d.ts +67 -0
  11. package/dist/commands/admission.d.ts.map +1 -0
  12. package/dist/commands/admission.js +350 -0
  13. package/dist/commands/admission.js.map +1 -0
  14. package/dist/commands/agent.d.ts +3 -0
  15. package/dist/commands/agent.d.ts.map +1 -0
  16. package/dist/commands/agent.js +2045 -0
  17. package/dist/commands/agent.js.map +1 -0
  18. package/dist/commands/demo.d.ts +3 -0
  19. package/dist/commands/demo.d.ts.map +1 -0
  20. package/dist/commands/demo.js +102 -0
  21. package/dist/commands/demo.js.map +1 -0
  22. package/dist/commands/init.d.ts.map +1 -1
  23. package/dist/commands/init.js +58 -44
  24. package/dist/commands/init.js.map +1 -1
  25. package/dist/commands/login.d.ts +1 -1
  26. package/dist/commands/login.d.ts.map +1 -1
  27. package/dist/commands/login.js +44 -22
  28. package/dist/commands/login.js.map +1 -1
  29. package/dist/commands/profile.d.ts +14 -0
  30. package/dist/commands/profile.d.ts.map +1 -0
  31. package/dist/commands/profile.js +118 -0
  32. package/dist/commands/profile.js.map +1 -0
  33. package/dist/commands/quickstart.d.ts +2 -2
  34. package/dist/commands/quickstart.d.ts.map +1 -1
  35. package/dist/commands/quickstart.js +31 -30
  36. package/dist/commands/quickstart.js.map +1 -1
  37. package/dist/commands/remediate-export.d.ts +6 -1
  38. package/dist/commands/remediate-export.d.ts.map +1 -1
  39. package/dist/commands/remediate-export.js +359 -7
  40. package/dist/commands/remediate-export.js.map +1 -1
  41. package/dist/commands/replay.d.ts.map +1 -1
  42. package/dist/commands/replay.js +84 -0
  43. package/dist/commands/replay.js.map +1 -1
  44. package/dist/commands/run.d.ts +3 -0
  45. package/dist/commands/run.d.ts.map +1 -0
  46. package/dist/commands/run.js +98 -0
  47. package/dist/commands/run.js.map +1 -0
  48. package/dist/commands/runtime-adapter.d.ts +8 -0
  49. package/dist/commands/runtime-adapter.d.ts.map +1 -0
  50. package/dist/commands/runtime-adapter.js +375 -0
  51. package/dist/commands/runtime-adapter.js.map +1 -0
  52. package/dist/commands/runtime-doctor.d.ts +6 -0
  53. package/dist/commands/runtime-doctor.d.ts.map +1 -0
  54. package/dist/commands/runtime-doctor.js +478 -0
  55. package/dist/commands/runtime-doctor.js.map +1 -0
  56. package/dist/commands/runtime-report.d.ts +13 -0
  57. package/dist/commands/runtime-report.d.ts.map +1 -0
  58. package/dist/commands/runtime-report.js +81 -0
  59. package/dist/commands/runtime-report.js.map +1 -0
  60. package/dist/commands/runtime-sync.d.ts +17 -0
  61. package/dist/commands/runtime-sync.d.ts.map +1 -0
  62. package/dist/commands/runtime-sync.js +656 -0
  63. package/dist/commands/runtime-sync.js.map +1 -0
  64. package/dist/commands/runtime.d.ts +16 -0
  65. package/dist/commands/runtime.d.ts.map +1 -0
  66. package/dist/commands/runtime.js +380 -0
  67. package/dist/commands/runtime.js.map +1 -0
  68. package/dist/commands/session-hook.d.ts +35 -0
  69. package/dist/commands/session-hook.d.ts.map +1 -0
  70. package/dist/commands/session-hook.js +1297 -0
  71. package/dist/commands/session-hook.js.map +1 -0
  72. package/dist/commands/session.d.ts +91 -0
  73. package/dist/commands/session.d.ts.map +1 -1
  74. package/dist/commands/session.js +1226 -0
  75. package/dist/commands/session.js.map +1 -1
  76. package/dist/commands/whoami.d.ts +7 -4
  77. package/dist/commands/whoami.d.ts.map +1 -1
  78. package/dist/commands/whoami.js +59 -34
  79. package/dist/commands/whoami.js.map +1 -1
  80. package/dist/config.d.ts.map +1 -1
  81. package/dist/config.js +24 -5
  82. package/dist/config.js.map +1 -1
  83. package/dist/daemon/routes.d.ts.map +1 -1
  84. package/dist/daemon/routes.js +8 -0
  85. package/dist/daemon/routes.js.map +1 -1
  86. package/dist/daemon/server.d.ts.map +1 -1
  87. package/dist/daemon/server.js +88 -0
  88. package/dist/daemon/server.js.map +1 -1
  89. package/dist/governance/impact-analysis.d.ts +27 -0
  90. package/dist/governance/impact-analysis.d.ts.map +1 -0
  91. package/dist/governance/impact-analysis.js +274 -0
  92. package/dist/governance/impact-analysis.js.map +1 -0
  93. package/dist/index.js +472 -29
  94. package/dist/index.js.map +1 -1
  95. package/dist/intent-engine/matcher.d.ts.map +1 -1
  96. package/dist/intent-engine/matcher.js +3 -12
  97. package/dist/intent-engine/matcher.js.map +1 -1
  98. package/dist/utils/admission-artifact.d.ts +59 -0
  99. package/dist/utils/admission-artifact.d.ts.map +1 -0
  100. package/dist/utils/admission-artifact.js +410 -0
  101. package/dist/utils/admission-artifact.js.map +1 -0
  102. package/dist/utils/agent-adapter-setup.d.ts +80 -0
  103. package/dist/utils/agent-adapter-setup.d.ts.map +1 -0
  104. package/dist/utils/agent-adapter-setup.js +577 -0
  105. package/dist/utils/agent-adapter-setup.js.map +1 -0
  106. package/dist/utils/agent-guard-supervisor.d.ts +75 -0
  107. package/dist/utils/agent-guard-supervisor.d.ts.map +1 -0
  108. package/dist/utils/agent-guard-supervisor.js +388 -0
  109. package/dist/utils/agent-guard-supervisor.js.map +1 -0
  110. package/dist/utils/agent-guard.d.ts +92 -0
  111. package/dist/utils/agent-guard.d.ts.map +1 -0
  112. package/dist/utils/agent-guard.js +326 -0
  113. package/dist/utils/agent-guard.js.map +1 -0
  114. package/dist/utils/agent-session-launcher.d.ts +89 -0
  115. package/dist/utils/agent-session-launcher.d.ts.map +1 -0
  116. package/dist/utils/agent-session-launcher.js +308 -0
  117. package/dist/utils/agent-session-launcher.js.map +1 -0
  118. package/dist/utils/bash-command-analysis.d.ts +19 -0
  119. package/dist/utils/bash-command-analysis.d.ts.map +1 -0
  120. package/dist/utils/bash-command-analysis.js +295 -0
  121. package/dist/utils/bash-command-analysis.js.map +1 -0
  122. package/dist/utils/consequence-nudges.d.ts +30 -0
  123. package/dist/utils/consequence-nudges.d.ts.map +1 -0
  124. package/dist/utils/consequence-nudges.js +313 -0
  125. package/dist/utils/consequence-nudges.js.map +1 -0
  126. package/dist/utils/drift-intelligence.d.ts.map +1 -1
  127. package/dist/utils/drift-intelligence.js +29 -7
  128. package/dist/utils/drift-intelligence.js.map +1 -1
  129. package/dist/utils/git-coverage.d.ts +57 -0
  130. package/dist/utils/git-coverage.d.ts.map +1 -0
  131. package/dist/utils/git-coverage.js +302 -0
  132. package/dist/utils/git-coverage.js.map +1 -0
  133. package/dist/utils/gitignore.d.ts.map +1 -1
  134. package/dist/utils/gitignore.js +2 -1
  135. package/dist/utils/gitignore.js.map +1 -1
  136. package/dist/utils/governed-intent.d.ts +10 -0
  137. package/dist/utils/governed-intent.d.ts.map +1 -0
  138. package/dist/utils/governed-intent.js +108 -0
  139. package/dist/utils/governed-intent.js.map +1 -0
  140. package/dist/utils/hook-heartbeat.d.ts +55 -0
  141. package/dist/utils/hook-heartbeat.d.ts.map +1 -0
  142. package/dist/utils/hook-heartbeat.js +116 -0
  143. package/dist/utils/hook-heartbeat.js.map +1 -0
  144. package/dist/utils/intent-continuity.d.ts +21 -0
  145. package/dist/utils/intent-continuity.d.ts.map +1 -0
  146. package/dist/utils/intent-continuity.js +192 -0
  147. package/dist/utils/intent-continuity.js.map +1 -0
  148. package/dist/utils/messages.d.ts +1 -1
  149. package/dist/utils/messages.d.ts.map +1 -1
  150. package/dist/utils/messages.js +24 -21
  151. package/dist/utils/messages.js.map +1 -1
  152. package/dist/utils/runtime-companion.d.ts +137 -0
  153. package/dist/utils/runtime-companion.d.ts.map +1 -0
  154. package/dist/utils/runtime-companion.js +231 -0
  155. package/dist/utils/runtime-companion.js.map +1 -0
  156. package/dist/utils/runtime-connection.d.ts +46 -0
  157. package/dist/utils/runtime-connection.d.ts.map +1 -0
  158. package/dist/utils/runtime-connection.js +148 -0
  159. package/dist/utils/runtime-connection.js.map +1 -0
  160. package/dist/utils/runtime-evidence.d.ts +68 -0
  161. package/dist/utils/runtime-evidence.d.ts.map +1 -0
  162. package/dist/utils/runtime-evidence.js +248 -0
  163. package/dist/utils/runtime-evidence.js.map +1 -0
  164. package/dist/utils/runtime-live.d.ts +33 -0
  165. package/dist/utils/runtime-live.d.ts.map +1 -0
  166. package/dist/utils/runtime-live.js +361 -0
  167. package/dist/utils/runtime-live.js.map +1 -0
  168. package/dist/utils/runtime-outbox.d.ts +76 -0
  169. package/dist/utils/runtime-outbox.d.ts.map +1 -0
  170. package/dist/utils/runtime-outbox.js +410 -0
  171. package/dist/utils/runtime-outbox.js.map +1 -0
  172. package/dist/utils/runtime-receipt.d.ts +50 -0
  173. package/dist/utils/runtime-receipt.d.ts.map +1 -0
  174. package/dist/utils/runtime-receipt.js +223 -0
  175. package/dist/utils/runtime-receipt.js.map +1 -0
  176. package/dist/utils/state.d.ts +21 -0
  177. package/dist/utils/state.d.ts.map +1 -1
  178. package/dist/utils/state.js +30 -0
  179. package/dist/utils/state.js.map +1 -1
  180. package/dist/utils/structural-understanding.d.ts +334 -0
  181. package/dist/utils/structural-understanding.d.ts.map +1 -0
  182. package/dist/utils/structural-understanding.js +2316 -0
  183. package/dist/utils/structural-understanding.js.map +1 -0
  184. package/dist/utils/v0-governance.d.ts +197 -0
  185. package/dist/utils/v0-governance.d.ts.map +1 -0
  186. package/dist/utils/v0-governance.js +904 -0
  187. package/dist/utils/v0-governance.js.map +1 -0
  188. package/package.json +5 -5
@@ -0,0 +1,274 @@
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.computeAccurateImpact = computeAccurateImpact;
37
+ /**
38
+ * Accurate change-impact analysis via the TypeScript compiler's real symbol
39
+ * resolution — the deterministic replacement for coarse module-adjacency
40
+ * "blast radius" inflation.
41
+ *
42
+ * Why this exists: the legacy impact computation in drift-intelligence.ts marks
43
+ * every module adjacent (upstream OR downstream) to a changed module as
44
+ * "impacted." That over-reports massively — a small change in one package looks
45
+ * like it touches the whole repo. This module instead resolves the *actual*
46
+ * references to the symbols defined in the changed files, so impact reflects
47
+ * real call/import edges, not topological adjacency.
48
+ *
49
+ * Honesty contract:
50
+ * - It resolves STATIC references only. Dynamic dispatch, DI, reflection, and
51
+ * runtime wiring are NOT visible to static analysis. Callers must treat the
52
+ * result as "symbol-resolved impact," not a guarantee of total blast radius.
53
+ * - It is scoped to the package roots of the changed files for performance, so
54
+ * cross-package references may be under-counted. This is a deliberate
55
+ * precision/recall trade for a command that must stay fast.
56
+ * - It NEVER throws to the caller's hot path: any failure returns
57
+ * { analyzed: false, reason } so the caller can fall back to legacy behavior.
58
+ *
59
+ * Determinism: same files + same source → same result. No network, no LLM.
60
+ */
61
+ const ts = __importStar(require("typescript"));
62
+ const fs_1 = require("fs");
63
+ const path_1 = require("path");
64
+ const TS_LIKE = /\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/i;
65
+ const SKIP_DIR = /^(node_modules|\.git|dist|build|out|coverage|\.next|vendor)$/i;
66
+ function toRepoRel(projectRoot, abs) {
67
+ return (0, path_1.relative)(projectRoot, abs).split(path_1.sep).join('/');
68
+ }
69
+ /** Bound the program to the changed files' package/src roots, not the whole repo. */
70
+ function scopeRoots(projectRoot, changedRepoRelFiles) {
71
+ const roots = new Set();
72
+ for (const file of changedRepoRelFiles) {
73
+ const parts = file.split('/');
74
+ const pkgIdx = parts.indexOf('packages');
75
+ const appsIdx = parts.indexOf('apps');
76
+ const srcIdx = parts.indexOf('src');
77
+ let depth;
78
+ if (pkgIdx >= 0 && parts[pkgIdx + 1] !== undefined)
79
+ depth = pkgIdx + 2; // packages/<name>
80
+ else if (appsIdx >= 0 && parts[appsIdx + 1] !== undefined)
81
+ depth = appsIdx + 2; // apps/<name>
82
+ else if (srcIdx >= 0)
83
+ depth = srcIdx + 1; // up to and including src
84
+ else
85
+ depth = Math.max(1, parts.length - 1); // the file's directory
86
+ const rootRel = parts.slice(0, depth).join('/');
87
+ roots.add((0, path_1.join)(projectRoot, rootRel));
88
+ }
89
+ return [...roots].filter((r) => (0, fs_1.existsSync)(r));
90
+ }
91
+ function gatherTsFiles(dir, out, cap) {
92
+ if (out.length > cap)
93
+ return;
94
+ let names;
95
+ try {
96
+ names = (0, fs_1.readdirSync)(dir);
97
+ }
98
+ catch {
99
+ return;
100
+ }
101
+ for (const name of names) {
102
+ if (out.length > cap)
103
+ return;
104
+ const p = (0, path_1.join)(dir, name);
105
+ let isDir = false;
106
+ try {
107
+ isDir = (0, fs_1.statSync)(p).isDirectory();
108
+ }
109
+ catch {
110
+ continue;
111
+ }
112
+ if (isDir) {
113
+ if (!SKIP_DIR.test(name))
114
+ gatherTsFiles(p, out, cap);
115
+ }
116
+ else if (TS_LIKE.test(name) && !/\.d\.ts$/i.test(name)) {
117
+ out.push(p);
118
+ }
119
+ }
120
+ }
121
+ function resolveAlias(checker, sym) {
122
+ if (sym && sym.flags & ts.SymbolFlags.Alias) {
123
+ try {
124
+ return checker.getAliasedSymbol(sym);
125
+ }
126
+ catch {
127
+ return sym;
128
+ }
129
+ }
130
+ return sym;
131
+ }
132
+ /** Top-level declared/exported symbols in a changed source file. */
133
+ function declaredSymbols(sf, checker) {
134
+ const out = [];
135
+ const push = (name) => {
136
+ if (name && ts.isIdentifier(name)) {
137
+ const s = checker.getSymbolAtLocation(name);
138
+ if (s)
139
+ out.push(s);
140
+ }
141
+ };
142
+ const visit = (n) => {
143
+ if (ts.isFunctionDeclaration(n))
144
+ push(n.name);
145
+ else if (ts.isClassDeclaration(n))
146
+ push(n.name);
147
+ else if (ts.isInterfaceDeclaration(n))
148
+ push(n.name);
149
+ else if (ts.isTypeAliasDeclaration(n))
150
+ push(n.name);
151
+ else if (ts.isEnumDeclaration(n))
152
+ push(n.name);
153
+ else if (ts.isVariableStatement(n)) {
154
+ for (const d of n.declarationList.declarations)
155
+ push(ts.isIdentifier(d.name) ? d.name : undefined);
156
+ }
157
+ else if (ts.isMethodDeclaration(n) && ts.isIdentifier(n.name))
158
+ push(n.name);
159
+ ts.forEachChild(n, visit);
160
+ };
161
+ ts.forEachChild(sf, visit);
162
+ return out;
163
+ }
164
+ /**
165
+ * Compute accurate impacted modules for a change set.
166
+ * @param deriveModulePath maps a repo-relative file path to its module key
167
+ * (caller supplies its own so the module set aligns with changedModules).
168
+ */
169
+ function computeAccurateImpact(projectRoot, changedRepoRelFiles, deriveModulePath, options = {}) {
170
+ const maxFiles = options.maxProgramFiles ?? 2500;
171
+ const timeBudgetMs = options.timeBudgetMs ?? 6000;
172
+ const none = (reason) => ({
173
+ analyzed: false,
174
+ impactedModules: [],
175
+ referenceCount: 0,
176
+ filesAnalyzed: 0,
177
+ confidence: 'none',
178
+ reason,
179
+ });
180
+ try {
181
+ if (!projectRoot || !(0, fs_1.existsSync)(projectRoot))
182
+ return none('project root not found');
183
+ const tsChanged = changedRepoRelFiles.filter((f) => TS_LIKE.test(f) && !/\.d\.ts$/i.test(f));
184
+ if (tsChanged.length === 0)
185
+ return none('no TypeScript/JavaScript files in change set');
186
+ const started = Date.now();
187
+ const roots = scopeRoots(projectRoot, tsChanged);
188
+ if (roots.length === 0)
189
+ return none('no resolvable scope roots');
190
+ const fileSet = new Set();
191
+ for (const root of roots) {
192
+ const acc = [];
193
+ gatherTsFiles(root, acc, maxFiles + 1);
194
+ for (const f of acc)
195
+ fileSet.add(f);
196
+ if (fileSet.size > maxFiles)
197
+ return none(`program too large (>${maxFiles} files) — scoped analysis skipped`);
198
+ }
199
+ // Ensure changed files are present even if outside the scanned roots.
200
+ for (const rel of tsChanged) {
201
+ const abs = (0, path_1.join)(projectRoot, rel);
202
+ if ((0, fs_1.existsSync)(abs) && (0, fs_1.statSync)(abs).isFile())
203
+ fileSet.add(abs);
204
+ }
205
+ const files = [...fileSet];
206
+ if (files.length === 0)
207
+ return none('no source files gathered');
208
+ const program = ts.createProgram(files, {
209
+ target: ts.ScriptTarget.ES2020,
210
+ module: ts.ModuleKind.CommonJS,
211
+ moduleResolution: ts.ModuleResolutionKind.Node10 ?? ts.ModuleResolutionKind.NodeJs ?? 2,
212
+ allowJs: true,
213
+ noEmit: true,
214
+ skipLibCheck: true,
215
+ noResolve: false,
216
+ });
217
+ const checker = program.getTypeChecker();
218
+ if (Date.now() - started > timeBudgetMs)
219
+ return none('time budget exceeded during program build');
220
+ // Collect target symbols from the changed files.
221
+ const targets = new Set();
222
+ const declNodes = new Set();
223
+ for (const rel of tsChanged) {
224
+ const abs = (0, path_1.join)(projectRoot, rel);
225
+ const sf = program.getSourceFile(abs);
226
+ if (!sf)
227
+ continue;
228
+ for (const s of declaredSymbols(sf, checker)) {
229
+ targets.add(s);
230
+ for (const d of s.declarations ?? [])
231
+ declNodes.add(d);
232
+ }
233
+ }
234
+ if (targets.size === 0)
235
+ return none('no resolvable top-level symbols in changed files');
236
+ const changedAbs = new Set(tsChanged.map((r) => (0, path_1.join)(projectRoot, r)));
237
+ const impactedModules = new Set();
238
+ let referenceCount = 0;
239
+ for (const sf of program.getSourceFiles()) {
240
+ if (sf.isDeclarationFile)
241
+ continue;
242
+ if (sf.fileName.includes('node_modules'))
243
+ continue;
244
+ if (Date.now() - started > timeBudgetMs)
245
+ return none('time budget exceeded during reference scan');
246
+ const inChangedFile = changedAbs.has(sf.fileName);
247
+ const visit = (n) => {
248
+ if (ts.isIdentifier(n) && !declNodes.has(n.parent)) {
249
+ const sym = checker.getSymbolAtLocation(n);
250
+ if (sym && (targets.has(sym) || targets.has(resolveAlias(checker, sym)))) {
251
+ // A reference inside the changed file itself isn't "impact" elsewhere.
252
+ if (!inChangedFile) {
253
+ referenceCount += 1;
254
+ impactedModules.add(deriveModulePath(toRepoRel(projectRoot, sf.fileName)));
255
+ }
256
+ }
257
+ }
258
+ ts.forEachChild(n, visit);
259
+ };
260
+ ts.forEachChild(sf, visit);
261
+ }
262
+ return {
263
+ analyzed: true,
264
+ impactedModules: [...impactedModules].sort((a, b) => a.localeCompare(b)),
265
+ referenceCount,
266
+ filesAnalyzed: files.length,
267
+ confidence: 'medium',
268
+ };
269
+ }
270
+ catch (err) {
271
+ return none(`impact analysis error: ${err instanceof Error ? err.message : String(err)}`);
272
+ }
273
+ }
274
+ //# sourceMappingURL=impact-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact-analysis.js","sourceRoot":"","sources":["../../src/governance/impact-analysis.ts"],"names":[],"mappings":"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"}