@mirnoorata/codexa 0.2.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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +634 -0
  3. package/dist/artifacts.d.ts +2 -0
  4. package/dist/artifacts.js +375 -0
  5. package/dist/artifacts.js.map +1 -0
  6. package/dist/autonomy.d.ts +17 -0
  7. package/dist/autonomy.js +124 -0
  8. package/dist/autonomy.js.map +1 -0
  9. package/dist/autoverify/policy.d.ts +5 -0
  10. package/dist/autoverify/policy.js +18 -0
  11. package/dist/autoverify/policy.js.map +1 -0
  12. package/dist/autoverify.d.ts +45 -0
  13. package/dist/autoverify.js +1041 -0
  14. package/dist/autoverify.js.map +1 -0
  15. package/dist/cache-lock.d.ts +16 -0
  16. package/dist/cache-lock.js +181 -0
  17. package/dist/cache-lock.js.map +1 -0
  18. package/dist/cli/hooks.d.ts +5 -0
  19. package/dist/cli/hooks.js +264 -0
  20. package/dist/cli/hooks.js.map +1 -0
  21. package/dist/cli.d.ts +2 -0
  22. package/dist/cli.js +1034 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/codex-contract.d.ts +2 -0
  25. package/dist/codex-contract.js +78 -0
  26. package/dist/codex-contract.js.map +1 -0
  27. package/dist/command.d.ts +34 -0
  28. package/dist/command.js +162 -0
  29. package/dist/command.js.map +1 -0
  30. package/dist/doctor.d.ts +112 -0
  31. package/dist/doctor.js +518 -0
  32. package/dist/doctor.js.map +1 -0
  33. package/dist/eval/baseline.d.ts +7 -0
  34. package/dist/eval/baseline.js +146 -0
  35. package/dist/eval/baseline.js.map +1 -0
  36. package/dist/eval/historical.d.ts +4 -0
  37. package/dist/eval/historical.js +663 -0
  38. package/dist/eval/historical.js.map +1 -0
  39. package/dist/eval/render.d.ts +2 -0
  40. package/dist/eval/render.js +53 -0
  41. package/dist/eval/render.js.map +1 -0
  42. package/dist/eval/scoring.d.ts +21 -0
  43. package/dist/eval/scoring.js +618 -0
  44. package/dist/eval/scoring.js.map +1 -0
  45. package/dist/eval/synthetic.d.ts +36 -0
  46. package/dist/eval/synthetic.js +107 -0
  47. package/dist/eval/synthetic.js.map +1 -0
  48. package/dist/eval/types.d.ts +36 -0
  49. package/dist/eval/types.js +2 -0
  50. package/dist/eval/types.js.map +1 -0
  51. package/dist/eval.d.ts +140 -0
  52. package/dist/eval.js +551 -0
  53. package/dist/eval.js.map +1 -0
  54. package/dist/git.d.ts +17 -0
  55. package/dist/git.js +189 -0
  56. package/dist/git.js.map +1 -0
  57. package/dist/github-release.d.ts +47 -0
  58. package/dist/github-release.js +610 -0
  59. package/dist/github-release.js.map +1 -0
  60. package/dist/github-sync.d.ts +68 -0
  61. package/dist/github-sync.js +345 -0
  62. package/dist/github-sync.js.map +1 -0
  63. package/dist/graph.d.ts +10 -0
  64. package/dist/graph.js +665 -0
  65. package/dist/graph.js.map +1 -0
  66. package/dist/indexer/aliases.d.ts +2 -0
  67. package/dist/indexer/aliases.js +190 -0
  68. package/dist/indexer/aliases.js.map +1 -0
  69. package/dist/indexer/artifact-writing.d.ts +3 -0
  70. package/dist/indexer/artifact-writing.js +79 -0
  71. package/dist/indexer/artifact-writing.js.map +1 -0
  72. package/dist/indexer/discovery.d.ts +2 -0
  73. package/dist/indexer/discovery.js +5 -0
  74. package/dist/indexer/discovery.js.map +1 -0
  75. package/dist/indexer/external-facts.d.ts +6 -0
  76. package/dist/indexer/external-facts.js +45 -0
  77. package/dist/indexer/external-facts.js.map +1 -0
  78. package/dist/indexer/freshness.d.ts +8 -0
  79. package/dist/indexer/freshness.js +56 -0
  80. package/dist/indexer/freshness.js.map +1 -0
  81. package/dist/indexer/graph-stage.d.ts +2 -0
  82. package/dist/indexer/graph-stage.js +21 -0
  83. package/dist/indexer/graph-stage.js.map +1 -0
  84. package/dist/indexer/parsing.d.ts +30 -0
  85. package/dist/indexer/parsing.js +177 -0
  86. package/dist/indexer/parsing.js.map +1 -0
  87. package/dist/indexer/pipeline.d.ts +5 -0
  88. package/dist/indexer/pipeline.js +8 -0
  89. package/dist/indexer/pipeline.js.map +1 -0
  90. package/dist/indexer/ranking.d.ts +4 -0
  91. package/dist/indexer/ranking.js +134 -0
  92. package/dist/indexer/ranking.js.map +1 -0
  93. package/dist/indexer.d.ts +13 -0
  94. package/dist/indexer.js +395 -0
  95. package/dist/indexer.js.map +1 -0
  96. package/dist/init.d.ts +24 -0
  97. package/dist/init.js +566 -0
  98. package/dist/init.js.map +1 -0
  99. package/dist/language.d.ts +8 -0
  100. package/dist/language.js +123 -0
  101. package/dist/language.js.map +1 -0
  102. package/dist/live-index.d.ts +68 -0
  103. package/dist/live-index.js +215 -0
  104. package/dist/live-index.js.map +1 -0
  105. package/dist/lsp/assist.d.ts +44 -0
  106. package/dist/lsp/assist.js +331 -0
  107. package/dist/lsp/assist.js.map +1 -0
  108. package/dist/lsp/client.d.ts +59 -0
  109. package/dist/lsp/client.js +208 -0
  110. package/dist/lsp/client.js.map +1 -0
  111. package/dist/mcp/compaction.d.ts +15 -0
  112. package/dist/mcp/compaction.js +1249 -0
  113. package/dist/mcp/compaction.js.map +1 -0
  114. package/dist/mcp/envelope.d.ts +44 -0
  115. package/dist/mcp/envelope.js +425 -0
  116. package/dist/mcp/envelope.js.map +1 -0
  117. package/dist/mcp/prompts.d.ts +2 -0
  118. package/dist/mcp/prompts.js +109 -0
  119. package/dist/mcp/prompts.js.map +1 -0
  120. package/dist/mcp/resources.d.ts +2 -0
  121. package/dist/mcp/resources.js +132 -0
  122. package/dist/mcp/resources.js.map +1 -0
  123. package/dist/mcp/runtime.d.ts +15 -0
  124. package/dist/mcp/runtime.js +122 -0
  125. package/dist/mcp/runtime.js.map +1 -0
  126. package/dist/mcp/session-memory.d.ts +3 -0
  127. package/dist/mcp/session-memory.js +61 -0
  128. package/dist/mcp/session-memory.js.map +1 -0
  129. package/dist/mcp/tool-registry.d.ts +269 -0
  130. package/dist/mcp/tool-registry.js +284 -0
  131. package/dist/mcp/tool-registry.js.map +1 -0
  132. package/dist/mcp/tools.d.ts +53 -0
  133. package/dist/mcp/tools.js +372 -0
  134. package/dist/mcp/tools.js.map +1 -0
  135. package/dist/mcp-repo-root.d.ts +16 -0
  136. package/dist/mcp-repo-root.js +322 -0
  137. package/dist/mcp-repo-root.js.map +1 -0
  138. package/dist/mcp-tool-catalog.d.ts +2 -0
  139. package/dist/mcp-tool-catalog.js +2 -0
  140. package/dist/mcp-tool-catalog.js.map +1 -0
  141. package/dist/mcp.d.ts +11 -0
  142. package/dist/mcp.js +332 -0
  143. package/dist/mcp.js.map +1 -0
  144. package/dist/outcome-ranking.d.ts +5 -0
  145. package/dist/outcome-ranking.js +115 -0
  146. package/dist/outcome-ranking.js.map +1 -0
  147. package/dist/parser/context.d.ts +28 -0
  148. package/dist/parser/context.js +2 -0
  149. package/dist/parser/context.js.map +1 -0
  150. package/dist/parser/ecma.d.ts +5 -0
  151. package/dist/parser/ecma.js +388 -0
  152. package/dist/parser/ecma.js.map +1 -0
  153. package/dist/parser/facts.d.ts +12 -0
  154. package/dist/parser/facts.js +137 -0
  155. package/dist/parser/facts.js.map +1 -0
  156. package/dist/parser/json.d.ts +3 -0
  157. package/dist/parser/json.js +318 -0
  158. package/dist/parser/json.js.map +1 -0
  159. package/dist/parser/markdown.d.ts +3 -0
  160. package/dist/parser/markdown.js +180 -0
  161. package/dist/parser/markdown.js.map +1 -0
  162. package/dist/parser/nodes.d.ts +5 -0
  163. package/dist/parser/nodes.js +75 -0
  164. package/dist/parser/nodes.js.map +1 -0
  165. package/dist/parser/python.d.ts +2 -0
  166. package/dist/parser/python.js +307 -0
  167. package/dist/parser/python.js.map +1 -0
  168. package/dist/parser/references.d.ts +3 -0
  169. package/dist/parser/references.js +204 -0
  170. package/dist/parser/references.js.map +1 -0
  171. package/dist/parser/risks.d.ts +4 -0
  172. package/dist/parser/risks.js +62 -0
  173. package/dist/parser/risks.js.map +1 -0
  174. package/dist/parser/routes.d.ts +5 -0
  175. package/dist/parser/routes.js +97 -0
  176. package/dist/parser/routes.js.map +1 -0
  177. package/dist/parser/shallow.d.ts +3 -0
  178. package/dist/parser/shallow.js +545 -0
  179. package/dist/parser/shallow.js.map +1 -0
  180. package/dist/parser/source.d.ts +4 -0
  181. package/dist/parser/source.js +127 -0
  182. package/dist/parser/source.js.map +1 -0
  183. package/dist/parser.d.ts +2 -0
  184. package/dist/parser.js +2 -0
  185. package/dist/parser.js.map +1 -0
  186. package/dist/placeholder-signals.d.ts +15 -0
  187. package/dist/placeholder-signals.js +511 -0
  188. package/dist/placeholder-signals.js.map +1 -0
  189. package/dist/post-edit-outcomes.d.ts +167 -0
  190. package/dist/post-edit-outcomes.js +484 -0
  191. package/dist/post-edit-outcomes.js.map +1 -0
  192. package/dist/queries.d.ts +12 -0
  193. package/dist/queries.js +13 -0
  194. package/dist/queries.js.map +1 -0
  195. package/dist/query/change-plan.d.ts +48 -0
  196. package/dist/query/change-plan.js +858 -0
  197. package/dist/query/change-plan.js.map +1 -0
  198. package/dist/query/compact-data.d.ts +25 -0
  199. package/dist/query/compact-data.js +74 -0
  200. package/dist/query/compact-data.js.map +1 -0
  201. package/dist/query/context.d.ts +5 -0
  202. package/dist/query/context.js +1162 -0
  203. package/dist/query/context.js.map +1 -0
  204. package/dist/query/diff.d.ts +5 -0
  205. package/dist/query/diff.js +111 -0
  206. package/dist/query/diff.js.map +1 -0
  207. package/dist/query/edge-evidence.d.ts +3 -0
  208. package/dist/query/edge-evidence.js +36 -0
  209. package/dist/query/edge-evidence.js.map +1 -0
  210. package/dist/query/formatting.d.ts +14 -0
  211. package/dist/query/formatting.js +67 -0
  212. package/dist/query/formatting.js.map +1 -0
  213. package/dist/query/graph-traversal.d.ts +22 -0
  214. package/dist/query/graph-traversal.js +218 -0
  215. package/dist/query/graph-traversal.js.map +1 -0
  216. package/dist/query/graph.d.ts +14 -0
  217. package/dist/query/graph.js +102 -0
  218. package/dist/query/graph.js.map +1 -0
  219. package/dist/query/impact.d.ts +28 -0
  220. package/dist/query/impact.js +568 -0
  221. package/dist/query/impact.js.map +1 -0
  222. package/dist/query/inspection.d.ts +9 -0
  223. package/dist/query/inspection.js +290 -0
  224. package/dist/query/inspection.js.map +1 -0
  225. package/dist/query/next-tools.d.ts +3 -0
  226. package/dist/query/next-tools.js +25 -0
  227. package/dist/query/next-tools.js.map +1 -0
  228. package/dist/query/placeholders.d.ts +24 -0
  229. package/dist/query/placeholders.js +121 -0
  230. package/dist/query/placeholders.js.map +1 -0
  231. package/dist/query/post-edit/decision.d.ts +49 -0
  232. package/dist/query/post-edit/decision.js +130 -0
  233. package/dist/query/post-edit/decision.js.map +1 -0
  234. package/dist/query/post-edit/dirty-scope.d.ts +16 -0
  235. package/dist/query/post-edit/dirty-scope.js +21 -0
  236. package/dist/query/post-edit/dirty-scope.js.map +1 -0
  237. package/dist/query/post-edit/next-actions.d.ts +22 -0
  238. package/dist/query/post-edit/next-actions.js +44 -0
  239. package/dist/query/post-edit/next-actions.js.map +1 -0
  240. package/dist/query/post-edit/snapshot-contract.d.ts +8 -0
  241. package/dist/query/post-edit/snapshot-contract.js +111 -0
  242. package/dist/query/post-edit/snapshot-contract.js.map +1 -0
  243. package/dist/query/post-edit.d.ts +5 -0
  244. package/dist/query/post-edit.js +1108 -0
  245. package/dist/query/post-edit.js.map +1 -0
  246. package/dist/query/quality.d.ts +43 -0
  247. package/dist/query/quality.js +134 -0
  248. package/dist/query/quality.js.map +1 -0
  249. package/dist/query/raw-search.d.ts +23 -0
  250. package/dist/query/raw-search.js +147 -0
  251. package/dist/query/raw-search.js.map +1 -0
  252. package/dist/query/runtime.d.ts +11 -0
  253. package/dist/query/runtime.js +79 -0
  254. package/dist/query/runtime.js.map +1 -0
  255. package/dist/query/search.d.ts +25 -0
  256. package/dist/query/search.js +429 -0
  257. package/dist/query/search.js.map +1 -0
  258. package/dist/query/session-memory.d.ts +3 -0
  259. package/dist/query/session-memory.js +108 -0
  260. package/dist/query/session-memory.js.map +1 -0
  261. package/dist/query/session.d.ts +41 -0
  262. package/dist/query/session.js +90 -0
  263. package/dist/query/session.js.map +1 -0
  264. package/dist/query/targets.d.ts +25 -0
  265. package/dist/query/targets.js +97 -0
  266. package/dist/query/targets.js.map +1 -0
  267. package/dist/query/test-commands.d.ts +10 -0
  268. package/dist/query/test-commands.js +110 -0
  269. package/dist/query/test-commands.js.map +1 -0
  270. package/dist/query/test-plan.d.ts +6 -0
  271. package/dist/query/test-plan.js +104 -0
  272. package/dist/query/test-plan.js.map +1 -0
  273. package/dist/query/tests.d.ts +48 -0
  274. package/dist/query/tests.js +444 -0
  275. package/dist/query/tests.js.map +1 -0
  276. package/dist/query/verification/shell.d.ts +20 -0
  277. package/dist/query/verification/shell.js +164 -0
  278. package/dist/query/verification/shell.js.map +1 -0
  279. package/dist/query/verification.d.ts +47 -0
  280. package/dist/query/verification.js +1123 -0
  281. package/dist/query/verification.js.map +1 -0
  282. package/dist/query/workflow.d.ts +17 -0
  283. package/dist/query/workflow.js +252 -0
  284. package/dist/query/workflow.js.map +1 -0
  285. package/dist/query/workspace-guidance.d.ts +26 -0
  286. package/dist/query/workspace-guidance.js +214 -0
  287. package/dist/query/workspace-guidance.js.map +1 -0
  288. package/dist/query/worktree-state.d.ts +22 -0
  289. package/dist/query/worktree-state.js +32 -0
  290. package/dist/query/worktree-state.js.map +1 -0
  291. package/dist/query/worktree.d.ts +16 -0
  292. package/dist/query/worktree.js +194 -0
  293. package/dist/query/worktree.js.map +1 -0
  294. package/dist/query-data.d.ts +4 -0
  295. package/dist/query-data.js +112 -0
  296. package/dist/query-data.js.map +1 -0
  297. package/dist/repo-files.d.ts +24 -0
  298. package/dist/repo-files.js +105 -0
  299. package/dist/repo-files.js.map +1 -0
  300. package/dist/resolver.d.ts +9 -0
  301. package/dist/resolver.js +555 -0
  302. package/dist/resolver.js.map +1 -0
  303. package/dist/retrieval.d.ts +46 -0
  304. package/dist/retrieval.js +783 -0
  305. package/dist/retrieval.js.map +1 -0
  306. package/dist/risk-ingest.d.ts +16 -0
  307. package/dist/risk-ingest.js +458 -0
  308. package/dist/risk-ingest.js.map +1 -0
  309. package/dist/rules.d.ts +10 -0
  310. package/dist/rules.js +107 -0
  311. package/dist/rules.js.map +1 -0
  312. package/dist/semantic/python.d.ts +9 -0
  313. package/dist/semantic/python.js +817 -0
  314. package/dist/semantic/python.js.map +1 -0
  315. package/dist/semantic/typescript.d.ts +10 -0
  316. package/dist/semantic/typescript.js +714 -0
  317. package/dist/semantic/typescript.js.map +1 -0
  318. package/dist/semantic-retrieval.d.ts +53 -0
  319. package/dist/semantic-retrieval.js +673 -0
  320. package/dist/semantic-retrieval.js.map +1 -0
  321. package/dist/session-memory/derivation.d.ts +6 -0
  322. package/dist/session-memory/derivation.js +400 -0
  323. package/dist/session-memory/derivation.js.map +1 -0
  324. package/dist/session-memory/event-log.d.ts +23 -0
  325. package/dist/session-memory/event-log.js +126 -0
  326. package/dist/session-memory/event-log.js.map +1 -0
  327. package/dist/session-memory/formatting.d.ts +7 -0
  328. package/dist/session-memory/formatting.js +86 -0
  329. package/dist/session-memory/formatting.js.map +1 -0
  330. package/dist/session-memory/model.d.ts +94 -0
  331. package/dist/session-memory/model.js +17 -0
  332. package/dist/session-memory/model.js.map +1 -0
  333. package/dist/session-memory/runtime.d.ts +24 -0
  334. package/dist/session-memory/runtime.js +289 -0
  335. package/dist/session-memory/runtime.js.map +1 -0
  336. package/dist/session-memory/store.d.ts +27 -0
  337. package/dist/session-memory/store.js +447 -0
  338. package/dist/session-memory/store.js.map +1 -0
  339. package/dist/session-memory.d.ts +1 -0
  340. package/dist/session-memory.js +2 -0
  341. package/dist/session-memory.js.map +1 -0
  342. package/dist/static-analysis.d.ts +36 -0
  343. package/dist/static-analysis.js +505 -0
  344. package/dist/static-analysis.js.map +1 -0
  345. package/dist/symbol-report-ingest.d.ts +8 -0
  346. package/dist/symbol-report-ingest.js +504 -0
  347. package/dist/symbol-report-ingest.js.map +1 -0
  348. package/dist/task-snapshots.d.ts +41 -0
  349. package/dist/task-snapshots.js +430 -0
  350. package/dist/task-snapshots.js.map +1 -0
  351. package/dist/types.d.ts +848 -0
  352. package/dist/types.js +12 -0
  353. package/dist/types.js.map +1 -0
  354. package/dist/util.d.ts +11 -0
  355. package/dist/util.js +63 -0
  356. package/dist/util.js.map +1 -0
  357. package/dist/version.d.ts +1 -0
  358. package/dist/version.js +5 -0
  359. package/dist/version.js.map +1 -0
  360. package/package.json +81 -0
  361. package/plugins/codexa/.codex-plugin/plugin.json +38 -0
  362. package/plugins/codexa/.mcp.json +20 -0
  363. package/plugins/codexa/scripts/codexa-mcp.js +100 -0
  364. package/plugins/codexa/skills/codexa/SKILL.md +48 -0
@@ -0,0 +1,130 @@
1
+ export function postEditDecision(input) {
2
+ const missingWorkflowCheckCount = input.workflowChecks.filter((check) => check.status === "missing").length;
3
+ const missingDependencyCheckCount = input.dependencyChecks.filter((check) => check.status === "missing").length;
4
+ const riskEscalationsCoveredByVerification = input.riskEscalations.length > 0 &&
5
+ input.unplannedEditedFiles.length === 0 &&
6
+ input.testsNotRun.length === 0 &&
7
+ input.hasTestVerificationAccounting &&
8
+ missingWorkflowCheckCount === 0 &&
9
+ missingDependencyCheckCount === 0 &&
10
+ input.waivedVerification.length === 0;
11
+ const riskEscalationsNeedInspection = input.hasActualEditedFiles && input.riskEscalations.length > 0 && !riskEscalationsCoveredByVerification;
12
+ const hasDegradedSnapshotTests = input.degradedSnapshotTests.length > 0;
13
+ const driftReasons = [
14
+ !input.snapshot ? `missing task snapshot${input.loadedSnapshot.missingReason ? `: ${input.loadedSnapshot.missingReason}` : ""}` : undefined,
15
+ input.snapshotAmbiguity ? input.snapshotAmbiguity : undefined,
16
+ input.loadedSnapshot.missingReason === "invalid-json" ? input.loadedSnapshot.error : undefined,
17
+ input.worktreeDegradationReasons.length > 0
18
+ ? `worktree state unavailable (${input.worktreeDegradationReasons.join("; ")}); treat empty change set as unknown, not clean`
19
+ : undefined,
20
+ input.headChanged ? "git head changed since snapshot" : undefined,
21
+ input.unplannedEditedFiles.length > 0 ? `${input.unplannedEditedFiles.length} edited file(s) outside planned scope` : undefined,
22
+ input.unplannedChangedSymbols.length > 0 ? `${input.unplannedChangedSymbols.length} changed symbol(s) outside requested symbol target` : undefined,
23
+ input.unindexedEditedFiles.length > 0 ? `${input.unindexedEditedFiles.length} changed-since-snapshot file(s) are not indexed` : undefined,
24
+ input.symbolDeltas.some((delta) => delta.newSymbols.length > 0 || delta.removedSymbols.length > 0)
25
+ ? `${input.symbolDeltas.reduce((sum, delta) => sum + delta.newSymbols.length + delta.removedSymbols.length, 0)} symbol delta(s) detected`
26
+ : undefined,
27
+ input.riskDeltas.some((delta) => delta.delta > 0) ? `${input.riskDeltas.filter((delta) => delta.delta > 0).length} file(s) increased risk` : undefined,
28
+ missingWorkflowCheckCount > 0 ? `${missingWorkflowCheckCount} required workflow check(s) missing` : undefined,
29
+ missingDependencyCheckCount > 0 ? `${missingDependencyCheckCount} required dependency check(s) missing` : undefined,
30
+ hasDegradedSnapshotTests ? `${input.degradedSnapshotTests.length} planned snapshot test(s) degraded by provenance` : undefined,
31
+ input.quality?.level === "low" ? "low context quality after edit" : undefined,
32
+ riskEscalationsNeedInspection ? `${input.riskEscalations.length} high-risk or unplanned target(s)` : undefined,
33
+ input.waivedVerification.length > 0 ? `${input.waivedVerification.length} verification item(s) explicitly waived` : undefined,
34
+ input.hasActualEditedFiles && input.testsNotRun.length > 0 && !input.hasTestVerificationAccounting
35
+ ? "recommended tests have not been accounted for"
36
+ : undefined,
37
+ input.hasActualEditedFiles && input.testsNotRun.length > 0 && input.hasTestVerificationAccounting ? `${input.testsNotRun.length} recommended test(s) remain unaccounted for` : undefined,
38
+ input.noVerificationProofForEditedFiles ? "edited files have no credible verification evidence" : undefined
39
+ ].filter((reason) => Boolean(reason));
40
+ const verdict = input.headChanged || input.unplannedEditedFiles.length >= 3 || input.quality?.level === "low"
41
+ ? "replan"
42
+ : !input.snapshot ||
43
+ input.worktreeDegradationReasons.length > 0 ||
44
+ input.unplannedEditedFiles.length > 0 ||
45
+ Boolean(input.snapshotAmbiguity) ||
46
+ input.unplannedChangedSymbols.length > 0 ||
47
+ missingWorkflowCheckCount > 0 ||
48
+ missingDependencyCheckCount > 0 ||
49
+ hasDegradedSnapshotTests ||
50
+ input.waivedVerification.length > 0 ||
51
+ input.noVerificationProofForEditedFiles ||
52
+ riskEscalationsNeedInspection ||
53
+ input.quality?.level === "medium"
54
+ ? "inspect"
55
+ : input.hasActualEditedFiles && input.testsNotRun.length > 0
56
+ ? "run_tests"
57
+ : "continue";
58
+ const inspect = inspectClassification(verdict, {
59
+ snapshot: input.snapshot,
60
+ snapshotAmbiguity: input.snapshotAmbiguity,
61
+ worktreeDegradationReasons: input.worktreeDegradationReasons,
62
+ headChanged: input.headChanged,
63
+ unplannedEditedFiles: input.unplannedEditedFiles,
64
+ unplannedChangedSymbols: input.unplannedChangedSymbols,
65
+ unindexedEditedFiles: input.unindexedEditedFiles,
66
+ symbolDeltas: input.symbolDeltas,
67
+ riskDeltas: input.riskDeltas,
68
+ missingWorkflowCheckCount,
69
+ missingDependencyCheckCount,
70
+ hasDegradedSnapshotTests,
71
+ quality: input.quality,
72
+ riskEscalationsNeedInspection,
73
+ waivedVerification: input.waivedVerification,
74
+ noVerificationProofForEditedFiles: input.noVerificationProofForEditedFiles
75
+ });
76
+ return {
77
+ driftReasons,
78
+ verdict,
79
+ inspectMode: inspect.mode,
80
+ inspectReasons: inspect.reasons,
81
+ completionAuthority: completionAuthority(verdict, inspect.mode),
82
+ missingWorkflowCheckCount,
83
+ missingDependencyCheckCount,
84
+ riskEscalationsCoveredByVerification,
85
+ riskEscalationsNeedInspection,
86
+ hasDegradedSnapshotTests
87
+ };
88
+ }
89
+ function inspectClassification(verdict, input) {
90
+ if (verdict !== "inspect") {
91
+ return { mode: "none", reasons: [] };
92
+ }
93
+ const blockingReasons = [
94
+ input.headChanged ? "snapshot commit changed" : undefined,
95
+ input.worktreeDegradationReasons.length > 0 ? "worktree state unavailable" : undefined,
96
+ input.unplannedEditedFiles.length > 0 ? "edited files outside planned scope" : undefined,
97
+ input.unplannedChangedSymbols.length > 0 ? "changed symbols outside requested symbol target" : undefined,
98
+ input.unindexedEditedFiles.length > 0 ? "edited files are not indexed" : undefined,
99
+ input.missingWorkflowCheckCount > 0 ? "required workflow checks missing" : undefined,
100
+ input.missingDependencyCheckCount > 0 ? "required dependency checks missing" : undefined,
101
+ input.quality?.level === "medium" || input.quality?.level === "low" ? "context quality is not high" : undefined,
102
+ input.riskEscalationsNeedInspection ? "high-risk target lacks complete verification accounting" : undefined,
103
+ input.waivedVerification.length > 0 ? "verification was waived" : undefined,
104
+ input.noVerificationProofForEditedFiles ? "edited files have no credible verification evidence" : undefined
105
+ ].filter((reason) => Boolean(reason));
106
+ if (blockingReasons.length > 0) {
107
+ return { mode: "blocking", reasons: blockingReasons };
108
+ }
109
+ const advisoryReasons = [
110
+ !input.snapshot ? "no saved task snapshot" : undefined,
111
+ input.snapshotAmbiguity ? "latest snapshot was ambiguous" : undefined,
112
+ input.hasDegradedSnapshotTests ? "planned snapshot tests have degraded provenance" : undefined,
113
+ input.symbolDeltas.some((delta) => delta.newSymbols.length > 0 || delta.removedSymbols.length > 0) ? "symbol inventory changed" : undefined,
114
+ input.riskDeltas.some((delta) => delta.delta > 0) ? "risk score changed but blocking risk checks are covered" : undefined
115
+ ].filter((reason) => Boolean(reason));
116
+ return { mode: "advisory", reasons: advisoryReasons.length > 0 ? advisoryReasons : ["inspect is advisory; no blocking drift signal was found"] };
117
+ }
118
+ function completionAuthority(verdict, inspectMode) {
119
+ if (verdict === "replan") {
120
+ return "replan_required";
121
+ }
122
+ if (verdict === "run_tests") {
123
+ return "tests_required";
124
+ }
125
+ if (verdict === "inspect") {
126
+ return inspectMode === "blocking" ? "blocking_inspect" : "advisory_inspect";
127
+ }
128
+ return "complete";
129
+ }
130
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../../src/query/post-edit/decision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ChangedFileEntry, CodexaIndex, TaskSnapshot } from "../../types.js";
2
+ export interface PostEditDirtyScope {
3
+ currentDirtyPaths: string[];
4
+ changedSinceSnapshot: ChangedFileEntry[];
5
+ resolvedBaselineFiles: string[];
6
+ editPaths: string[];
7
+ unindexedEditedFiles: string[];
8
+ }
9
+ export declare function postEditDirtyScope(input: {
10
+ snapshot: TaskSnapshot | undefined;
11
+ currentEntries: ChangedFileEntry[];
12
+ freshness: {
13
+ dirtyFileHashes: Record<string, string>;
14
+ };
15
+ index: CodexaIndex;
16
+ }): PostEditDirtyScope;
@@ -0,0 +1,21 @@
1
+ import { uniqueSorted } from "../../util.js";
2
+ import { isCodexaControlPath } from "../worktree.js";
3
+ export function postEditDirtyScope(input) {
4
+ const currentDirtyPaths = input.currentEntries.map((entry) => entry.path);
5
+ const baselinePaths = new Set(input.snapshot?.dirtyBaseline.dirtyFiles ?? input.snapshot?.dirtyBaseline.changedEntries.map((entry) => entry.path) ?? []);
6
+ const baselineHashes = input.snapshot?.dirtyBaseline.dirtyFileHashes ?? {};
7
+ const changedSinceSnapshot = input.snapshot
8
+ ? input.currentEntries.filter((entry) => !baselinePaths.has(entry.path) || baselineHashes[entry.path] !== input.freshness.dirtyFileHashes[entry.path])
9
+ : input.currentEntries;
10
+ const resolvedBaselineFiles = input.snapshot ? uniqueSorted([...baselinePaths].filter((filePath) => !currentDirtyPaths.includes(filePath))) : [];
11
+ const editPaths = uniqueSorted(changedSinceSnapshot.map((entry) => entry.path).filter((filePath) => !isCodexaControlPath(filePath)));
12
+ const indexedPaths = new Set(input.index.files.map((file) => file.path));
13
+ return {
14
+ currentDirtyPaths,
15
+ changedSinceSnapshot,
16
+ resolvedBaselineFiles,
17
+ editPaths,
18
+ unindexedEditedFiles: editPaths.filter((filePath) => !indexedPaths.has(filePath))
19
+ };
20
+ }
21
+ //# sourceMappingURL=dirty-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-scope.js","sourceRoot":"","sources":["../../../src/query/post-edit/dirty-scope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAUrD,MAAM,UAAU,kBAAkB,CAAC,KAKlC;IACC,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzJ,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,eAAe,IAAI,EAAE,CAAC;IAC3E,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ;QACzC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtJ,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IACzB,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjJ,MAAM,SAAS,GAAG,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrI,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,iBAAiB;QACjB,oBAAoB;QACpB,qBAAqB;QACrB,SAAS;QACT,oBAAoB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { PostEditCheckResult, PostEditVerdict } from "../../post-edit-outcomes.js";
2
+ import type { ChangeType, FileFact, TaskSnapshot, TestRecommendation, WorkflowTraceFact } from "../../types.js";
3
+ import { nextTool } from "../next-tools.js";
4
+ export declare function postEditNextActions(verdict: PostEditVerdict, input: {
5
+ snapshot?: TaskSnapshot;
6
+ unplannedEditedFiles: string[];
7
+ testsNotRun: TestRecommendation[];
8
+ degradedSnapshotTests: TestRecommendation[];
9
+ riskEscalations: FileFact[];
10
+ reviewTargets: string[];
11
+ workflows: WorkflowTraceFact[];
12
+ missingChecks: PostEditCheckResult[];
13
+ noVerificationProofForEditedFiles: boolean;
14
+ }): string[];
15
+ export declare function postEditStructuredNextTools(verdict: PostEditVerdict, input: {
16
+ reviewScope: string[];
17
+ changeType: ChangeType;
18
+ testsNotRun: TestRecommendation[];
19
+ degradedSnapshotTests: TestRecommendation[];
20
+ riskEscalationsNeedInspection: boolean;
21
+ riskEscalations: FileFact[];
22
+ }): Array<ReturnType<typeof nextTool>>;
@@ -0,0 +1,44 @@
1
+ import { nextTool } from "../next-tools.js";
2
+ export function postEditNextActions(verdict, input) {
3
+ if (verdict === "replan") {
4
+ return [
5
+ "Call change_plan again with saveSnapshot=true before making more edits.",
6
+ input.unplannedEditedFiles.length > 0 ? `Inspect unplanned edits first: ${input.unplannedEditedFiles.slice(0, 6).join(", ")}` : "Inspect the low-quality or stale evidence before continuing.",
7
+ input.testsNotRun.length > 0 ? `Run or justify the top targeted tests: ${input.testsNotRun.slice(0, 4).map((test) => test.path).join(", ")}` : "Rebuild a narrow test plan after re-planning."
8
+ ];
9
+ }
10
+ if (verdict === "inspect") {
11
+ return [
12
+ input.degradedSnapshotTests.length > 0
13
+ ? "Re-run change_plan for the current edit scope before treating planned-test evidence as trusted."
14
+ : input.snapshot
15
+ ? "Read the unplanned or high-risk files before treating the edit as complete."
16
+ : "No saved task snapshot was available; treat this as a dirty-diff review, not a drift proof.",
17
+ input.riskEscalations.length > 0 ? `Check risk targets: ${input.riskEscalations.slice(0, 5).map((file) => file.path).join(", ")}` : `Check review targets: ${input.reviewTargets.slice(0, 6).join(", ") || "none"}`,
18
+ input.missingChecks.length > 0 ? `Resolve required checks: ${input.missingChecks.slice(0, 4).map((check) => check.target).join(", ")}` : "Required snapshot checks are covered.",
19
+ input.testsNotRun.length > 0
20
+ ? `Run or explicitly account for: ${input.testsNotRun.slice(0, 6).map((test) => test.path).join(", ")}`
21
+ : input.noVerificationProofForEditedFiles
22
+ ? "Report a relevant test, build, or typecheck command before treating edited files as verified."
23
+ : "Targeted tests are accounted for.",
24
+ input.workflows.length > 0 ? `Call workflow_path for ${input.workflows[0].title} if behavior changed.` : "Call callers or dependency_path if the touched file changes a public contract."
25
+ ];
26
+ }
27
+ if (verdict === "run_tests") {
28
+ return [
29
+ `Run or account for: ${input.testsNotRun.slice(0, 6).map((test) => test.path).join(", ")}`,
30
+ "After checks pass, call post_edit_review again with ranCommands for commands you ran, or ranTests only for direct file/test accounting."
31
+ ];
32
+ }
33
+ return ["No drift detected against the saved snapshot. Finish with the normal source diff review and targeted tests already reported."];
34
+ }
35
+ export function postEditStructuredNextTools(verdict, input) {
36
+ return [
37
+ verdict === "run_tests" && input.testsNotRun[0] ? nextTool("test_plan", "recommended tests remain unaccounted for", { files: input.reviewScope.slice(0, 8), diff: true }) : undefined,
38
+ verdict === "replan" || input.degradedSnapshotTests.length > 0
39
+ ? nextTool("change_plan", input.degradedSnapshotTests.length > 0 ? "planned-test provenance degraded; rebuild the plan for the current edit scope" : "saved plan drifted from the current edit scope", { files: input.reviewScope.slice(0, 8), saveSnapshot: true, changeType: input.changeType }, true, [".codex/cache/codexa-task-snapshots"])
40
+ : undefined,
41
+ input.riskEscalationsNeedInspection ? nextTool("impact", "high-risk or unplanned target needs relationship inspection", { file: input.riskEscalations[0]?.path }) : undefined
42
+ ].filter((tool) => Boolean(tool));
43
+ }
44
+ //# sourceMappingURL=next-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-actions.js","sourceRoot":"","sources":["../../../src/query/post-edit/next-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CodexaIndex, TaskSnapshotRiskFile, TaskSnapshotSymbol, TestRecommendation } from "../../types.js";
2
+ export declare function snapshotSymbolBaseline(index: CodexaIndex, paths: string[]): Record<string, TaskSnapshotSymbol[]>;
3
+ export declare function snapshotRiskBaseline(index: CodexaIndex, paths: string[]): Record<string, TaskSnapshotRiskFile>;
4
+ export declare function compactSnapshotTests(tests: TestRecommendation[], repoRoot: string): TestRecommendation[];
5
+ export declare function reconcileSnapshotTests(tests: TestRecommendation[], reviewScope: string[], snapshotScope: string[]): {
6
+ trusted: TestRecommendation[];
7
+ degraded: TestRecommendation[];
8
+ };
@@ -0,0 +1,111 @@
1
+ import { findFile } from "../targets.js";
2
+ export function snapshotSymbolBaseline(index, paths) {
3
+ const pathSet = new Set(paths);
4
+ const result = {};
5
+ for (const filePath of pathSet) {
6
+ result[filePath] = index.symbols
7
+ .filter((symbol) => symbol.path === filePath)
8
+ .map((symbol) => ({
9
+ id: symbol.id,
10
+ path: symbol.path,
11
+ name: symbol.name,
12
+ qualifiedName: symbol.qualifiedName,
13
+ kind: symbol.kind,
14
+ range: symbol.range
15
+ }))
16
+ .sort((a, b) => (a.range?.startLine ?? 0) - (b.range?.startLine ?? 0) || a.qualifiedName.localeCompare(b.qualifiedName));
17
+ }
18
+ return result;
19
+ }
20
+ export function snapshotRiskBaseline(index, paths) {
21
+ const pathSet = new Set(paths);
22
+ const result = {};
23
+ for (const filePath of pathSet) {
24
+ const file = findFile(index, filePath);
25
+ const signals = index.risks
26
+ .filter((risk) => risk.path === filePath)
27
+ .map((risk) => `${risk.signal}: ${risk.reason}`)
28
+ .sort();
29
+ result[filePath] = {
30
+ riskScore: file?.riskScore ?? signals.length,
31
+ signals
32
+ };
33
+ }
34
+ return result;
35
+ }
36
+ export function compactSnapshotTests(tests, repoRoot) {
37
+ return tests.map((test) => ({
38
+ ...test,
39
+ command: test.command?.replaceAll(repoRoot, "<repo>"),
40
+ provenance: {
41
+ ...(test.provenance ?? legacyTestProvenance(test, [])),
42
+ origin: "snapshot"
43
+ }
44
+ }));
45
+ }
46
+ export function reconcileSnapshotTests(tests, reviewScope, snapshotScope) {
47
+ const scope = new Set(reviewScope.length > 0 ? reviewScope : snapshotScope);
48
+ const trusted = [];
49
+ const degraded = [];
50
+ for (const test of tests) {
51
+ const provenance = normalizeTestProvenance(test.provenance) ?? legacyTestProvenance(test, snapshotScope);
52
+ const targetPaths = provenance.targetPaths.length > 0 ? provenance.targetPaths : snapshotScope;
53
+ const directTestTarget = scope.has(test.path) && provenance.sources.includes("explicit_target") && targetPaths.includes(test.path);
54
+ const matchesScope = targetPaths.some((targetPath) => scope.has(targetPath)) || directTestTarget;
55
+ if (!provenance.degraded && matchesScope) {
56
+ trusted.push({
57
+ ...test,
58
+ provenance: {
59
+ ...provenance,
60
+ origin: "snapshot",
61
+ targetPaths
62
+ }
63
+ });
64
+ continue;
65
+ }
66
+ degraded.push(degradeSnapshotTest(test, {
67
+ ...provenance,
68
+ origin: "snapshot",
69
+ targetPaths
70
+ }, matchesScope
71
+ ? provenance.degradedReason ?? "snapshot planned-test evidence was already degraded"
72
+ : `snapshot test targets ${targetPaths.slice(0, 5).join(", ") || "unknown"} do not match review scope ${[...scope].slice(0, 5).join(", ") || "unknown"}`));
73
+ }
74
+ return { trusted, degraded };
75
+ }
76
+ function legacyTestProvenance(test, snapshotScope) {
77
+ return {
78
+ schemaVersion: 1,
79
+ origin: "snapshot",
80
+ sources: ["snapshot_legacy"],
81
+ targetPaths: snapshotScope,
82
+ evidence: [test.reason].filter(Boolean).slice(0, 4),
83
+ degraded: true,
84
+ degradedReason: "legacy snapshot test lacks planned-test provenance"
85
+ };
86
+ }
87
+ function normalizeTestProvenance(value) {
88
+ if (!value || value.schemaVersion !== 1) {
89
+ return undefined;
90
+ }
91
+ return {
92
+ schemaVersion: 1,
93
+ origin: value.origin ?? "snapshot",
94
+ sources: Array.isArray(value.sources) ? value.sources : ["snapshot_legacy"],
95
+ targetPaths: Array.isArray(value.targetPaths) ? value.targetPaths : [],
96
+ evidence: Array.isArray(value.evidence) ? value.evidence : [],
97
+ degraded: value.degraded,
98
+ degradedReason: value.degradedReason
99
+ };
100
+ }
101
+ function degradeSnapshotTest(test, provenance, reason) {
102
+ return {
103
+ ...test,
104
+ provenance: {
105
+ ...provenance,
106
+ degraded: true,
107
+ degradedReason: reason
108
+ }
109
+ };
110
+ }
111
+ //# sourceMappingURL=snapshot-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-contract.js","sourceRoot":"","sources":["../../../src/query/post-edit/snapshot-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type QuerySessionInput } from "./session.js";
2
+ import type { AutoVerifyCommandReport } from "../autoverify.js";
3
+ import type { PostEditReviewInput, QueryOptions, QueryResult } from "../types.js";
4
+ export declare function postEditReviewQuery(sessionInput: QuerySessionInput, input?: PostEditReviewInput, options?: QueryOptions): Promise<QueryResult>;
5
+ export declare function postEditReviewWithTrustedRunnerReports(sessionInput: QuerySessionInput, input?: PostEditReviewInput, trustedRunnerReports?: AutoVerifyCommandReport[], options?: QueryOptions): Promise<QueryResult>;