codebaseiq 0.1.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 (432) hide show
  1. package/CHANGELOG.md +481 -0
  2. package/LICENSE +202 -0
  3. package/README.md +349 -0
  4. package/dist/augment-vue-worker.js +2 -0
  5. package/dist/call-graph-evidence-gNsxjCW8.d.ts +16 -0
  6. package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
  7. package/dist/chunk-2Q2LW5JW.js +14 -0
  8. package/dist/chunk-2X7V4HS4.js +88 -0
  9. package/dist/chunk-34WBMAYK.js +2 -0
  10. package/dist/chunk-35NLDRZC.js +2 -0
  11. package/dist/chunk-362QOSFD.js +3 -0
  12. package/dist/chunk-3IER7Q6H.js +12 -0
  13. package/dist/chunk-3JSXXYTZ.js +345 -0
  14. package/dist/chunk-3LCDIREB.js +4 -0
  15. package/dist/chunk-476NR5B7.js +2 -0
  16. package/dist/chunk-4FC325IF.js +30 -0
  17. package/dist/chunk-4WKDMDEW.js +9 -0
  18. package/dist/chunk-4XTAUQFD.js +2 -0
  19. package/dist/chunk-5PUWMSDU.js +26 -0
  20. package/dist/chunk-5VKBFZZU.js +3 -0
  21. package/dist/chunk-6BQ3DSPK.js +2 -0
  22. package/dist/chunk-6CS3UQTN.js +3 -0
  23. package/dist/chunk-6MUIJMVL.js +6 -0
  24. package/dist/chunk-6NW7MU72.js +40 -0
  25. package/dist/chunk-6OAHRI2D.js +6 -0
  26. package/dist/chunk-6YTSKJJ3.js +2 -0
  27. package/dist/chunk-7FND7D7N.js +2 -0
  28. package/dist/chunk-7MGU3HPH.js +2 -0
  29. package/dist/chunk-7NVGT435.js +2 -0
  30. package/dist/chunk-7XAN6GKB.js +2 -0
  31. package/dist/chunk-AAQQPKCU.js +2 -0
  32. package/dist/chunk-ADTBPVUZ.js +21 -0
  33. package/dist/chunk-AKB7V7TV.js +2 -0
  34. package/dist/chunk-ANFVSJWQ.js +11 -0
  35. package/dist/chunk-B2OB55RR.js +3 -0
  36. package/dist/chunk-B3UYV66Z.js +4 -0
  37. package/dist/chunk-B75HZHUP.js +2 -0
  38. package/dist/chunk-BFFZDZQV.js +2 -0
  39. package/dist/chunk-BGBBVSH4.js +2 -0
  40. package/dist/chunk-BH5F2Q4O.js +2 -0
  41. package/dist/chunk-BJ6SQAEN.js +2 -0
  42. package/dist/chunk-BMYOV5GP.js +77 -0
  43. package/dist/chunk-BVAJLC5A.js +7 -0
  44. package/dist/chunk-C6SBF2WH.js +4 -0
  45. package/dist/chunk-C74PPYLA.js +3 -0
  46. package/dist/chunk-C7QOQX32.js +8 -0
  47. package/dist/chunk-CAUCPUOF.js +7 -0
  48. package/dist/chunk-CO5R3UNA.js +2 -0
  49. package/dist/chunk-CQP3THUZ.js +7 -0
  50. package/dist/chunk-CVYSU6BX.js +16 -0
  51. package/dist/chunk-CWONGW6P.js +3 -0
  52. package/dist/chunk-DDZ7VHWV.js +20 -0
  53. package/dist/chunk-DGXRDLV5.js +2 -0
  54. package/dist/chunk-DO6WQD2T.js +3 -0
  55. package/dist/chunk-DQMDCD24.js +2 -0
  56. package/dist/chunk-DR2LURYU.js +3 -0
  57. package/dist/chunk-DRENNWRG.js +2 -0
  58. package/dist/chunk-ECQBG7PW.js +564 -0
  59. package/dist/chunk-EF2R3WNQ.js +2 -0
  60. package/dist/chunk-ELNRLMC5.js +29 -0
  61. package/dist/chunk-EMNIHCRB.js +18 -0
  62. package/dist/chunk-ENCCHKM6.js +5 -0
  63. package/dist/chunk-EZNMUY67.js +5 -0
  64. package/dist/chunk-FAJQ7LWY.js +3 -0
  65. package/dist/chunk-FDGD5AB5.js +2 -0
  66. package/dist/chunk-FETNQCFO.js +117 -0
  67. package/dist/chunk-FM5BPL4V.js +60 -0
  68. package/dist/chunk-FQKZWM4L.js +49 -0
  69. package/dist/chunk-FW53T7EB.js +2 -0
  70. package/dist/chunk-G6XFR4ZL.js +4 -0
  71. package/dist/chunk-GCHRX4YW.js +4 -0
  72. package/dist/chunk-GTIYTDRE.js +562 -0
  73. package/dist/chunk-GTXSJDCO.js +2 -0
  74. package/dist/chunk-GW6Z3WGY.js +2 -0
  75. package/dist/chunk-H3LGFZVK.js +2 -0
  76. package/dist/chunk-HKQUXIFO.js +2 -0
  77. package/dist/chunk-HOA5YGOH.js +3 -0
  78. package/dist/chunk-HPJRBHVT.js +3 -0
  79. package/dist/chunk-HRWGYWRJ.js +49 -0
  80. package/dist/chunk-I2T2LLK2.js +4 -0
  81. package/dist/chunk-ICFDQHAM.js +3 -0
  82. package/dist/chunk-ID63777H.js +4 -0
  83. package/dist/chunk-IJ4HMYBE.js +3 -0
  84. package/dist/chunk-ILMHV3KM.js +2 -0
  85. package/dist/chunk-IOP6FWIM.js +2 -0
  86. package/dist/chunk-IRQOAM5G.js +2 -0
  87. package/dist/chunk-J77SU6VA.js +38 -0
  88. package/dist/chunk-JE3WZ6II.js +2 -0
  89. package/dist/chunk-JEJLSICM.js +4 -0
  90. package/dist/chunk-JOIRNPPY.js +2 -0
  91. package/dist/chunk-JSOYNVWH.js +3 -0
  92. package/dist/chunk-KMITESMT.js +2 -0
  93. package/dist/chunk-KUW32IRO.js +2 -0
  94. package/dist/chunk-KWVHSKHK.js +31 -0
  95. package/dist/chunk-L4NRUAGJ.js +18 -0
  96. package/dist/chunk-L57ZKWVG.js +6 -0
  97. package/dist/chunk-LTA3BRZX.js +2 -0
  98. package/dist/chunk-LU3BMVH2.js +10 -0
  99. package/dist/chunk-LZYFLFEH.js +2 -0
  100. package/dist/chunk-MOVBWNIP.js +16 -0
  101. package/dist/chunk-MVB3DAEY.js +3 -0
  102. package/dist/chunk-N3IQCBCF.js +29 -0
  103. package/dist/chunk-NAUD7LCA.js +2 -0
  104. package/dist/chunk-NCZUNH3E.js +109 -0
  105. package/dist/chunk-NE6IU5ZD.js +5 -0
  106. package/dist/chunk-NEDP5RFQ.js +60 -0
  107. package/dist/chunk-NMTSZXCL.js +2 -0
  108. package/dist/chunk-NNJ2KZZG.js +4 -0
  109. package/dist/chunk-NNO6A2PO.js +2 -0
  110. package/dist/chunk-NNOKTMZT.js +20 -0
  111. package/dist/chunk-O6QTXQPJ.js +13 -0
  112. package/dist/chunk-OANDYLJQ.js +2 -0
  113. package/dist/chunk-OFBE4NGP.js +2 -0
  114. package/dist/chunk-OGTFJ3XD.js +2 -0
  115. package/dist/chunk-OL6KJP3N.js +16 -0
  116. package/dist/chunk-OLF4MA5W.js +8 -0
  117. package/dist/chunk-OTOKVOJ3.js +2 -0
  118. package/dist/chunk-OVTS4DKB.js +2 -0
  119. package/dist/chunk-OZYRSMSH.js +3 -0
  120. package/dist/chunk-P5XHIJHI.js +2 -0
  121. package/dist/chunk-PBI2LFKH.js +2 -0
  122. package/dist/chunk-PIOMTC27.js +2 -0
  123. package/dist/chunk-PTAWHLVJ.js +6 -0
  124. package/dist/chunk-PX4RYAAK.js +2 -0
  125. package/dist/chunk-PYAB5SM6.js +7 -0
  126. package/dist/chunk-Q5ELPRKQ.js +2 -0
  127. package/dist/chunk-Q65CQ4XL.js +2 -0
  128. package/dist/chunk-Q72QSKXC.js +308 -0
  129. package/dist/chunk-QCN62RTF.js +3 -0
  130. package/dist/chunk-QDCCHMVZ.js +2 -0
  131. package/dist/chunk-QHRNXP3C.js +3 -0
  132. package/dist/chunk-QKPLA6IC.js +2 -0
  133. package/dist/chunk-QOKYJ33H.js +2 -0
  134. package/dist/chunk-QW7EP6WI.js +21 -0
  135. package/dist/chunk-R2NOK63J.js +4 -0
  136. package/dist/chunk-RBAS5ZHI.js +2 -0
  137. package/dist/chunk-RDBI2RXU.js +9 -0
  138. package/dist/chunk-RKEJ6VTF.js +73 -0
  139. package/dist/chunk-RR7SX44N.js +35 -0
  140. package/dist/chunk-RU65DDUP.js +215 -0
  141. package/dist/chunk-SELM5MER.js +2 -0
  142. package/dist/chunk-SGX43S2L.js +2 -0
  143. package/dist/chunk-SMRBZ6EC.js +2 -0
  144. package/dist/chunk-SNNWPCN7.js +4 -0
  145. package/dist/chunk-ST7V3SKN.js +2 -0
  146. package/dist/chunk-SWHMHUKF.js +2 -0
  147. package/dist/chunk-SYDJMPES.js +2 -0
  148. package/dist/chunk-SZD2KF7Q.js +2 -0
  149. package/dist/chunk-T3DGWPXM.js +3 -0
  150. package/dist/chunk-TFZB6XTM.js +239 -0
  151. package/dist/chunk-TIIC3ZE7.js +2 -0
  152. package/dist/chunk-TRRC4ZJ7.js +2 -0
  153. package/dist/chunk-TXXOEMZJ.js +2 -0
  154. package/dist/chunk-UBGWN7I4.js +2 -0
  155. package/dist/chunk-UCD3H3UZ.js +5 -0
  156. package/dist/chunk-UDS562V4.js +5 -0
  157. package/dist/chunk-UNBY47BC.js +3 -0
  158. package/dist/chunk-UP3BUZR5.js +74 -0
  159. package/dist/chunk-UXM43C7T.js +3 -0
  160. package/dist/chunk-UZGZB3VB.js +3 -0
  161. package/dist/chunk-VE5AVNMP.js +2 -0
  162. package/dist/chunk-VEXUL62T.js +2 -0
  163. package/dist/chunk-VFY6Y2H6.js +61 -0
  164. package/dist/chunk-VUIYB2V3.js +2 -0
  165. package/dist/chunk-VXYS3FZD.js +23 -0
  166. package/dist/chunk-WE5RZHZ7.js +5 -0
  167. package/dist/chunk-WMPRTGH2.js +2 -0
  168. package/dist/chunk-WOQBZPIF.js +2 -0
  169. package/dist/chunk-XLQ3GLWZ.js +2 -0
  170. package/dist/chunk-XME3HPXZ.js +2 -0
  171. package/dist/chunk-XMQ23E27.js +2 -0
  172. package/dist/chunk-XWUOUWYI.js +2 -0
  173. package/dist/chunk-XZEE23VG.js +5 -0
  174. package/dist/chunk-Y6KHROC3.js +7 -0
  175. package/dist/chunk-YESXMKX3.js +3 -0
  176. package/dist/chunk-YMGZZEW4.js +2 -0
  177. package/dist/chunk-YSNONTJ2.js +2 -0
  178. package/dist/chunk-YUKYB54I.js +1 -0
  179. package/dist/chunk-YVCIMIOC.js +12 -0
  180. package/dist/chunk-Z54RD7VL.js +3 -0
  181. package/dist/chunk-ZKX2FRS6.js +15 -0
  182. package/dist/chunk-ZMI2JSX2.js +2 -0
  183. package/dist/chunk-ZV3JV5G5.js +8 -0
  184. package/dist/chunk-ZZ3MWF33.js +4 -0
  185. package/dist/chunk-ZZXSWSN6.js +2 -0
  186. package/dist/cli-context-3SNLDYBM.js +3 -0
  187. package/dist/cli-context-T3B7W6GG.js +2 -0
  188. package/dist/cli-program-YNOXO72B.js +7 -0
  189. package/dist/cli.js +3 -0
  190. package/dist/code-DlqpBDd0.d.ts +121 -0
  191. package/dist/command-descriptors-6AOUKWW7.js +346 -0
  192. package/dist/command-descriptors-ZFKJSRUP.js +344 -0
  193. package/dist/command-panels-SZONPMLJ.js +3 -0
  194. package/dist/config-types-BNoC96J3.d.ts +560 -0
  195. package/dist/db-D7sauVFH.d.ts +95 -0
  196. package/dist/direct-navigation-DP4LVMRX.js +3 -0
  197. package/dist/direct-navigation-FLUS3BT6.js +2 -0
  198. package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
  199. package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
  200. package/dist/file-kind-BKCVMNUf.d.ts +10 -0
  201. package/dist/frontend-behavior-evidence-EfM4_9bc.d.ts +4 -0
  202. package/dist/git-history-ChNHbfZQ.d.ts +13 -0
  203. package/dist/graph-evidence-BIFqyisO.d.ts +131 -0
  204. package/dist/health-DJaZXg8I.d.ts +340 -0
  205. package/dist/index.d.ts +183 -0
  206. package/dist/index.js +2 -0
  207. package/dist/invocation-command-descriptors-QT2JMY5J.js +3 -0
  208. package/dist/invocation-command-descriptors-YN4QJEAX.js +2 -0
  209. package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
  210. package/dist/output-continuation-command-2V2SL4TD.js +2 -0
  211. package/dist/output-continuation-command-65J5IP3O.js +3 -0
  212. package/dist/postinstall.js +3 -0
  213. package/dist/project-reindex-5JOKXAXT.js +2 -0
  214. package/dist/project-reindex-UQBIKO4M.js +3 -0
  215. package/dist/queries/affected.d.ts +40 -0
  216. package/dist/queries/affected.js +2 -0
  217. package/dist/queries/anchors.d.ts +123 -0
  218. package/dist/queries/anchors.js +2 -0
  219. package/dist/queries/architecture.d.ts +166 -0
  220. package/dist/queries/architecture.js +2 -0
  221. package/dist/queries/bottlenecks.d.ts +68 -0
  222. package/dist/queries/bottlenecks.js +2 -0
  223. package/dist/queries/by-kind.d.ts +27 -0
  224. package/dist/queries/by-kind.js +2 -0
  225. package/dist/queries/call-graph.d.ts +52 -0
  226. package/dist/queries/call-graph.js +2 -0
  227. package/dist/queries/change-surface.d.ts +55 -0
  228. package/dist/queries/change-surface.js +2 -0
  229. package/dist/queries/cleanup-plan.d.ts +66 -0
  230. package/dist/queries/cleanup-plan.js +2 -0
  231. package/dist/queries/co-change.d.ts +90 -0
  232. package/dist/queries/co-change.js +2 -0
  233. package/dist/queries/code.d.ts +6 -0
  234. package/dist/queries/code.js +2 -0
  235. package/dist/queries/complexity-hotspots.d.ts +61 -0
  236. package/dist/queries/complexity-hotspots.js +2 -0
  237. package/dist/queries/complexity.d.ts +74 -0
  238. package/dist/queries/complexity.js +2 -0
  239. package/dist/queries/context.d.ts +146 -0
  240. package/dist/queries/context.js +2 -0
  241. package/dist/queries/convergence.d.ts +33 -0
  242. package/dist/queries/convergence.js +2 -0
  243. package/dist/queries/coupling.d.ts +32 -0
  244. package/dist/queries/coupling.js +2 -0
  245. package/dist/queries/cycles.d.ts +66 -0
  246. package/dist/queries/cycles.js +2 -0
  247. package/dist/queries/dataflow.d.ts +77 -0
  248. package/dist/queries/dataflow.js +2 -0
  249. package/dist/queries/dead.d.ts +58 -0
  250. package/dist/queries/dead.js +2 -0
  251. package/dist/queries/decorative-checkers.d.ts +34 -0
  252. package/dist/queries/decorative-checkers.js +2 -0
  253. package/dist/queries/deep-chains.d.ts +5 -0
  254. package/dist/queries/deep-chains.js +2 -0
  255. package/dist/queries/dependence-slice.d.ts +46 -0
  256. package/dist/queries/dependence-slice.js +2 -0
  257. package/dist/queries/dependency-depth.d.ts +49 -0
  258. package/dist/queries/dependency-depth.js +2 -0
  259. package/dist/queries/deps.d.ts +15 -0
  260. package/dist/queries/deps.js +2 -0
  261. package/dist/queries/diff-impact.d.ts +165 -0
  262. package/dist/queries/diff-impact.js +2 -0
  263. package/dist/queries/doc-drift.d.ts +115 -0
  264. package/dist/queries/doc-drift.js +2 -0
  265. package/dist/queries/drift.d.ts +79 -0
  266. package/dist/queries/drift.js +2 -0
  267. package/dist/queries/duplicate-bodies.d.ts +55 -0
  268. package/dist/queries/duplicate-bodies.js +2 -0
  269. package/dist/queries/entry-map.d.ts +121 -0
  270. package/dist/queries/entry-map.js +2 -0
  271. package/dist/queries/evidence.d.ts +70 -0
  272. package/dist/queries/evidence.js +2 -0
  273. package/dist/queries/extract-candidates.d.ts +52 -0
  274. package/dist/queries/extract-candidates.js +2 -0
  275. package/dist/queries/fan.d.ts +53 -0
  276. package/dist/queries/fan.js +2 -0
  277. package/dist/queries/files.d.ts +20 -0
  278. package/dist/queries/files.js +2 -0
  279. package/dist/queries/health.d.ts +8 -0
  280. package/dist/queries/health.js +2 -0
  281. package/dist/queries/hierarchy.d.ts +21 -0
  282. package/dist/queries/hierarchy.js +2 -0
  283. package/dist/queries/hotspots.d.ts +42 -0
  284. package/dist/queries/hotspots.js +2 -0
  285. package/dist/queries/imports.d.ts +34 -0
  286. package/dist/queries/imports.js +2 -0
  287. package/dist/queries/incomplete-migration.d.ts +90 -0
  288. package/dist/queries/incomplete-migration.js +2 -0
  289. package/dist/queries/index.d.ts +180 -0
  290. package/dist/queries/index.js +2 -0
  291. package/dist/queries/isolated.d.ts +24 -0
  292. package/dist/queries/isolated.js +2 -0
  293. package/dist/queries/locality-candidates.d.ts +51 -0
  294. package/dist/queries/locality-candidates.js +2 -0
  295. package/dist/queries/members.d.ts +21 -0
  296. package/dist/queries/members.js +2 -0
  297. package/dist/queries/methods.d.ts +43 -0
  298. package/dist/queries/methods.js +2 -0
  299. package/dist/queries/not-implemented.d.ts +33 -0
  300. package/dist/queries/not-implemented.js +2 -0
  301. package/dist/queries/outline.d.ts +22 -0
  302. package/dist/queries/outline.js +2 -0
  303. package/dist/queries/passthrough-candidates.d.ts +41 -0
  304. package/dist/queries/passthrough-candidates.js +2 -0
  305. package/dist/queries/plan-context.d.ts +33 -0
  306. package/dist/queries/plan-context.js +2 -0
  307. package/dist/queries/react-component-duplicates.d.ts +39 -0
  308. package/dist/queries/react-component-duplicates.js +2 -0
  309. package/dist/queries/react-hook-candidates.d.ts +44 -0
  310. package/dist/queries/react-hook-candidates.js +2 -0
  311. package/dist/queries/react-large-component-pressure.d.ts +34 -0
  312. package/dist/queries/react-large-component-pressure.js +2 -0
  313. package/dist/queries/recent-duplicates.d.ts +79 -0
  314. package/dist/queries/recent-duplicates.js +2 -0
  315. package/dist/queries/redundant-reexports.d.ts +37 -0
  316. package/dist/queries/redundant-reexports.js +2 -0
  317. package/dist/queries/reference-neighborhood.d.ts +4 -0
  318. package/dist/queries/reference-neighborhood.js +2 -0
  319. package/dist/queries/reference-reachability.d.ts +48 -0
  320. package/dist/queries/reference-reachability.js +2 -0
  321. package/dist/queries/refs.d.ts +13 -0
  322. package/dist/queries/refs.js +2 -0
  323. package/dist/queries/self-audit.d.ts +65 -0
  324. package/dist/queries/self-audit.js +2 -0
  325. package/dist/queries/similar-chains.d.ts +48 -0
  326. package/dist/queries/similar-chains.js +2 -0
  327. package/dist/queries/similar-files.d.ts +35 -0
  328. package/dist/queries/similar-files.js +2 -0
  329. package/dist/queries/similar-signatures.d.ts +46 -0
  330. package/dist/queries/similar-signatures.js +2 -0
  331. package/dist/queries/similar.d.ts +187 -0
  332. package/dist/queries/similar.js +2 -0
  333. package/dist/queries/slice.d.ts +4 -0
  334. package/dist/queries/slice.js +2 -0
  335. package/dist/queries/source-inspection.d.ts +209 -0
  336. package/dist/queries/source-inspection.js +2 -0
  337. package/dist/queries/source-search.d.ts +85 -0
  338. package/dist/queries/source-search.js +2 -0
  339. package/dist/queries/stale-abstractions.d.ts +72 -0
  340. package/dist/queries/stale-abstractions.js +2 -0
  341. package/dist/queries/stats.d.ts +15 -0
  342. package/dist/queries/stats.js +2 -0
  343. package/dist/queries/surface.d.ts +22 -0
  344. package/dist/queries/surface.js +2 -0
  345. package/dist/queries/symbols.d.ts +14 -0
  346. package/dist/queries/symbols.js +2 -0
  347. package/dist/queries/system-map.d.ts +449 -0
  348. package/dist/queries/system-map.js +2 -0
  349. package/dist/queries/system.d.ts +21 -0
  350. package/dist/queries/system.js +2 -0
  351. package/dist/queries/test-quality.d.ts +56 -0
  352. package/dist/queries/test-quality.js +2 -0
  353. package/dist/queries/trace.d.ts +68 -0
  354. package/dist/queries/trace.js +2 -0
  355. package/dist/queries/twin-ab.d.ts +66 -0
  356. package/dist/queries/twin-ab.js +2 -0
  357. package/dist/queries/twin-drift.d.ts +119 -0
  358. package/dist/queries/twin-drift.js +2 -0
  359. package/dist/queries/unused-imports.d.ts +4 -0
  360. package/dist/queries/unused-imports.js +2 -0
  361. package/dist/queries/unused-params.d.ts +38 -0
  362. package/dist/queries/unused-params.js +2 -0
  363. package/dist/queries/value-flow.d.ts +42 -0
  364. package/dist/queries/value-flow.js +2 -0
  365. package/dist/queries/vue-component-duplicates.d.ts +43 -0
  366. package/dist/queries/vue-component-duplicates.js +2 -0
  367. package/dist/queries/vue-composable-candidates.d.ts +44 -0
  368. package/dist/queries/vue-composable-candidates.js +2 -0
  369. package/dist/queries/vue-large-view-pressure.d.ts +41 -0
  370. package/dist/queries/vue-large-view-pressure.js +2 -0
  371. package/dist/queries/wrapper-candidates.d.ts +34 -0
  372. package/dist/queries/wrapper-candidates.js +2 -0
  373. package/dist/reindex-worker.js +3 -0
  374. package/dist/reindex.d.ts +254 -0
  375. package/dist/reindex.js +298 -0
  376. package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
  377. package/dist/runtime.d.ts +555 -0
  378. package/dist/runtime.js +4 -0
  379. package/dist/rust-semantic-session-server.js +2 -0
  380. package/dist/rust-semantic-session-worker.js +2 -0
  381. package/dist/rust-semantic-worker.js +2 -0
  382. package/dist/scip-cli-B7N3haxa.d.ts +67 -0
  383. package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
  384. package/dist/symbol-types-BIQwfoAx.d.ts +74 -0
  385. package/dist/typescript-mailbox-worker.js +2 -0
  386. package/dist/watch-server.js +8 -0
  387. package/docs/AGENT_GUIDE.md +148 -0
  388. package/docs/AI_FAILURE_MODES.md +43 -0
  389. package/docs/API.md +40 -0
  390. package/docs/API_EVOLUTION.md +77 -0
  391. package/docs/CLI_JSON_OUTPUT.md +389 -0
  392. package/docs/COMMAND_REFERENCE.md +294 -0
  393. package/docs/CONFIGURATION_WRITE_SAFETY.md +131 -0
  394. package/docs/DETECTOR_GUIDE.md +46 -0
  395. package/docs/DURABILITY.md +159 -0
  396. package/docs/INDEX_GENERATIONS.md +167 -0
  397. package/docs/LOCK_PROTOCOL.md +133 -0
  398. package/docs/MAILBOX_LIFECYCLE.md +224 -0
  399. package/docs/REGEX_POLICY.md +36 -0
  400. package/docs/REINDEX_METADATA_COMPATIBILITY.md +104 -0
  401. package/docs/RUST_DURABLE_SESSION_PROTOCOL.md +126 -0
  402. package/docs/SECURITY_MODEL.md +125 -0
  403. package/docs/TELEMETRY_RETENTION.md +84 -0
  404. package/docs/TIME_SEMANTICS.md +77 -0
  405. package/docs/WATCH_REFRESH_REQUESTS.md +123 -0
  406. package/docs/WINDOWS_SIDECAR_RELEASE.md +424 -0
  407. package/docs/accuracy-audit-checklist.md +304 -0
  408. package/docs/accuracy-hardening-goal.md +500 -0
  409. package/docs/analyzer-inventory.md +78 -0
  410. package/docs/analyzer-validation-protocol.md +84 -0
  411. package/docs/architecture-coherence-vision.md +254 -0
  412. package/docs/assets/codebaseiq-logo-dark.svg +21 -0
  413. package/docs/assets/codebaseiq-logo.svg +24 -0
  414. package/docs/locality-analyzer-design.md +193 -0
  415. package/docs/schemas/cli-json-envelope.schema.json +237 -0
  416. package/docs/schemas/cli-output-page.schema.json +104 -0
  417. package/docs/schemas/npm-release-state.schema.json +146 -0
  418. package/docs/schemas/observation-receipt.schema.json +164 -0
  419. package/docs/schemas/project-config.schema.json +318 -0
  420. package/docs/schemas/suppression-record.schema.json +79 -0
  421. package/docs/schemas/windows-sidecar-provenance.schema.json +137 -0
  422. package/package.json +482 -0
  423. package/scripts/build-codebaseiq-windows.mjs +197 -0
  424. package/scripts/codebaseiq-windows-provenance.mjs +364 -0
  425. package/scripts/evidence-product-contract.mjs +197 -0
  426. package/scripts/verify-codebaseiq-windows.mjs +29 -0
  427. package/skills/codebaseiq/SKILL.md +75 -0
  428. package/skills/codebaseiq/agents/openai.yaml +4 -0
  429. package/skills/codebaseiq-explore/SKILL.md +34 -0
  430. package/skills/codebaseiq-explore/agents/openai.yaml +4 -0
  431. package/skills/concrete-plan/SKILL.md +79 -0
  432. package/skills/concrete-plan/agents/openai.yaml +4 -0
@@ -0,0 +1,424 @@
1
+ # Windows Sidecar Provenance and Release
2
+
3
+ The Windows sidecar is the npm package `codebaseiq-windows` and the two
4
+ Windows PE executables it carries. It is a platform-specific optional package
5
+ whose distinguishing role is to make the `scip` index converter available on
6
+ Windows without placing roughly 40 MB of Windows-only bytes in every
7
+ `codebaseiq` installation.
8
+
9
+ A sidecar provenance record is the versioned `provenance.json` file committed
10
+ under `packages/codebaseiq-windows`. It is a build attestation distinguished by
11
+ binding one sidecar package version to the exact upstream repository, tag,
12
+ immutable source commit, Go toolchain, build flags, Windows target, PE machine,
13
+ file size, and SHA-256 of both executable files. The JSON Schema is
14
+ `docs/schemas/windows-sidecar-provenance.schema.json`.
15
+
16
+ ## Authority and guarantees
17
+
18
+ The committed provenance record is the release authority for local sidecar
19
+ bytes. The executable files are intentionally ignored by Git because of their
20
+ size; file presence alone therefore proves nothing. A release is locally
21
+ eligible only when all of these facts agree:
22
+
23
+ 1. The main package pins the exact sidecar package version.
24
+ 2. `provenance.json` names that package and version.
25
+ 3. Its repository, tag, Go version, command, flags, and build environment match
26
+ the checked-in build contract.
27
+ 4. It names exactly the x64 and ARM64 targets.
28
+ 5. Each file is a PE32+ executable with the target's machine code.
29
+ 6. Each observed byte size and SHA-256 equals the manifest.
30
+
31
+ This evidence proves which reviewed build claim belongs to the exact local
32
+ bytes. It is not a cryptographic signature by a remote builder. Trust in the
33
+ source and toolchain claim comes from producing the record in a clean trusted
34
+ environment, reviewing the generated manifest, and committing it with the
35
+ release change. Registry-byte identity and partial multi-package publication
36
+ are separate contracts implemented by REL-02 and REL-03.
37
+
38
+ ## Publisher checklist
39
+
40
+ This checklist covers a release run from a workstation. It is the entry point
41
+ for the rebuild procedure and the operator runbook below, and it orders them by
42
+ cost of failure rather than by the order the CI workflow happens to use.
43
+
44
+ A workstation release is the only one available. The repository's release
45
+ workflow is a preflight: it reports the plan, carries no registry credential,
46
+ and cannot publish. Two facts keep it that way. The declaration build needs more
47
+ memory than a standard hosted runner has, for the reason recorded in the
48
+ `//build` note in `package.json`. And the release lock is checkout-local, so it
49
+ could not serialize a runner against a workstation — exactly one host may run
50
+ the coordinator in publish mode at a time.
51
+
52
+ ### Workstation prerequisites
53
+
54
+ None of these are checked by the coordinator, and each one fails late if it is
55
+ missing.
56
+
57
+ - **Repository credentials.** The remote is private, so the clone needs a
58
+ credential helper, a token, or an SSH remote. Nothing in the repository
59
+ provisions this, and the coordinator only ever reads local `HEAD`.
60
+ - **A Git identity**, because the release change must be committed before the
61
+ coordinator will run. A signing configuration inherited from another machine
62
+ needs a usable key: suite cases that commit do not disable signing.
63
+ - **A checkout whose line endings are LF.** `format:check` is the first thing
64
+ `lint` runs, and `lint` is the last preflight command, so a checkout made with
65
+ `core.autocrlf=true` fails after typecheck, the audit, and the complete suite
66
+ have already passed. Put the checkout on the Linux filesystem.
67
+ - **Node.js** at or above the `engines` floor, and **Go**, whose reported
68
+ version must carry the toolchain token pinned in `provenance.json`. Only that
69
+ token is compared; the operating system and architecture suffix is not.
70
+ - **The `scip` CLI on `PATH`**, at the version `src/platform/scip-cli.ts` pins.
71
+ Much of the suite builds real indexes and needs it. `curl`, `tar`,
72
+ `sha256sum`, `mktemp`, and `which` are all invoked by the steps that install
73
+ and probe it.
74
+ - **Memory above the declaration build's requirement**, recorded with its
75
+ measured thresholds in the `//build` note in `package.json`. Under WSL2 this
76
+ is a `.wslconfig` setting on the Windows host, outside the checkout, and it
77
+ takes effect only after the virtual machine is restarted.
78
+ - **Disk for work that never appears in the checkout**: the Go toolchain and its
79
+ module and build caches, a temporary upstream clone, both sidecar binaries at
80
+ the sizes `provenance.json` records, and a second temporary tree holding both
81
+ packed tarballs. `TMPDIR` must be writable; the coordinator creates its
82
+ temporary tree before anything else.
83
+ - **Network reachability** for the npm registry, for the production dependency
84
+ audit, and for the sidecar build, which clones upstream `scip` and resolves
85
+ its Go module graph on the publishing host.
86
+ - **A registry credential keyed to the registry the coordinator resolves.**
87
+ Authentication is never checked before publication. A token stored under a
88
+ different host key still produces a clean dry run, because an anonymous
89
+ lookup answers `E404` and both packages read as absent; it fails only at
90
+ publication, after the complete preflight.
91
+ - **Development dependencies installed.** Every release entry point runs through
92
+ `vite-node`, which arrives only as a transitive development dependency. An
93
+ install that omits them, including one caused by an exported
94
+ `NODE_ENV=production`, fails before any gate runs.
95
+ - **A terminal, or an exported `CI`.** The reporter is selected on that variable
96
+ alone. Redirecting or piping a run with `CI` unset selects the reporter whose
97
+ main-process cost fails a suite in which every test passed.
98
+ - **Knowledge of which optional toolchains are present.** Cases that skip on a
99
+ bare machine become real work when their toolchain exists: `cargo` on `PATH`
100
+ compiles a Rust kernel, and a Java runtime with the cached model-checker jar
101
+ runs a specification. A developer workstation is where these are present.
102
+
103
+ ### Order of work
104
+
105
+ 1. Establish credentials and Git identity, then clone.
106
+ 2. Build and verify the sidecar, following the rebuild procedure below. Do this
107
+ before installing dependencies: the build and its verifier need only `git`
108
+ and `go`, and the coordinator does not check the binaries until after every
109
+ preflight command has run. On a checkout that has never built the sidecar the
110
+ rebuild is required, not conditional — the binaries are ignored by Git and
111
+ have never existed locally.
112
+ 3. Confirm the checkout is clean with `git status --porcelain=v1
113
+ --untracked-files=all`. The cleanliness gate runs twice, before preflight and
114
+ again after both packs, so anything a run leaves behind aborts it at the end.
115
+ 4. Put `scip` on `PATH`, then install dependencies.
116
+ 5. Follow the operator runbook below.
117
+
118
+ ### First publish
119
+
120
+ The committed version pair is the release coordinate, so the runbook's first
121
+ step does not apply: nothing is bumped for a first publish. What replaces it is
122
+ a check the coordinator makes before it takes the lock — that the main package's
123
+ optional-dependency pin is exactly equal to the sidecar's own version.
124
+
125
+ Four traps have no representation in the failure table, because each one is
126
+ reachable before the coordinator reports anything:
127
+
128
+ - **Do not move `HEAD` between the dry run and the publication.** The dry run
129
+ writes the durable record before its own branch is taken, and that record
130
+ pins the source revision. Committing a fix the dry run revealed is enough to
131
+ make the publication refuse. The recovery for a first publish is to move the
132
+ recorded file out of the coordinate-stable path, which is ignored by Git, and
133
+ rerun the dry run at the new revision. Do not bump a version to satisfy a
134
+ local bookkeeping file when nothing has reached the registry.
135
+ - **Confirm both names are ownable before burning a preflight.** Registry
136
+ presence is decided per version, and only `E404` counts as absent. A name
137
+ owned by someone else without this version reads as absent, so the coordinator
138
+ runs everything and fails at publication on a permission error it does not
139
+ interpret.
140
+ - **Never restore `packages/codebaseiq-windows/` to force a clean tree.** If the
141
+ rebuild rewrites the tracked provenance or README, the pinned inputs no longer
142
+ produce the reviewed bytes. Restoring them leaves a manifest that disagrees
143
+ with the local binaries, which fails only after the complete preflight.
144
+ Diagnose which input changed and commit deliberately, or stop.
145
+ - **A malformed lock is the one thing a rerun cannot clear.** A lock whose owner
146
+ is a dead process is reclaimed automatically; a corrupt record fails closed and
147
+ reports contention until it is removed by hand.
148
+
149
+ A later release that does bump either version must update the version
150
+ expectations in `tests/scripts/windows-sidecar-doc.test.ts` and the recorded
151
+ versions in `package-lock.json` in the same commit. The suite runs as a preflight
152
+ command, so a bump without that edit fails before anything is packed.
153
+
154
+ ## Rebuild procedure
155
+
156
+ The build contract currently pins:
157
+
158
+ - SCIP repository: `https://github.com/scip-code/scip.git`
159
+ - SCIP tag: `v0.8.1`
160
+ - Go toolchain: `go1.26.4`
161
+ - command: `go build -trimpath -ldflags="-s -w" ./cmd/scip`
162
+ - environment: `CGO_ENABLED=0`, `GOOS=windows`
163
+ - targets: `GOARCH=amd64` and `GOARCH=arm64`
164
+
165
+ From a clean trusted checkout:
166
+
167
+ 1. Install the pinned Go toolchain.
168
+ 2. Run `npm run build:codebaseiq-windows`.
169
+ 3. Run `npm run verify:codebaseiq-windows`.
170
+ 4. Review the generated `packages/codebaseiq-windows/provenance.json`, README, and
171
+ license change. Confirm the immutable source commit is the intended tag.
172
+ 5. Run `npm pack --dry-run` inside `packages/codebaseiq-windows`. Its `prepack`
173
+ lifecycle verifies provenance before npm computes the tarball.
174
+ 6. Commit the provenance and release metadata. Do not commit the ignored
175
+ executables.
176
+
177
+ `SCIP_REPO_URL`, `SCIP_VERSION`, and `SCIP_GO_VERSION` are intentional-update
178
+ inputs, not ways to bypass the contract. A changed value makes verification
179
+ fail until a rebuild produces reviewed evidence for the new input.
180
+
181
+ This package starts at `0.1.0`, matching the `codebaseiq` release line it
182
+ ships with. It is a distinct npm name with no published history, so the
183
+ registry identity gate treats its first publish as a first publish.
184
+
185
+ The predecessor `scip-query-scip-windows` is separate history and stays on
186
+ the registry: `0.13.0` carried the same executables without
187
+ `provenance.json`, and because npm versions are immutable the gate required
188
+ the `0.13.1` patch bump rather than overwriting it. Deprecate that package
189
+ toward this one; do not reuse its numbering here.
190
+
191
+ ## Registry identity gate
192
+
193
+ A packed sidecar identity is the npm package coordinate, exact tarball
194
+ SHA-1/SHA-512/size, and decoded provenance bytes observed from one locally
195
+ created `.tgz`. What distinguishes it from a version-existence check is that
196
+ it identifies the bytes intended for installation, not merely the name under
197
+ which some bytes were published.
198
+
199
+ Before any registry mutation, the release flow:
200
+
201
+ 1. verifies the checked-in binaries and provenance;
202
+ 2. packs the local sidecar once into a private temporary directory;
203
+ 3. recomputes the tarball hashes and size instead of trusting npm's JSON
204
+ report;
205
+ 4. extracts `provenance.json` from the tar archive under a 64 MiB decompression
206
+ ceiling; and
207
+ 5. requires the packed manifest bytes to equal the reviewed local file.
208
+
209
+ For an existing version, the flow reads npm's `dist` identity, downloads the
210
+ published tarball with lifecycle scripts disabled, recomputes its hashes, and
211
+ requires all of the following to agree:
212
+
213
+ - registry metadata and downloaded tarball SHA-1/SHA-512;
214
+ - local and registry package names and versions;
215
+ - local and registry tarball SHA-1/SHA-512; and
216
+ - local and registry provenance bytes.
217
+
218
+ An explicit npm `E404` is the only evidence that authorizes the
219
+ not-yet-published branch. Authentication failures, timeouts, output-limit
220
+ failures, malformed metadata, generic proxy errors, and server failures are
221
+ ambiguous registry states and stop the release. Pack and registry commands
222
+ have finite 120-second and 30-second deadlines respectively, a 4 MiB captured
223
+ output ceiling, and typed timeout/output/exit failure classification.
224
+
225
+ Run `npm run verify:codebaseiq-windows-registry` for a read-only reconciliation. It
226
+ packs and verifies local bytes, then either proves that the existing registry
227
+ tarball is identical or reports that the version is absent and ready for its
228
+ first publish. The wrapper passes an explicit verification-only capability;
229
+ no inherited environment variable can suppress an authorized release publish.
230
+
231
+ The complete release coordinator publishes an already verified local `.tgz`,
232
+ not a directory that npm could repack differently. If a publish command fails
233
+ because another process won the race, the coordinator rereads and downloads
234
+ the winning registry version. It may continue only when the winner has the
235
+ same complete identity; a different winner requires a new package version.
236
+
237
+ The historical `npm run publish:codebaseiq-windows` alias is now local verification
238
+ only. `npm_lifecycle_event`, npm's dry-run environment, and other inherited
239
+ environment variables cannot grant it registry mutation authority. The
240
+ sidecar-only registry reader has an explicit verification capability, while
241
+ the complete coordinator is the only publishing CLI.
242
+
243
+ ## Two-package release coordinator
244
+
245
+ A two-package release is one ordered publication of an exact main-package
246
+ tarball and the exact Windows-sidecar tarball pinned by that main package.
247
+ Unlike a database transaction, it cannot roll back an npm publication. Its
248
+ essential safety property is therefore not atomicity: it is that every
249
+ partial registry state identifies the intended bytes, is observed before the
250
+ next irreversible step, and can be reconciled by rerunning one command.
251
+
252
+ The release coordinator is the repository command that owns this entire
253
+ ordering. It differs from a lifecycle hook by packing and validating both
254
+ artifacts before either registry mutation, recording local recovery evidence,
255
+ and verifying registry truth after each publication:
256
+
257
+ 1. acquire the token-owned release lock;
258
+ 2. require a clean Git checkout and record the exact `HEAD` object ID;
259
+ 3. resolve one canonical credential-free HTTPS npm registry and retain it for
260
+ the complete run;
261
+ 4. run typecheck, the production dependency audit, the complete test suite, and
262
+ lint; lint includes formatting, production build, API compatibility,
263
+ downstream compilation, and skill link checks;
264
+ 5. verify provenance and pack the sidecar;
265
+ 6. pack the main package with lifecycle scripts disabled;
266
+ 7. extract both packed `package.json` files, require their coordinates, and
267
+ require the packed main tarball to pin the exact packed sidecar version;
268
+ 8. require Git `HEAD` and complete tracked/untracked working-tree cleanliness
269
+ to be unchanged;
270
+ 9. durably record the registry and both local tarball identities before
271
+ reading the registry;
272
+ 10. observe and fully verify both registry coordinates, always passing the
273
+ retained registry URL explicitly, before the first
274
+ publish;
275
+ 11. publish and verify the sidecar if absent, then durably record that fact;
276
+ 12. publish and verify the main package if absent, then durably record that
277
+ fact; and
278
+ 13. remove private packs and release the owned lock.
279
+
280
+ Every Git, npm pack, registry, publish, test, and lint process has a finite
281
+ deadline and captured-output limit. A cleanup or lock-release failure produces
282
+ a nonzero outcome without erasing an earlier build, registry, or publication
283
+ failure from the diagnostic.
284
+
285
+ ### Operator runbook
286
+
287
+ Prepare and commit the complete release change first. The checkout must be
288
+ clean because the recorded source revision is the wider evidence from which
289
+ the two packed artifacts were tested and produced.
290
+
291
+ 1. Bump the main package version. If sidecar bytes or provenance changed, also
292
+ bump the immutable sidecar version and update its exact optional-dependency
293
+ pin.
294
+ 2. Rebuild and review sidecar provenance when required, following the rebuild
295
+ procedure above.
296
+ 3. Review and commit the version, lockfile, changelog, provenance, schemas,
297
+ release code, and tests.
298
+ 4. Run:
299
+
300
+ ```bash
301
+ npm run release:npm:dry-run
302
+ ```
303
+
304
+ This runs the complete local preflight, packs both artifacts, writes the
305
+ local recovery record, and reads/downloads any existing registry versions.
306
+ It never invokes `npm publish`.
307
+
308
+ 5. Review the reported coordinates, integrities, registry states, and the JSON
309
+ record under `.codebaseiq/releases/`.
310
+ 6. Run:
311
+
312
+ ```bash
313
+ npm run release:npm
314
+ ```
315
+
316
+ 7. Require the final output to say that both exact registry identities are
317
+ verified. A later retry of the same command is safe: it repeats local
318
+ preflight and registry verification, but it does not republish an already
319
+ identical coordinate.
320
+
321
+ Do not run `npm publish` directly. The root `prepublishOnly` guard refuses that
322
+ path because npm's lifecycle owns only one package publication and cannot
323
+ record or recover the pair. An operator can deliberately bypass lifecycle
324
+ scripts with npm's `--ignore-scripts` option; that is an administrative
325
+ capability outside the repository's enforcement boundary, not an alternate
326
+ supported release path. The coordinator itself uses `--ignore-scripts` only
327
+ when publishing the two tarballs it has already packed, hashed, inspected,
328
+ and recorded.
329
+
330
+ ### Durable local release state
331
+
332
+ A local release-state record is a schema-versioned JSON recovery fact stored
333
+ outside both npm tarballs under `.codebaseiq/releases/`. It is distinguished
334
+ from registry authority by recording what this checkout intended and what an
335
+ earlier run verified, while never permitting a later run to skip fresh
336
+ registry observation.
337
+
338
+ Schema version 1 records:
339
+
340
+ - a content-derived `releaseId`;
341
+ - the clean Git revision used for preflight and packing;
342
+ - the canonical HTTPS npm registry on which the coordinates are interpreted;
343
+ - each package's name, version, byte size, SHA-1, and SHA-512 integrity;
344
+ - `createdAt` and nondecreasing `updatedAt` timestamps;
345
+ - the writer identity; and
346
+ - a canonical set of completed facts:
347
+ `local-preflight-complete`, `sidecar-registry-verified`, and
348
+ `main-registry-verified`.
349
+
350
+ The registry facts are independent observations, not a fictional transaction
351
+ log. For example, an old or manually created state may have the main identity
352
+ verified while the sidecar is absent. The next coordinator run still verifies
353
+ both coordinates and repairs only the absent intended package.
354
+
355
+ The path is stable for one pair of package coordinates. Repacking different
356
+ bytes, using a different source revision, or selecting a different registry
357
+ under those same versions therefore collides with the existing record and
358
+ stops before registry work. The record is atomically replaced while the
359
+ release lock is owned. The coordinator reports `directory-durable` when the
360
+ host synchronizes the containing directory and
361
+ `file-flushed; directory sync unsupported` when Windows exposes only the
362
+ bounded file guarantee; a real synchronization failure aborts the run. It is
363
+ intentionally ignored by Git and omitted from the npm package: it is local
364
+ recovery state, not portable release authority. Fresh registry observation,
365
+ immutable npm versions, and exact package identity remain the external safety
366
+ authority regardless of the local result. The normative shape is
367
+ `docs/schemas/npm-release-state.schema.json`.
368
+
369
+ Current-schema additive fields are tolerated. Malformed JSON, a wrong
370
+ discriminator, an invalid identity, a noncanonical stage list, or a future
371
+ schema fails closed. Do not hand-edit a damaged record. Preserve it for
372
+ diagnosis, move it out of the coordinate-stable path, and rerun from the exact
373
+ recorded source revision; the new run will recompute local bytes and reverify
374
+ both registry coordinates before acquiring publication authority.
375
+
376
+ ## Failure and recovery
377
+
378
+ | Observed state or failure | Safe outcome and recovery |
379
+ | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
380
+ | Missing executable or provenance | Stop before registry reads; rebuild, review, and commit the intended sidecar |
381
+ | Stale hash, wrong PE machine, or changed build input | Stop before registry reads; do not authorize bytes from file presence |
382
+ | One target build fails or promotion is interrupted | No complete new build is authorized; rebuild both and rerun verification |
383
+ | Dirty checkout before preflight | Stop before tests and registry reads; commit, remove, or intentionally ignore/restore every tracked or untracked path |
384
+ | Missing, insecure, credential-bearing, or malformed registry URL | Stop before tests and registry reads; configure one canonical credential-free HTTPS npm registry |
385
+ | Git revision or any tracked/untracked path changes during preflight | Stop before the state record and registry reads; remove the concurrent editor and rerun from one completely clean revision |
386
+ | Test, lint, build, API, sidecar pack, or main pack fails | No registry mutation has occurred; fix the local failure and rerun |
387
+ | Initial state publication fails | No registry read or mutation has occurred; repair local filesystem durability/permissions and rerun |
388
+ | State contains only `local-preflight-complete` | Registry is freshly reconciled; absent packages publish in sidecar-then-main order |
389
+ | Sidecar is exact, main is absent | Record sidecar verification if needed, then publish and verify the main package |
390
+ | Main is exact, sidecar is absent | Verify the main tarball pins the intended sidecar, then publish and verify only the sidecar |
391
+ | Both packages are exact, state is stale or absent | Record both observed facts and finish without publication |
392
+ | Sidecar publishes but its state write fails | Stop before main; retry observes the exact sidecar and continues |
393
+ | Main publishes but its state write fails | Retry observes both exact registry identities and records completion |
394
+ | Publish reports failure but an identical winner is visible | Accept the registry fact after downloading and hashing it; continue |
395
+ | Publish and its immediate registry reconciliation both fail | Report both causal failures; rerun the coordinator to establish registry truth before another publication decision |
396
+ | Publish returns success but identity is not yet visible | Stop after bounded visibility retries; rerun the coordinator rather than publishing blindly |
397
+ | Registry query times out, is unauthorized, or is malformed | Stop; ambiguity is not converted to absence |
398
+ | Published tarball disagrees with `dist` metadata | Stop; treat the download or registry metadata as corrupt |
399
+ | Existing coordinate lacks provenance or has different bytes | Stop; npm versions are immutable, so bump the changed package version |
400
+ | State records different source or bytes under the same versions | Stop before registry reads; resume the recorded revision, or bump the changed package version |
401
+ | Configured registry differs from the recorded release registry | Stop before registry reads; restore the intended registry or begin new package versions for the other registry |
402
+ | Malformed or future local state | Preserve and move the artifact for diagnosis; rerun from the recorded revision so local and registry facts are rebuilt |
403
+ | Release lock is held by a live owner | Wait; a dead attributable owner is reclaimed conservatively, while unverifiable ownership fails closed |
404
+ | Cleanup and an earlier operation both fail | Both failures are reported; inspect registry/state first, then rerun to reconcile |
405
+ | Lock ownership changes before release | Command exits nonzero; do not infer failure or success from the local message—rerun and require exact registry identity |
406
+
407
+ Build outputs are produced in a private temporary directory. Only after both
408
+ targets and the manifest exist are individual files atomically replaced in the
409
+ sidecar directory. A process crash between replacements can leave an old/new
410
+ mixture visible, but the next verifier detects the mismatch and fails closed.
411
+
412
+ ## Compatibility
413
+
414
+ Schema version 1 is the first executable provenance format. Readers accept
415
+ unknown additive fields within version 1 but require every identity and binary
416
+ field used by the release decision. Missing, malformed, older, or future
417
+ versions are not treated as legacy success. Changing a required field or its
418
+ meaning requires a new schema version and an explicit overlap policy before a
419
+ writer ships it.
420
+
421
+ The local release-state schema is independently versioned at 1. Because it has
422
+ not shipped at all, it has no legacy reader. Additive current fields
423
+ are compatible; removing or reinterpreting a required identity, source, stage,
424
+ or timestamp field requires a new schema and an explicit recovery policy.