scip-query 0.19.6 → 0.19.10
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 +116 -0
- package/README.md +156 -44
- package/dist/augment-vue-worker.js +1 -1
- package/dist/chunk-26QA6FAI.js +8 -0
- package/dist/{chunk-J7VT2CRB.js → chunk-2HPVVXM5.js} +2 -2
- package/dist/chunk-2KAZEZ6M.js +2 -0
- package/dist/chunk-32LVLCLN.js +40 -0
- package/dist/{chunk-2CVXCGL4.js → chunk-3CLX5EOX.js} +2 -2
- package/dist/{chunk-5OC3HWP5.js → chunk-3G66UZBH.js} +2 -2
- package/dist/{chunk-S2GP3CU3.js → chunk-3ORVDL3H.js} +2 -2
- package/dist/chunk-46XGSFNI.js +2 -0
- package/dist/chunk-4MAK2HOY.js +6 -0
- package/dist/chunk-4TURLRL5.js +16 -0
- package/dist/chunk-4UQVNCQE.js +2 -0
- package/dist/chunk-55Q3WLZX.js +2 -0
- package/dist/{chunk-OQ2A4G2G.js → chunk-5E4WNAVD.js} +2 -2
- package/dist/{chunk-YGQN3XGZ.js → chunk-5I5G2QOX.js} +2 -2
- package/dist/chunk-6LDJQXAH.js +2 -0
- package/dist/{chunk-WXAAURU7.js → chunk-6O5TICIZ.js} +2 -2
- package/dist/{chunk-OBKDTVZ3.js → chunk-6SHPK5ZE.js} +2 -2
- package/dist/chunk-7BAVHKMJ.js +49 -0
- package/dist/chunk-7O5IKBTZ.js +16 -0
- package/dist/chunk-7PIO7NKH.js +60 -0
- package/dist/chunk-7S5E7KWT.js +2 -0
- package/dist/{chunk-GK3GRUJX.js → chunk-7SQQWSY3.js} +2 -2
- package/dist/chunk-7WPLAODU.js +5 -0
- package/dist/chunk-A73XVBCR.js +20 -0
- package/dist/chunk-AFHORGLH.js +42 -0
- package/dist/chunk-AIE7TFJW.js +9 -0
- package/dist/chunk-AQOFWNQJ.js +1 -0
- package/dist/{chunk-MGBJHRFB.js → chunk-AZJQQKDD.js} +2 -2
- package/dist/{chunk-IYAOX36F.js → chunk-B2PX5I6M.js} +2 -2
- package/dist/{chunk-EVOC5I5I.js → chunk-B7PBSLZN.js} +2 -2
- package/dist/{chunk-ZLJLE6LK.js → chunk-BBW6JFHN.js} +2 -2
- package/dist/{chunk-NBRUH7OE.js → chunk-BDCC2NPY.js} +2 -2
- package/dist/{chunk-DD5BOU5I.js → chunk-BNXCIFVY.js} +2 -2
- package/dist/{chunk-FHCTEANE.js → chunk-BPAPWKP6.js} +2 -2
- package/dist/chunk-BS2NMXQZ.js +4 -0
- package/dist/chunk-C3KV2II6.js +2 -0
- package/dist/chunk-C43RDDP4.js +20 -0
- package/dist/{chunk-QBYYWGAT.js → chunk-CJST5ETY.js} +2 -2
- package/dist/chunk-DAFAHMNB.js +42 -0
- package/dist/chunk-DHEQMPLW.js +2 -0
- package/dist/{chunk-336DC5NJ.js → chunk-DQGFVPUV.js} +2 -2
- package/dist/chunk-DQLPXMH6.js +8 -0
- package/dist/chunk-EKZTZXHZ.js +117 -0
- package/dist/{chunk-KLVJABXA.js → chunk-EN3O7VJA.js} +2 -2
- package/dist/{chunk-U5CNPPTZ.js → chunk-EW2NTSFA.js} +2 -2
- package/dist/chunk-F3Z4OUDS.js +8 -0
- package/dist/chunk-FJH2NW7J.js +66 -0
- package/dist/{chunk-3OIKRYU5.js → chunk-FKSELJQF.js} +2 -2
- package/dist/chunk-FTFP6O3L.js +11 -0
- package/dist/chunk-FYLK2DEJ.js +2 -0
- package/dist/chunk-GH74ASD6.js +11 -0
- package/dist/{chunk-NQLSSVOB.js → chunk-GMXWZP2B.js} +2 -2
- package/dist/chunk-GOUBFH5O.js +3 -0
- package/dist/{chunk-RJHCPSZ7.js → chunk-HLF2TX6R.js} +2 -2
- package/dist/{chunk-PC44K7RF.js → chunk-HX4GQPZP.js} +2 -2
- package/dist/chunk-HX7M4BDI.js +30 -0
- package/dist/chunk-HZ72SESS.js +128 -0
- package/dist/{chunk-YTUD45PU.js → chunk-IB2N4FIY.js} +2 -2
- package/dist/chunk-ILMHV3KM.js +2 -0
- package/dist/chunk-IZYYAFN5.js +2 -0
- package/dist/{chunk-A43URCQ3.js → chunk-JAYYFEQY.js} +2 -2
- package/dist/{chunk-RWRLUZ6U.js → chunk-JDOEX4E6.js} +2 -2
- package/dist/chunk-JFGGXWQF.js +947 -0
- package/dist/chunk-JN4NMBEX.js +8 -0
- package/dist/{chunk-JELJLXEE.js → chunk-JVYA47YU.js} +2 -2
- package/dist/{chunk-F42A3AKG.js → chunk-JW56N3KI.js} +2 -2
- package/dist/{chunk-FQTPPXNA.js → chunk-JZ2OXNWB.js} +2 -2
- package/dist/chunk-KFZNKUNT.js +2 -0
- package/dist/chunk-KMKTIO2G.js +8 -0
- package/dist/chunk-L5GJNV2T.js +8 -0
- package/dist/{chunk-RBFFD4V2.js → chunk-L7AW2QB5.js} +2 -2
- package/dist/chunk-L7JDSCDF.js +4 -0
- package/dist/chunk-LU47HG23.js +14 -0
- package/dist/chunk-LVY7NPF7.js +2 -0
- package/dist/chunk-LY4WC4AD.js +74 -0
- package/dist/{chunk-MLGTCX56.js → chunk-MKCDWWGV.js} +2 -2
- package/dist/chunk-MNE7YG56.js +2 -0
- package/dist/{chunk-YWB2EBNB.js → chunk-MRXBEXSY.js} +2 -2
- package/dist/chunk-MV7OWDUX.js +2 -0
- package/dist/{chunk-2GSQR6YA.js → chunk-N5W4YZMK.js} +2 -2
- package/dist/chunk-NGEXCJJW.js +11 -0
- package/dist/{chunk-CYJM7CYF.js → chunk-NIW6JDC5.js} +2 -2
- package/dist/{chunk-YHXBD52M.js → chunk-O64IZ6UX.js} +2 -2
- package/dist/chunk-PBUQFCNB.js +16 -0
- package/dist/{chunk-UQK5CRUK.js → chunk-POAVPHH7.js} +2 -2
- package/dist/{chunk-TYQ76QHQ.js → chunk-PQCI4SQX.js} +2 -2
- package/dist/chunk-PXY7F6Y4.js +5 -0
- package/dist/chunk-RDO52JGY.js +2 -0
- package/dist/chunk-RJT3TUUZ.js +2 -0
- package/dist/{chunk-OHWZKLVA.js → chunk-RUJURYSV.js} +2 -2
- package/dist/{chunk-CSTYYXKC.js → chunk-RVLDN63O.js} +2 -2
- package/dist/chunk-RXOXSKY3.js +2 -0
- package/dist/chunk-S7OYBOCK.js +2 -0
- package/dist/chunk-SMNXQT5Z.js +3 -0
- package/dist/{chunk-QQWOFXNW.js → chunk-SRAFT254.js} +2 -2
- package/dist/{chunk-6XHTISLI.js → chunk-SXP2MBJH.js} +2 -2
- package/dist/chunk-T7YQSHPQ.js +3 -0
- package/dist/{chunk-2EZSOTSY.js → chunk-TFRAYKN6.js} +2 -2
- package/dist/{chunk-XVJ3V7LM.js → chunk-UJCOIXDY.js} +2 -2
- package/dist/{chunk-7LABSJSR.js → chunk-UJPRPGCO.js} +5 -5
- package/dist/chunk-W4ETQAXM.js +2 -0
- package/dist/chunk-WCCFZ7V7.js +113 -0
- package/dist/chunk-WUPW3UN3.js +3 -0
- package/dist/{chunk-VP542C25.js → chunk-WXZLAAWK.js} +2 -2
- package/dist/{chunk-LMFVTUW2.js → chunk-X54AGLVX.js} +2 -2
- package/dist/chunk-XKWKXZKW.js +20 -0
- package/dist/{chunk-OP3MTFJR.js → chunk-XSRF6Q77.js} +2 -2
- package/dist/chunk-Y2MVPNKY.js +5 -0
- package/dist/{chunk-6XFC7PQ5.js → chunk-YKUU5AIC.js} +2 -2
- package/dist/chunk-YLCJLTPL.js +2 -0
- package/dist/{chunk-47X75ZKH.js → chunk-YTQVETEO.js} +2 -2
- package/dist/chunk-Z4N3MZYA.js +38 -0
- package/dist/chunk-ZHXX42OH.js +18 -0
- package/dist/chunk-ZJOOT3BG.js +2 -0
- package/dist/chunk-ZK26BAQL.js +2 -0
- package/dist/{chunk-UUJBLG6J.js → chunk-ZTETIQ35.js} +2 -2
- package/dist/cli.js +3 -3
- package/dist/command-descriptors-4A4HWV4F.js +642 -0
- package/dist/{config-types-BWQ5xPGI.d.ts → config-types-jVM3D7MA.d.ts} +72 -2
- package/dist/{db-B0r1o7Vt.d.ts → db-B5PM5yNk.d.ts} +20 -2
- package/dist/{diff-gate-types-C9BoYwYD.d.ts → diff-gate-types-B0QYpDv1.d.ts} +2 -1
- package/dist/direct-navigation-6YHV6IB5.js +3 -0
- package/dist/{health-CFnlCiTz.d.ts → health-Do5TKSJI.d.ts} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/postinstall.js +1 -1
- package/dist/queries/affected.d.ts +2 -2
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +2 -2
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.d.ts +2 -2
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +2 -2
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +22 -3
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +2 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +2 -2
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +3 -3
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +3 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +2 -2
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +2 -2
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +2 -2
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +2 -2
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.d.ts +2 -2
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.d.ts +2 -2
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/deps.d.ts +2 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-gate.d.ts +40 -7
- package/dist/queries/diff-gate.js +1 -1
- package/dist/queries/diff-impact.d.ts +84 -6
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +3 -3
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +2 -2
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +3 -3
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +2 -2
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +12 -3
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +3 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +2 -2
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +8 -6
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +141 -10
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +34 -3
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -2
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +3 -3
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +3 -3
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +2 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +2 -2
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +2 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +2 -2
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +2 -2
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +1 -1
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +2 -2
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +2 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +2 -2
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.d.ts +2 -2
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +14 -3
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.d.ts +2 -2
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.d.ts +2 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +2 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +2 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/reindex-worker.js +26 -25
- package/dist/reindex.d.ts +7 -3
- package/dist/reindex.js +34 -33
- package/dist/runtime.d.ts +5 -10
- package/dist/runtime.js +3 -3
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/{scip-cli-DCvnlZCu.d.ts → scip-cli-BnEwZRLJ.d.ts} +2 -2
- package/dist/{symbol-types-BgWU6lhL.d.ts → symbol-types-BIQwfoAx.d.ts} +7 -1
- package/dist/typescript-mailbox-worker.js +2 -0
- package/dist/watch-server.js +2 -42
- package/docs/AGENT_GUIDE.md +28 -5
- package/docs/CLI_JSON_OUTPUT.md +176 -3
- package/docs/COMMAND_REFERENCE.md +89 -87
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +55 -18
- package/docs/DURABILITY.md +88 -38
- package/docs/INDEX_GENERATIONS.md +65 -19
- package/docs/MAILBOX_LIFECYCLE.md +28 -1
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +18 -8
- package/docs/SECURITY_MODEL.md +146 -0
- package/docs/TELEMETRY_RETENTION.md +16 -4
- package/docs/WATCH_REFRESH_REQUESTS.md +34 -21
- package/docs/WINDOWS_SIDECAR_RELEASE.md +9 -4
- package/docs/analyzer-inventory.md +31 -22
- package/docs/analyzer-validation-ledger.md +8 -0
- package/docs/schemas/cli-output-page.schema.json +104 -0
- package/docs/schemas/outcome-event-record.schema.json +57 -1
- package/docs/schemas/project-config.schema.json +82 -1
- package/docs/schemas/suppression-record.schema.json +84 -3
- package/package.json +9 -8
- package/skills/_shared/SKILL.md +5 -3
- package/skills/_shared/references/agent-contract-catalog.md +1 -1
- package/skills/_shared/references/detector-precision-and-diffgate.md +1 -1
- package/skills/scip-audit/SKILL.md +9 -8
- package/skills/scip-audit/references/claims.md +1 -1
- package/skills/scip-audit/references/cleanup.md +19 -20
- package/skills/scip-audit/references/directory.md +4 -4
- package/skills/scip-audit/references/frontend.md +10 -10
- package/skills/scip-audit/references/twin-drift.md +2 -2
- package/skills/scip-diagnose/references/debug.md +8 -8
- package/skills/scip-diagnose/references/root-cause.md +3 -3
- package/skills/scip-diagnose/references/triage.md +10 -10
- package/skills/scip-explore/SKILL.md +4 -4
- package/skills/scip-improve/SKILL.md +10 -10
- package/skills/scip-improve/references/cleanup-batches.md +3 -3
- package/skills/scip-improve/references/directory-moves.md +3 -3
- package/skills/scip-improve/references/doc-reconcile.md +1 -1
- package/skills/scip-improve/references/frontend-extraction.md +2 -2
- package/skills/scip-improve/references/twin-drift.md +3 -3
- package/skills/scip-plan/SKILL.md +3 -3
- package/skills/scip-plan/references/api-impact.md +5 -5
- package/skills/scip-plan/references/conductor.md +2 -2
- package/skills/scip-plan/references/hyper-optimization.md +1 -1
- package/skills/scip-query/SKILL.md +15 -5
- package/skills/scip-setup/references/bootstrap-workflow.md +7 -8
- package/skills/scip-setup/references/language-verification.md +2 -2
- package/skills/scip-setup/references/per-repo-triage.md +1 -1
- package/skills/scip-verify/SKILL.md +16 -11
- package/skills/scip-verify/references/calibrate-detectors.md +7 -7
- package/dist/chunk-24QNP7MN.js +0 -2
- package/dist/chunk-26X7KCJR.js +0 -5
- package/dist/chunk-273W2U4Y.js +0 -40
- package/dist/chunk-2OXVAGGT.js +0 -3
- package/dist/chunk-2ZOCHAL2.js +0 -8
- package/dist/chunk-35SQLYCQ.js +0 -2
- package/dist/chunk-4CGVLUDP.js +0 -18
- package/dist/chunk-4RI4BJGT.js +0 -8
- package/dist/chunk-52HQTTPB.js +0 -2
- package/dist/chunk-64MNV6AB.js +0 -8
- package/dist/chunk-7E3TH5ZN.js +0 -33
- package/dist/chunk-7Q6VYYCH.js +0 -2
- package/dist/chunk-A63U2W3P.js +0 -3
- package/dist/chunk-ADFSIJP2.js +0 -16
- package/dist/chunk-AOLE4DYM.js +0 -6
- package/dist/chunk-APMMR5Y2.js +0 -2
- package/dist/chunk-B5MHCHP3.js +0 -107
- package/dist/chunk-DGAGY7RJ.js +0 -60
- package/dist/chunk-DGMCFMPG.js +0 -11
- package/dist/chunk-E2ZXPB7J.js +0 -38
- package/dist/chunk-FKGN4A4E.js +0 -61
- package/dist/chunk-G4UQL4CP.js +0 -2
- package/dist/chunk-GA64UPMI.js +0 -6
- package/dist/chunk-HEBAY673.js +0 -2
- package/dist/chunk-HELS7KFF.js +0 -2
- package/dist/chunk-IPDCSB6N.js +0 -6
- package/dist/chunk-JERWGHQT.js +0 -16
- package/dist/chunk-JJJCO4QC.js +0 -945
- package/dist/chunk-JZNLMHWY.js +0 -56
- package/dist/chunk-K42M2KWT.js +0 -2
- package/dist/chunk-KP4KBDVF.js +0 -3
- package/dist/chunk-LRTP3DKL.js +0 -3
- package/dist/chunk-N3SE646F.js +0 -2
- package/dist/chunk-NN4ZIRPK.js +0 -8
- package/dist/chunk-P6HBYNBE.js +0 -5
- package/dist/chunk-QHKUY4FW.js +0 -2
- package/dist/chunk-QHRL4LKM.js +0 -2
- package/dist/chunk-SHKZ7OVJ.js +0 -35
- package/dist/chunk-TFUU5MQQ.js +0 -2
- package/dist/chunk-UXP636P5.js +0 -144
- package/dist/chunk-VEVBIAOJ.js +0 -16
- package/dist/chunk-VKRQDBW5.js +0 -9
- package/dist/chunk-VOQFGC2W.js +0 -67
- package/dist/chunk-WMXRRBII.js +0 -8
- package/dist/chunk-X3NLZHPA.js +0 -20
- package/dist/chunk-XF3KLXN3.js +0 -11
- package/dist/chunk-YCPASUCX.js +0 -2
- package/dist/chunk-YLVE3SXZ.js +0 -20
- package/dist/chunk-Z2LHPIOM.js +0 -2
- package/dist/chunk-Z5QQPJ3U.js +0 -30
- package/dist/chunk-ZTTISZ7J.js +0 -112
- package/dist/command-descriptors-SJDZ7QGR.js +0 -617
- package/dist/direct-navigation-HTKOZEOM.js +0 -3
|
@@ -21,10 +21,15 @@ A claim is an exclusive processing marker for that admitted request. A
|
|
|
21
21
|
completion is a durable receipt proving that the attempt associated with the
|
|
22
22
|
claim finished successfully, or that the request expired before execution.
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
On hosts that support directory synchronization, these records provide
|
|
25
|
+
at-least-once execution across process, operating-system, and machine failure
|
|
26
|
+
for an accepted, unexpired request. At-least-once execution means a crash after
|
|
27
|
+
reindex success but before the completion receipt may repeat the safe reindex
|
|
28
|
+
operation; it never means an acknowledged request can disappear. On Windows
|
|
29
|
+
hosts where Node cannot synchronize directory handles, admission reports
|
|
30
|
+
`achievedDurability: "file-flushed"` and `directorySync: "unsupported"`:
|
|
31
|
+
process-crash recovery remains intact, but the stronger machine-crash
|
|
32
|
+
namespace guarantee is not claimed.
|
|
28
33
|
|
|
29
34
|
## Layout
|
|
30
35
|
|
|
@@ -52,18 +57,22 @@ deadline remain authoritative.
|
|
|
52
57
|
|
|
53
58
|
## Lifecycle
|
|
54
59
|
|
|
55
|
-
1. The requester durably
|
|
56
|
-
|
|
60
|
+
1. The requester durably establishes the protocol root, `staging/`, and the
|
|
61
|
+
target record directory from the nearest existing ancestor.
|
|
62
|
+
2. It writes and flushes a complete staging record.
|
|
63
|
+
3. It exclusively links that record into `requests/`. A collision is a
|
|
57
64
|
duplicate, not an overwrite.
|
|
58
|
-
|
|
65
|
+
4. It flushes `requests/` before returning accepted and reports the achieved
|
|
66
|
+
platform guarantee.
|
|
67
|
+
5. The watch server, while holding the project watch lock, claims pending,
|
|
59
68
|
unexpired requests through exclusive claim records.
|
|
60
|
-
|
|
69
|
+
6. It deliberately coalesces one claimed batch into one `watch-demand`
|
|
61
70
|
refresh. Requests arriving while the watcher is busy remain pending.
|
|
62
|
-
|
|
71
|
+
7. A successful corresponding reindex writes every completion receipt before
|
|
63
72
|
removing any claim.
|
|
64
|
-
|
|
73
|
+
8. A failed reindex removes its claims without writing completion, making the
|
|
65
74
|
requests pending after a bounded retry delay.
|
|
66
|
-
|
|
75
|
+
9. A successor watch server removes predecessor claims only after acquiring
|
|
67
76
|
the same exclusive watch lock. Completed requests remain completed; all
|
|
68
77
|
other claimed requests become pending.
|
|
69
78
|
|
|
@@ -76,17 +85,21 @@ retention window.
|
|
|
76
85
|
|
|
77
86
|
## Crash and Concurrency Outcomes
|
|
78
87
|
|
|
79
|
-
| Boundary
|
|
80
|
-
|
|
|
81
|
-
| Crash before exclusive admission
|
|
88
|
+
| Boundary | Observable outcome |
|
|
89
|
+
| ------------------------------------------------ | --------------------------------------------------------------------------------------- |
|
|
90
|
+
| Crash before exclusive admission | No request was accepted; only staging may remain |
|
|
82
91
|
| Crash after admission before caller sees success | Request remains pending; retrying the same idempotency key returns the admitted request |
|
|
83
|
-
| Two callers use one idempotency key
|
|
84
|
-
| Two callers use distinct keys
|
|
85
|
-
| Crash after claim before reindex
|
|
86
|
-
| Reindex failure
|
|
87
|
-
| Crash after reindex before completion
|
|
88
|
-
| Crash after completion before claim removal
|
|
89
|
-
| Activity writer races any row above
|
|
92
|
+
| Two callers use one idempotency key | Exactly one immutable request wins |
|
|
93
|
+
| Two callers use distinct keys | Both requests remain independently visible and may be coalesced deliberately |
|
|
94
|
+
| Crash after claim before reindex | Successor clears the stale claim and retries the request |
|
|
95
|
+
| Reindex failure | Claim is released; request remains pending |
|
|
96
|
+
| Crash after reindex before completion | Request may execute again; it is never lost |
|
|
97
|
+
| Crash after completion before claim removal | Completion prevents replay; successor removes the obsolete claim |
|
|
98
|
+
| Activity writer races any row above | Activity changes only `watch-activity.json` and cannot modify request state |
|
|
99
|
+
|
|
100
|
+
The first two rows are machine-crash claims only when admission returned
|
|
101
|
+
`directory-durable`. A `file-flushed` result is explicit evidence that the
|
|
102
|
+
host could not commit the complete namespace frontier.
|
|
90
103
|
|
|
91
104
|
## Compatibility and Diagnostics
|
|
92
105
|
|
|
@@ -234,10 +234,15 @@ both coordinates and repairs only the absent intended package.
|
|
|
234
234
|
The path is stable for one pair of package coordinates. Repacking different
|
|
235
235
|
bytes, using a different source revision, or selecting a different registry
|
|
236
236
|
under those same versions therefore collides with the existing record and
|
|
237
|
-
stops before registry work. The record is atomically replaced
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
237
|
+
stops before registry work. The record is atomically replaced while the
|
|
238
|
+
release lock is owned. The coordinator reports `directory-durable` when the
|
|
239
|
+
host synchronizes the containing directory and
|
|
240
|
+
`file-flushed; directory sync unsupported` when Windows exposes only the
|
|
241
|
+
bounded file guarantee; a real synchronization failure aborts the run. It is
|
|
242
|
+
intentionally ignored by Git and omitted from the npm package: it is local
|
|
243
|
+
recovery state, not portable release authority. Fresh registry observation,
|
|
244
|
+
immutable npm versions, and exact package identity remain the external safety
|
|
245
|
+
authority regardless of the local result. The normative shape is
|
|
241
246
|
`docs/schemas/npm-release-state.schema.json`.
|
|
242
247
|
|
|
243
248
|
Current-schema additive fields are tolerated. Malformed JSON, a wrong
|
|
@@ -52,7 +52,7 @@ The declared-coupling config has been refreshed after the inventory surfaced old
|
|
|
52
52
|
| `wrapper-candidates` | Small production callables with one real external caller, caller fan-in, and boundary-token evidence | Hygiene | Contextual signal, sometimes direct | Single-caller wrappers can be needless indirection, but may also be names, domain/lifecycle boundaries, test seams, or API shaping. Boundary evidence discounts those without hiding them. |
|
|
53
53
|
| `passthrough-candidates` | Small production callables with exactly one callee, literal pass-through body, runtime-boundary evidence, public-facade evidence, action tier, recommendation, and score count | Hygiene, with `scoreCount` discount | Direct when no boundary or public-facade evidence is present; contextual signal when either exists | Body-shape gate is real. Boundary evidence distinguishes adapter, provider, public, capability, transport, lifecycle, access-policy, and facade-shaped forwarders; public-facade evidence separately identifies package-public or rooted exported passthroughs. |
|
|
54
54
|
| `stale-abstractions` | Type-like definitions, real consumers, barrel consumers, transitive reachability, definer usage, confidence, staleness kind, action tier, and recommendation | Hygiene | Direct for unused abstractions; contextual signal for one-consumer ownership rows | `0 consumers` is direct repair. `1 consumer` is contextual, including high-confidence misplaced types, because the repair may be move, inline, keep, or document as public contract. |
|
|
55
|
-
| `drift` | File dep graph, symbol ref graph, semantic/source import usage, project-owned architecture report, sibling patterns, action tier, policy basis, recommendation | Hygiene | Split by kind | `unused-import` and grouped `architecture-violation` rows are direct repair. `pattern-deviation` rows are contextual signals and remain excluded from health scoring. Undeclared boundary edges, reciprocity, and connected groups appear only in architecture context.
|
|
55
|
+
| `drift` | File dep graph, symbol ref graph, semantic/source import usage, project-owned architecture report, sibling patterns, action tier, policy basis, recommendation | Hygiene | Split by kind | `unused-import` and grouped `architecture-violation` rows are direct repair. `pattern-deviation` rows are contextual signals and remain excluded from health scoring. Undeclared boundary edges, reciprocity, and connected groups appear only in architecture context. |
|
|
56
56
|
| `complexity-hotspots` | Production callable LOC, fan-in, fan-out, callee count | Risk | Direct repair pressure | Complexity pressure usually means refactor, but the current score is structural, not cyclomatic. It should be separate from branch-count complexity. |
|
|
57
57
|
| `co-change` / hidden coupling | Git co-change pairs, dependency edges, declared couplings, file noise filters, partner-class labels, declared-coupling suggestions, commit scope, recency context, commit-subject context, and score-weighted count | Risk, weighted by history strength | Contextual signal | Strong evidence that coordination may be missing, but not proof that extraction or unification is correct. Partner classes, history context, subject context, and score weighting now separate contract-like focused current pairs from broad, stale, or unlabeled history before suggesting declared coupling. |
|
|
58
58
|
| Suppression inventory | `scip-query: ignore-*` comments in source, plus structured `.scipquery.json` suppressions | Evidence quality axis | Meta signal | Useful precision feedback. High suppressions should reduce trust or weight for that detector family. Structured file-scoped suppressions now validate path freshness. |
|
|
@@ -85,19 +85,19 @@ The declared-coupling config has been refreshed after the inventory surfaced old
|
|
|
85
85
|
|
|
86
86
|
## Graph, Risk, and Planning Analyzers
|
|
87
87
|
|
|
88
|
-
| Analyzer | Evidence examined
|
|
89
|
-
| -------------------- |
|
|
90
|
-
| `affected` | Transitive symbol impact from a changed symbol
|
|
91
|
-
| `change-surface` | Definitions in a file plus external consumer counts
|
|
92
|
-
| `plan-context` | Trace, references, call graph, dataflow, deps/rdeps, surface, affected, change-surface, complexity, history
|
|
93
|
-
| `bottlenecks` | Callable fan-in times fan-out, risk kind, action tier, evidence reasons, recommendation
|
|
94
|
-
| `hotspots` | Most referenced symbols
|
|
95
|
-
| `fan-in` / `fan-out` | Reference counts into symbols or out of files
|
|
96
|
-
| `coupling` | Shared symbols between two files or top coupled pairs, coupling kind, action tier, evidence reasons, recommendation
|
|
97
|
-
| `architecture` | Project-owned boundary paths and dependency rules applied to resolved import and re-export edges, with mapping coverage, policy-row coverage, edge breadth, reciprocity, and SCCs | Split by evidence | Forbidden edges, required-but-missing policy rows, cycles under `requireAcyclic`, and boundaries hiding an internal sub-directory cycle under `requireResolvedBoundaries` are direct policy findings. Unmapped files, reciprocity, and advisory cycles remain report-only signals.
|
|
98
|
-
| `deep-chains` | Longest dependency chains after SCC condensation, suffix de-duplication, chain kind, action tier, evidence reasons, recommendation
|
|
99
|
-
| `complexity` | Branch count, cyclomatic estimate, callee count, fan-in, fan-out for one symbol
|
|
100
|
-
| `self-audit` | Cheap evidence paths checked against TypeScript compiler oracle
|
|
88
|
+
| Analyzer | Evidence examined | Recommended role | Evaluation |
|
|
89
|
+
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
90
|
+
| `affected` | Transitive symbol impact from a changed symbol | Support analysis | Blast-radius map, not smell. |
|
|
91
|
+
| `change-surface` | Definitions in a file plus external consumer counts | Support/risk analysis | Pre-change risk briefing. Useful for planning and score context, not a repair. |
|
|
92
|
+
| `plan-context` | Trace, references, call graph, dataflow, deps/rdeps, surface, affected, change-surface, complexity, history | Support analysis | Composite planning bundle. It should not contribute smell score directly. |
|
|
93
|
+
| `bottlenecks` | Callable fan-in times fan-out, risk kind, action tier, evidence reasons, recommendation | Contextual signal | Good risk hotspot, not automatic refactor. Output now states `signal` and frames central code as coordination risk rather than repair proof. |
|
|
94
|
+
| `hotspots` | Most referenced symbols | Support/contextual signal | Identifies choke points. Not a smell alone. |
|
|
95
|
+
| `fan-in` / `fan-out` | Reference counts into symbols or out of files | Support analysis | Raw graph metrics. |
|
|
96
|
+
| `coupling` | Shared symbols between two files or top coupled pairs, coupling kind, action tier, evidence reasons, recommendation | Contextual signal | May reveal boundary problems, but shared symbols can be intended. Output now makes the coordination-pressure interpretation explicit. |
|
|
97
|
+
| `architecture` | Project-owned boundary paths and dependency rules applied to resolved import and re-export edges, with mapping coverage, policy-row coverage, edge breadth, reciprocity, and SCCs | Split by evidence | Forbidden edges, required-but-missing policy rows, cycles under `requireAcyclic`, and boundaries hiding an internal sub-directory cycle under `requireResolvedBoundaries` are direct policy findings. Unmapped files, reciprocity, and advisory cycles remain report-only signals. |
|
|
98
|
+
| `deep-chains` | Longest dependency chains after SCC condensation, suffix de-duplication, chain kind, action tier, evidence reasons, recommendation | Contextual signal | Long chains imply propagation risk, but action depends on layers and ownership. Strict suffix duplicates are now removed from top results. |
|
|
99
|
+
| `complexity` | Branch count, cyclomatic estimate, callee count, fan-in, fan-out for one symbol | Direct repair pressure | This is closer to the user-specified "cyclomatic complexity" analyzer than `complexity-hotspots`. Should score strongly when branches/cyclomatic exceed thresholds. |
|
|
100
|
+
| `self-audit` | Cheap evidence paths checked against TypeScript compiler oracle | Meta analysis | Measures analyzer accuracy. Should guide trust/weight, not code health directly. |
|
|
101
101
|
|
|
102
102
|
## Navigation and Evidence Providers
|
|
103
103
|
|
|
@@ -123,14 +123,14 @@ The codebase already avoids some duplicate analysis by sharing kernels:
|
|
|
123
123
|
|
|
124
124
|
The remaining conceptual overlap is mostly healthy, but needs product labels:
|
|
125
125
|
|
|
126
|
-
| Overlap family | Members | Same analysis or distinct? | Recommendation
|
|
127
|
-
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
|
|
128
|
-
| Deletability | `dead`, `isolated`, `cleanup-plan`, `redundant-reexports`, `new-dead` | Distinct evidence scopes over the same core question: can this be removed or must it be wired? | Model as one "deletability" action family with subtypes and confidence.
|
|
129
|
-
| Similarity and reuse | `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `convergence`, React/Vue duplicates, `recent-duplicates`, `echo` | Distinct evidence bases. The risk is UX confusion, not implementation duplication. | Keep separate, but expose basis, action tier, and root-cause groups where pairwise rows repeat.
|
|
130
|
-
| Extraction pressure | `extract-candidates`, React/Vue behavior candidates, large component/view pressure, `incomplete-migration` | Different stages: discover seam, detect duplicated behavior, detect excessive size, catch unfinished migration. | Score unfinished migrations higher than discovery leads.
|
|
131
|
-
| Indirection | `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions` | Related but not the same: single caller, literal forwarding, low-consumer types. | Passthrough and wrapper rows now split by boundary evidence; stale should split by confidence.
|
|
132
|
-
| Architecture/history drift | `architecture`, `drift`, `doc-drift`, `co-change`, `co-change-partner`, `doc-reference` | Same broad problem of things moving out of sync, but sources differ. | Explicit architecture rules are direct; co-change remains signal; doc-reference strength depends on citation kind.
|
|
133
|
-
| Graph risk | `architecture`, `fan-in`, `fan-out`, `hotspots`, `bottlenecks`, `coupling`, `deep-chains`, `change-surface`, `affected` | Mostly layered views of graph pressure. | Treat inferred graph shape as support/context; declared forbidden edges and acyclicity violations are direct policy disagreements.
|
|
126
|
+
| Overlap family | Members | Same analysis or distinct? | Recommendation |
|
|
127
|
+
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
128
|
+
| Deletability | `dead`, `isolated`, `cleanup-plan`, `redundant-reexports`, `new-dead` | Distinct evidence scopes over the same core question: can this be removed or must it be wired? | Model as one "deletability" action family with subtypes and confidence. |
|
|
129
|
+
| Similarity and reuse | `similar`, `similar-files`, `similar-chains`, `similar-signatures`, `convergence`, React/Vue duplicates, `recent-duplicates`, `echo` | Distinct evidence bases. The risk is UX confusion, not implementation duplication. | Keep separate, but expose basis, action tier, and root-cause groups where pairwise rows repeat. |
|
|
130
|
+
| Extraction pressure | `extract-candidates`, React/Vue behavior candidates, large component/view pressure, `incomplete-migration` | Different stages: discover seam, detect duplicated behavior, detect excessive size, catch unfinished migration. | Score unfinished migrations higher than discovery leads. |
|
|
131
|
+
| Indirection | `wrapper-candidates`, `passthrough-candidates`, `stale-abstractions` | Related but not the same: single caller, literal forwarding, low-consumer types. | Passthrough and wrapper rows now split by boundary evidence; stale should split by confidence. |
|
|
132
|
+
| Architecture/history drift | `architecture`, `drift`, `doc-drift`, `co-change`, `co-change-partner`, `doc-reference` | Same broad problem of things moving out of sync, but sources differ. | Explicit architecture rules are direct; co-change remains signal; doc-reference strength depends on citation kind. |
|
|
133
|
+
| Graph risk | `architecture`, `fan-in`, `fan-out`, `hotspots`, `bottlenecks`, `coupling`, `deep-chains`, `change-surface`, `affected` | Mostly layered views of graph pressure. | Treat inferred graph shape as support/context; declared forbidden edges and acyclicity violations are direct policy disagreements. |
|
|
134
134
|
|
|
135
135
|
## Score Model Implications
|
|
136
136
|
|
|
@@ -272,3 +272,12 @@ boundary paths and dependency rows to import-only file edges, retaining edge
|
|
|
272
272
|
breadth and representative files. It is report-only in this slice: inferred
|
|
273
273
|
reciprocity and strongly connected groups do not affect health or diff-gate,
|
|
274
274
|
and an unconfigured repository receives no implicit source-layer policy.
|
|
275
|
+
|
|
276
|
+
## 2026-07-26 Diff-Gate Progress Follow-Up
|
|
277
|
+
|
|
278
|
+
The `src/queries/impact/diff-gate.ts` citation remains accurate after bounded
|
|
279
|
+
progress reporting was added. `DIFF_GATE_CHECKS` is still the canonical public
|
|
280
|
+
check list and `diffGate()` still owns check execution; the check-name type and
|
|
281
|
+
process-local observer contract now live in `queries/internal`, while the
|
|
282
|
+
impact query emits start and completion notifications around each executed
|
|
283
|
+
check.
|
|
@@ -506,3 +506,11 @@ still overriding it with the content-aware version. And the report described a
|
|
|
506
506
|
single-import edge as "incidental rather than load-bearing" — the graph
|
|
507
507
|
establishes edge breadth, not importance, so it now reports the measurement and
|
|
508
508
|
says explicitly that breadth alone settles nothing.
|
|
509
|
+
|
|
510
|
+
## 2026-07-26 Diff-Gate Progress Follow-Up
|
|
511
|
+
|
|
512
|
+
The change-time gate and check-list citations remain accurate. Progress
|
|
513
|
+
instrumentation does not add, remove, or reorder any `DIFF_GATE_CHECKS` entry:
|
|
514
|
+
`diffGate()` emits process-local start and completion notifications around
|
|
515
|
+
each check, while isolated CLI execution turns those notifications into
|
|
516
|
+
diagnostic progress and active-detector timeout evidence.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/ainsleyclark/scip-query/blob/main/docs/schemas/cli-output-page.schema.json",
|
|
4
|
+
"title": "scip-query CLI output page v1",
|
|
5
|
+
"description": "A bounded, resumable page of rendered scip-query output.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["kind", "schemaVersion", "producer", "command", "contentType", "page", "content"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"kind": {
|
|
10
|
+
"const": "scip-query-output-page"
|
|
11
|
+
},
|
|
12
|
+
"schemaVersion": {
|
|
13
|
+
"const": 1
|
|
14
|
+
},
|
|
15
|
+
"producer": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"required": ["name", "version"],
|
|
18
|
+
"properties": {
|
|
19
|
+
"name": {
|
|
20
|
+
"const": "scip-query"
|
|
21
|
+
},
|
|
22
|
+
"version": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"additionalProperties": false
|
|
28
|
+
},
|
|
29
|
+
"command": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1
|
|
32
|
+
},
|
|
33
|
+
"contentType": {
|
|
34
|
+
"enum": ["text/plain", "application/json"]
|
|
35
|
+
},
|
|
36
|
+
"agentInstruction": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"minLength": 1,
|
|
39
|
+
"description": "A direct evidence-completeness obligation for an AI agent consuming this page."
|
|
40
|
+
},
|
|
41
|
+
"page": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"required": [
|
|
44
|
+
"offset",
|
|
45
|
+
"returnedCharacters",
|
|
46
|
+
"totalCharacters",
|
|
47
|
+
"omittedCharacters",
|
|
48
|
+
"remainingCharacters",
|
|
49
|
+
"complete",
|
|
50
|
+
"outputHash"
|
|
51
|
+
],
|
|
52
|
+
"properties": {
|
|
53
|
+
"offset": {
|
|
54
|
+
"type": "integer",
|
|
55
|
+
"minimum": 0
|
|
56
|
+
},
|
|
57
|
+
"returnedCharacters": {
|
|
58
|
+
"type": "integer",
|
|
59
|
+
"minimum": 0
|
|
60
|
+
},
|
|
61
|
+
"totalCharacters": {
|
|
62
|
+
"type": "integer",
|
|
63
|
+
"minimum": 0
|
|
64
|
+
},
|
|
65
|
+
"omittedCharacters": {
|
|
66
|
+
"type": "integer",
|
|
67
|
+
"minimum": 0
|
|
68
|
+
},
|
|
69
|
+
"remainingCharacters": {
|
|
70
|
+
"type": "integer",
|
|
71
|
+
"minimum": 0
|
|
72
|
+
},
|
|
73
|
+
"complete": {
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
"outputHash": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
79
|
+
},
|
|
80
|
+
"continuation": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"required": ["cursor", "command"],
|
|
83
|
+
"properties": {
|
|
84
|
+
"cursor": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"minLength": 1,
|
|
87
|
+
"maxLength": 4096
|
|
88
|
+
},
|
|
89
|
+
"command": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"additionalProperties": false
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"additionalProperties": false
|
|
98
|
+
},
|
|
99
|
+
"content": {
|
|
100
|
+
"type": "string"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": false
|
|
104
|
+
}
|
|
@@ -27,12 +27,68 @@
|
|
|
27
27
|
},
|
|
28
28
|
"comparisonBaseCommit": { "type": "string" },
|
|
29
29
|
"verifiedAgainstCommit": { "type": "string" },
|
|
30
|
-
"symbol": { "type": "string" }
|
|
30
|
+
"symbol": { "type": "string" },
|
|
31
|
+
"gateRunId": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
32
|
+
"observer": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["kind", "authority"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"kind": { "enum": ["local-agent", "local-human", "protected-ci"] },
|
|
37
|
+
"authority": { "enum": ["repository-writable", "protected-external"] },
|
|
38
|
+
"source": { "type": "string", "minLength": 1, "maxLength": 256 }
|
|
39
|
+
},
|
|
40
|
+
"allOf": [
|
|
41
|
+
{
|
|
42
|
+
"if": { "properties": { "authority": { "const": "protected-external" } }, "required": ["authority"] },
|
|
43
|
+
"then": { "properties": { "kind": { "const": "protected-ci" } } }
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"additionalProperties": true
|
|
47
|
+
},
|
|
48
|
+
"observation": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"required": ["schemaVersion", "authorityKind", "observedAt", "projectIdentity"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"schemaVersion": { "const": 1 },
|
|
53
|
+
"authorityKind": {
|
|
54
|
+
"enum": ["index-worktree", "index-only", "worktree-only", "process-local"]
|
|
55
|
+
},
|
|
56
|
+
"observedAt": { "type": "string", "format": "date-time" },
|
|
57
|
+
"projectIdentity": { "type": "string", "minLength": 1 },
|
|
58
|
+
"index": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": ["generationIdentity", "source", "alignment"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"generationIdentity": { "type": "string", "minLength": 1 },
|
|
63
|
+
"source": { "enum": ["immutable", "legacy"] },
|
|
64
|
+
"alignment": { "enum": ["not-certified", "leased"] }
|
|
65
|
+
},
|
|
66
|
+
"additionalProperties": true
|
|
67
|
+
},
|
|
68
|
+
"worktree": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"required": ["identity", "clean"],
|
|
71
|
+
"properties": {
|
|
72
|
+
"identity": { "type": "string", "minLength": 1 },
|
|
73
|
+
"clean": { "type": "boolean" },
|
|
74
|
+
"headCommit": { "type": "string", "minLength": 1 },
|
|
75
|
+
"treeOid": { "type": "string", "minLength": 1 }
|
|
76
|
+
},
|
|
77
|
+
"additionalProperties": true
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"additionalProperties": true
|
|
81
|
+
},
|
|
82
|
+
"suppressionPolicyVersion": { "type": "integer", "minimum": 1 }
|
|
31
83
|
},
|
|
32
84
|
"allOf": [
|
|
33
85
|
{
|
|
34
86
|
"if": { "required": ["verifiedAgainstCommit"] },
|
|
35
87
|
"then": { "properties": { "event": { "const": "resolved" } } }
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"if": { "required": ["suppressionPolicyVersion"] },
|
|
91
|
+
"then": { "properties": { "event": { "const": "suppressed" } } }
|
|
36
92
|
}
|
|
37
93
|
],
|
|
38
94
|
"additionalProperties": true
|
|
@@ -143,7 +143,88 @@
|
|
|
143
143
|
"file": { "type": "string", "minLength": 1 },
|
|
144
144
|
"reason": { "type": "string", "minLength": 1 },
|
|
145
145
|
"expiresAt": { "type": "string", "format": "date-time" },
|
|
146
|
-
"createdAt": { "type": "string", "format": "date-time" }
|
|
146
|
+
"createdAt": { "type": "string", "format": "date-time" },
|
|
147
|
+
"decision": {
|
|
148
|
+
"type": "object",
|
|
149
|
+
"required": ["kind", "reasonCode", "decidedBy", "policyVersion", "evidence", "invalidateOn"],
|
|
150
|
+
"additionalProperties": true,
|
|
151
|
+
"properties": {
|
|
152
|
+
"kind": { "const": "automated-adjudication" },
|
|
153
|
+
"reasonCode": {
|
|
154
|
+
"enum": [
|
|
155
|
+
"entry-surface",
|
|
156
|
+
"generated-code",
|
|
157
|
+
"compatibility-shim",
|
|
158
|
+
"reflection-or-registration",
|
|
159
|
+
"test-fixture",
|
|
160
|
+
"intentional-twin",
|
|
161
|
+
"historical-coupling-ended",
|
|
162
|
+
"detector-counterexample"
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"decidedBy": { "enum": ["agent", "human"] },
|
|
166
|
+
"policyVersion": { "const": 1 },
|
|
167
|
+
"observation": {
|
|
168
|
+
"type": "object",
|
|
169
|
+
"required": ["schemaVersion", "authorityKind", "observedAt", "projectIdentity"],
|
|
170
|
+
"properties": {
|
|
171
|
+
"schemaVersion": { "const": 1 },
|
|
172
|
+
"authorityKind": {
|
|
173
|
+
"enum": ["index-worktree", "index-only", "worktree-only", "process-local"]
|
|
174
|
+
},
|
|
175
|
+
"observedAt": { "type": "string", "format": "date-time" },
|
|
176
|
+
"projectIdentity": { "type": "string", "minLength": 1 },
|
|
177
|
+
"index": {
|
|
178
|
+
"type": "object",
|
|
179
|
+
"required": ["generationIdentity", "source", "alignment"],
|
|
180
|
+
"properties": {
|
|
181
|
+
"generationIdentity": { "type": "string", "minLength": 1 },
|
|
182
|
+
"source": { "enum": ["immutable", "legacy"] },
|
|
183
|
+
"alignment": { "enum": ["not-certified", "leased"] }
|
|
184
|
+
},
|
|
185
|
+
"additionalProperties": true
|
|
186
|
+
},
|
|
187
|
+
"worktree": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"required": ["identity", "clean"],
|
|
190
|
+
"properties": {
|
|
191
|
+
"identity": { "type": "string", "minLength": 1 },
|
|
192
|
+
"clean": { "type": "boolean" },
|
|
193
|
+
"headCommit": { "type": "string", "minLength": 1 },
|
|
194
|
+
"treeOid": { "type": "string", "minLength": 1 }
|
|
195
|
+
},
|
|
196
|
+
"additionalProperties": true
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"additionalProperties": true
|
|
200
|
+
},
|
|
201
|
+
"evidence": {
|
|
202
|
+
"type": "array",
|
|
203
|
+
"minItems": 1,
|
|
204
|
+
"items": {
|
|
205
|
+
"type": "object",
|
|
206
|
+
"required": ["kind", "referent", "claim"],
|
|
207
|
+
"additionalProperties": true,
|
|
208
|
+
"properties": {
|
|
209
|
+
"kind": { "enum": ["source", "config", "test", "graph"] },
|
|
210
|
+
"referent": { "type": "string", "minLength": 1 },
|
|
211
|
+
"claim": { "type": "string", "minLength": 1 },
|
|
212
|
+
"contentHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
213
|
+
"generation": { "type": "string", "minLength": 1 }
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"invalidateOn": {
|
|
218
|
+
"type": "object",
|
|
219
|
+
"required": ["targetContentChange", "detectorMajorChange"],
|
|
220
|
+
"additionalProperties": true,
|
|
221
|
+
"properties": {
|
|
222
|
+
"targetContentChange": { "type": "boolean" },
|
|
223
|
+
"detectorMajorChange": { "type": "boolean" }
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
147
228
|
},
|
|
148
229
|
"anyOf": [{ "required": ["id"] }, { "required": ["check"] }]
|
|
149
230
|
},
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://unpkg.com/scip-query/docs/schemas/suppression-record.schema.json",
|
|
4
|
-
"title": "scip-query suppression record
|
|
4
|
+
"title": "scip-query suppression record v2",
|
|
5
5
|
"description": "A repository-owned policy decision stored as one file under .scipquery/suppressions/.",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": ["kind", "schemaVersion", "suppressionIdentity", "writer", "reason", "createdAt"],
|
|
7
|
+
"required": ["kind", "schemaVersion", "suppressionIdentity", "writer", "reason", "createdAt", "decision"],
|
|
8
8
|
"properties": {
|
|
9
9
|
"kind": { "const": "scip-query-suppression" },
|
|
10
|
-
"schemaVersion": { "const":
|
|
10
|
+
"schemaVersion": { "const": 2 },
|
|
11
11
|
"suppressionIdentity": { "type": "string", "minLength": 1 },
|
|
12
12
|
"writer": {
|
|
13
13
|
"type": "object",
|
|
@@ -22,6 +22,87 @@
|
|
|
22
22
|
"check": { "type": "string", "minLength": 1 },
|
|
23
23
|
"file": { "type": "string", "minLength": 1 },
|
|
24
24
|
"reason": { "type": "string", "minLength": 1 },
|
|
25
|
+
"decision": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": ["kind", "reasonCode", "decidedBy", "policyVersion", "evidence", "invalidateOn"],
|
|
28
|
+
"properties": {
|
|
29
|
+
"kind": { "const": "automated-adjudication" },
|
|
30
|
+
"reasonCode": {
|
|
31
|
+
"enum": [
|
|
32
|
+
"entry-surface",
|
|
33
|
+
"generated-code",
|
|
34
|
+
"compatibility-shim",
|
|
35
|
+
"reflection-or-registration",
|
|
36
|
+
"test-fixture",
|
|
37
|
+
"intentional-twin",
|
|
38
|
+
"historical-coupling-ended",
|
|
39
|
+
"detector-counterexample"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"decidedBy": { "enum": ["agent", "human"] },
|
|
43
|
+
"policyVersion": { "const": 1 },
|
|
44
|
+
"observation": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"required": ["schemaVersion", "authorityKind", "observedAt", "projectIdentity"],
|
|
47
|
+
"properties": {
|
|
48
|
+
"schemaVersion": { "const": 1 },
|
|
49
|
+
"authorityKind": {
|
|
50
|
+
"enum": ["index-worktree", "index-only", "worktree-only", "process-local"]
|
|
51
|
+
},
|
|
52
|
+
"observedAt": { "type": "string", "format": "date-time" },
|
|
53
|
+
"projectIdentity": { "type": "string", "minLength": 1 },
|
|
54
|
+
"index": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["generationIdentity", "source", "alignment"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"generationIdentity": { "type": "string", "minLength": 1 },
|
|
59
|
+
"source": { "enum": ["immutable", "legacy"] },
|
|
60
|
+
"alignment": { "enum": ["not-certified", "leased"] }
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": true
|
|
63
|
+
},
|
|
64
|
+
"worktree": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"required": ["identity", "clean"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"identity": { "type": "string", "minLength": 1 },
|
|
69
|
+
"clean": { "type": "boolean" },
|
|
70
|
+
"headCommit": { "type": "string", "minLength": 1 },
|
|
71
|
+
"treeOid": { "type": "string", "minLength": 1 }
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": true
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"additionalProperties": true
|
|
77
|
+
},
|
|
78
|
+
"evidence": {
|
|
79
|
+
"type": "array",
|
|
80
|
+
"minItems": 1,
|
|
81
|
+
"items": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"required": ["kind", "referent", "claim"],
|
|
84
|
+
"properties": {
|
|
85
|
+
"kind": { "enum": ["source", "config", "test", "graph"] },
|
|
86
|
+
"referent": { "type": "string", "minLength": 1 },
|
|
87
|
+
"claim": { "type": "string", "minLength": 1 },
|
|
88
|
+
"contentHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
89
|
+
"generation": { "type": "string", "minLength": 1 }
|
|
90
|
+
},
|
|
91
|
+
"additionalProperties": true
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"invalidateOn": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"required": ["targetContentChange", "detectorMajorChange"],
|
|
97
|
+
"properties": {
|
|
98
|
+
"targetContentChange": { "type": "boolean" },
|
|
99
|
+
"detectorMajorChange": { "type": "boolean" }
|
|
100
|
+
},
|
|
101
|
+
"additionalProperties": true
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"additionalProperties": true
|
|
105
|
+
},
|
|
25
106
|
"expiresAt": { "type": "string", "format": "date-time" },
|
|
26
107
|
"createdAt": { "type": "string", "format": "date-time" },
|
|
27
108
|
"updatedAt": { "type": "string", "format": "date-time" }
|