@neurcode-ai/cli 0.9.63 → 0.9.65

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 (308) hide show
  1. package/LICENSE +201 -0
  2. package/dist/commands/brain.d.ts.map +1 -1
  3. package/dist/commands/brain.js +273 -0
  4. package/dist/commands/brain.js.map +1 -1
  5. package/dist/commands/control-plane.js +7 -7
  6. package/dist/commands/control-plane.js.map +1 -1
  7. package/dist/commands/fix.d.ts.map +1 -1
  8. package/dist/commands/fix.js +108 -1
  9. package/dist/commands/fix.js.map +1 -1
  10. package/dist/commands/patch-apply.d.ts +2 -0
  11. package/dist/commands/patch-apply.d.ts.map +1 -1
  12. package/dist/commands/patch-apply.js +331 -19
  13. package/dist/commands/patch-apply.js.map +1 -1
  14. package/dist/commands/pilot-report.d.ts +9 -0
  15. package/dist/commands/pilot-report.d.ts.map +1 -0
  16. package/dist/commands/pilot-report.js +176 -0
  17. package/dist/commands/pilot-report.js.map +1 -0
  18. package/dist/commands/remediate-governance.d.ts +54 -0
  19. package/dist/commands/remediate-governance.d.ts.map +1 -0
  20. package/dist/commands/remediate-governance.js +375 -0
  21. package/dist/commands/remediate-governance.js.map +1 -0
  22. package/dist/commands/remediate.d.ts.map +1 -1
  23. package/dist/commands/remediate.js.map +1 -1
  24. package/dist/commands/replay.d.ts.map +1 -1
  25. package/dist/commands/replay.js +35 -5
  26. package/dist/commands/replay.js.map +1 -1
  27. package/dist/commands/verify.d.ts.map +1 -1
  28. package/dist/commands/verify.js +336 -25
  29. package/dist/commands/verify.js.map +1 -1
  30. package/dist/commands/workspace.js +7 -7
  31. package/dist/commands/workspace.js.map +1 -1
  32. package/dist/daemon/server.d.ts +2 -2
  33. package/dist/daemon/server.d.ts.map +1 -1
  34. package/dist/daemon/server.js +2113 -32
  35. package/dist/daemon/server.js.map +1 -1
  36. package/dist/explainability/DeterminismClassifier.d.ts +34 -0
  37. package/dist/explainability/DeterminismClassifier.d.ts.map +1 -0
  38. package/dist/explainability/DeterminismClassifier.js +104 -0
  39. package/dist/explainability/DeterminismClassifier.js.map +1 -0
  40. package/dist/explainability/ViolationFormatter.d.ts +32 -0
  41. package/dist/explainability/ViolationFormatter.d.ts.map +1 -0
  42. package/dist/explainability/ViolationFormatter.js +252 -0
  43. package/dist/explainability/ViolationFormatter.js.map +1 -0
  44. package/dist/explainability/index.d.ts +15 -0
  45. package/dist/explainability/index.d.ts.map +1 -0
  46. package/dist/explainability/index.js +94 -0
  47. package/dist/explainability/index.js.map +1 -0
  48. package/dist/explainability/types.d.ts +37 -0
  49. package/dist/explainability/types.d.ts.map +1 -0
  50. package/dist/explainability/types.js +3 -0
  51. package/dist/explainability/types.js.map +1 -0
  52. package/dist/governance/canonical-pipeline.d.ts +38 -0
  53. package/dist/governance/canonical-pipeline.d.ts.map +1 -0
  54. package/dist/governance/canonical-pipeline.js +448 -0
  55. package/dist/governance/canonical-pipeline.js.map +1 -0
  56. package/dist/governance/structural-on-diff.d.ts +13 -0
  57. package/dist/governance/structural-on-diff.d.ts.map +1 -0
  58. package/dist/governance/structural-on-diff.js +35 -0
  59. package/dist/governance/structural-on-diff.js.map +1 -0
  60. package/dist/governance/structural-policy-merge.d.ts +14 -0
  61. package/dist/governance/structural-policy-merge.d.ts.map +1 -0
  62. package/dist/governance/structural-policy-merge.js +25 -0
  63. package/dist/governance/structural-policy-merge.js.map +1 -0
  64. package/dist/index.js +86 -4
  65. package/dist/index.js.map +1 -1
  66. package/dist/integrations/review-compression/index.d.ts +50 -0
  67. package/dist/integrations/review-compression/index.d.ts.map +1 -0
  68. package/dist/integrations/review-compression/index.js +158 -0
  69. package/dist/integrations/review-compression/index.js.map +1 -0
  70. package/dist/intent-engine/domain-taxonomy.d.ts +42 -0
  71. package/dist/intent-engine/domain-taxonomy.d.ts.map +1 -0
  72. package/dist/intent-engine/domain-taxonomy.js +534 -0
  73. package/dist/intent-engine/domain-taxonomy.js.map +1 -0
  74. package/dist/intent-engine/index.d.ts +1 -0
  75. package/dist/intent-engine/index.d.ts.map +1 -1
  76. package/dist/intent-engine/index.js +6 -1
  77. package/dist/intent-engine/index.js.map +1 -1
  78. package/dist/intent-engine/matcher.d.ts.map +1 -1
  79. package/dist/intent-engine/matcher.js +2 -0
  80. package/dist/intent-engine/matcher.js.map +1 -1
  81. package/dist/intent-engine/parser.d.ts.map +1 -1
  82. package/dist/intent-engine/parser.js +47 -0
  83. package/dist/intent-engine/parser.js.map +1 -1
  84. package/dist/intent-engine/semantic-expander.d.ts +104 -0
  85. package/dist/intent-engine/semantic-expander.d.ts.map +1 -0
  86. package/dist/intent-engine/semantic-expander.js +480 -0
  87. package/dist/intent-engine/semantic-expander.js.map +1 -0
  88. package/dist/patch-engine/diff.d.ts +1 -1
  89. package/dist/patch-engine/diff.js +1 -1
  90. package/dist/patch-engine/generator.d.ts +9 -0
  91. package/dist/patch-engine/generator.d.ts.map +1 -1
  92. package/dist/patch-engine/generator.js +375 -17
  93. package/dist/patch-engine/generator.js.map +1 -1
  94. package/dist/patch-engine/index.d.ts +25 -25
  95. package/dist/patch-engine/index.d.ts.map +1 -1
  96. package/dist/patch-engine/index.js +134 -87
  97. package/dist/patch-engine/index.js.map +1 -1
  98. package/dist/patch-engine/patterns.d.ts +1 -1
  99. package/dist/patch-engine/patterns.d.ts.map +1 -1
  100. package/dist/patch-engine/patterns.js +282 -41
  101. package/dist/patch-engine/patterns.js.map +1 -1
  102. package/dist/patch-engine/rollback.d.ts +31 -0
  103. package/dist/patch-engine/rollback.d.ts.map +1 -0
  104. package/dist/patch-engine/rollback.js +275 -0
  105. package/dist/patch-engine/rollback.js.map +1 -0
  106. package/dist/patch-engine/safety.d.ts +28 -0
  107. package/dist/patch-engine/safety.d.ts.map +1 -0
  108. package/dist/patch-engine/safety.js +122 -0
  109. package/dist/patch-engine/safety.js.map +1 -0
  110. package/dist/patch-engine/transaction.d.ts +52 -0
  111. package/dist/patch-engine/transaction.d.ts.map +1 -0
  112. package/dist/patch-engine/transaction.js +93 -0
  113. package/dist/patch-engine/transaction.js.map +1 -0
  114. package/dist/semantic/index.d.ts +14 -0
  115. package/dist/semantic/index.d.ts.map +1 -0
  116. package/dist/semantic/index.js +30 -0
  117. package/dist/semantic/index.js.map +1 -0
  118. package/dist/semantic/tfidf-engine.d.ts +81 -0
  119. package/dist/semantic/tfidf-engine.d.ts.map +1 -0
  120. package/dist/semantic/tfidf-engine.js +278 -0
  121. package/dist/semantic/tfidf-engine.js.map +1 -0
  122. package/dist/semantic/vector-store.d.ts +108 -0
  123. package/dist/semantic/vector-store.d.ts.map +1 -0
  124. package/dist/semantic/vector-store.js +321 -0
  125. package/dist/semantic/vector-store.js.map +1 -0
  126. package/dist/structural-rules/context-severity.d.ts +46 -0
  127. package/dist/structural-rules/context-severity.d.ts.map +1 -0
  128. package/dist/structural-rules/context-severity.js +115 -0
  129. package/dist/structural-rules/context-severity.js.map +1 -0
  130. package/dist/structural-rules/distributed/DS001-saga-rollback-absence.d.ts +11 -0
  131. package/dist/structural-rules/distributed/DS001-saga-rollback-absence.d.ts.map +1 -0
  132. package/dist/structural-rules/distributed/DS001-saga-rollback-absence.js +212 -0
  133. package/dist/structural-rules/distributed/DS001-saga-rollback-absence.js.map +1 -0
  134. package/dist/structural-rules/distributed/DS002-missing-correlation-id.d.ts +11 -0
  135. package/dist/structural-rules/distributed/DS002-missing-correlation-id.d.ts.map +1 -0
  136. package/dist/structural-rules/distributed/DS002-missing-correlation-id.js +213 -0
  137. package/dist/structural-rules/distributed/DS002-missing-correlation-id.js.map +1 -0
  138. package/dist/structural-rules/distributed/index.d.ts +3 -0
  139. package/dist/structural-rules/distributed/index.d.ts.map +1 -0
  140. package/dist/structural-rules/distributed/index.js +8 -0
  141. package/dist/structural-rules/distributed/index.js.map +1 -0
  142. package/dist/structural-rules/engine.d.ts +25 -0
  143. package/dist/structural-rules/engine.d.ts.map +1 -0
  144. package/dist/structural-rules/engine.js +90 -0
  145. package/dist/structural-rules/engine.js.map +1 -0
  146. package/dist/structural-rules/index.d.ts +41 -0
  147. package/dist/structural-rules/index.d.ts.map +1 -0
  148. package/dist/structural-rules/index.js +141 -0
  149. package/dist/structural-rules/index.js.map +1 -0
  150. package/dist/structural-rules/python/PY001-asyncio-task-without-cancel.d.ts +11 -0
  151. package/dist/structural-rules/python/PY001-asyncio-task-without-cancel.d.ts.map +1 -0
  152. package/dist/structural-rules/python/PY001-asyncio-task-without-cancel.js +66 -0
  153. package/dist/structural-rules/python/PY001-asyncio-task-without-cancel.js.map +1 -0
  154. package/dist/structural-rules/python/PY002-unbounded-dict-singleton.d.ts +11 -0
  155. package/dist/structural-rules/python/PY002-unbounded-dict-singleton.d.ts.map +1 -0
  156. package/dist/structural-rules/python/PY002-unbounded-dict-singleton.js +135 -0
  157. package/dist/structural-rules/python/PY002-unbounded-dict-singleton.js.map +1 -0
  158. package/dist/structural-rules/python/PY003-broad-except-clause.d.ts +11 -0
  159. package/dist/structural-rules/python/PY003-broad-except-clause.d.ts.map +1 -0
  160. package/dist/structural-rules/python/PY003-broad-except-clause.js +86 -0
  161. package/dist/structural-rules/python/PY003-broad-except-clause.js.map +1 -0
  162. package/dist/structural-rules/python/PY004-swallowed-async-exception.d.ts +11 -0
  163. package/dist/structural-rules/python/PY004-swallowed-async-exception.d.ts.map +1 -0
  164. package/dist/structural-rules/python/PY004-swallowed-async-exception.js +167 -0
  165. package/dist/structural-rules/python/PY004-swallowed-async-exception.js.map +1 -0
  166. package/dist/structural-rules/python/PY005-fastapi-without-pydantic.d.ts +11 -0
  167. package/dist/structural-rules/python/PY005-fastapi-without-pydantic.d.ts.map +1 -0
  168. package/dist/structural-rules/python/PY005-fastapi-without-pydantic.js +154 -0
  169. package/dist/structural-rules/python/PY005-fastapi-without-pydantic.js.map +1 -0
  170. package/dist/structural-rules/python/PY006-blocking-io-in-async.d.ts +11 -0
  171. package/dist/structural-rules/python/PY006-blocking-io-in-async.d.ts.map +1 -0
  172. package/dist/structural-rules/python/PY006-blocking-io-in-async.js +130 -0
  173. package/dist/structural-rules/python/PY006-blocking-io-in-async.js.map +1 -0
  174. package/dist/structural-rules/python/PY007-sqlalchemy-session-leak.d.ts +11 -0
  175. package/dist/structural-rules/python/PY007-sqlalchemy-session-leak.d.ts.map +1 -0
  176. package/dist/structural-rules/python/PY007-sqlalchemy-session-leak.js +93 -0
  177. package/dist/structural-rules/python/PY007-sqlalchemy-session-leak.js.map +1 -0
  178. package/dist/structural-rules/python/PY008-celery-task-without-retry.d.ts +11 -0
  179. package/dist/structural-rules/python/PY008-celery-task-without-retry.d.ts.map +1 -0
  180. package/dist/structural-rules/python/PY008-celery-task-without-retry.js +154 -0
  181. package/dist/structural-rules/python/PY008-celery-task-without-retry.js.map +1 -0
  182. package/dist/structural-rules/python/PY009-unsafe-pickle-deserialization.d.ts +11 -0
  183. package/dist/structural-rules/python/PY009-unsafe-pickle-deserialization.d.ts.map +1 -0
  184. package/dist/structural-rules/python/PY009-unsafe-pickle-deserialization.js +133 -0
  185. package/dist/structural-rules/python/PY009-unsafe-pickle-deserialization.js.map +1 -0
  186. package/dist/structural-rules/python/PY010-leaked-aiohttp-session.d.ts +11 -0
  187. package/dist/structural-rules/python/PY010-leaked-aiohttp-session.d.ts.map +1 -0
  188. package/dist/structural-rules/python/PY010-leaked-aiohttp-session.js +80 -0
  189. package/dist/structural-rules/python/PY010-leaked-aiohttp-session.js.map +1 -0
  190. package/dist/structural-rules/rules/SR001-swallowed-async-rejection.d.ts +11 -0
  191. package/dist/structural-rules/rules/SR001-swallowed-async-rejection.d.ts.map +1 -0
  192. package/dist/structural-rules/rules/SR001-swallowed-async-rejection.js +145 -0
  193. package/dist/structural-rules/rules/SR001-swallowed-async-rejection.js.map +1 -0
  194. package/dist/structural-rules/rules/SR002-unbounded-collection.d.ts +11 -0
  195. package/dist/structural-rules/rules/SR002-unbounded-collection.d.ts.map +1 -0
  196. package/dist/structural-rules/rules/SR002-unbounded-collection.js +196 -0
  197. package/dist/structural-rules/rules/SR002-unbounded-collection.js.map +1 -0
  198. package/dist/structural-rules/rules/SR003-timer-without-cleanup.d.ts +11 -0
  199. package/dist/structural-rules/rules/SR003-timer-without-cleanup.d.ts.map +1 -0
  200. package/dist/structural-rules/rules/SR003-timer-without-cleanup.js +148 -0
  201. package/dist/structural-rules/rules/SR003-timer-without-cleanup.js.map +1 -0
  202. package/dist/structural-rules/rules/SR004-request-boundary-no-validation.d.ts +11 -0
  203. package/dist/structural-rules/rules/SR004-request-boundary-no-validation.d.ts.map +1 -0
  204. package/dist/structural-rules/rules/SR004-request-boundary-no-validation.js +162 -0
  205. package/dist/structural-rules/rules/SR004-request-boundary-no-validation.js.map +1 -0
  206. package/dist/structural-rules/rules/SR005-halfopen-probe-gate.d.ts +11 -0
  207. package/dist/structural-rules/rules/SR005-halfopen-probe-gate.d.ts.map +1 -0
  208. package/dist/structural-rules/rules/SR005-halfopen-probe-gate.js +150 -0
  209. package/dist/structural-rules/rules/SR005-halfopen-probe-gate.js.map +1 -0
  210. package/dist/structural-rules/rules/SR006-fanout-error-sanitization.d.ts +11 -0
  211. package/dist/structural-rules/rules/SR006-fanout-error-sanitization.d.ts.map +1 -0
  212. package/dist/structural-rules/rules/SR006-fanout-error-sanitization.js +161 -0
  213. package/dist/structural-rules/rules/SR006-fanout-error-sanitization.js.map +1 -0
  214. package/dist/structural-rules/rules/SR007-cross-request-error.d.ts +11 -0
  215. package/dist/structural-rules/rules/SR007-cross-request-error.d.ts.map +1 -0
  216. package/dist/structural-rules/rules/SR007-cross-request-error.js +175 -0
  217. package/dist/structural-rules/rules/SR007-cross-request-error.js.map +1 -0
  218. package/dist/structural-rules/rules/SR008-background-task-orphan.d.ts +11 -0
  219. package/dist/structural-rules/rules/SR008-background-task-orphan.d.ts.map +1 -0
  220. package/dist/structural-rules/rules/SR008-background-task-orphan.js +176 -0
  221. package/dist/structural-rules/rules/SR008-background-task-orphan.js.map +1 -0
  222. package/dist/structural-rules/rules/SR009-missing-retry-backoff.d.ts +11 -0
  223. package/dist/structural-rules/rules/SR009-missing-retry-backoff.d.ts.map +1 -0
  224. package/dist/structural-rules/rules/SR009-missing-retry-backoff.js +168 -0
  225. package/dist/structural-rules/rules/SR009-missing-retry-backoff.js.map +1 -0
  226. package/dist/structural-rules/rules/SR010-retry-storm.d.ts +11 -0
  227. package/dist/structural-rules/rules/SR010-retry-storm.d.ts.map +1 -0
  228. package/dist/structural-rules/rules/SR010-retry-storm.js +181 -0
  229. package/dist/structural-rules/rules/SR010-retry-storm.js.map +1 -0
  230. package/dist/structural-rules/rules/SR011-event-listener-leak.d.ts +11 -0
  231. package/dist/structural-rules/rules/SR011-event-listener-leak.d.ts.map +1 -0
  232. package/dist/structural-rules/rules/SR011-event-listener-leak.js +208 -0
  233. package/dist/structural-rules/rules/SR011-event-listener-leak.js.map +1 -0
  234. package/dist/structural-rules/rules/SR012-promise-race-leak.d.ts +11 -0
  235. package/dist/structural-rules/rules/SR012-promise-race-leak.d.ts.map +1 -0
  236. package/dist/structural-rules/rules/SR012-promise-race-leak.js +191 -0
  237. package/dist/structural-rules/rules/SR012-promise-race-leak.js.map +1 -0
  238. package/dist/structural-rules/rules/SR013-missing-idempotency-key.d.ts +11 -0
  239. package/dist/structural-rules/rules/SR013-missing-idempotency-key.d.ts.map +1 -0
  240. package/dist/structural-rules/rules/SR013-missing-idempotency-key.js +219 -0
  241. package/dist/structural-rules/rules/SR013-missing-idempotency-key.js.map +1 -0
  242. package/dist/structural-rules/rules/SR014-mutable-closure-async.d.ts +11 -0
  243. package/dist/structural-rules/rules/SR014-mutable-closure-async.d.ts.map +1 -0
  244. package/dist/structural-rules/rules/SR014-mutable-closure-async.js +208 -0
  245. package/dist/structural-rules/rules/SR014-mutable-closure-async.js.map +1 -0
  246. package/dist/structural-rules/rules/SR015-dangling-abort-controller.d.ts +11 -0
  247. package/dist/structural-rules/rules/SR015-dangling-abort-controller.d.ts.map +1 -0
  248. package/dist/structural-rules/rules/SR015-dangling-abort-controller.js +190 -0
  249. package/dist/structural-rules/rules/SR015-dangling-abort-controller.js.map +1 -0
  250. package/dist/structural-rules/rules/SR016-unsafe-json-parse.d.ts +11 -0
  251. package/dist/structural-rules/rules/SR016-unsafe-json-parse.d.ts.map +1 -0
  252. package/dist/structural-rules/rules/SR016-unsafe-json-parse.js +187 -0
  253. package/dist/structural-rules/rules/SR016-unsafe-json-parse.js.map +1 -0
  254. package/dist/structural-rules/suppressions.d.ts +43 -0
  255. package/dist/structural-rules/suppressions.d.ts.map +1 -0
  256. package/dist/structural-rules/suppressions.js +115 -0
  257. package/dist/structural-rules/suppressions.js.map +1 -0
  258. package/dist/structural-rules/types.d.ts +43 -0
  259. package/dist/structural-rules/types.d.ts.map +1 -0
  260. package/dist/structural-rules/types.js +3 -0
  261. package/dist/structural-rules/types.js.map +1 -0
  262. package/dist/utils/advisory-signals.d.ts +5 -0
  263. package/dist/utils/advisory-signals.d.ts.map +1 -1
  264. package/dist/utils/advisory-signals.js +50 -12
  265. package/dist/utils/advisory-signals.js.map +1 -1
  266. package/dist/utils/ai-debt-budget.d.ts.map +1 -1
  267. package/dist/utils/ai-debt-budget.js +5 -2
  268. package/dist/utils/ai-debt-budget.js.map +1 -1
  269. package/dist/utils/brain-cache.d.ts +100 -0
  270. package/dist/utils/brain-cache.d.ts.map +1 -0
  271. package/dist/utils/brain-cache.js +346 -0
  272. package/dist/utils/brain-cache.js.map +1 -0
  273. package/dist/utils/cli-json.d.ts.map +1 -1
  274. package/dist/utils/cli-json.js +80 -12
  275. package/dist/utils/cli-json.js.map +1 -1
  276. package/dist/utils/execution-bus.d.ts +10 -0
  277. package/dist/utils/execution-bus.d.ts.map +1 -1
  278. package/dist/utils/execution-bus.js +16 -0
  279. package/dist/utils/execution-bus.js.map +1 -1
  280. package/dist/utils/governance-provenance.d.ts +95 -0
  281. package/dist/utils/governance-provenance.d.ts.map +1 -0
  282. package/dist/utils/governance-provenance.js +187 -0
  283. package/dist/utils/governance-provenance.js.map +1 -0
  284. package/dist/utils/pilot-metrics.d.ts +46 -0
  285. package/dist/utils/pilot-metrics.d.ts.map +1 -0
  286. package/dist/utils/pilot-metrics.js +240 -0
  287. package/dist/utils/pilot-metrics.js.map +1 -0
  288. package/dist/utils/policy-compiler.d.ts +6 -0
  289. package/dist/utils/policy-compiler.d.ts.map +1 -1
  290. package/dist/utils/policy-compiler.js +20 -0
  291. package/dist/utils/policy-compiler.js.map +1 -1
  292. package/dist/utils/replay-runtime.d.ts +34 -0
  293. package/dist/utils/replay-runtime.d.ts.map +1 -1
  294. package/dist/utils/replay-runtime.js +207 -0
  295. package/dist/utils/replay-runtime.js.map +1 -1
  296. package/dist/workspace/cross-repo-graph.d.ts +111 -0
  297. package/dist/workspace/cross-repo-graph.d.ts.map +1 -0
  298. package/dist/workspace/cross-repo-graph.js +450 -0
  299. package/dist/workspace/cross-repo-graph.js.map +1 -0
  300. package/dist/workspace/federated-context.d.ts +144 -0
  301. package/dist/workspace/federated-context.d.ts.map +1 -0
  302. package/dist/workspace/federated-context.js +347 -0
  303. package/dist/workspace/federated-context.js.map +1 -0
  304. package/dist/workspace/index.d.ts +38 -0
  305. package/dist/workspace/index.d.ts.map +1 -0
  306. package/dist/workspace/index.js +48 -0
  307. package/dist/workspace/index.js.map +1 -0
  308. package/package.json +10 -10
@@ -0,0 +1,346 @@
1
+ "use strict";
2
+ /**
3
+ * Persistent deterministic brain cache infrastructure.
4
+ *
5
+ * Design principles:
6
+ * - Content-hash invalidation: files are only re-indexed when content changes
7
+ * - Replay-safe: cache manifest is deterministic and serializable
8
+ * - CI-restorable: manifest + index can be archived and restored across runs
9
+ * - Governance-neutral: cache accelerates indexing, never affects correctness
10
+ * - Append-only manifest entries (no silent deletion of records)
11
+ *
12
+ * Cache location: <projectRoot>/.neurcode/brain/cache/
13
+ * Manifest: <projectRoot>/.neurcode/brain/cache/manifest.json
14
+ * Semantic index: <projectRoot>/.neurcode/brain/cache/semantic-index.json
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.BRAIN_CACHE_SCHEMA_VERSION = void 0;
18
+ exports.getBrainCacheDir = getBrainCacheDir;
19
+ exports.getBrainCacheManifestPath = getBrainCacheManifestPath;
20
+ exports.getBrainCacheSemanticIndexPath = getBrainCacheSemanticIndexPath;
21
+ exports.hashFileContent = hashFileContent;
22
+ exports.loadBrainCacheManifest = loadBrainCacheManifest;
23
+ exports.saveBrainCacheManifest = saveBrainCacheManifest;
24
+ exports.buildBrainCache = buildBrainCache;
25
+ exports.getBrainCacheStatus = getBrainCacheStatus;
26
+ exports.restoreBrainCache = restoreBrainCache;
27
+ exports.exportBrainCacheArtifact = exportBrainCacheArtifact;
28
+ const crypto_1 = require("crypto");
29
+ const fs_1 = require("fs");
30
+ const path_1 = require("path");
31
+ // ── Schema version ─────────────────────────────────────────────────────────────
32
+ exports.BRAIN_CACHE_SCHEMA_VERSION = '2026-05-11.1';
33
+ // ── Cache paths ────────────────────────────────────────────────────────────────
34
+ function getBrainCacheDir(projectRoot) {
35
+ return (0, path_1.join)(projectRoot, '.neurcode', 'brain', 'cache');
36
+ }
37
+ function getBrainCacheManifestPath(projectRoot) {
38
+ return (0, path_1.join)(getBrainCacheDir(projectRoot), 'manifest.json');
39
+ }
40
+ function getBrainCacheSemanticIndexPath(projectRoot) {
41
+ return (0, path_1.join)(getBrainCacheDir(projectRoot), 'semantic-index.json');
42
+ }
43
+ // ── Content hashing ────────────────────────────────────────────────────────────
44
+ function hashFileContent(content) {
45
+ return (0, crypto_1.createHash)('sha256').update(content, 'utf-8').digest('hex');
46
+ }
47
+ function hashFileAtPath(filePath) {
48
+ try {
49
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
50
+ return hashFileContent(content);
51
+ }
52
+ catch {
53
+ return '';
54
+ }
55
+ }
56
+ function contentFingerprint(files) {
57
+ const sorted = [...files]
58
+ .sort((a, b) => a.filePath.localeCompare(b.filePath))
59
+ .map((f) => `${f.filePath}:${f.contentHash}`)
60
+ .join('\n');
61
+ return (0, crypto_1.createHash)('sha256').update(sorted, 'utf-8').digest('hex').slice(0, 32);
62
+ }
63
+ // ── Manifest I/O ───────────────────────────────────────────────────────────────
64
+ function loadBrainCacheManifest(projectRoot) {
65
+ const path = getBrainCacheManifestPath(projectRoot);
66
+ if (!(0, fs_1.existsSync)(path))
67
+ return null;
68
+ try {
69
+ const raw = (0, fs_1.readFileSync)(path, 'utf-8');
70
+ const parsed = JSON.parse(raw);
71
+ if (parsed.schemaVersion !== exports.BRAIN_CACHE_SCHEMA_VERSION) {
72
+ return null; // incompatible schema, treat as cache miss
73
+ }
74
+ return parsed;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ function saveBrainCacheManifest(projectRoot, manifest) {
81
+ const cacheDir = getBrainCacheDir(projectRoot);
82
+ (0, fs_1.mkdirSync)(cacheDir, { recursive: true });
83
+ const withoutHash = { ...manifest, manifestHash: '' };
84
+ const serialized = JSON.stringify(withoutHash, null, 2);
85
+ const hash = (0, crypto_1.createHash)('sha256').update(serialized, 'utf-8').digest('hex');
86
+ const final = { ...withoutHash, manifestHash: hash };
87
+ (0, fs_1.writeFileSync)(getBrainCacheManifestPath(projectRoot), JSON.stringify(final, null, 2), 'utf-8');
88
+ return final;
89
+ }
90
+ // ── Scan project files for indexable content ───────────────────────────────────
91
+ const INDEXABLE_EXTENSIONS = new Set([
92
+ '.ts', '.tsx', '.js', '.jsx', '.mts', '.mjs',
93
+ '.py', '.go', '.rs', '.java', '.rb', '.swift',
94
+ ]);
95
+ const EXCLUDED_DIRS = new Set([
96
+ 'node_modules', '.git', '.next', 'dist', 'build', 'out',
97
+ '.neurcode', '__pycache__', '.venv', 'venv', '.cache',
98
+ ]);
99
+ function scanIndexableFiles(projectRoot, maxFiles = 5000) {
100
+ const results = [];
101
+ function traverse(dir, depth = 0) {
102
+ if (depth > 10)
103
+ return;
104
+ let entries = [];
105
+ try {
106
+ entries = (0, fs_1.readdirSync)(dir);
107
+ }
108
+ catch {
109
+ return;
110
+ }
111
+ for (const entry of entries) {
112
+ if (EXCLUDED_DIRS.has(entry))
113
+ continue;
114
+ const fullPath = (0, path_1.join)(dir, entry);
115
+ let stat;
116
+ try {
117
+ stat = (0, fs_1.statSync)(fullPath);
118
+ }
119
+ catch {
120
+ continue;
121
+ }
122
+ if (stat.isDirectory()) {
123
+ traverse(fullPath, depth + 1);
124
+ }
125
+ else if (stat.isFile()) {
126
+ const dotIdx = entry.lastIndexOf('.');
127
+ if (dotIdx > 0 && INDEXABLE_EXTENSIONS.has(entry.slice(dotIdx))) {
128
+ results.push(fullPath);
129
+ if (results.length >= maxFiles)
130
+ return;
131
+ }
132
+ }
133
+ }
134
+ }
135
+ traverse(projectRoot);
136
+ return results;
137
+ }
138
+ function buildBrainCache(options) {
139
+ const { projectRoot, maxFiles = 5000, force = false } = options;
140
+ const start = Date.now();
141
+ const existing = force ? null : loadBrainCacheManifest(projectRoot);
142
+ const existingMap = new Map((existing?.files ?? []).map((f) => [f.filePath, f]));
143
+ const allFiles = scanIndexableFiles(projectRoot, maxFiles);
144
+ const entries = [];
145
+ let builtFiles = 0;
146
+ let skippedFiles = 0;
147
+ let updatedFiles = 0;
148
+ for (let i = 0; i < allFiles.length; i++) {
149
+ const fullPath = allFiles[i];
150
+ const relPath = (0, path_1.relative)(projectRoot, fullPath).split(path_1.sep).join('/');
151
+ let stat;
152
+ try {
153
+ stat = (0, fs_1.statSync)(fullPath);
154
+ }
155
+ catch {
156
+ continue;
157
+ }
158
+ const existing = existingMap.get(relPath);
159
+ const lastModifiedMs = stat.mtimeMs;
160
+ // Fast path: mtime unchanged → skip rehash
161
+ if (existing && Math.abs(existing.lastModifiedMs - lastModifiedMs) < 1000) {
162
+ entries.push(existing);
163
+ skippedFiles++;
164
+ }
165
+ else {
166
+ const contentHash = hashFileAtPath(fullPath);
167
+ if (!contentHash)
168
+ continue;
169
+ const isUpdated = existing !== undefined && existing.contentHash !== contentHash;
170
+ if (isUpdated)
171
+ updatedFiles++;
172
+ entries.push({
173
+ filePath: relPath,
174
+ contentHash,
175
+ lastModifiedMs,
176
+ sizeBytes: stat.size,
177
+ indexed: true,
178
+ });
179
+ builtFiles++;
180
+ }
181
+ if (options.onProgress && (i % 100 === 0 || i === allFiles.length - 1)) {
182
+ options.onProgress(i + 1, allFiles.length);
183
+ }
184
+ }
185
+ const manifest = saveBrainCacheManifest(projectRoot, {
186
+ schemaVersion: exports.BRAIN_CACHE_SCHEMA_VERSION,
187
+ repoRoot: projectRoot,
188
+ builtAt: new Date().toISOString(),
189
+ totalFiles: entries.length,
190
+ indexedFiles: entries.filter((e) => e.indexed).length,
191
+ contentFingerprint: contentFingerprint(entries),
192
+ files: entries,
193
+ });
194
+ return {
195
+ manifest,
196
+ builtFiles,
197
+ skippedFiles,
198
+ updatedFiles,
199
+ elapsedMs: Date.now() - start,
200
+ };
201
+ }
202
+ // ── Cache status ───────────────────────────────────────────────────────────────
203
+ function getBrainCacheStatus(projectRoot) {
204
+ const cacheDir = getBrainCacheDir(projectRoot);
205
+ const manifestPath = getBrainCacheManifestPath(projectRoot);
206
+ const semanticIndexPath = getBrainCacheSemanticIndexPath(projectRoot);
207
+ const manifest = loadBrainCacheManifest(projectRoot);
208
+ if (!manifest) {
209
+ return {
210
+ exists: false,
211
+ manifest: null,
212
+ staleFiles: [],
213
+ missingFiles: [],
214
+ newFiles: [],
215
+ totalFiles: 0,
216
+ freshFiles: 0,
217
+ stalePercent: 0,
218
+ needsRebuild: true,
219
+ cacheDir,
220
+ manifestPath,
221
+ semanticIndexPath,
222
+ sizeBytes: 0,
223
+ };
224
+ }
225
+ // Check staleness: compare manifest hashes against current files
226
+ const staleFiles = [];
227
+ const missingFiles = [];
228
+ for (const entry of manifest.files) {
229
+ const fullPath = (0, path_1.join)(projectRoot, entry.filePath);
230
+ if (!(0, fs_1.existsSync)(fullPath)) {
231
+ missingFiles.push(entry.filePath);
232
+ continue;
233
+ }
234
+ const currentHash = hashFileAtPath(fullPath);
235
+ if (currentHash !== entry.contentHash) {
236
+ staleFiles.push(entry.filePath);
237
+ }
238
+ }
239
+ // Detect new files not in manifest
240
+ const manifestFileSet = new Set(manifest.files.map((f) => f.filePath));
241
+ const currentFiles = scanIndexableFiles(projectRoot, 10_000);
242
+ const newFiles = [];
243
+ for (const f of currentFiles) {
244
+ const rel = (0, path_1.relative)(projectRoot, f).split(path_1.sep).join('/');
245
+ if (!manifestFileSet.has(rel))
246
+ newFiles.push(rel);
247
+ }
248
+ const totalFiles = manifest.totalFiles;
249
+ const changedFiles = staleFiles.length + missingFiles.length;
250
+ const freshFiles = totalFiles - changedFiles;
251
+ const stalePercent = totalFiles > 0 ? Math.round((changedFiles / totalFiles) * 100) : 0;
252
+ const needsRebuild = stalePercent > 20 || newFiles.length > 50;
253
+ let sizeBytes = 0;
254
+ for (const path of [manifestPath, semanticIndexPath]) {
255
+ try {
256
+ sizeBytes += (0, fs_1.statSync)(path).size;
257
+ }
258
+ catch { /* ignore */ }
259
+ }
260
+ return {
261
+ exists: true,
262
+ manifest,
263
+ staleFiles,
264
+ missingFiles,
265
+ newFiles,
266
+ totalFiles,
267
+ freshFiles,
268
+ stalePercent,
269
+ needsRebuild,
270
+ cacheDir,
271
+ manifestPath,
272
+ semanticIndexPath,
273
+ sizeBytes,
274
+ };
275
+ }
276
+ function restoreBrainCache(options) {
277
+ const { projectRoot, artifactPath } = options;
278
+ if (!(0, fs_1.existsSync)(artifactPath)) {
279
+ return {
280
+ success: false,
281
+ manifest: null,
282
+ message: `Artifact not found: ${artifactPath}`,
283
+ staleAfterRestore: 0,
284
+ };
285
+ }
286
+ let artifact;
287
+ try {
288
+ artifact = JSON.parse((0, fs_1.readFileSync)(artifactPath, 'utf-8'));
289
+ }
290
+ catch (err) {
291
+ return {
292
+ success: false,
293
+ manifest: null,
294
+ message: `Failed to parse artifact: ${err instanceof Error ? err.message : String(err)}`,
295
+ staleAfterRestore: 0,
296
+ };
297
+ }
298
+ if (artifact.schemaVersion !== exports.BRAIN_CACHE_SCHEMA_VERSION) {
299
+ return {
300
+ success: false,
301
+ manifest: null,
302
+ message: `Incompatible cache schema: ${artifact.schemaVersion} (expected ${exports.BRAIN_CACHE_SCHEMA_VERSION})`,
303
+ staleAfterRestore: 0,
304
+ };
305
+ }
306
+ // Write artifact to cache dir
307
+ const cacheDir = getBrainCacheDir(projectRoot);
308
+ (0, fs_1.mkdirSync)(cacheDir, { recursive: true });
309
+ (0, fs_1.writeFileSync)(getBrainCacheManifestPath(projectRoot), JSON.stringify(artifact, null, 2), 'utf-8');
310
+ // Quick staleness check on restore
311
+ let staleAfterRestore = 0;
312
+ for (const entry of artifact.files.slice(0, 200)) { // sample first 200
313
+ const fullPath = (0, path_1.join)(projectRoot, entry.filePath);
314
+ if (!(0, fs_1.existsSync)(fullPath)) {
315
+ staleAfterRestore++;
316
+ continue;
317
+ }
318
+ const hash = hashFileAtPath(fullPath);
319
+ if (hash !== entry.contentHash)
320
+ staleAfterRestore++;
321
+ }
322
+ return {
323
+ success: true,
324
+ manifest: artifact,
325
+ message: `Cache restored from ${artifactPath} (${artifact.totalFiles} files, built ${artifact.builtAt})`,
326
+ staleAfterRestore,
327
+ };
328
+ }
329
+ // ── CI artifact export ─────────────────────────────────────────────────────────
330
+ /**
331
+ * Export the current cache manifest as a CI artifact.
332
+ * CI pipelines can cache this file and restore it on subsequent runs.
333
+ */
334
+ function exportBrainCacheArtifact(projectRoot, outputPath) {
335
+ const manifest = loadBrainCacheManifest(projectRoot);
336
+ if (!manifest)
337
+ return false;
338
+ try {
339
+ (0, fs_1.writeFileSync)(outputPath, JSON.stringify(manifest, null, 2), 'utf-8');
340
+ return true;
341
+ }
342
+ catch {
343
+ return false;
344
+ }
345
+ }
346
+ //# sourceMappingURL=brain-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-cache.js","sourceRoot":"","sources":["../../src/utils/brain-cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-json.d.ts","sourceRoot":"","sources":["../../src/utils/cli-json.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAmBpF;AAMD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3F;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3F;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAKhF;AAMD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,GACnE,OAAO,CAAC,mBAAmB,CAAC,CAkC9B;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE/D;AAMD,UAAU,aAAa;IACrB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CA4BzC"}
1
+ {"version":3,"file":"cli-json.d.ts","sourceRoot":"","sources":["../../src/utils/cli-json.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAmFpF;AAMD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3F;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3F;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAKhF;AAMD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,GACnE,OAAO,CAAC,mBAAmB,CAAC,CAkC9B;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE/D;AAMD,UAAU,aAAa;IACrB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CA4BzC"}
@@ -30,24 +30,92 @@ function stripAnsi(value) {
30
30
  */
31
31
  function extractLastJsonObject(output) {
32
32
  const clean = stripAnsi(output).trim();
33
- const end = clean.lastIndexOf('}');
34
- if (end === -1)
33
+ if (!clean)
35
34
  return null;
36
- for (let start = end; start >= 0; start -= 1) {
37
- if (clean[start] !== '{')
35
+ const parsedCandidates = [];
36
+ let depth = 0;
37
+ let start = -1;
38
+ let inString = false;
39
+ let escaped = false;
40
+ for (let i = 0; i < clean.length; i += 1) {
41
+ const ch = clean[i];
42
+ if (inString) {
43
+ if (escaped) {
44
+ escaped = false;
45
+ continue;
46
+ }
47
+ if (ch === '\\') {
48
+ escaped = true;
49
+ continue;
50
+ }
51
+ if (ch === '"') {
52
+ inString = false;
53
+ }
38
54
  continue;
39
- const candidate = clean.slice(start, end + 1);
40
- try {
41
- const parsed = JSON.parse(candidate);
42
- if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
43
- return parsed;
55
+ }
56
+ if (ch === '"') {
57
+ inString = true;
58
+ continue;
59
+ }
60
+ if (ch === '{') {
61
+ if (depth === 0) {
62
+ start = i;
44
63
  }
64
+ depth += 1;
65
+ continue;
45
66
  }
46
- catch {
47
- // Keep searching until a parseable JSON object is found.
67
+ if (ch === '}') {
68
+ if (depth === 0)
69
+ continue;
70
+ depth -= 1;
71
+ if (depth !== 0 || start === -1)
72
+ continue;
73
+ const candidate = clean.slice(start, i + 1);
74
+ try {
75
+ const parsed = JSON.parse(candidate);
76
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
77
+ parsedCandidates.push({
78
+ parsed: parsed,
79
+ length: candidate.length,
80
+ index: start,
81
+ });
82
+ }
83
+ }
84
+ catch {
85
+ // Ignore malformed candidate and keep scanning.
86
+ }
87
+ start = -1;
48
88
  }
49
89
  }
50
- return null;
90
+ if (parsedCandidates.length === 0)
91
+ return null;
92
+ const scoreCandidate = (candidate) => {
93
+ // Prefer canonical verify/fix payloads over small incidental JSON fragments.
94
+ let score = 0;
95
+ if (typeof candidate.verdict === 'string')
96
+ score += 200;
97
+ if (Array.isArray(candidate.violations))
98
+ score += 150;
99
+ if (Array.isArray(candidate.warnings))
100
+ score += 100;
101
+ if (Array.isArray(candidate.suggestions))
102
+ score += 120;
103
+ if (typeof candidate.grade === 'string')
104
+ score += 80;
105
+ if (typeof candidate.success === 'boolean')
106
+ score += 40;
107
+ return score;
108
+ };
109
+ const sorted = [...parsedCandidates].sort((left, right) => {
110
+ const scoreDelta = scoreCandidate(right.parsed) - scoreCandidate(left.parsed);
111
+ if (scoreDelta !== 0)
112
+ return scoreDelta;
113
+ const lengthDelta = right.length - left.length;
114
+ if (lengthDelta !== 0)
115
+ return lengthDelta;
116
+ return right.index - left.index;
117
+ });
118
+ return sorted[0].parsed;
51
119
  }
52
120
  /* -------------------------------------------------------------------------- */
53
121
  /* Typed helpers */
@@ -1 +1 @@
1
- {"version":3,"file":"cli-json.js","sourceRoot":"","sources":["../../src/utils/cli-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-json.js","sourceRoot":"","sources":["../../src/utils/cli-json.ts"],"names":[],"mappings":"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"}
@@ -190,9 +190,19 @@ export interface ExecutionDiffInspection {
190
190
  available: boolean;
191
191
  file: string | null;
192
192
  changed: boolean | null;
193
+ status: string | null;
193
194
  confidence: string | null;
194
195
  patternKind: string | null;
195
196
  diffPreview: string | null;
197
+ diffHash: string | null;
198
+ receipt: {
199
+ transactionId: string | null;
200
+ transactionHash: string | null;
201
+ rollbackSnapshotId: string | null;
202
+ rollbackAvailable: boolean | null;
203
+ stalePreviewRejected: boolean | null;
204
+ staleReason: string | null;
205
+ } | null;
196
206
  };
197
207
  }
198
208
  export declare function runExecution(request: ExecutionRequest): Promise<RunExecutionResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"execution-bus.d.ts","sourceRoot":"","sources":["../../src/utils/execution-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-bus.d.ts","sourceRoot":"","sources":["../../src/utils/execution-bus.ts"],"names":[],"mappings":"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"}
@@ -1292,6 +1292,8 @@ function extractDiffPreview(payload) {
1292
1292
  function buildExecutionDiffInspection(record) {
1293
1293
  const payload = record.result?.payload ?? null;
1294
1294
  const patchPayload = asObject(payload?.patch) ?? payload;
1295
+ const receiptPayload = asObject(patchPayload?.receipt);
1296
+ const validationPayload = asObject(patchPayload?.validation);
1295
1297
  const patchDiff = extractDiffPreview(payload);
1296
1298
  const before = record.verification.diff.before ?? null;
1297
1299
  const after = record.verification.diff.after ?? null;
@@ -1325,9 +1327,23 @@ function buildExecutionDiffInspection(record) {
1325
1327
  changed: typeof patchPayload?.changed === 'boolean'
1326
1328
  ? patchPayload.changed
1327
1329
  : null,
1330
+ status: asString(patchPayload?.status) || null,
1328
1331
  confidence: asString(patchPayload?.patchConfidence) || null,
1329
1332
  patternKind: asString(patchPayload?.patternKind) || null,
1330
1333
  diffPreview: patchDiff,
1334
+ diffHash: asString(validationPayload?.diffHash)
1335
+ || asString(receiptPayload?.diffHash)
1336
+ || null,
1337
+ receipt: receiptPayload
1338
+ ? {
1339
+ transactionId: asString(receiptPayload.transactionId),
1340
+ transactionHash: asString(receiptPayload.transactionHash),
1341
+ rollbackSnapshotId: asString(receiptPayload.rollbackSnapshotId),
1342
+ rollbackAvailable: typeof receiptPayload.rollbackAvailable === 'boolean' ? receiptPayload.rollbackAvailable : null,
1343
+ stalePreviewRejected: typeof receiptPayload.stalePreviewRejected === 'boolean' ? receiptPayload.stalePreviewRejected : null,
1344
+ staleReason: asString(receiptPayload.staleReason),
1345
+ }
1346
+ : null,
1331
1347
  },
1332
1348
  };
1333
1349
  }