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,58 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import 'better-sqlite3';
|
|
3
|
+
import '../config-types-BNoC96J3.js';
|
|
4
|
+
|
|
5
|
+
interface DeadOptions {
|
|
6
|
+
scope?: string;
|
|
7
|
+
minLoc?: number;
|
|
8
|
+
includeTests?: boolean;
|
|
9
|
+
skipBarrels?: boolean;
|
|
10
|
+
includeMembers?: boolean;
|
|
11
|
+
deadCodeOnly?: boolean;
|
|
12
|
+
scanLimit?: number;
|
|
13
|
+
semantic?: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface DeadSymbolResult {
|
|
17
|
+
relativePath: string;
|
|
18
|
+
startLine: number;
|
|
19
|
+
endLine: number;
|
|
20
|
+
loc: number;
|
|
21
|
+
symbol: string;
|
|
22
|
+
shortName: string;
|
|
23
|
+
sameFileRefs: number;
|
|
24
|
+
kind: 'dead-code' | 'file-internal' | 'implicit-usage';
|
|
25
|
+
implicitUsageReason?: string;
|
|
26
|
+
}
|
|
27
|
+
interface DeadCounts {
|
|
28
|
+
total: number;
|
|
29
|
+
deadCode: number;
|
|
30
|
+
fileInternal: number;
|
|
31
|
+
implicitUsage: number;
|
|
32
|
+
loc: number;
|
|
33
|
+
}
|
|
34
|
+
interface DeadSummary {
|
|
35
|
+
symbols: DeadSymbolResult[];
|
|
36
|
+
counts: DeadCounts;
|
|
37
|
+
applicability: {
|
|
38
|
+
entrySurfaceExcluded: number;
|
|
39
|
+
externalRootExcluded: number;
|
|
40
|
+
implicitUsageSignals: number;
|
|
41
|
+
};
|
|
42
|
+
totalCount: number;
|
|
43
|
+
/** Symbols with zero references anywhere; verify before deleting */
|
|
44
|
+
deadCodeCount: number;
|
|
45
|
+
/** Symbols referenced only within their own file — no cross-file consumers.
|
|
46
|
+
* May be private helpers (fine) or forgotten exports (needs review). */
|
|
47
|
+
fileInternalCount: number;
|
|
48
|
+
/** Symbols reached through traits, attributes, generated code, or reflection. */
|
|
49
|
+
implicitUsageCount: number;
|
|
50
|
+
totalLoc: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Find dead exports: symbols defined locally with no cross-file references.
|
|
54
|
+
* Language-agnostic — works with any SCIP index.
|
|
55
|
+
*/
|
|
56
|
+
declare function dead(db: ScipDatabase, opts?: DeadOptions): DeadSummary;
|
|
57
|
+
|
|
58
|
+
export { type DeadCounts, type DeadSummary, type DeadSymbolResult, dead };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as a}from"../chunk-OZYRSMSH.js";import"../chunk-OVTS4DKB.js";import"../chunk-B75HZHUP.js";import"../chunk-7FND7D7N.js";import"../chunk-BGBBVSH4.js";import"../chunk-JOIRNPPY.js";import"../chunk-6CS3UQTN.js";import"../chunk-P5XHIJHI.js";import"../chunk-J77SU6VA.js";import"../chunk-UCD3H3UZ.js";import"../chunk-CVYSU6BX.js";import"../chunk-ELNRLMC5.js";import"../chunk-UZGZB3VB.js";import"../chunk-ZKX2FRS6.js";import"../chunk-C7QOQX32.js";import"../chunk-TIIC3ZE7.js";import"../chunk-YUKYB54I.js";import"../chunk-OANDYLJQ.js";import"../chunk-NNOKTMZT.js";import"../chunk-SGX43S2L.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as dead};
|
|
2
|
+
//# sourceMappingURL=dead.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import 'better-sqlite3';
|
|
3
|
+
import '../config-types-BNoC96J3.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* decorative-checkers (D2): mechanizes the cleanup integrity scenario for a
|
|
7
|
+
* checker-naming family (`validate*`/`verify*`/`check*`/`assert*`,
|
|
8
|
+
* `is*`/`has*`): a callable that LOOKS like a checker but has no reachable
|
|
9
|
+
* failure exit anywhere in its body — no throw, no rejection, no
|
|
10
|
+
* error-result construction, and (for boolean predicates specifically) no
|
|
11
|
+
* return of anything other than the literal `true`. It always "passes"
|
|
12
|
+
* because there is nothing in it that can make it fail.
|
|
13
|
+
*/
|
|
14
|
+
type DecorativeCheckerNameKind = 'imperative' | 'predicate';
|
|
15
|
+
type DecorativeCheckerResolution = 'direct' | 'one-hop-delegate';
|
|
16
|
+
interface DecorativeCheckerFinding {
|
|
17
|
+
symbol: string;
|
|
18
|
+
shortName: string;
|
|
19
|
+
file: string;
|
|
20
|
+
startLine: number;
|
|
21
|
+
endLine: number;
|
|
22
|
+
loc: number;
|
|
23
|
+
nameKind: DecorativeCheckerNameKind;
|
|
24
|
+
resolvedVia: DecorativeCheckerResolution;
|
|
25
|
+
/** Short name of the resolved one-hop delegate target, when resolvedVia is 'one-hop-delegate'. */
|
|
26
|
+
delegateTarget?: string;
|
|
27
|
+
}
|
|
28
|
+
declare function decorativeCheckers(db: ScipDatabase, opts?: {
|
|
29
|
+
scope?: string;
|
|
30
|
+
limit?: number;
|
|
31
|
+
scanLimit?: number;
|
|
32
|
+
}): DecorativeCheckerFinding[];
|
|
33
|
+
|
|
34
|
+
export { type DecorativeCheckerFinding, type DecorativeCheckerNameKind, type DecorativeCheckerResolution, decorativeCheckers };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"../chunk-TXXOEMZJ.js";import"../chunk-WOQBZPIF.js";import"../chunk-T3DGWPXM.js";import"../chunk-OVTS4DKB.js";import"../chunk-4WKDMDEW.js";import"../chunk-B75HZHUP.js";import"../chunk-7FND7D7N.js";import"../chunk-BGBBVSH4.js";import"../chunk-JOIRNPPY.js";import"../chunk-6CS3UQTN.js";import"../chunk-P5XHIJHI.js";import"../chunk-J77SU6VA.js";import"../chunk-UCD3H3UZ.js";import"../chunk-CVYSU6BX.js";import"../chunk-ELNRLMC5.js";import"../chunk-UZGZB3VB.js";import"../chunk-ZKX2FRS6.js";import"../chunk-C7QOQX32.js";import"../chunk-TIIC3ZE7.js";import"../chunk-YUKYB54I.js";import"../chunk-OANDYLJQ.js";import"../chunk-NNOKTMZT.js";import"../chunk-SGX43S2L.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as decorativeCheckers};
|
|
2
|
+
//# sourceMappingURL=decorative-checkers.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"../chunk-TRRC4ZJ7.js";import"../chunk-35NLDRZC.js";import"../chunk-NNOKTMZT.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{b as deepChains,a as dependencyDepth};
|
|
2
|
+
//# sourceMappingURL=deep-chains.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import { G as GraphEvidenceCoverage, a as GraphEvidenceEdge, b as GraphEvidenceTarget } from '../graph-evidence-BIFqyisO.js';
|
|
3
|
+
import 'better-sqlite3';
|
|
4
|
+
import '../config-types-BNoC96J3.js';
|
|
5
|
+
import '../exploration-topology-BG4v30HZ.js';
|
|
6
|
+
|
|
7
|
+
type DependenceSliceDirection = 'backward' | 'forward';
|
|
8
|
+
interface DependenceSliceEdge extends GraphEvidenceEdge {
|
|
9
|
+
traversalDepth: number;
|
|
10
|
+
supporting: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Coverage of the partial dependence graph used for this slice. */
|
|
13
|
+
interface DependenceSliceCoverage {
|
|
14
|
+
status: GraphEvidenceCoverage['status'];
|
|
15
|
+
criterionKind: 'symbol-summary' | 'source-location-summary';
|
|
16
|
+
basis: 'partial-system-dependence-graph';
|
|
17
|
+
analysisBasis: 'typescript-cfg-reaching-definitions-plus-system-edges';
|
|
18
|
+
providers: readonly ['typescript-local-dependence', 'bounded-static-value-flow'];
|
|
19
|
+
graph: GraphEvidenceCoverage;
|
|
20
|
+
unsupportedRelations: string[];
|
|
21
|
+
}
|
|
22
|
+
interface DependenceSliceResult {
|
|
23
|
+
kind: 'dependence-slice';
|
|
24
|
+
direction: DependenceSliceDirection;
|
|
25
|
+
criterion: string;
|
|
26
|
+
targets: GraphEvidenceTarget[];
|
|
27
|
+
nodeIds: string[];
|
|
28
|
+
edges: DependenceSliceEdge[];
|
|
29
|
+
coverage: DependenceSliceCoverage;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Compute a directional slice over the currently proved program-dependence
|
|
33
|
+
* projection around one exact symbol or source location.
|
|
34
|
+
*
|
|
35
|
+
* The criterion is a summary root rather than the classic `(program point,
|
|
36
|
+
* variable)` pair. Data-transfer and control-dependence edges carry the slice;
|
|
37
|
+
* ownership, call, and exact runtime edges connect those dependencies across
|
|
38
|
+
* callable boundaries and are marked as supporting edges in the result.
|
|
39
|
+
*/
|
|
40
|
+
declare function dependenceSlice(db: ScipDatabase, criterion: string, options?: {
|
|
41
|
+
direction?: DependenceSliceDirection;
|
|
42
|
+
maxDepth?: number;
|
|
43
|
+
maxEdges?: number;
|
|
44
|
+
}): DependenceSliceResult;
|
|
45
|
+
|
|
46
|
+
export { type DependenceSliceCoverage, type DependenceSliceDirection, type DependenceSliceEdge, type DependenceSliceResult, dependenceSlice };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"../chunk-VUIYB2V3.js";import"../chunk-SZD2KF7Q.js";import"../chunk-MOVBWNIP.js";import"../chunk-MVB3DAEY.js";import"../chunk-YSNONTJ2.js";import"../chunk-QHRNXP3C.js";import"../chunk-L57ZKWVG.js";import"../chunk-SMRBZ6EC.js";import"../chunk-JEJLSICM.js";import"../chunk-FQKZWM4L.js";import"../chunk-VE5AVNMP.js";import"../chunk-7FND7D7N.js";import"../chunk-BGBBVSH4.js";import"../chunk-JOIRNPPY.js";import"../chunk-6CS3UQTN.js";import"../chunk-P5XHIJHI.js";import"../chunk-J77SU6VA.js";import"../chunk-UCD3H3UZ.js";import"../chunk-CVYSU6BX.js";import"../chunk-ELNRLMC5.js";import"../chunk-UZGZB3VB.js";import"../chunk-ZKX2FRS6.js";import"../chunk-C7QOQX32.js";import"../chunk-TIIC3ZE7.js";import"../chunk-YUKYB54I.js";import"../chunk-OANDYLJQ.js";import"../chunk-NNOKTMZT.js";import"../chunk-SGX43S2L.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as dependenceSlice};
|
|
2
|
+
//# sourceMappingURL=dependence-slice.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import { F as FileDependencyEdgeBasis } from '../file-dep-graph-Bqg3t3Px.js';
|
|
3
|
+
import 'better-sqlite3';
|
|
4
|
+
import '../config-types-BNoC96J3.js';
|
|
5
|
+
|
|
6
|
+
interface DeepChainResult {
|
|
7
|
+
/** Canonical representative file for each condensed dependency component. */
|
|
8
|
+
chain: string[];
|
|
9
|
+
/** Full component membership; arrays with multiple files are dependency cycles. */
|
|
10
|
+
components: string[][];
|
|
11
|
+
/** Number of condensed dependency components, not the number of files inside cycles. */
|
|
12
|
+
depth: number;
|
|
13
|
+
/** Total files represented by the condensed component path. */
|
|
14
|
+
fileCount: number;
|
|
15
|
+
/** The file relation whose condensed depth was measured. */
|
|
16
|
+
edgeBasis?: FileDependencyEdgeBasis;
|
|
17
|
+
actionTier: 'signal';
|
|
18
|
+
chainKind: 'transitive-dependency-depth';
|
|
19
|
+
evidenceReasons: string[];
|
|
20
|
+
recommendation: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Find the longest transitive dependency chains between files.
|
|
24
|
+
* A chain A → B → C → D means A depends on B, B on C, C on D.
|
|
25
|
+
*
|
|
26
|
+
* Long chains = high coupling depth = changes at the end ripple through many layers.
|
|
27
|
+
*
|
|
28
|
+
* Implementation: condense the graph into strongly-connected components
|
|
29
|
+
* (each cycle becomes one super-node), then run a single-pass longest-path
|
|
30
|
+
* DP over the resulting DAG via topological order. Linear in nodes+edges.
|
|
31
|
+
* For each starting node we record one representative longest chain;
|
|
32
|
+
* within a cycle we pick a canonical representative file. This avoids the
|
|
33
|
+
* exponential blow-up of enumerating every simple path (which OOMs on
|
|
34
|
+
* dense graphs with cycles, like cross-crate Rust workspaces).
|
|
35
|
+
*/
|
|
36
|
+
declare function dependencyDepth(db: ScipDatabase, opts?: {
|
|
37
|
+
limit?: number;
|
|
38
|
+
scope?: string;
|
|
39
|
+
minDepth?: number;
|
|
40
|
+
edgeBasis?: FileDependencyEdgeBasis;
|
|
41
|
+
}): DeepChainResult[];
|
|
42
|
+
/** @deprecated Prefer `dependencyDepth`, which names the computed graph property. */
|
|
43
|
+
declare function deepChains(db: ScipDatabase, opts?: {
|
|
44
|
+
limit?: number;
|
|
45
|
+
scope?: string;
|
|
46
|
+
minDepth?: number;
|
|
47
|
+
}): DeepChainResult[];
|
|
48
|
+
|
|
49
|
+
export { type DeepChainResult, deepChains, dependencyDepth };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"../chunk-TRRC4ZJ7.js";import"../chunk-35NLDRZC.js";import"../chunk-NNOKTMZT.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{b as deepChains,a as dependencyDepth};
|
|
2
|
+
//# sourceMappingURL=dependency-depth.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import 'better-sqlite3';
|
|
3
|
+
import '../config-types-BNoC96J3.js';
|
|
4
|
+
|
|
5
|
+
interface DepResult {
|
|
6
|
+
relativePath: string;
|
|
7
|
+
edgeBasis?: 'symbol-references';
|
|
8
|
+
evidence?: 'cross-file SCIP references plus resolved source imports';
|
|
9
|
+
}
|
|
10
|
+
/** What internal files does this file depend on? (forward dependencies) */
|
|
11
|
+
declare function deps(db: ScipDatabase, filePattern: string): DepResult[];
|
|
12
|
+
/** What files depend on this file/module? (reverse dependencies) */
|
|
13
|
+
declare function rdeps(db: ScipDatabase, filePattern: string): DepResult[];
|
|
14
|
+
|
|
15
|
+
export { type DepResult, deps, rdeps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"../chunk-AKB7V7TV.js";import"../chunk-GW6Z3WGY.js";import"../chunk-GTXSJDCO.js";import"../chunk-UZGZB3VB.js";import"../chunk-NNOKTMZT.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as deps,b as rdeps};
|
|
2
|
+
//# sourceMappingURL=deps.js.map
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { C as ChangedLineRange } from '../change-analysis-types-CCtoCHbC.js';
|
|
2
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
3
|
+
import { I as IndexedDefinition } from '../symbol-types-BIQwfoAx.js';
|
|
4
|
+
import 'better-sqlite3';
|
|
5
|
+
import '../config-types-BNoC96J3.js';
|
|
6
|
+
|
|
7
|
+
interface DiffImpactResult {
|
|
8
|
+
changedFiles: string[];
|
|
9
|
+
changedSymbols: Array<{
|
|
10
|
+
symbol: string;
|
|
11
|
+
shortName: string;
|
|
12
|
+
file: string;
|
|
13
|
+
startLine: number;
|
|
14
|
+
endLine: number;
|
|
15
|
+
fanIn: number;
|
|
16
|
+
}>;
|
|
17
|
+
affectedConsumers: Array<{
|
|
18
|
+
file: string;
|
|
19
|
+
consumedSymbols: number;
|
|
20
|
+
}>;
|
|
21
|
+
attributionNotes: AttributionNote[];
|
|
22
|
+
/** Whether each non-SCIP consumer-discovery tier completed. */
|
|
23
|
+
evidenceTiers: DiffImpactEvidenceTierStatus[];
|
|
24
|
+
summary: {
|
|
25
|
+
totalChangedFiles: number;
|
|
26
|
+
totalChangedSymbols: number;
|
|
27
|
+
totalAffectedFiles: number;
|
|
28
|
+
note?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
type ChangedSymbol = DiffImpactResult['changedSymbols'][number];
|
|
32
|
+
interface DiffImpactPlan {
|
|
33
|
+
changedFileLines: string[];
|
|
34
|
+
changedFiles: string[];
|
|
35
|
+
changedRanges: ChangedLineRange[];
|
|
36
|
+
renamedFiles: RenamedFile[];
|
|
37
|
+
note?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Plan note when git itself failed (not a repo, bad ref) — vs an empty diff. */
|
|
40
|
+
declare const GIT_DIFF_UNAVAILABLE_NOTE = "Unable to compute git diff.";
|
|
41
|
+
interface RenamedFile {
|
|
42
|
+
from: string;
|
|
43
|
+
to: string;
|
|
44
|
+
similarity: number;
|
|
45
|
+
}
|
|
46
|
+
type BaseContentReader = (relativePath: string) => string | null;
|
|
47
|
+
type BaseContentResult = {
|
|
48
|
+
state: 'present';
|
|
49
|
+
content: string;
|
|
50
|
+
} | {
|
|
51
|
+
state: 'absent';
|
|
52
|
+
} | {
|
|
53
|
+
state: 'unavailable';
|
|
54
|
+
reason: string;
|
|
55
|
+
};
|
|
56
|
+
type BaseContentResultReader = (relativePath: string) => BaseContentResult;
|
|
57
|
+
interface BaseContentLookupOptions {
|
|
58
|
+
projectRoot: string;
|
|
59
|
+
base: string;
|
|
60
|
+
relativePath: string;
|
|
61
|
+
}
|
|
62
|
+
interface BaseContentsLookupOptions {
|
|
63
|
+
projectRoot: string;
|
|
64
|
+
base: string;
|
|
65
|
+
relativePaths: readonly string[];
|
|
66
|
+
}
|
|
67
|
+
interface BaseContentReaderOptions {
|
|
68
|
+
projectRoot: string;
|
|
69
|
+
base: string;
|
|
70
|
+
preloadPaths?: readonly string[];
|
|
71
|
+
}
|
|
72
|
+
interface BaseContentGitRuntime {
|
|
73
|
+
resolveCommit(projectRoot: string, base: string): string;
|
|
74
|
+
readBatch(input: {
|
|
75
|
+
projectRoot: string;
|
|
76
|
+
resolvedBase: string;
|
|
77
|
+
relativePaths: readonly string[];
|
|
78
|
+
}): Buffer;
|
|
79
|
+
}
|
|
80
|
+
type DiffImpactEvidenceTier = 'semantic-consumers' | 'source-fallback-consumers';
|
|
81
|
+
type DiffImpactEvidenceTierStatus = {
|
|
82
|
+
tier: DiffImpactEvidenceTier;
|
|
83
|
+
state: 'complete';
|
|
84
|
+
attemptedSymbols: number;
|
|
85
|
+
} | {
|
|
86
|
+
tier: DiffImpactEvidenceTier;
|
|
87
|
+
state: 'failed';
|
|
88
|
+
attemptedSymbols: number;
|
|
89
|
+
reason: string;
|
|
90
|
+
};
|
|
91
|
+
interface DiffImpactEvidenceRuntime {
|
|
92
|
+
semanticConsumers(db: ScipDatabase, definitions: ReadonlyArray<IndexedDefinition>): Map<number, Set<string>>;
|
|
93
|
+
sourceFallbackConsumers(db: ScipDatabase, definitions: ReadonlyArray<IndexedDefinition>): Map<number, Set<string>>;
|
|
94
|
+
}
|
|
95
|
+
interface DiffImpactPartialOptions {
|
|
96
|
+
evidenceRuntime?: DiffImpactEvidenceRuntime;
|
|
97
|
+
}
|
|
98
|
+
interface DiffImpactPartial {
|
|
99
|
+
changedSymbols: ChangedSymbol[];
|
|
100
|
+
consumerEntries: Array<{
|
|
101
|
+
file: string;
|
|
102
|
+
symbols: string[];
|
|
103
|
+
}>;
|
|
104
|
+
attributionNotes: AttributionNote[];
|
|
105
|
+
evidenceTiers: DiffImpactEvidenceTierStatus[];
|
|
106
|
+
}
|
|
107
|
+
interface AttributionNote {
|
|
108
|
+
file: string;
|
|
109
|
+
startLine: number;
|
|
110
|
+
endLine: number;
|
|
111
|
+
method: 'ast-widened' | 'nearest-preceding' | 'unattributed';
|
|
112
|
+
}
|
|
113
|
+
interface DeclarationSpan {
|
|
114
|
+
file: string;
|
|
115
|
+
startLine: number;
|
|
116
|
+
endLine: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Given a git diff, compute the affected symbol set.
|
|
120
|
+
* Finds all symbols defined in changed files, their fan-in,
|
|
121
|
+
* and the files that consume them downstream.
|
|
122
|
+
*/
|
|
123
|
+
declare function diffImpact(db: ScipDatabase, opts?: {
|
|
124
|
+
base?: string;
|
|
125
|
+
plan?: DiffImpactPlan;
|
|
126
|
+
}): DiffImpactResult;
|
|
127
|
+
declare function diffImpactPlan(db: ScipDatabase, opts?: {
|
|
128
|
+
base?: string;
|
|
129
|
+
}): DiffImpactPlan;
|
|
130
|
+
declare function diffImpactPartial(db: ScipDatabase, filesToAnalyze: readonly string[], allChangedFiles: readonly string[], changedRanges?: readonly ChangedLineRange[], opts?: DiffImpactPartialOptions): DiffImpactPartial;
|
|
131
|
+
declare function mergeDiffImpactPartials(changedFiles: readonly string[], partials: readonly DiffImpactPartial[]): DiffImpactResult;
|
|
132
|
+
declare function fileContentAtBase(options: BaseContentLookupOptions): string | null;
|
|
133
|
+
/**
|
|
134
|
+
* @deprecated Use `fileContentAtBase({ projectRoot, base, relativePath })` so
|
|
135
|
+
* the project root, Git revision, and project-relative path cannot be
|
|
136
|
+
* transposed.
|
|
137
|
+
*/
|
|
138
|
+
declare function fileContentAtBase(projectRoot: string, base: string, relativePath: string): string | null;
|
|
139
|
+
declare function readBaseContent(opts: BaseContentLookupOptions, runtime?: BaseContentGitRuntime): BaseContentResult;
|
|
140
|
+
declare function readBaseContents(opts: BaseContentsLookupOptions, runtime?: BaseContentGitRuntime): Map<string, BaseContentResult>;
|
|
141
|
+
declare function createBaseContentResultReader(opts: {
|
|
142
|
+
projectRoot: string;
|
|
143
|
+
base: string;
|
|
144
|
+
preloadPaths?: readonly string[];
|
|
145
|
+
}, runtime?: BaseContentGitRuntime): BaseContentResultReader;
|
|
146
|
+
declare function createBaseContentReader(options: BaseContentReaderOptions): BaseContentReader;
|
|
147
|
+
/**
|
|
148
|
+
* @deprecated Use `createBaseContentReader({ projectRoot, base, preloadPaths })`
|
|
149
|
+
* so the project root and Git revision cannot be transposed.
|
|
150
|
+
*/
|
|
151
|
+
declare function createBaseContentReader(projectRoot: string, base: string, preloadPaths?: readonly string[]): BaseContentReader;
|
|
152
|
+
declare function baseContentPathsForDiffPlan(diffPlan: DiffImpactPlan, changedFiles?: readonly string[]): string[];
|
|
153
|
+
declare function fileContentsAtBase(options: BaseContentsLookupOptions): Map<string, string | null>;
|
|
154
|
+
/**
|
|
155
|
+
* @deprecated Use `fileContentsAtBase({ projectRoot, base, relativePaths })`
|
|
156
|
+
* so the project root, Git revision, and project-relative paths cannot be
|
|
157
|
+
* transposed.
|
|
158
|
+
*/
|
|
159
|
+
declare function fileContentsAtBase(projectRoot: string, base: string, relativePaths: readonly string[]): Map<string, string | null>;
|
|
160
|
+
declare function attributeResidue(definitions: readonly IndexedDefinition[], changedRanges: readonly ChangedLineRange[], declarationSpans: readonly DeclarationSpan[]): {
|
|
161
|
+
definitions: IndexedDefinition[];
|
|
162
|
+
notes: AttributionNote[];
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export { type AttributionNote, type BaseContentGitRuntime, type BaseContentLookupOptions, type BaseContentReader, type BaseContentReaderOptions, type BaseContentResult, type BaseContentResultReader, type BaseContentsLookupOptions, ChangedLineRange, type DeclarationSpan, type DiffImpactEvidenceRuntime, type DiffImpactEvidenceTier, type DiffImpactEvidenceTierStatus, type DiffImpactPartial, type DiffImpactPartialOptions, type DiffImpactPlan, type DiffImpactResult, GIT_DIFF_UNAVAILABLE_NOTE, type RenamedFile, attributeResidue, baseContentPathsForDiffPlan, createBaseContentReader, createBaseContentResultReader, diffImpact, diffImpactPartial, diffImpactPlan, fileContentAtBase, fileContentsAtBase, mergeDiffImpactPartials, readBaseContent, readBaseContents };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m}from"../chunk-L4NRUAGJ.js";import"../chunk-QOKYJ33H.js";import"../chunk-7FND7D7N.js";import"../chunk-BGBBVSH4.js";import"../chunk-JOIRNPPY.js";import"../chunk-6CS3UQTN.js";import"../chunk-P5XHIJHI.js";import"../chunk-J77SU6VA.js";import"../chunk-UCD3H3UZ.js";import"../chunk-CVYSU6BX.js";import"../chunk-ELNRLMC5.js";import"../chunk-UZGZB3VB.js";import"../chunk-ZKX2FRS6.js";import"../chunk-C7QOQX32.js";import"../chunk-TIIC3ZE7.js";import"../chunk-YUKYB54I.js";import"../chunk-OANDYLJQ.js";import"../chunk-NNOKTMZT.js";import"../chunk-SGX43S2L.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as GIT_DIFF_UNAVAILABLE_NOTE,m as attributeResidue,k as baseContentPathsForDiffPlan,j as createBaseContentReader,i as createBaseContentResultReader,b as diffImpact,d as diffImpactPartial,c as diffImpactPlan,f as fileContentAtBase,l as fileContentsAtBase,e as mergeDiffImpactPartials,g as readBaseContent,h as readBaseContents};
|
|
2
|
+
//# sourceMappingURL=diff-impact.js.map
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import { G as GitHistoryMode } from '../git-history-ChNHbfZQ.js';
|
|
3
|
+
import { D as DocCitationKind } from '../change-analysis-types-CCtoCHbC.js';
|
|
4
|
+
import 'better-sqlite3';
|
|
5
|
+
import '../config-types-BNoC96J3.js';
|
|
6
|
+
|
|
7
|
+
type DocDriftIntent = 'current-guidance' | 'historical-note' | 'unknown';
|
|
8
|
+
type DocDriftActionTier = 'direct' | 'signal' | 'support';
|
|
9
|
+
interface DocDriftSubject {
|
|
10
|
+
file: string;
|
|
11
|
+
/**
|
|
12
|
+
* 'reference': the doc's text mentions this file path.
|
|
13
|
+
* 'co-change': the doc historically changed in the same commits as this file.
|
|
14
|
+
* 'both': both evidence sources agree — strongest signal.
|
|
15
|
+
*/
|
|
16
|
+
evidence: 'reference' | 'co-change' | 'both';
|
|
17
|
+
/** Commits where doc and subject changed together (0 for pure references). */
|
|
18
|
+
coChanges: number;
|
|
19
|
+
/** Commits touching the subject AFTER the doc's last change. */
|
|
20
|
+
changesSinceDocUpdate: number;
|
|
21
|
+
/** Strength of action implied by the evidence and doc intent. */
|
|
22
|
+
actionTier: DocDriftActionTier;
|
|
23
|
+
/** Whether the doc reads like current guidance, historical context, or neither. */
|
|
24
|
+
docIntent: DocDriftIntent;
|
|
25
|
+
/** Bounded reasons for the doc intent classification. */
|
|
26
|
+
docIntentReasons: string[];
|
|
27
|
+
/** Nearby doc text that gives the file citation its meaning, when available. */
|
|
28
|
+
citationContexts?: string[];
|
|
29
|
+
/** Citation kind from the shared doc-reference policy, when text cites the file. */
|
|
30
|
+
citationKind?: DocCitationKind;
|
|
31
|
+
citationKindReasons?: string[];
|
|
32
|
+
/** Line suffixes from citations like `src/file.ts:42`; recorded, not drift-checked yet. */
|
|
33
|
+
citedLines?: number[];
|
|
34
|
+
}
|
|
35
|
+
interface DocFileCitation {
|
|
36
|
+
file: string;
|
|
37
|
+
/** Bounded nearby doc text for each citation of this file. */
|
|
38
|
+
contexts: string[];
|
|
39
|
+
/** Optional line suffixes cited for this file; recorded, not drift-checked yet. */
|
|
40
|
+
lineReferences?: number[];
|
|
41
|
+
}
|
|
42
|
+
interface DocDriftFinding {
|
|
43
|
+
doc: string;
|
|
44
|
+
/** Unix seconds of the doc's last change; 0 = never changed in the window. */
|
|
45
|
+
docLastChangedAt: number;
|
|
46
|
+
/** Σ subject changes since the doc last changed — the staleness score. */
|
|
47
|
+
staleness: number;
|
|
48
|
+
subjects: DocDriftSubject[];
|
|
49
|
+
/** File paths the doc mentions that no longer exist (spec points at deleted code). */
|
|
50
|
+
brokenReferences: string[];
|
|
51
|
+
/**
|
|
52
|
+
* True when this doc matched the docs.snapshotPaths policy (or carries a
|
|
53
|
+
* `<!-- codebaseiq: snapshot -->` marker). Snapshot docs are excluded from
|
|
54
|
+
* default findings; only present when `includeSnapshotExcluded` requested
|
|
55
|
+
* them explicitly — never silently dropped, always labeled.
|
|
56
|
+
*/
|
|
57
|
+
snapshotExcluded?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* True when `docLastChangedAt` came from filesystem mtime, not git
|
|
60
|
+
* history — the doc had zero entries in the (capped) commit-history scan,
|
|
61
|
+
* most commonly a staged-but-uncommitted addition or one whose only
|
|
62
|
+
* appearance was in a bulk commit dropped wholesale by the shared
|
|
63
|
+
* git-history file cap (see BULK_COMMIT_FILE_CAP in git-history.ts).
|
|
64
|
+
* Fixes the 2026-07-01 Vega calibration finding: every sampled finding
|
|
65
|
+
* reported `docLastChangedAt: 0` (epoch) even for docs committed the same
|
|
66
|
+
* day, which read as "doc never changed" and inflated staleness.
|
|
67
|
+
*/
|
|
68
|
+
docLastChangedAtEstimated?: boolean;
|
|
69
|
+
}
|
|
70
|
+
interface DocDriftResult {
|
|
71
|
+
/** False when git history is unavailable. */
|
|
72
|
+
available: boolean;
|
|
73
|
+
commitsAnalyzed: number;
|
|
74
|
+
/** Doc files scanned for content references. */
|
|
75
|
+
docsScanned: number;
|
|
76
|
+
findings: DocDriftFinding[];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Archival docs (dated plans, ADRs, RFCs, changelogs) record a moment in
|
|
80
|
+
* time — they cite code as of their date and are never meant to track it.
|
|
81
|
+
*/
|
|
82
|
+
declare function isArchivalDoc(path: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Standards/docs drift, from two evidence sources:
|
|
85
|
+
*
|
|
86
|
+
* 1. CONTENT REFERENCES — the doc's text names file paths; those files kept
|
|
87
|
+
* changing after the doc last changed. Covers standards docs from day one
|
|
88
|
+
* (no history needed) and finds BROKEN references: paths the doc cites
|
|
89
|
+
* that no longer exist — a spec pointing at deleted code.
|
|
90
|
+
* 2. CO-CHANGE — the doc historically changed in the same commits as code
|
|
91
|
+
* files, then stopped while they kept churning. Catches implicit coupling
|
|
92
|
+
* the doc never names.
|
|
93
|
+
*
|
|
94
|
+
* A stale standards doc is worse than none when agents read it before
|
|
95
|
+
* implementing — they implement to a dead spec.
|
|
96
|
+
*/
|
|
97
|
+
declare function docDrift(db: ScipDatabase, opts?: {
|
|
98
|
+
doc?: string;
|
|
99
|
+
limit?: number;
|
|
100
|
+
minCoupling?: number;
|
|
101
|
+
includeSnapshotExcluded?: boolean;
|
|
102
|
+
historyMode?: GitHistoryMode;
|
|
103
|
+
}): DocDriftResult;
|
|
104
|
+
/**
|
|
105
|
+
* Docs whose text cites any of the target files — callers use this to ask
|
|
106
|
+
* "you changed these files; which docs claim to describe them?"
|
|
107
|
+
*/
|
|
108
|
+
declare function docsCitingFiles(db: ScipDatabase, targets: ReadonlySet<string>): Array<{
|
|
109
|
+
doc: string;
|
|
110
|
+
cited: string[];
|
|
111
|
+
citations: DocFileCitation[];
|
|
112
|
+
citedClaims: string[];
|
|
113
|
+
}>;
|
|
114
|
+
|
|
115
|
+
export { type DocDriftActionTier, type DocDriftFinding, type DocDriftIntent, type DocDriftResult, type DocDriftSubject, type DocFileCitation, docDrift, docsCitingFiles, isArchivalDoc };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b,c}from"../chunk-NE6IU5ZD.js";import"../chunk-QOKYJ33H.js";import"../chunk-4WKDMDEW.js";import"../chunk-QDCCHMVZ.js";import"../chunk-P5XHIJHI.js";import"../chunk-YUKYB54I.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{b as docDrift,c as docsCitingFiles,a as isArchivalDoc};
|
|
2
|
+
//# sourceMappingURL=doc-drift.js.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { S as ScipDatabase } from '../db-D7sauVFH.js';
|
|
2
|
+
import { ArchitectureBoundaryEdge, ArchitectureReport } from './architecture.js';
|
|
3
|
+
import 'better-sqlite3';
|
|
4
|
+
import '../config-types-BNoC96J3.js';
|
|
5
|
+
|
|
6
|
+
type DriftActionTier = 'direct' | 'signal';
|
|
7
|
+
/** `inferred` and `unknown-layer` remain only for compatibility with older result consumers. */
|
|
8
|
+
type DriftPolicyBasis = 'explicit' | 'inferred' | 'unknown-layer';
|
|
9
|
+
interface DriftArchitectureEvidence {
|
|
10
|
+
fromBoundary: string;
|
|
11
|
+
toBoundary: string;
|
|
12
|
+
fileEdgeCount: number;
|
|
13
|
+
importerCount: number;
|
|
14
|
+
importedFileCount: number;
|
|
15
|
+
examples: ArchitectureBoundaryEdge['examples'];
|
|
16
|
+
}
|
|
17
|
+
interface DriftResult {
|
|
18
|
+
file: string;
|
|
19
|
+
kind: 'unused-import' | 'architecture-violation' | 'layer-violation' | 'pattern-deviation';
|
|
20
|
+
description: string;
|
|
21
|
+
/** The dependency involved */
|
|
22
|
+
dep: string;
|
|
23
|
+
/** For boundary violations: the expected dependency direction. */
|
|
24
|
+
detail?: string;
|
|
25
|
+
actionTier: DriftActionTier;
|
|
26
|
+
/** Architecture violations are emitted only from explicit project rules. */
|
|
27
|
+
policyBasis?: DriftPolicyBasis;
|
|
28
|
+
/** Grouped boundary evidence for declared architecture violations. */
|
|
29
|
+
architecture?: DriftArchitectureEvidence;
|
|
30
|
+
evidenceReasons: string[];
|
|
31
|
+
recommendation: string;
|
|
32
|
+
}
|
|
33
|
+
interface DriftSummary {
|
|
34
|
+
results: DriftResult[];
|
|
35
|
+
unusedImports: number;
|
|
36
|
+
architectureViolations: number;
|
|
37
|
+
/** @deprecated Use `architectureViolations`. */
|
|
38
|
+
layerViolations: number;
|
|
39
|
+
patternDeviations: number;
|
|
40
|
+
/** Full boundary report, included only when `includeArchitecture` is true. */
|
|
41
|
+
architecture?: ArchitectureReport;
|
|
42
|
+
/** Total results before `limit` was applied — set only when truncated. */
|
|
43
|
+
totalResults?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detect structural drift using the reference graph, not just import patterns.
|
|
47
|
+
*
|
|
48
|
+
* Three types of drift, each detecting a real problem:
|
|
49
|
+
*
|
|
50
|
+
* 1. **Unused imports** — file depends on a module but never references
|
|
51
|
+
* any of its symbols. Dead dependency, safe to remove.
|
|
52
|
+
*
|
|
53
|
+
* 2. **Architecture violations** — one or more files cross a project-owned
|
|
54
|
+
* boundary whose declared dependency row rejects the target boundary.
|
|
55
|
+
*
|
|
56
|
+
* 3. **Pattern deviations** — file imports something no sibling does,
|
|
57
|
+
* suggesting it's reaching outside its expected scope. Only flagged
|
|
58
|
+
* when the file is the ONLY one in its directory with that dep.
|
|
59
|
+
*/
|
|
60
|
+
declare function drift(db: ScipDatabase, opts?: {
|
|
61
|
+
scope?: string;
|
|
62
|
+
minDeviation?: number;
|
|
63
|
+
semantic?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Pattern-deviation ("only sibling importing X") is opt-in as of the
|
|
66
|
+
* 21.2 calibration retune — external calibration measured 0/10 and 1/8
|
|
67
|
+
* actionable on Vega_2.0/Stable_Management respectively (894 and 233
|
|
68
|
+
* same-shaped findings drowning the direct structural-drift channel).
|
|
69
|
+
* Default false. `includePatternDeviations: true` restores the old
|
|
70
|
+
* always-on behavior for exploration/opt-in callers.
|
|
71
|
+
*/
|
|
72
|
+
includePatternDeviations?: boolean;
|
|
73
|
+
/** Include the full architecture graph and report-only signals in the summary. */
|
|
74
|
+
includeArchitecture?: boolean;
|
|
75
|
+
/** Cap on `results` after all three families are combined. Default 50. */
|
|
76
|
+
limit?: number;
|
|
77
|
+
}): DriftSummary;
|
|
78
|
+
|
|
79
|
+
export { type DriftActionTier, type DriftArchitectureEvidence, type DriftPolicyBasis, type DriftResult, type DriftSummary, drift };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"../chunk-EMNIHCRB.js";import"../chunk-WMPRTGH2.js";import"../chunk-QDCCHMVZ.js";import"../chunk-35NLDRZC.js";import"../chunk-7FND7D7N.js";import"../chunk-BGBBVSH4.js";import"../chunk-JOIRNPPY.js";import"../chunk-6CS3UQTN.js";import"../chunk-P5XHIJHI.js";import"../chunk-J77SU6VA.js";import"../chunk-UCD3H3UZ.js";import"../chunk-CVYSU6BX.js";import"../chunk-ELNRLMC5.js";import"../chunk-UZGZB3VB.js";import"../chunk-ZKX2FRS6.js";import"../chunk-C7QOQX32.js";import"../chunk-TIIC3ZE7.js";import"../chunk-YUKYB54I.js";import"../chunk-OANDYLJQ.js";import"../chunk-NNOKTMZT.js";import"../chunk-SGX43S2L.js";import"../chunk-FETNQCFO.js";import"../chunk-O6QTXQPJ.js";import"../chunk-ADTBPVUZ.js";import"../chunk-BMYOV5GP.js";import"../chunk-CWONGW6P.js";import"../chunk-3LCDIREB.js";import"../chunk-NNJ2KZZG.js";export{a as drift};
|
|
2
|
+
//# sourceMappingURL=drift.js.map
|