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.
- package/CHANGELOG.md +481 -0
- package/LICENSE +202 -0
- package/README.md +349 -0
- package/dist/augment-vue-worker.js +2 -0
- package/dist/call-graph-evidence-gNsxjCW8.d.ts +16 -0
- package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
- package/dist/chunk-2Q2LW5JW.js +14 -0
- package/dist/chunk-2X7V4HS4.js +88 -0
- package/dist/chunk-34WBMAYK.js +2 -0
- package/dist/chunk-35NLDRZC.js +2 -0
- package/dist/chunk-362QOSFD.js +3 -0
- package/dist/chunk-3IER7Q6H.js +12 -0
- package/dist/chunk-3JSXXYTZ.js +345 -0
- package/dist/chunk-3LCDIREB.js +4 -0
- package/dist/chunk-476NR5B7.js +2 -0
- package/dist/chunk-4FC325IF.js +30 -0
- package/dist/chunk-4WKDMDEW.js +9 -0
- package/dist/chunk-4XTAUQFD.js +2 -0
- package/dist/chunk-5PUWMSDU.js +26 -0
- package/dist/chunk-5VKBFZZU.js +3 -0
- package/dist/chunk-6BQ3DSPK.js +2 -0
- package/dist/chunk-6CS3UQTN.js +3 -0
- package/dist/chunk-6MUIJMVL.js +6 -0
- package/dist/chunk-6NW7MU72.js +40 -0
- package/dist/chunk-6OAHRI2D.js +6 -0
- package/dist/chunk-6YTSKJJ3.js +2 -0
- package/dist/chunk-7FND7D7N.js +2 -0
- package/dist/chunk-7MGU3HPH.js +2 -0
- package/dist/chunk-7NVGT435.js +2 -0
- package/dist/chunk-7XAN6GKB.js +2 -0
- package/dist/chunk-AAQQPKCU.js +2 -0
- package/dist/chunk-ADTBPVUZ.js +21 -0
- package/dist/chunk-AKB7V7TV.js +2 -0
- package/dist/chunk-ANFVSJWQ.js +11 -0
- package/dist/chunk-B2OB55RR.js +3 -0
- package/dist/chunk-B3UYV66Z.js +4 -0
- package/dist/chunk-B75HZHUP.js +2 -0
- package/dist/chunk-BFFZDZQV.js +2 -0
- package/dist/chunk-BGBBVSH4.js +2 -0
- package/dist/chunk-BH5F2Q4O.js +2 -0
- package/dist/chunk-BJ6SQAEN.js +2 -0
- package/dist/chunk-BMYOV5GP.js +77 -0
- package/dist/chunk-BVAJLC5A.js +7 -0
- package/dist/chunk-C6SBF2WH.js +4 -0
- package/dist/chunk-C74PPYLA.js +3 -0
- package/dist/chunk-C7QOQX32.js +8 -0
- package/dist/chunk-CAUCPUOF.js +7 -0
- package/dist/chunk-CO5R3UNA.js +2 -0
- package/dist/chunk-CQP3THUZ.js +7 -0
- package/dist/chunk-CVYSU6BX.js +16 -0
- package/dist/chunk-CWONGW6P.js +3 -0
- package/dist/chunk-DDZ7VHWV.js +20 -0
- package/dist/chunk-DGXRDLV5.js +2 -0
- package/dist/chunk-DO6WQD2T.js +3 -0
- package/dist/chunk-DQMDCD24.js +2 -0
- package/dist/chunk-DR2LURYU.js +3 -0
- package/dist/chunk-DRENNWRG.js +2 -0
- package/dist/chunk-ECQBG7PW.js +564 -0
- package/dist/chunk-EF2R3WNQ.js +2 -0
- package/dist/chunk-ELNRLMC5.js +29 -0
- package/dist/chunk-EMNIHCRB.js +18 -0
- package/dist/chunk-ENCCHKM6.js +5 -0
- package/dist/chunk-EZNMUY67.js +5 -0
- package/dist/chunk-FAJQ7LWY.js +3 -0
- package/dist/chunk-FDGD5AB5.js +2 -0
- package/dist/chunk-FETNQCFO.js +117 -0
- package/dist/chunk-FM5BPL4V.js +60 -0
- package/dist/chunk-FQKZWM4L.js +49 -0
- package/dist/chunk-FW53T7EB.js +2 -0
- package/dist/chunk-G6XFR4ZL.js +4 -0
- package/dist/chunk-GCHRX4YW.js +4 -0
- package/dist/chunk-GTIYTDRE.js +562 -0
- package/dist/chunk-GTXSJDCO.js +2 -0
- package/dist/chunk-GW6Z3WGY.js +2 -0
- package/dist/chunk-H3LGFZVK.js +2 -0
- package/dist/chunk-HKQUXIFO.js +2 -0
- package/dist/chunk-HOA5YGOH.js +3 -0
- package/dist/chunk-HPJRBHVT.js +3 -0
- package/dist/chunk-HRWGYWRJ.js +49 -0
- package/dist/chunk-I2T2LLK2.js +4 -0
- package/dist/chunk-ICFDQHAM.js +3 -0
- package/dist/chunk-ID63777H.js +4 -0
- package/dist/chunk-IJ4HMYBE.js +3 -0
- package/dist/chunk-ILMHV3KM.js +2 -0
- package/dist/chunk-IOP6FWIM.js +2 -0
- package/dist/chunk-IRQOAM5G.js +2 -0
- package/dist/chunk-J77SU6VA.js +38 -0
- package/dist/chunk-JE3WZ6II.js +2 -0
- package/dist/chunk-JEJLSICM.js +4 -0
- package/dist/chunk-JOIRNPPY.js +2 -0
- package/dist/chunk-JSOYNVWH.js +3 -0
- package/dist/chunk-KMITESMT.js +2 -0
- package/dist/chunk-KUW32IRO.js +2 -0
- package/dist/chunk-KWVHSKHK.js +31 -0
- package/dist/chunk-L4NRUAGJ.js +18 -0
- package/dist/chunk-L57ZKWVG.js +6 -0
- package/dist/chunk-LTA3BRZX.js +2 -0
- package/dist/chunk-LU3BMVH2.js +10 -0
- package/dist/chunk-LZYFLFEH.js +2 -0
- package/dist/chunk-MOVBWNIP.js +16 -0
- package/dist/chunk-MVB3DAEY.js +3 -0
- package/dist/chunk-N3IQCBCF.js +29 -0
- package/dist/chunk-NAUD7LCA.js +2 -0
- package/dist/chunk-NCZUNH3E.js +109 -0
- package/dist/chunk-NE6IU5ZD.js +5 -0
- package/dist/chunk-NEDP5RFQ.js +60 -0
- package/dist/chunk-NMTSZXCL.js +2 -0
- package/dist/chunk-NNJ2KZZG.js +4 -0
- package/dist/chunk-NNO6A2PO.js +2 -0
- package/dist/chunk-NNOKTMZT.js +20 -0
- package/dist/chunk-O6QTXQPJ.js +13 -0
- package/dist/chunk-OANDYLJQ.js +2 -0
- package/dist/chunk-OFBE4NGP.js +2 -0
- package/dist/chunk-OGTFJ3XD.js +2 -0
- package/dist/chunk-OL6KJP3N.js +16 -0
- package/dist/chunk-OLF4MA5W.js +8 -0
- package/dist/chunk-OTOKVOJ3.js +2 -0
- package/dist/chunk-OVTS4DKB.js +2 -0
- package/dist/chunk-OZYRSMSH.js +3 -0
- package/dist/chunk-P5XHIJHI.js +2 -0
- package/dist/chunk-PBI2LFKH.js +2 -0
- package/dist/chunk-PIOMTC27.js +2 -0
- package/dist/chunk-PTAWHLVJ.js +6 -0
- package/dist/chunk-PX4RYAAK.js +2 -0
- package/dist/chunk-PYAB5SM6.js +7 -0
- package/dist/chunk-Q5ELPRKQ.js +2 -0
- package/dist/chunk-Q65CQ4XL.js +2 -0
- package/dist/chunk-Q72QSKXC.js +308 -0
- package/dist/chunk-QCN62RTF.js +3 -0
- package/dist/chunk-QDCCHMVZ.js +2 -0
- package/dist/chunk-QHRNXP3C.js +3 -0
- package/dist/chunk-QKPLA6IC.js +2 -0
- package/dist/chunk-QOKYJ33H.js +2 -0
- package/dist/chunk-QW7EP6WI.js +21 -0
- package/dist/chunk-R2NOK63J.js +4 -0
- package/dist/chunk-RBAS5ZHI.js +2 -0
- package/dist/chunk-RDBI2RXU.js +9 -0
- package/dist/chunk-RKEJ6VTF.js +73 -0
- package/dist/chunk-RR7SX44N.js +35 -0
- package/dist/chunk-RU65DDUP.js +215 -0
- package/dist/chunk-SELM5MER.js +2 -0
- package/dist/chunk-SGX43S2L.js +2 -0
- package/dist/chunk-SMRBZ6EC.js +2 -0
- package/dist/chunk-SNNWPCN7.js +4 -0
- package/dist/chunk-ST7V3SKN.js +2 -0
- package/dist/chunk-SWHMHUKF.js +2 -0
- package/dist/chunk-SYDJMPES.js +2 -0
- package/dist/chunk-SZD2KF7Q.js +2 -0
- package/dist/chunk-T3DGWPXM.js +3 -0
- package/dist/chunk-TFZB6XTM.js +239 -0
- package/dist/chunk-TIIC3ZE7.js +2 -0
- package/dist/chunk-TRRC4ZJ7.js +2 -0
- package/dist/chunk-TXXOEMZJ.js +2 -0
- package/dist/chunk-UBGWN7I4.js +2 -0
- package/dist/chunk-UCD3H3UZ.js +5 -0
- package/dist/chunk-UDS562V4.js +5 -0
- package/dist/chunk-UNBY47BC.js +3 -0
- package/dist/chunk-UP3BUZR5.js +74 -0
- package/dist/chunk-UXM43C7T.js +3 -0
- package/dist/chunk-UZGZB3VB.js +3 -0
- package/dist/chunk-VE5AVNMP.js +2 -0
- package/dist/chunk-VEXUL62T.js +2 -0
- package/dist/chunk-VFY6Y2H6.js +61 -0
- package/dist/chunk-VUIYB2V3.js +2 -0
- package/dist/chunk-VXYS3FZD.js +23 -0
- package/dist/chunk-WE5RZHZ7.js +5 -0
- package/dist/chunk-WMPRTGH2.js +2 -0
- package/dist/chunk-WOQBZPIF.js +2 -0
- package/dist/chunk-XLQ3GLWZ.js +2 -0
- package/dist/chunk-XME3HPXZ.js +2 -0
- package/dist/chunk-XMQ23E27.js +2 -0
- package/dist/chunk-XWUOUWYI.js +2 -0
- package/dist/chunk-XZEE23VG.js +5 -0
- package/dist/chunk-Y6KHROC3.js +7 -0
- package/dist/chunk-YESXMKX3.js +3 -0
- package/dist/chunk-YMGZZEW4.js +2 -0
- package/dist/chunk-YSNONTJ2.js +2 -0
- package/dist/chunk-YUKYB54I.js +1 -0
- package/dist/chunk-YVCIMIOC.js +12 -0
- package/dist/chunk-Z54RD7VL.js +3 -0
- package/dist/chunk-ZKX2FRS6.js +15 -0
- package/dist/chunk-ZMI2JSX2.js +2 -0
- package/dist/chunk-ZV3JV5G5.js +8 -0
- package/dist/chunk-ZZ3MWF33.js +4 -0
- package/dist/chunk-ZZXSWSN6.js +2 -0
- package/dist/cli-context-3SNLDYBM.js +3 -0
- package/dist/cli-context-T3B7W6GG.js +2 -0
- package/dist/cli-program-YNOXO72B.js +7 -0
- package/dist/cli.js +3 -0
- package/dist/code-DlqpBDd0.d.ts +121 -0
- package/dist/command-descriptors-6AOUKWW7.js +346 -0
- package/dist/command-descriptors-ZFKJSRUP.js +344 -0
- package/dist/command-panels-SZONPMLJ.js +3 -0
- package/dist/config-types-BNoC96J3.d.ts +560 -0
- package/dist/db-D7sauVFH.d.ts +95 -0
- package/dist/direct-navigation-DP4LVMRX.js +3 -0
- package/dist/direct-navigation-FLUS3BT6.js +2 -0
- package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
- package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
- package/dist/file-kind-BKCVMNUf.d.ts +10 -0
- package/dist/frontend-behavior-evidence-EfM4_9bc.d.ts +4 -0
- package/dist/git-history-ChNHbfZQ.d.ts +13 -0
- package/dist/graph-evidence-BIFqyisO.d.ts +131 -0
- package/dist/health-DJaZXg8I.d.ts +340 -0
- package/dist/index.d.ts +183 -0
- package/dist/index.js +2 -0
- package/dist/invocation-command-descriptors-QT2JMY5J.js +3 -0
- package/dist/invocation-command-descriptors-YN4QJEAX.js +2 -0
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
- package/dist/output-continuation-command-2V2SL4TD.js +2 -0
- package/dist/output-continuation-command-65J5IP3O.js +3 -0
- package/dist/postinstall.js +3 -0
- package/dist/project-reindex-5JOKXAXT.js +2 -0
- package/dist/project-reindex-UQBIKO4M.js +3 -0
- package/dist/queries/affected.d.ts +40 -0
- package/dist/queries/affected.js +2 -0
- package/dist/queries/anchors.d.ts +123 -0
- package/dist/queries/anchors.js +2 -0
- package/dist/queries/architecture.d.ts +166 -0
- package/dist/queries/architecture.js +2 -0
- package/dist/queries/bottlenecks.d.ts +68 -0
- package/dist/queries/bottlenecks.js +2 -0
- package/dist/queries/by-kind.d.ts +27 -0
- package/dist/queries/by-kind.js +2 -0
- package/dist/queries/call-graph.d.ts +52 -0
- package/dist/queries/call-graph.js +2 -0
- package/dist/queries/change-surface.d.ts +55 -0
- package/dist/queries/change-surface.js +2 -0
- package/dist/queries/cleanup-plan.d.ts +66 -0
- package/dist/queries/cleanup-plan.js +2 -0
- package/dist/queries/co-change.d.ts +90 -0
- package/dist/queries/co-change.js +2 -0
- package/dist/queries/code.d.ts +6 -0
- package/dist/queries/code.js +2 -0
- package/dist/queries/complexity-hotspots.d.ts +61 -0
- package/dist/queries/complexity-hotspots.js +2 -0
- package/dist/queries/complexity.d.ts +74 -0
- package/dist/queries/complexity.js +2 -0
- package/dist/queries/context.d.ts +146 -0
- package/dist/queries/context.js +2 -0
- package/dist/queries/convergence.d.ts +33 -0
- package/dist/queries/convergence.js +2 -0
- package/dist/queries/coupling.d.ts +32 -0
- package/dist/queries/coupling.js +2 -0
- package/dist/queries/cycles.d.ts +66 -0
- package/dist/queries/cycles.js +2 -0
- package/dist/queries/dataflow.d.ts +77 -0
- package/dist/queries/dataflow.js +2 -0
- package/dist/queries/dead.d.ts +58 -0
- package/dist/queries/dead.js +2 -0
- package/dist/queries/decorative-checkers.d.ts +34 -0
- package/dist/queries/decorative-checkers.js +2 -0
- package/dist/queries/deep-chains.d.ts +5 -0
- package/dist/queries/deep-chains.js +2 -0
- package/dist/queries/dependence-slice.d.ts +46 -0
- package/dist/queries/dependence-slice.js +2 -0
- package/dist/queries/dependency-depth.d.ts +49 -0
- package/dist/queries/dependency-depth.js +2 -0
- package/dist/queries/deps.d.ts +15 -0
- package/dist/queries/deps.js +2 -0
- package/dist/queries/diff-impact.d.ts +165 -0
- package/dist/queries/diff-impact.js +2 -0
- package/dist/queries/doc-drift.d.ts +115 -0
- package/dist/queries/doc-drift.js +2 -0
- package/dist/queries/drift.d.ts +79 -0
- package/dist/queries/drift.js +2 -0
- package/dist/queries/duplicate-bodies.d.ts +55 -0
- package/dist/queries/duplicate-bodies.js +2 -0
- package/dist/queries/entry-map.d.ts +121 -0
- package/dist/queries/entry-map.js +2 -0
- package/dist/queries/evidence.d.ts +70 -0
- package/dist/queries/evidence.js +2 -0
- package/dist/queries/extract-candidates.d.ts +52 -0
- package/dist/queries/extract-candidates.js +2 -0
- package/dist/queries/fan.d.ts +53 -0
- package/dist/queries/fan.js +2 -0
- package/dist/queries/files.d.ts +20 -0
- package/dist/queries/files.js +2 -0
- package/dist/queries/health.d.ts +8 -0
- package/dist/queries/health.js +2 -0
- package/dist/queries/hierarchy.d.ts +21 -0
- package/dist/queries/hierarchy.js +2 -0
- package/dist/queries/hotspots.d.ts +42 -0
- package/dist/queries/hotspots.js +2 -0
- package/dist/queries/imports.d.ts +34 -0
- package/dist/queries/imports.js +2 -0
- package/dist/queries/incomplete-migration.d.ts +90 -0
- package/dist/queries/incomplete-migration.js +2 -0
- package/dist/queries/index.d.ts +180 -0
- package/dist/queries/index.js +2 -0
- package/dist/queries/isolated.d.ts +24 -0
- package/dist/queries/isolated.js +2 -0
- package/dist/queries/locality-candidates.d.ts +51 -0
- package/dist/queries/locality-candidates.js +2 -0
- package/dist/queries/members.d.ts +21 -0
- package/dist/queries/members.js +2 -0
- package/dist/queries/methods.d.ts +43 -0
- package/dist/queries/methods.js +2 -0
- package/dist/queries/not-implemented.d.ts +33 -0
- package/dist/queries/not-implemented.js +2 -0
- package/dist/queries/outline.d.ts +22 -0
- package/dist/queries/outline.js +2 -0
- package/dist/queries/passthrough-candidates.d.ts +41 -0
- package/dist/queries/passthrough-candidates.js +2 -0
- package/dist/queries/plan-context.d.ts +33 -0
- package/dist/queries/plan-context.js +2 -0
- package/dist/queries/react-component-duplicates.d.ts +39 -0
- package/dist/queries/react-component-duplicates.js +2 -0
- package/dist/queries/react-hook-candidates.d.ts +44 -0
- package/dist/queries/react-hook-candidates.js +2 -0
- package/dist/queries/react-large-component-pressure.d.ts +34 -0
- package/dist/queries/react-large-component-pressure.js +2 -0
- package/dist/queries/recent-duplicates.d.ts +79 -0
- package/dist/queries/recent-duplicates.js +2 -0
- package/dist/queries/redundant-reexports.d.ts +37 -0
- package/dist/queries/redundant-reexports.js +2 -0
- package/dist/queries/reference-neighborhood.d.ts +4 -0
- package/dist/queries/reference-neighborhood.js +2 -0
- package/dist/queries/reference-reachability.d.ts +48 -0
- package/dist/queries/reference-reachability.js +2 -0
- package/dist/queries/refs.d.ts +13 -0
- package/dist/queries/refs.js +2 -0
- package/dist/queries/self-audit.d.ts +65 -0
- package/dist/queries/self-audit.js +2 -0
- package/dist/queries/similar-chains.d.ts +48 -0
- package/dist/queries/similar-chains.js +2 -0
- package/dist/queries/similar-files.d.ts +35 -0
- package/dist/queries/similar-files.js +2 -0
- package/dist/queries/similar-signatures.d.ts +46 -0
- package/dist/queries/similar-signatures.js +2 -0
- package/dist/queries/similar.d.ts +187 -0
- package/dist/queries/similar.js +2 -0
- package/dist/queries/slice.d.ts +4 -0
- package/dist/queries/slice.js +2 -0
- package/dist/queries/source-inspection.d.ts +209 -0
- package/dist/queries/source-inspection.js +2 -0
- package/dist/queries/source-search.d.ts +85 -0
- package/dist/queries/source-search.js +2 -0
- package/dist/queries/stale-abstractions.d.ts +72 -0
- package/dist/queries/stale-abstractions.js +2 -0
- package/dist/queries/stats.d.ts +15 -0
- package/dist/queries/stats.js +2 -0
- package/dist/queries/surface.d.ts +22 -0
- package/dist/queries/surface.js +2 -0
- package/dist/queries/symbols.d.ts +14 -0
- package/dist/queries/symbols.js +2 -0
- package/dist/queries/system-map.d.ts +449 -0
- package/dist/queries/system-map.js +2 -0
- package/dist/queries/system.d.ts +21 -0
- package/dist/queries/system.js +2 -0
- package/dist/queries/test-quality.d.ts +56 -0
- package/dist/queries/test-quality.js +2 -0
- package/dist/queries/trace.d.ts +68 -0
- package/dist/queries/trace.js +2 -0
- package/dist/queries/twin-ab.d.ts +66 -0
- package/dist/queries/twin-ab.js +2 -0
- package/dist/queries/twin-drift.d.ts +119 -0
- package/dist/queries/twin-drift.js +2 -0
- package/dist/queries/unused-imports.d.ts +4 -0
- package/dist/queries/unused-imports.js +2 -0
- package/dist/queries/unused-params.d.ts +38 -0
- package/dist/queries/unused-params.js +2 -0
- package/dist/queries/value-flow.d.ts +42 -0
- package/dist/queries/value-flow.js +2 -0
- package/dist/queries/vue-component-duplicates.d.ts +43 -0
- package/dist/queries/vue-component-duplicates.js +2 -0
- package/dist/queries/vue-composable-candidates.d.ts +44 -0
- package/dist/queries/vue-composable-candidates.js +2 -0
- package/dist/queries/vue-large-view-pressure.d.ts +41 -0
- package/dist/queries/vue-large-view-pressure.js +2 -0
- package/dist/queries/wrapper-candidates.d.ts +34 -0
- package/dist/queries/wrapper-candidates.js +2 -0
- package/dist/reindex-worker.js +3 -0
- package/dist/reindex.d.ts +254 -0
- package/dist/reindex.js +298 -0
- package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
- package/dist/runtime.d.ts +555 -0
- package/dist/runtime.js +4 -0
- package/dist/rust-semantic-session-server.js +2 -0
- package/dist/rust-semantic-session-worker.js +2 -0
- package/dist/rust-semantic-worker.js +2 -0
- package/dist/scip-cli-B7N3haxa.d.ts +67 -0
- package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
- package/dist/symbol-types-BIQwfoAx.d.ts +74 -0
- package/dist/typescript-mailbox-worker.js +2 -0
- package/dist/watch-server.js +8 -0
- package/docs/AGENT_GUIDE.md +148 -0
- package/docs/AI_FAILURE_MODES.md +43 -0
- package/docs/API.md +40 -0
- package/docs/API_EVOLUTION.md +77 -0
- package/docs/CLI_JSON_OUTPUT.md +389 -0
- package/docs/COMMAND_REFERENCE.md +294 -0
- package/docs/CONFIGURATION_WRITE_SAFETY.md +131 -0
- package/docs/DETECTOR_GUIDE.md +46 -0
- package/docs/DURABILITY.md +159 -0
- package/docs/INDEX_GENERATIONS.md +167 -0
- package/docs/LOCK_PROTOCOL.md +133 -0
- package/docs/MAILBOX_LIFECYCLE.md +224 -0
- package/docs/REGEX_POLICY.md +36 -0
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +104 -0
- package/docs/RUST_DURABLE_SESSION_PROTOCOL.md +126 -0
- package/docs/SECURITY_MODEL.md +125 -0
- package/docs/TELEMETRY_RETENTION.md +84 -0
- package/docs/TIME_SEMANTICS.md +77 -0
- package/docs/WATCH_REFRESH_REQUESTS.md +123 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +424 -0
- package/docs/accuracy-audit-checklist.md +304 -0
- package/docs/accuracy-hardening-goal.md +500 -0
- package/docs/analyzer-inventory.md +78 -0
- package/docs/analyzer-validation-protocol.md +84 -0
- package/docs/architecture-coherence-vision.md +254 -0
- package/docs/assets/codebaseiq-logo-dark.svg +21 -0
- package/docs/assets/codebaseiq-logo.svg +24 -0
- package/docs/locality-analyzer-design.md +193 -0
- package/docs/schemas/cli-json-envelope.schema.json +237 -0
- package/docs/schemas/cli-output-page.schema.json +104 -0
- package/docs/schemas/npm-release-state.schema.json +146 -0
- package/docs/schemas/observation-receipt.schema.json +164 -0
- package/docs/schemas/project-config.schema.json +318 -0
- package/docs/schemas/suppression-record.schema.json +79 -0
- package/docs/schemas/windows-sidecar-provenance.schema.json +137 -0
- package/package.json +482 -0
- package/scripts/build-codebaseiq-windows.mjs +197 -0
- package/scripts/codebaseiq-windows-provenance.mjs +364 -0
- package/scripts/evidence-product-contract.mjs +197 -0
- package/scripts/verify-codebaseiq-windows.mjs +29 -0
- package/skills/codebaseiq/SKILL.md +75 -0
- package/skills/codebaseiq/agents/openai.yaml +4 -0
- package/skills/codebaseiq-explore/SKILL.md +34 -0
- package/skills/codebaseiq-explore/agents/openai.yaml +4 -0
- package/skills/concrete-plan/SKILL.md +79 -0
- package/skills/concrete-plan/agents/openai.yaml +4 -0
|
@@ -0,0 +1,560 @@
|
|
|
1
|
+
declare const LEGACY_OBSERVATION_RECEIPT_SCHEMA_VERSION: 1;
|
|
2
|
+
declare const OBSERVATION_RECEIPT_SCHEMA_VERSION: 2;
|
|
3
|
+
declare const OBSERVATION_IDENTITY_SCHEMA_VERSION: 1;
|
|
4
|
+
declare const OBSERVATION_IDENTITY_CANONICALIZATION_VERSION: 1;
|
|
5
|
+
declare const OBSERVATION_IDENTITY_HASH_ALGORITHM: "sha256";
|
|
6
|
+
declare const OBSERVATION_STATE_AUTHORITY_POLICY_VERSION: 1;
|
|
7
|
+
type ObservationAuthorityKind = 'index-worktree' | 'index-only' | 'worktree-only' | 'process-local';
|
|
8
|
+
/**
|
|
9
|
+
* A version-1 receipt identifies the local index/worktree evidence emitted by
|
|
10
|
+
* codebaseiq before state identity was split into independent facts. Its
|
|
11
|
+
* project and worktree values are retained as historical facts, but their
|
|
12
|
+
* combined path/state meanings cannot prove v2 collaboration, workspace, or
|
|
13
|
+
* content relationships.
|
|
14
|
+
*/
|
|
15
|
+
interface ObservationReceiptV1 {
|
|
16
|
+
schemaVersion: typeof LEGACY_OBSERVATION_RECEIPT_SCHEMA_VERSION;
|
|
17
|
+
authorityKind: ObservationAuthorityKind;
|
|
18
|
+
observedAt: string;
|
|
19
|
+
projectIdentity: string;
|
|
20
|
+
index?: {
|
|
21
|
+
generationIdentity: string;
|
|
22
|
+
source: 'immutable' | 'legacy';
|
|
23
|
+
alignment: 'not-certified' | 'leased';
|
|
24
|
+
};
|
|
25
|
+
worktree?: {
|
|
26
|
+
identity: string;
|
|
27
|
+
clean: boolean;
|
|
28
|
+
headCommit?: string;
|
|
29
|
+
treeOid?: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* An observation identity is a content-derived identifier whose projection
|
|
34
|
+
* says which real inputs were selected and whose digest says what values that
|
|
35
|
+
* projection observed. Including every version in the hash preimage prevents
|
|
36
|
+
* equal-looking digests from silently crossing incompatible identity rules.
|
|
37
|
+
*/
|
|
38
|
+
interface ObservationIdentity {
|
|
39
|
+
schemaVersion: typeof OBSERVATION_IDENTITY_SCHEMA_VERSION;
|
|
40
|
+
canonicalizationVersion: typeof OBSERVATION_IDENTITY_CANONICALIZATION_VERSION;
|
|
41
|
+
hashAlgorithm: typeof OBSERVATION_IDENTITY_HASH_ALGORITHM;
|
|
42
|
+
projection: {
|
|
43
|
+
name: string;
|
|
44
|
+
version: number;
|
|
45
|
+
};
|
|
46
|
+
digest: string;
|
|
47
|
+
}
|
|
48
|
+
interface RelevantInputIdentity {
|
|
49
|
+
/** The result or claim family whose answer can be changed by this projection. */
|
|
50
|
+
subject: string;
|
|
51
|
+
identity: ObservationIdentity;
|
|
52
|
+
}
|
|
53
|
+
type ObservationSourceKind = 'index-generation' | 'repository-snapshot' | 'live-workspace' | 'process';
|
|
54
|
+
/**
|
|
55
|
+
* An observed source is one state-bearing input an operation actually read.
|
|
56
|
+
* It names the referent only; whether that referent stayed fixed is a separate
|
|
57
|
+
* stability fact.
|
|
58
|
+
*/
|
|
59
|
+
interface ObservationSourceFact {
|
|
60
|
+
kind: ObservationSourceKind;
|
|
61
|
+
identity?: ObservationIdentity;
|
|
62
|
+
}
|
|
63
|
+
type ObservationStabilityProofKind = 'immutable' | 'fixed-snapshot' | 'bracketed' | 'not-established' | 'invalidated';
|
|
64
|
+
/**
|
|
65
|
+
* A stability proof records how one observed source was prevented from
|
|
66
|
+
* changing during the observation interval. Immutable and fixed-snapshot
|
|
67
|
+
* proofs establish fixed input; bracketed equality is weaker because an
|
|
68
|
+
* intermediate change can return to the same endpoint.
|
|
69
|
+
*/
|
|
70
|
+
interface ObservationStabilityProof {
|
|
71
|
+
source: ObservationSourceKind;
|
|
72
|
+
kind: ObservationStabilityProofKind;
|
|
73
|
+
}
|
|
74
|
+
interface ObservationReceiptV2 {
|
|
75
|
+
schemaVersion: typeof OBSERVATION_RECEIPT_SCHEMA_VERSION;
|
|
76
|
+
observedAt: string;
|
|
77
|
+
facts: {
|
|
78
|
+
collaborationDomain?: ObservationIdentity;
|
|
79
|
+
repositoryLineage?: ObservationIdentity;
|
|
80
|
+
workspaceInstance?: ObservationIdentity;
|
|
81
|
+
wholeContent?: ObservationIdentity;
|
|
82
|
+
relevantInputs?: readonly RelevantInputIdentity[];
|
|
83
|
+
index?: {
|
|
84
|
+
generation: ObservationIdentity;
|
|
85
|
+
/** Inputs persisted with the immutable generation when known. */
|
|
86
|
+
inputs?: ObservationIdentity;
|
|
87
|
+
source: 'immutable' | 'legacy';
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
observedSources: readonly ObservationSourceFact[];
|
|
91
|
+
stabilityProofs: readonly ObservationStabilityProof[];
|
|
92
|
+
/** Human-useful state facts that are not compatibility identities. */
|
|
93
|
+
diagnostics?: {
|
|
94
|
+
clean?: boolean;
|
|
95
|
+
headCommit?: string;
|
|
96
|
+
treeOid?: string;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
type ObservationReceipt = ObservationReceiptV1 | ObservationReceiptV2;
|
|
100
|
+
type DecodedObservationReceipt = {
|
|
101
|
+
kind: 'legacy';
|
|
102
|
+
schemaVersion: 1;
|
|
103
|
+
receipt: ObservationReceiptV1;
|
|
104
|
+
} | {
|
|
105
|
+
kind: 'supported';
|
|
106
|
+
schemaVersion: 2;
|
|
107
|
+
receipt: ObservationReceiptV2;
|
|
108
|
+
} | {
|
|
109
|
+
kind: 'unsupported';
|
|
110
|
+
schemaVersion: number;
|
|
111
|
+
direction: 'older' | 'future';
|
|
112
|
+
} | {
|
|
113
|
+
kind: 'malformed';
|
|
114
|
+
reason: string;
|
|
115
|
+
};
|
|
116
|
+
type ObservationRelationshipState = 'established' | 'disproven' | 'unknown';
|
|
117
|
+
type ObservationComparisonReason = 'identities-equal' | 'identities-different' | 'left-fact-missing' | 'right-fact-missing' | 'both-facts-missing' | 'identity-projections-not-comparable' | 'legacy-fact-not-comparable' | 'all-observed-sources-fixed' | 'left-observation-has-no-repository-source' | 'right-observation-has-no-repository-source' | 'left-observation-not-fixed' | 'right-observation-not-fixed' | 'left-observation-invalidated' | 'right-observation-invalidated';
|
|
118
|
+
type ObservationComparedFact = {
|
|
119
|
+
kind: 'identity';
|
|
120
|
+
identity: ObservationIdentity;
|
|
121
|
+
} | {
|
|
122
|
+
kind: 'legacy-index-generation';
|
|
123
|
+
value: string;
|
|
124
|
+
} | {
|
|
125
|
+
kind: 'stability';
|
|
126
|
+
proof: ObservationStabilityProof;
|
|
127
|
+
};
|
|
128
|
+
interface ObservationRelationshipJudgment {
|
|
129
|
+
state: ObservationRelationshipState;
|
|
130
|
+
reasons: readonly ObservationComparisonReason[];
|
|
131
|
+
facts: {
|
|
132
|
+
left: readonly ObservationComparedFact[];
|
|
133
|
+
right: readonly ObservationComparedFact[];
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
interface RelevantInputRelationshipJudgment {
|
|
137
|
+
subject: string;
|
|
138
|
+
projection: string;
|
|
139
|
+
judgment: ObservationRelationshipJudgment;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* A receipt comparison is a set of independent relationship judgments. Each
|
|
143
|
+
* field answers one real question; no field is a total "strength" score and
|
|
144
|
+
* no established relationship silently upgrades another.
|
|
145
|
+
*/
|
|
146
|
+
interface ObservationReceiptComparison {
|
|
147
|
+
collaborationDomain: ObservationRelationshipJudgment;
|
|
148
|
+
repositoryLineage: ObservationRelationshipJudgment;
|
|
149
|
+
workspaceInstance: ObservationRelationshipJudgment;
|
|
150
|
+
wholeContent: ObservationRelationshipJudgment;
|
|
151
|
+
relevantInputs: readonly RelevantInputRelationshipJudgment[];
|
|
152
|
+
indexInput: ObservationRelationshipJudgment;
|
|
153
|
+
indexGeneration: ObservationRelationshipJudgment;
|
|
154
|
+
observationStability: ObservationRelationshipJudgment;
|
|
155
|
+
}
|
|
156
|
+
type ObservationStateAuthority = 'completion' | 'advisory' | 'none';
|
|
157
|
+
/**
|
|
158
|
+
* A derived state-authority judgment is product policy applied to receipt
|
|
159
|
+
* facts at use time. It is not serialized into the producer's receipt, so a
|
|
160
|
+
* producer cannot grant itself completion authority by asserting a label.
|
|
161
|
+
*/
|
|
162
|
+
interface DerivedObservationStateAuthority {
|
|
163
|
+
policyVersion: typeof OBSERVATION_STATE_AUTHORITY_POLICY_VERSION;
|
|
164
|
+
authority: ObservationStateAuthority;
|
|
165
|
+
requiredRelationships: readonly ['collaborationDomain', 'wholeContent', 'observationStability'];
|
|
166
|
+
reasons: readonly string[];
|
|
167
|
+
}
|
|
168
|
+
declare function createObservationIdentity(projectionName: string, projectionVersion: number, canonicalValue: string): ObservationIdentity;
|
|
169
|
+
declare function decodeObservationReceipt(value: unknown): DecodedObservationReceipt;
|
|
170
|
+
declare function isObservationReceipt(value: unknown): value is ObservationReceipt;
|
|
171
|
+
declare function compareObservationReceipts(left: ObservationReceipt, right: ObservationReceipt): ObservationReceiptComparison;
|
|
172
|
+
declare function deriveObservationStateAuthority(left: ObservationReceipt, right: ObservationReceipt, comparison?: ObservationReceiptComparison): DerivedObservationStateAuthority;
|
|
173
|
+
declare function observationReceiptGenerationIdentity(receipt: ObservationReceipt): string | undefined;
|
|
174
|
+
declare function observationReceiptWorkspaceIdentity(receipt: ObservationReceipt): string | undefined;
|
|
175
|
+
declare function observationReceiptStabilityLabel(receipt: ObservationReceipt): string;
|
|
176
|
+
|
|
177
|
+
interface InstallMethod {
|
|
178
|
+
/** Human-readable label (e.g., "npm", "pip", "go install") */
|
|
179
|
+
label: string;
|
|
180
|
+
/** Immutable package/module identity requested from the installer. */
|
|
181
|
+
identity?: string;
|
|
182
|
+
/** Host location class that the installer will mutate. */
|
|
183
|
+
destination?: string;
|
|
184
|
+
/** Binary that must exist for this install method to work (e.g., "npm", "pip3", "go") */
|
|
185
|
+
prerequisite: string;
|
|
186
|
+
/** Command to execute */
|
|
187
|
+
binary: string;
|
|
188
|
+
/** Arguments for the command */
|
|
189
|
+
args: string[];
|
|
190
|
+
}
|
|
191
|
+
type SupportedLanguage = 'typescript' | 'javascript' | 'java' | 'scala' | 'kotlin' | 'rust' | 'python' | 'ruby' | 'go' | 'cpp' | 'c' | 'csharp' | 'vb' | 'dart' | 'php' | 'clojure';
|
|
192
|
+
type TypeScriptProjectMode = 'single' | 'workspace';
|
|
193
|
+
interface IndexerConfig {
|
|
194
|
+
language: SupportedLanguage;
|
|
195
|
+
/** Preferred executable name for the indexer */
|
|
196
|
+
indexerBinary: string;
|
|
197
|
+
/** Additional executable names accepted on PATH for the same indexer */
|
|
198
|
+
binaryAliases?: string[];
|
|
199
|
+
/** Project-local executable paths to prefer when they exist */
|
|
200
|
+
projectLocalBinaries?: string[];
|
|
201
|
+
/** Command to check if the indexer is installed */
|
|
202
|
+
checkCommand: string;
|
|
203
|
+
/** Returns the binary + args array for execFileSync (no shell injection) */
|
|
204
|
+
indexArgs: (opts: {
|
|
205
|
+
projectRoot: string;
|
|
206
|
+
outputPath: string;
|
|
207
|
+
pnpmWorkspaces?: boolean;
|
|
208
|
+
indexerBinary: string;
|
|
209
|
+
projectPath?: string;
|
|
210
|
+
configPath?: string;
|
|
211
|
+
}) => {
|
|
212
|
+
binary: string;
|
|
213
|
+
args: string[];
|
|
214
|
+
};
|
|
215
|
+
/** Relative output path written by the indexer when it ignores outputPath */
|
|
216
|
+
defaultOutputPath?: string;
|
|
217
|
+
/** Marker files that indicate this language is present */
|
|
218
|
+
markerFiles: string[];
|
|
219
|
+
/** Installation methods to try in order of preference */
|
|
220
|
+
installMethods?: InstallMethod[];
|
|
221
|
+
/** URL for manual installation if auto-install fails */
|
|
222
|
+
installUrl?: string;
|
|
223
|
+
/**
|
|
224
|
+
* npm package bundled with codebaseiq as an optionalDependency. When this
|
|
225
|
+
* package resolves locally (i.e. it installed successfully), the indexer is
|
|
226
|
+
* considered available even if its binary isn't on PATH — `npx <binary>`
|
|
227
|
+
* will pick up the local install.
|
|
228
|
+
*/
|
|
229
|
+
bundledNpmPackage?: string;
|
|
230
|
+
}
|
|
231
|
+
interface CodeBaseIQConfig {
|
|
232
|
+
/** Path to the SQLite database (index.db) */
|
|
233
|
+
dbPath: string;
|
|
234
|
+
/** Path to the SCIP protobuf index (index.scip) */
|
|
235
|
+
indexPath: string;
|
|
236
|
+
/** Project root directory */
|
|
237
|
+
projectRoot: string;
|
|
238
|
+
/** Committed identity shared by branches, clones, and forks intended to merge into one project history. */
|
|
239
|
+
collaborationDomainId?: string;
|
|
240
|
+
/** Internal repository-level read-through cache for proven content-addressed evidence products. */
|
|
241
|
+
sharedEvidenceDbPath?: string;
|
|
242
|
+
/** Project-specific externally-live roots for dead-code filtering */
|
|
243
|
+
entryRoots?: EntryRootsConfig;
|
|
244
|
+
/** Paths to .gitignore files to load for filtering */
|
|
245
|
+
gitignorePaths?: string[];
|
|
246
|
+
/** Optional semantic-provider configuration */
|
|
247
|
+
semantic?: SemanticConfig;
|
|
248
|
+
/** Machine-readable accepted findings. */
|
|
249
|
+
suppressions?: FindingSuppression[];
|
|
250
|
+
/** Project-declared file groups that intentionally change together. */
|
|
251
|
+
declaredCouplings?: DeclaredCouplingConfig[];
|
|
252
|
+
/** Optional analyzer configuration. */
|
|
253
|
+
locality?: LocalityConfig;
|
|
254
|
+
/** Project-owned architectural boundaries and dependency rules. */
|
|
255
|
+
architecture?: ArchitectureConfig;
|
|
256
|
+
/** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
|
|
257
|
+
coverageContracts?: CoverageContractConfig[];
|
|
258
|
+
/** Documentation policy (snapshot-doc exemptions, ...). */
|
|
259
|
+
docs?: DocsConfig;
|
|
260
|
+
}
|
|
261
|
+
interface ProjectConfig {
|
|
262
|
+
/** JSON Schema hint for editors. Persisted writers add the packaged project-config schema. */
|
|
263
|
+
$schema?: string;
|
|
264
|
+
/** Persisted project-config format. Omitted only by readable legacy v1 records and in-memory callers. */
|
|
265
|
+
schemaVersion?: 2;
|
|
266
|
+
/**
|
|
267
|
+
* Opaque committed identity shared by branches, clones, linked worktrees,
|
|
268
|
+
* and contributor forks whose durable decisions are intended to merge.
|
|
269
|
+
* Independent derivatives deliberately replace it.
|
|
270
|
+
*/
|
|
271
|
+
collaborationDomainId?: string;
|
|
272
|
+
/** Override which languages to index (default: auto-detect) */
|
|
273
|
+
languages?: SupportedLanguage[];
|
|
274
|
+
/** Number of indexer workers to run at once (default: adaptive, max 8) */
|
|
275
|
+
indexerConcurrency?: number;
|
|
276
|
+
/** Watch mode settings */
|
|
277
|
+
watch?: WatchConfig;
|
|
278
|
+
/** Per-language indexer overrides */
|
|
279
|
+
indexer?: Partial<Record<SupportedLanguage, IndexerOverrides>>;
|
|
280
|
+
/** Override the database storage path (default: ~/.cache/codebaseiq/<hash>/) */
|
|
281
|
+
dbPath?: string;
|
|
282
|
+
/** Project-specific externally-live roots for dead-code filtering */
|
|
283
|
+
entryRoots?: EntryRootsConfig;
|
|
284
|
+
/** Optional semantic-provider configuration */
|
|
285
|
+
semantic?: SemanticConfig;
|
|
286
|
+
/** Machine-readable accepted findings. */
|
|
287
|
+
suppressions?: FindingSuppression[];
|
|
288
|
+
/** Project-declared file groups that intentionally change together. */
|
|
289
|
+
declaredCouplings?: DeclaredCouplingConfig[];
|
|
290
|
+
/** Optional locality analyzer configuration. */
|
|
291
|
+
locality?: LocalityConfig;
|
|
292
|
+
/** Project-owned architectural boundaries and dependency rules. */
|
|
293
|
+
architecture?: ArchitectureConfig;
|
|
294
|
+
/** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
|
|
295
|
+
coverageContracts?: CoverageContractConfig[];
|
|
296
|
+
/** Documentation policy (snapshot-doc exemptions, ...). */
|
|
297
|
+
docs?: DocsConfig;
|
|
298
|
+
/** Resident query execution settings. */
|
|
299
|
+
daemon?: DaemonConfig;
|
|
300
|
+
}
|
|
301
|
+
interface DaemonConfig {
|
|
302
|
+
/** Serve eligible evidence commands from the resident watch service (default: false). */
|
|
303
|
+
enabled?: boolean;
|
|
304
|
+
}
|
|
305
|
+
type CoverageContractKeySpec = {
|
|
306
|
+
type: 'object-literal-keys';
|
|
307
|
+
identifier: string;
|
|
308
|
+
} | {
|
|
309
|
+
type: 'string-array';
|
|
310
|
+
identifier: string;
|
|
311
|
+
} | {
|
|
312
|
+
type: 'markdown-list';
|
|
313
|
+
marker: string;
|
|
314
|
+
};
|
|
315
|
+
type CoverageContractSourceSpec = {
|
|
316
|
+
type: 'top-level-dirs';
|
|
317
|
+
path: string;
|
|
318
|
+
} | {
|
|
319
|
+
type: 'file-glob';
|
|
320
|
+
pattern: string;
|
|
321
|
+
} | {
|
|
322
|
+
type: 'registered-commands';
|
|
323
|
+
} | {
|
|
324
|
+
type: 'builtin-skills';
|
|
325
|
+
};
|
|
326
|
+
interface CoverageContractConfig {
|
|
327
|
+
/** Human-readable name for the contract, used in finding messages. */
|
|
328
|
+
name: string;
|
|
329
|
+
/** File the declared key set is extracted from. */
|
|
330
|
+
file: string;
|
|
331
|
+
/** How to extract the declared key set from `file`. */
|
|
332
|
+
keys: CoverageContractKeySpec;
|
|
333
|
+
/** The ground-truth source the declared key set must track. */
|
|
334
|
+
mustEqual: CoverageContractSourceSpec;
|
|
335
|
+
/** When false (the default), declared keys with no ground-truth match are also flagged. */
|
|
336
|
+
allowExtra?: boolean;
|
|
337
|
+
}
|
|
338
|
+
interface LocalityConfig {
|
|
339
|
+
/** Folder names that should be treated as architectural ownership boundaries. */
|
|
340
|
+
architecturalBoundarySegments?: string[];
|
|
341
|
+
}
|
|
342
|
+
interface ArchitectureBoundaryConfig {
|
|
343
|
+
/** Stable name used by dependency rules and reports. */
|
|
344
|
+
name: string;
|
|
345
|
+
/** Project-relative exact paths or trailing /* and /** patterns owned by this boundary. */
|
|
346
|
+
paths: string[];
|
|
347
|
+
/** File ceiling for this boundary, overriding `architecture.maxBoundaryFiles`. */
|
|
348
|
+
maxFiles?: number;
|
|
349
|
+
/**
|
|
350
|
+
* Granularity used when checking this boundary's internal structure under
|
|
351
|
+
* `requireResolvedBoundaries`.
|
|
352
|
+
*
|
|
353
|
+
* `directory` (the default) groups members by their containing directory, so
|
|
354
|
+
* a boundary that *is* one directory has a single sub-unit and no internal
|
|
355
|
+
* structure to check. `file` treats every member as its own sub-unit, which
|
|
356
|
+
* makes a cycle between files in the same directory visible. Use `file` for
|
|
357
|
+
* a large single-directory boundary whose members form layers.
|
|
358
|
+
*/
|
|
359
|
+
subUnits?: 'directory' | 'file';
|
|
360
|
+
}
|
|
361
|
+
interface ArchitectureConfig {
|
|
362
|
+
/** Named code groups whose files serve one stable responsibility. */
|
|
363
|
+
boundaries: ArchitectureBoundaryConfig[];
|
|
364
|
+
/**
|
|
365
|
+
* Closed outgoing dependency rows. When a boundary has a row, cross-boundary
|
|
366
|
+
* targets omitted from that row are forbidden. A missing row remains
|
|
367
|
+
* descriptive and makes no allow/deny claim.
|
|
368
|
+
*/
|
|
369
|
+
allowedDependencies?: Record<string, string[]>;
|
|
370
|
+
/**
|
|
371
|
+
* Require every configured boundary to have a closed outgoing dependency
|
|
372
|
+
* row. This prevents an omitted row from silently weakening enforcement.
|
|
373
|
+
*/
|
|
374
|
+
requireCompletePolicy?: boolean;
|
|
375
|
+
/**
|
|
376
|
+
* Require every indexed, non-ignored file to belong to exactly one declared
|
|
377
|
+
* boundary. Unmapped and ambiguously mapped files otherwise remain visible
|
|
378
|
+
* coverage facts without being policy violations.
|
|
379
|
+
*/
|
|
380
|
+
requireCompleteCoverage?: boolean;
|
|
381
|
+
/** Treat every multi-boundary dependency cycle as a declared violation. */
|
|
382
|
+
requireAcyclic?: boolean;
|
|
383
|
+
/**
|
|
384
|
+
* Treat a boundary that hides an internal dependency cycle as a declared
|
|
385
|
+
* violation.
|
|
386
|
+
*
|
|
387
|
+
* `requireAcyclic` only sees the graph *between* boundaries: every edge whose
|
|
388
|
+
* endpoints share a boundary is discarded before the check runs. A boundary
|
|
389
|
+
* coarse enough to contain both sides of a cycle therefore passes while
|
|
390
|
+
* saying nothing about the code inside it. This rule closes that gap by
|
|
391
|
+
* quotienting each boundary by its sub-directories and requiring that
|
|
392
|
+
* quotient to be acyclic too.
|
|
393
|
+
*
|
|
394
|
+
* Defaults to false so upgrading does not tighten an existing project's gate.
|
|
395
|
+
*/
|
|
396
|
+
requireResolvedBoundaries?: boolean;
|
|
397
|
+
/**
|
|
398
|
+
* Treat a declared dependency allowance that no real edge uses as a
|
|
399
|
+
* violation.
|
|
400
|
+
*
|
|
401
|
+
* `requireCompletePolicy` checks that a row *exists*, not that it is
|
|
402
|
+
* *minimal*. An allowance therefore outlives the edge that justified it: the
|
|
403
|
+
* import is deleted, the row stays, and the policy silently widens until it
|
|
404
|
+
* permits something nobody reviewed. This rule keeps the declared matrix and
|
|
405
|
+
* the observed graph converged in both directions.
|
|
406
|
+
*
|
|
407
|
+
* Defaults to false so upgrading does not tighten an existing project's gate.
|
|
408
|
+
*/
|
|
409
|
+
requireMinimalPolicy?: boolean;
|
|
410
|
+
/**
|
|
411
|
+
* Maximum number of distinct boundaries one boundary may depend on.
|
|
412
|
+
*
|
|
413
|
+
* Guards the failure mode that coarse boundaries otherwise hide: a boundary
|
|
414
|
+
* that keeps accumulating dependencies until it is coupled to most of the
|
|
415
|
+
* system. Unset means no limit.
|
|
416
|
+
*/
|
|
417
|
+
maxBoundaryFanOut?: number;
|
|
418
|
+
/**
|
|
419
|
+
* Maximum number of files one boundary may own. Unset means no limit.
|
|
420
|
+
*
|
|
421
|
+
* A boundary large enough to hold unrelated responsibilities stops being a
|
|
422
|
+
* useful policy unit even when it is internally acyclic.
|
|
423
|
+
*/
|
|
424
|
+
maxBoundaryFiles?: number;
|
|
425
|
+
/**
|
|
426
|
+
* Globs for test roots, e.g. `["tests/**"]`.
|
|
427
|
+
*
|
|
428
|
+
* Test files are usually excluded from the compiler project and therefore
|
|
429
|
+
* from the index, which puts them outside every boundary rule. Declaring the
|
|
430
|
+
* roots turns that back on: each test is judged against the boundary of the
|
|
431
|
+
* code it covers (found by path mirroring) and may not import beyond what
|
|
432
|
+
* that boundary is allowed to reach.
|
|
433
|
+
*
|
|
434
|
+
* Unset means tests stay unchecked, which is the historical behavior.
|
|
435
|
+
*/
|
|
436
|
+
testPaths?: string[];
|
|
437
|
+
}
|
|
438
|
+
interface DocsConfig {
|
|
439
|
+
/**
|
|
440
|
+
* Glob patterns (see src/analysis/glob-match.ts for supported syntax) for
|
|
441
|
+
* dated snapshot docs that intentionally cite code "as of" a moment in
|
|
442
|
+
* time — excluded from doc-drift's
|
|
443
|
+
* default findings. A `<!-- codebaseiq: snapshot -->` marker inside a doc
|
|
444
|
+
* has the same effect regardless of its path.
|
|
445
|
+
*/
|
|
446
|
+
snapshotPaths?: string[];
|
|
447
|
+
}
|
|
448
|
+
interface DeclaredCouplingConfig {
|
|
449
|
+
/** Human-readable name for the maintenance unit. */
|
|
450
|
+
name: string;
|
|
451
|
+
/** Exact relative file paths that form one intentional co-change group. */
|
|
452
|
+
files: string[];
|
|
453
|
+
/** Human reason for why these files should move together. */
|
|
454
|
+
reason?: string;
|
|
455
|
+
}
|
|
456
|
+
declare const SUPPRESSION_REASON_CODES: readonly ["entry-surface", "generated-code", "compatibility-shim", "reflection-or-registration", "test-fixture", "intentional-twin", "historical-coupling-ended", "detector-counterexample"];
|
|
457
|
+
type SuppressionReasonCode = (typeof SUPPRESSION_REASON_CODES)[number];
|
|
458
|
+
type SuppressionEvidenceKind = 'source' | 'config' | 'test' | 'graph';
|
|
459
|
+
interface SuppressionCounterevidence {
|
|
460
|
+
/** What kind of independently inspectable referent supports the exception. */
|
|
461
|
+
kind: SuppressionEvidenceKind;
|
|
462
|
+
/** Project-relative path for source/config/test, or exact codebaseiq command for graph evidence. */
|
|
463
|
+
referent: string;
|
|
464
|
+
/** The concrete claim this referent establishes. */
|
|
465
|
+
claim: string;
|
|
466
|
+
/** SHA-256 of source/config/test bytes when target-content invalidation is enabled. */
|
|
467
|
+
contentHash?: string;
|
|
468
|
+
/** Index generation that produced graph evidence, when available. */
|
|
469
|
+
generation?: string;
|
|
470
|
+
}
|
|
471
|
+
interface SuppressionDecision {
|
|
472
|
+
kind: 'automated-adjudication';
|
|
473
|
+
reasonCode: SuppressionReasonCode;
|
|
474
|
+
decidedBy: 'agent' | 'human';
|
|
475
|
+
policyVersion: 1;
|
|
476
|
+
/** Repository/index state observed when this adjudication record was created. */
|
|
477
|
+
observation?: ObservationReceipt;
|
|
478
|
+
evidence: SuppressionCounterevidence[];
|
|
479
|
+
invalidateOn: {
|
|
480
|
+
targetContentChange: boolean;
|
|
481
|
+
detectorMajorChange: boolean;
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
interface FindingSuppression {
|
|
485
|
+
/** Stable finding id, for example SQABC123DEF456. */
|
|
486
|
+
id?: string;
|
|
487
|
+
/** Detector name, for example "twin-drift". */
|
|
488
|
+
check?: string;
|
|
489
|
+
/** Optional file path to narrow check-level suppressions. */
|
|
490
|
+
file?: string;
|
|
491
|
+
/** Human reason for accepting the finding. Required by config validation. */
|
|
492
|
+
reason: string;
|
|
493
|
+
/** ISO date after which the suppression no longer applies. */
|
|
494
|
+
expiresAt?: string;
|
|
495
|
+
/** ISO timestamp stamped when the suppression file was written. */
|
|
496
|
+
createdAt?: string;
|
|
497
|
+
/** Structured, mechanically adjudicated exception evidence. Omission is readable legacy policy, not automatic authority. */
|
|
498
|
+
decision?: SuppressionDecision;
|
|
499
|
+
}
|
|
500
|
+
interface SemanticConfig {
|
|
501
|
+
typescript?: TypeScriptSemanticConfig;
|
|
502
|
+
rust?: {
|
|
503
|
+
/** Optional rust-analyzer executable path/name for future semantic backend use. */
|
|
504
|
+
rustAnalyzerPath?: string;
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
interface TypeScriptSemanticConfig {
|
|
508
|
+
/** Explicit tsconfig paths, relative to project root unless absolute */
|
|
509
|
+
tsconfigs?: string[];
|
|
510
|
+
}
|
|
511
|
+
interface EntryRootsConfig {
|
|
512
|
+
/** Any symbol defined in these path prefixes is externally live */
|
|
513
|
+
pathPrefixes?: string[];
|
|
514
|
+
/** Any symbol defined in these exact files is externally live */
|
|
515
|
+
files?: string[];
|
|
516
|
+
/** Symbols matching these regular expressions are externally live */
|
|
517
|
+
symbolPatterns?: string[];
|
|
518
|
+
/** Qualified var names like my.ns/my-fn that are externally live */
|
|
519
|
+
qualifiedVars?: string[];
|
|
520
|
+
}
|
|
521
|
+
interface WatchConfig {
|
|
522
|
+
/** Enable file watching (default: false, must opt in) */
|
|
523
|
+
enabled?: boolean;
|
|
524
|
+
/** Ms to wait after the last file change before triggering reindex (default: 2000) */
|
|
525
|
+
debounceMs?: number;
|
|
526
|
+
/** Requested ms between reindex completions; values below 5000 use the 5000ms safety floor. */
|
|
527
|
+
cooldownMs?: number;
|
|
528
|
+
/** Ms between Git HEAD/index state checks (default: 2000) */
|
|
529
|
+
gitPollMs?: number;
|
|
530
|
+
/** Ms of clean inactivity before the background watcher exits; 0 keeps it running (default: 180000) */
|
|
531
|
+
idleTimeoutMs?: number;
|
|
532
|
+
/** Let project agent hooks refresh stale indexes without a live watch process (default: true) */
|
|
533
|
+
autoRefresh?: boolean;
|
|
534
|
+
/** Extra glob patterns to ignore beyond .gitignore */
|
|
535
|
+
ignore?: string[];
|
|
536
|
+
/** Rolling admission guard for automatic watcher rebuilds. */
|
|
537
|
+
resourceBudget?: WatchResourceBudgetConfig;
|
|
538
|
+
}
|
|
539
|
+
interface WatchResourceBudgetConfig {
|
|
540
|
+
/** Enable automatic rebuild admission limits (default: true). */
|
|
541
|
+
enabled?: boolean;
|
|
542
|
+
/** Rolling observation window in milliseconds (default: 900000 / 15 minutes). */
|
|
543
|
+
windowMs?: number;
|
|
544
|
+
/** Completed rebuilds allowed inside the window before automatic work pauses (default: 2). */
|
|
545
|
+
maxRebuilds?: number;
|
|
546
|
+
/** Estimated bytes written inside the window before automatic work pauses (default: 1 GiB). */
|
|
547
|
+
maxEstimatedWriteBytes?: number;
|
|
548
|
+
}
|
|
549
|
+
interface IndexerOverrides {
|
|
550
|
+
/** Enable pnpm workspace support (TypeScript) */
|
|
551
|
+
pnpmWorkspaces?: boolean;
|
|
552
|
+
/** TypeScript indexing strategy: one inferred project, or parallel workspace project roots */
|
|
553
|
+
projectMode?: TypeScriptProjectMode;
|
|
554
|
+
/** Explicit TypeScript project roots or tsconfig paths, relative to project root unless absolute */
|
|
555
|
+
projects?: string[];
|
|
556
|
+
/** Indexer-specific config file path, relative to project root */
|
|
557
|
+
configPath?: string;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export { isObservationReceipt as A, observationReceiptGenerationIdentity as B, type CodeBaseIQConfig as C, type DerivedObservationStateAuthority as D, observationReceiptStabilityLabel as E, observationReceiptWorkspaceIdentity as F, type ArchitectureConfig as G, type IndexerConfig as I, LEGACY_OBSERVATION_RECEIPT_SCHEMA_VERSION as L, type ObservationSourceKind as O, type ProjectConfig as P, type RelevantInputIdentity as R, type SupportedLanguage as S, type TypeScriptProjectMode as T, type WatchConfig as W, type WatchResourceBudgetConfig as a, type ObservationReceipt as b, type DecodedObservationReceipt as c, OBSERVATION_IDENTITY_CANONICALIZATION_VERSION as d, OBSERVATION_IDENTITY_HASH_ALGORITHM as e, OBSERVATION_IDENTITY_SCHEMA_VERSION as f, OBSERVATION_RECEIPT_SCHEMA_VERSION as g, OBSERVATION_STATE_AUTHORITY_POLICY_VERSION as h, type ObservationAuthorityKind as i, type ObservationComparedFact as j, type ObservationComparisonReason as k, type ObservationIdentity as l, type ObservationReceiptComparison as m, type ObservationReceiptV1 as n, type ObservationReceiptV2 as o, type ObservationRelationshipJudgment as p, type ObservationRelationshipState as q, type ObservationSourceFact as r, type ObservationStabilityProof as s, type ObservationStabilityProofKind as t, type ObservationStateAuthority as u, type RelevantInputRelationshipJudgment as v, compareObservationReceipts as w, createObservationIdentity as x, decodeObservationReceipt as y, deriveObservationStateAuthority as z };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import { C as CodeBaseIQConfig } from './config-types-BNoC96J3.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One retained publication of the compiler index. Its immutable paths and
|
|
6
|
+
* metadata bytes are the only companion evidence that may be combined with
|
|
7
|
+
* the open SQLite connection carrying this handle.
|
|
8
|
+
*/
|
|
9
|
+
interface SqliteGenerationHandle {
|
|
10
|
+
identity: string;
|
|
11
|
+
databasePath: string;
|
|
12
|
+
indexPath?: string;
|
|
13
|
+
metadataPath?: string;
|
|
14
|
+
metadataRaw?: string;
|
|
15
|
+
source: 'immutable' | 'legacy';
|
|
16
|
+
/** Internal race token for opening a legacy replaceable database path. */
|
|
17
|
+
databaseFileIdentity?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** The path-exclusion capability storage consumes from project source policy. */
|
|
21
|
+
interface PathExclusionPolicy {
|
|
22
|
+
isIgnored(relativePath: string): boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Read operations exposed by a prepared SQLite statement. */
|
|
25
|
+
interface ScipPreparedReadStatement<BindParameters extends unknown[] = unknown[], Result = unknown> {
|
|
26
|
+
get(...params: BindParameters): Result | undefined;
|
|
27
|
+
all(...params: BindParameters): Result[];
|
|
28
|
+
iterate(...params: BindParameters): IterableIterator<Result>;
|
|
29
|
+
pluck(toggleState?: boolean): this;
|
|
30
|
+
expand(toggleState?: boolean): this;
|
|
31
|
+
raw(toggleState?: boolean): this;
|
|
32
|
+
bind(...params: BindParameters): this;
|
|
33
|
+
columns(): Database.ColumnDefinition[];
|
|
34
|
+
safeIntegers(toggleState?: boolean): this;
|
|
35
|
+
}
|
|
36
|
+
/** Query-only facade that cannot close or reconfigure the owned connection. */
|
|
37
|
+
interface ScipDatabaseQueryPort {
|
|
38
|
+
prepare<BindParameters extends unknown[] = unknown[], Result = unknown>(source: string): ScipPreparedReadStatement<BindParameters, Result>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Thin wrapper around better-sqlite3 with a pre-configured connection
|
|
42
|
+
* and helper methods for the SCIP SQLite schema.
|
|
43
|
+
*
|
|
44
|
+
* The schema is produced by `scip expt-convert` and is identical
|
|
45
|
+
* regardless of source language (TypeScript, Rust, Python, etc.).
|
|
46
|
+
*
|
|
47
|
+
* Tables:
|
|
48
|
+
* documents — indexed files (id, language, relative_path)
|
|
49
|
+
* global_symbols — all symbols (id, symbol, display_name, kind, documentation)
|
|
50
|
+
* defn_enclosing_ranges — definition locations (document_id, symbol_id, start/end line/char)
|
|
51
|
+
* mentions — references & definitions (chunk_id, symbol_id, role)
|
|
52
|
+
* chunks — code segments (document_id, chunk_index, start/end line, occurrences)
|
|
53
|
+
*/
|
|
54
|
+
declare class ScipDatabase {
|
|
55
|
+
readonly db: ScipDatabaseQueryPort;
|
|
56
|
+
readonly config: CodeBaseIQConfig;
|
|
57
|
+
readonly generation: SqliteGenerationHandle;
|
|
58
|
+
private pathFilter;
|
|
59
|
+
private readonly connection;
|
|
60
|
+
private readonly connectionOwnership;
|
|
61
|
+
private statementCache;
|
|
62
|
+
private closed;
|
|
63
|
+
constructor(config: CodeBaseIQConfig, pathFilter?: PathExclusionPolicy);
|
|
64
|
+
/** Check if a path should be excluded based on .gitignore rules */
|
|
65
|
+
isIgnored(relativePath: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The local-symbol predicate: only match symbols that are defined
|
|
68
|
+
* in files NOT excluded by gitignore. This replaces the old hardcoded
|
|
69
|
+
* `NOT LIKE 'node_modules/%'` check.
|
|
70
|
+
*
|
|
71
|
+
* Since SQLite can't evaluate JS gitignore rules inline, we use a
|
|
72
|
+
* simpler approach: query broadly, then filter in JS. For queries
|
|
73
|
+
* that need SQL-level filtering, use excludedPathPatterns().
|
|
74
|
+
*/
|
|
75
|
+
get localSymbolPredicate(): string;
|
|
76
|
+
/**
|
|
77
|
+
* SQL WHERE clause fragments to exclude common build/dependency paths.
|
|
78
|
+
* Complements the JS-level gitignore filtering for performance.
|
|
79
|
+
*/
|
|
80
|
+
get pathExclusions(): string;
|
|
81
|
+
/** Reusable SQL fragment: filter out synthetic/internal symbol noise */
|
|
82
|
+
get symbolNoise(): string;
|
|
83
|
+
/** Build SQL path exclusions for one or more document table aliases */
|
|
84
|
+
pathExclusionsFor(...aliases: string[]): string;
|
|
85
|
+
/** Build SQL symbol exclusions for the given global_symbols alias */
|
|
86
|
+
symbolNoiseFor(alias: string): string;
|
|
87
|
+
/** Run a raw SQL query and return all rows */
|
|
88
|
+
all<T = Record<string, unknown>>(sql: string, ...params: unknown[]): T[];
|
|
89
|
+
/** Run a raw SQL query and return the first row */
|
|
90
|
+
get<T = Record<string, unknown>>(sql: string, ...params: unknown[]): T | undefined;
|
|
91
|
+
close(): void;
|
|
92
|
+
private statement;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export { ScipDatabase as S };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{z as a}from"./chunk-KWVHSKHK.js";import"./chunk-UXM43C7T.js";import"./chunk-ECQBG7PW.js";import"./chunk-XZEE23VG.js";import"./chunk-G6XFR4ZL.js";import"./chunk-3JSXXYTZ.js";import"./chunk-DO6WQD2T.js";import"./chunk-2X7V4HS4.js";import"./chunk-SNNWPCN7.js";import"./chunk-B2OB55RR.js";export{a as directNavigationQueryCommandDescriptors};
|
|
3
|
+
//# sourceMappingURL=direct-navigation-DP4LVMRX.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{z as a}from"./chunk-4FC325IF.js";import"./chunk-LTA3BRZX.js";import"./chunk-GTIYTDRE.js";import"./chunk-ZZ3MWF33.js";import"./chunk-NCZUNH3E.js";import"./chunk-YUKYB54I.js";import"./chunk-NNO6A2PO.js";import"./chunk-P5XHIJHI.js";import"./chunk-KUW32IRO.js";import"./chunk-5VKBFZZU.js";import"./chunk-7MGU3HPH.js";import"./chunk-FAJQ7LWY.js";import"./chunk-Z54RD7VL.js";import"./chunk-RU65DDUP.js";import"./chunk-QW7EP6WI.js";import"./chunk-3IER7Q6H.js";import"./chunk-FM5BPL4V.js";import"./chunk-DRENNWRG.js";import"./chunk-RDBI2RXU.js";import"./chunk-R2NOK63J.js";import"./chunk-EF2R3WNQ.js";import"./chunk-WE5RZHZ7.js";import"./chunk-2Q2LW5JW.js";export{a as directNavigationQueryCommandDescriptors};
|
|
2
|
+
//# sourceMappingURL=direct-navigation-FLUS3BT6.js.map
|