@iowarp/clio-coder 0.4.3 → 0.4.4
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 +63 -0
- package/README.md +1 -1
- package/dist/{acp-H2NGRPWO.js → acp-WNAYYF4F.js} +4 -5
- package/dist/{agents-TL5LLUQP.js → agents-3OKXHLOI.js} +33 -31
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-E5SW4HMS.js → auth-VKNNMGPU.js} +10 -11
- package/dist/{builtins-IA7V7FUC.js → builtins-WGALA46I.js} +4 -4
- package/dist/{chunk-F5JHEYZM.js → chunk-23L32XTI.js} +10 -7
- package/dist/{chunk-DWUOQKRU.js → chunk-25QBEXRS.js} +2 -2
- package/dist/{chunk-LLDJM5XK.js → chunk-26QSH3EJ.js} +2 -2
- package/dist/{chunk-N2Z7HLVY.js → chunk-2ASED4PZ.js} +10 -10
- package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
- package/dist/chunk-2DSOYNFC.js +108 -0
- package/dist/{chunk-LDJG7DW3.js → chunk-2ZSONWVL.js} +4 -4
- package/dist/{chunk-GI7YYQ3F.js → chunk-36CT5VVL.js} +324 -41
- package/dist/{chunk-4UVU7BJ5.js → chunk-3GY4F45V.js} +2 -2
- package/dist/{chunk-PUVDKJ2Y.js → chunk-3ODX73FK.js} +3 -5
- package/dist/{chunk-IUE3Y34X.js → chunk-3UNOLWNZ.js} +2 -2
- package/dist/{chunk-6PTFB5VS.js → chunk-3UUXNFEX.js} +8 -4
- package/dist/{chunk-2APPQIER.js → chunk-4M6Z5QVF.js} +4 -4
- package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
- package/dist/{chunk-JGRC33J2.js → chunk-54X7T7DK.js} +12 -3
- package/dist/{chunk-YQWYVTMC.js → chunk-5636DCO5.js} +4 -4
- package/dist/{chunk-7E7I3WLS.js → chunk-57XXR6DR.js} +23 -22
- package/dist/{chunk-7ZYNNDKC.js → chunk-5TUB6SLS.js} +2 -2
- package/dist/{chunk-VW6DOEDG.js → chunk-6OSVSQL5.js} +11 -2
- package/dist/{chunk-L47TF46W.js → chunk-6PAZTBPA.js} +14 -2
- package/dist/{chunk-XIVNBFZS.js → chunk-6Q3CYFD3.js} +34 -16
- package/dist/{chunk-RSJ25QSL.js → chunk-6QOTUPRG.js} +155 -36
- package/dist/{chunk-JKKCYP3C.js → chunk-6UINWWS6.js} +10 -4
- package/dist/{chunk-WBKFA554.js → chunk-72YIHOZQ.js} +2 -2
- package/dist/{chunk-PAJQJ7BS.js → chunk-75W7L2E2.js} +246 -697
- package/dist/{chunk-RRNP2ANY.js → chunk-7UGL4MB5.js} +4 -4
- package/dist/{chunk-EKCHAPYA.js → chunk-AUPNRN7C.js} +2 -2
- package/dist/{chunk-ZDN3Y73Y.js → chunk-BJVFZO5U.js} +6 -48
- package/dist/{chunk-IWT4SF4R.js → chunk-CUSRQKPU.js} +64 -2
- package/dist/{chunk-SKHCAU7K.js → chunk-DQOVN6KV.js} +3 -2
- package/dist/{chunk-ZWPRK62N.js → chunk-DT3LWJOB.js} +4 -4
- package/dist/chunk-DXKJURES.js +671 -0
- package/dist/{chunk-BEPZRGGU.js → chunk-EL24TAU4.js} +2 -2
- package/dist/{chunk-OML5D5V5.js → chunk-ELWDPP3Y.js} +5 -5
- package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
- package/dist/chunk-EXLD33WO.js +381 -0
- package/dist/{chunk-IJNZMHLA.js → chunk-FEAXX7B6.js} +2 -2
- package/dist/{chunk-TM6LQDI3.js → chunk-FFUPXJC4.js} +74 -323
- package/dist/chunk-GX5WYQO4.js +59 -0
- package/dist/chunk-I2DWJ4GM.js +390 -0
- package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
- package/dist/chunk-IRXAATOX.js +539 -0
- package/dist/chunk-IXIY2H4R.js +44 -0
- package/dist/{chunk-KK4JZPBQ.js → chunk-IZXGRF7P.js} +76 -10
- package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
- package/dist/{chunk-INY6HTFL.js → chunk-JEIYHLOR.js} +2 -2
- package/dist/{chunk-MUW2BDDH.js → chunk-JQLNNIKT.js} +2 -2
- package/dist/{chunk-XPWWI35G.js → chunk-JSD46VO2.js} +19 -8
- package/dist/{chunk-VA5FNYMT.js → chunk-JT2RFCC5.js} +39 -2
- package/dist/{chunk-V2ANDPVT.js → chunk-K6T2ZAMZ.js} +168 -6
- package/dist/{chunk-B4OAX3SI.js → chunk-KFV5L5SK.js} +13 -6
- package/dist/{chunk-JEQ3XTHC.js → chunk-LLXSDWXS.js} +2 -2
- package/dist/{chunk-E3TPLWFX.js → chunk-LTIKRKFL.js} +3 -3
- package/dist/{chunk-NIQJ66N4.js → chunk-N56KALIC.js} +17 -17
- package/dist/{chunk-JDAY6FIL.js → chunk-NAI6ZFCY.js} +13 -9
- package/dist/{chunk-AF4YM7Z4.js → chunk-NRO2BJRH.js} +2490 -2182
- package/dist/{chunk-WRBAGUNF.js → chunk-NXIMQY5W.js} +2 -2
- package/dist/{chunk-I7ZPNEJM.js → chunk-NXYCB2VD.js} +5 -5
- package/dist/chunk-ODGTEFFI.js +50 -0
- package/dist/{chunk-2VIKGWFZ.js → chunk-OEJSLEPW.js} +2 -2
- package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
- package/dist/{chunk-54CBCGIR.js → chunk-Q4WO54TA.js} +132 -77
- package/dist/{chunk-B4VEBZKF.js → chunk-QUFRYSWI.js} +12 -6
- package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
- package/dist/{chunk-HEQY7ZFI.js → chunk-RAY4OVGZ.js} +2 -2
- package/dist/{chunk-G76U63X4.js → chunk-RQCKCSRL.js} +7 -7
- package/dist/{chunk-64I3JVYM.js → chunk-RXTN6AKH.js} +2 -2
- package/dist/{chunk-UPZU6GE4.js → chunk-RZDWV63N.js} +3 -3
- package/dist/{chunk-2UH2KFUP.js → chunk-S6PYF2XF.js} +2 -2
- package/dist/{chunk-JSC3U7TI.js → chunk-TOIVGRUX.js} +2 -2
- package/dist/{chunk-7DRAWPTZ.js → chunk-TQAHXW6Y.js} +1 -1
- package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
- package/dist/{chunk-AX2THNSA.js → chunk-UEPWCCTY.js} +4 -4
- package/dist/{chunk-QWGDJJYJ.js → chunk-USR47QNF.js} +4 -4
- package/dist/{chunk-Y3CBHOR6.js → chunk-V6HJFQZE.js} +2 -2
- package/dist/chunk-V76WTFTW.js +318 -0
- package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
- package/dist/{chunk-2UG5F4C5.js → chunk-XULDXHTN.js} +24 -12
- package/dist/chunk-XXYSBZIQ.js +283 -0
- package/dist/{chunk-MWUZBSAQ.js → chunk-Y55JBDO5.js} +331 -51
- package/dist/{chunk-W6RRQCPQ.js → chunk-YD5GIKET.js} +4 -4
- package/dist/{chunk-CE5AX47J.js → chunk-YECAMM3D.js} +2 -2
- package/dist/{chunk-WCXUNS7U.js → chunk-YNFKXPEC.js} +6 -6
- package/dist/cli/index.js +36 -35
- package/dist/{clio-CMMK4KRR.js → clio-QLICPCF5.js} +2 -2
- package/dist/{code-nav-MDZNQS33.js → code-nav-IJR2DBPR.js} +6 -6
- package/dist/{components-UCUQ4QXW.js → components-2TGAI2RC.js} +3 -4
- package/dist/{config-SVM5P5YI.js → config-IUA6OYNS.js} +52 -47
- package/dist/{configure-LE3IK2TJ.js → configure-VEPX4NMX.js} +14 -15
- package/dist/{context-VNCR7KAG.js → context-2DKHWH2T.js} +23 -23
- package/dist/{context-2OHRKS42.js → context-4MPR7WKB.js} +48 -42
- package/dist/{context-E3VC7RX5.js → context-BOYF5EJM.js} +11 -11
- package/dist/{context-clear-BW4O37TG.js → context-clear-S4ZJCQUX.js} +48 -42
- package/dist/{context-working-set-VDS25HXZ.js → context-working-set-3I3FYX6Y.js} +8 -8
- package/dist/detail-A7JAVSIG.js +98 -0
- package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-RJ5I2F2O.js} +71 -58
- package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
- package/dist/{doctor-WNNVO6FY.js → doctor-DKICC2SN.js} +54 -31
- package/dist/{eval-7G7SGAYO.js → eval-OQOQUDHK.js} +47 -56
- package/dist/{evidence-VD6736FQ.js → evidence-4DQ25GUQ.js} +53 -150
- package/dist/evidence-4F5USFKH.js +208 -0
- package/dist/{evolve-AL3NGVRL.js → evolve-GSS52E5J.js} +44 -41
- package/dist/{extensions-MOVJ32NM.js → extensions-G7MFLYHT.js} +4 -5
- package/dist/{fleet-QZHUMAGI.js → fleet-Q37YHHAQ.js} +74 -68
- package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-G7E4N7SM.js} +14 -11
- package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-O7M6QBA2.js} +6 -6
- package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-TOUBW6OW.js} +13 -13
- package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-SW33JJNI.js} +43 -39
- package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-CV2655TW.js} +2 -3
- package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-KESZX2YH.js} +16 -16
- package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-UQPMTVE3.js} +42 -38
- package/dist/{fleet-view-SWBR3VGQ.js → fleet-view-MN2VG4MR.js} +43 -39
- package/dist/{init-J477LKZH.js → init-PXEXQSBF.js} +60 -54
- package/dist/{interop-3FCM6XLG.js → interop-ZG5T62U3.js} +6 -7
- package/dist/inventory-C26CFDRR.js +101 -0
- package/dist/{library-QUQEIUG6.js → library-B2W4N74O.js} +16 -17
- package/dist/{memory-SGGSEP65.js → memory-YCANYS5A.js} +45 -42
- package/dist/{models-HEKUAXXK.js → models-GERTU3YI.js} +20 -22
- package/dist/{monitor-HKU57TYQ.js → monitor-CPNIUULB.js} +50 -44
- package/dist/{orchestrator-VDFAEFAI.js → orchestrator-J4BSH4WQ.js} +491 -1182
- package/dist/{panes-DN2SSFOH.js → panes-BOHAEGYC.js} +3 -3
- package/dist/{panes-TALGNPZT.js → panes-NXSLDQZ2.js} +5 -6
- package/dist/{paths-NBMFAIEZ.js → paths-VSUWNC22.js} +3 -4
- package/dist/{reset-EAJFFJVB.js → reset-TNWTB5LU.js} +5 -6
- package/dist/{resources-OVKSEFVE.js → resources-4PXNMD5G.js} +14 -14
- package/dist/{run-7DP7ZF2J.js → run-D6XJ34CN.js} +79 -83
- package/dist/{share-WML67FT3.js → share-2NWMJJEE.js} +14 -15
- package/dist/{skills-SG662R2K.js → skills-KR7WON5G.js} +18 -19
- package/dist/{skills-eval-VVZEUU46.js → skills-eval-O2ZNOLDS.js} +49 -46
- package/dist/{skills-inventory-I2E23GET.js → skills-inventory-ZZOUBK7O.js} +14 -14
- package/dist/{slash-commands-S7MBJDQK.js → slash-commands-ZXPJD64J.js} +32 -23
- package/dist/{steer-2LQOMCPB.js → steer-XA25PSCS.js} +3 -3
- package/dist/{support-CC2UJBJ6.js → support-7EMVWYG2.js} +2 -2
- package/dist/{targets-4QC3HIEW.js → targets-OMH2XCSN.js} +25 -27
- package/dist/tasks-IPAGMEIX.js +36 -0
- package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-C2J3JYRE.js} +4 -4
- package/dist/{tools-TFGJICCU.js → tools-EFFEAIDP.js} +5 -6
- package/dist/{uninstall-5PEVOE5B.js → uninstall-HALS6BLF.js} +7 -8
- package/dist/{upgrade-M4WXY6KN.js → upgrade-MS72RJEP.js} +14 -11
- package/dist/{usage-N7ZNVLEM.js → usage-NHG6MCJM.js} +60 -51
- package/dist/{verifiers-DJTP4XX6.js → verifiers-7AUNVXDY.js} +150 -17
- package/dist/{verify-RWE4PPEK.js → verify-FWYGPKMR.js} +12 -10
- package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
- package/dist/{wiki-generate-C7IQOXSP.js → wiki-generate-743CIGJW.js} +63 -56
- package/dist/{with-panes-4GCGSL7J.js → with-panes-BDQEWBRT.js} +2 -2
- package/dist/worker/entry.js +36 -33
- package/docs/README.md +3 -2
- package/docs/architecture/acp.md +17 -0
- package/docs/architecture/artifact-versions.md +1 -1
- package/docs/architecture/dispatch-typed-intent.md +1 -1
- package/docs/architecture/evidence-and-memory.md +1 -1
- package/docs/architecture/observability.md +7 -1
- package/docs/architecture/prompt-envelope-and-tools.md +15 -5
- package/docs/architecture/safety-model.md +10 -17
- package/docs/architecture/tui-design.md +1 -1
- package/docs/guide/built-in-agents.md +8 -8
- package/docs/guide/commands-and-modes.md +17 -2
- package/docs/guide/configuration-and-targets.md +3 -1
- package/docs/guide/configuration-reference.md +10 -5
- package/docs/guide/environment-variables.md +2 -2
- package/docs/guide/tool-usage.md +78 -3
- package/docs/history/config-knobs-audit.md +2 -2
- package/docs/process/development-pipeline.md +6 -1
- package/docs/process/git-commit-provenance.md +15 -0
- package/docs/process/release-cut-checklist.md +207 -0
- package/docs/process/scientific-validation.md +18 -17
- package/evals/behavioral-machinery-support.ts +1 -0
- package/evals/behavioral-machinery.yaml +1 -1
- package/package.json +1 -1
- package/skills/coding/coding-standards/SKILL.md +14 -4
- package/skills/context/context-handoff/SKILL.md +3 -3
- package/skills/context/context-prime/SKILL.md +3 -3
- package/skills/planning/architecture/SKILL.md +5 -5
- package/skills/planning/backlog/SKILL.md +4 -4
- package/skills/planning/prd/SKILL.md +4 -3
- package/skills/planning/product-intent/SKILL.md +8 -8
- package/skills/planning/tech-spec/SKILL.md +4 -4
- package/skills/registry.yaml +32 -32
- package/skills/research/arxiv-literature/SKILL.md +3 -3
- package/skills/research/experiment-protocol/SKILL.md +3 -3
- package/skills/research/scientific-debugging/SKILL.md +3 -2
- package/skills/research/scientific-modernization/SKILL.md +3 -3
- package/skills/skill-marketplace.json +16 -16
- package/skills/workflow/cut-it/SKILL.md +3 -4
- package/skills/workflow/design-council/SKILL.md +5 -10
- package/skills/workflow/grill-me/SKILL.md +14 -15
- package/skills/workflow/workflow-distiller/SKILL.md +4 -4
- package/src/cli/args.ts +0 -8
- package/src/cli/configure.ts +2 -1
- package/src/cli/doctor-state-size.ts +1 -12
- package/src/cli/doctor-validation-contract.ts +28 -0
- package/src/cli/doctor.ts +5 -0
- package/src/cli/evidence-detail.ts +1 -75
- package/src/cli/evidence-inventory.ts +1 -167
- package/src/cli/index.ts +2 -0
- package/src/cli/run.ts +0 -2
- package/src/cli/targets.ts +1 -1
- package/src/cli/tasks.ts +84 -0
- package/src/cli/upgrade.ts +10 -5
- package/src/cli/usage.ts +6 -0
- package/src/cli/verifiers.ts +147 -1
- package/src/cli/wiki-generate.ts +1 -0
- package/src/core/commit-attribution.ts +41 -1
- package/src/core/git-commit-attribution.ts +46 -3
- package/src/core/run-overrides.ts +0 -5
- package/src/core/skill-activation.ts +3 -0
- package/src/core/tool-names.ts +5 -2
- package/src/domains/agents/builtins/architect.md +1 -1
- package/src/domains/agents/builtins/coder.md +1 -1
- package/src/domains/agents/builtins/documenter.md +1 -1
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/provenance.md +7 -7
- package/src/domains/agents/builtins/tester.md +1 -1
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +4 -3
- package/src/domains/context/extension.ts +31 -7
- package/src/domains/context/refresh.ts +3 -0
- package/src/domains/context/wiki/frontmatter.ts +5 -2
- package/src/domains/context/wiki/generate.ts +6 -0
- package/src/domains/context/wiki/prompts.ts +43 -0
- package/src/domains/dispatch/active-route-planner.ts +4 -0
- package/src/domains/dispatch/code-step.ts +11 -4
- package/src/domains/dispatch/contract.ts +31 -7
- package/src/domains/dispatch/execution-scheduler.ts +2 -0
- package/src/domains/dispatch/extension.ts +50 -27
- package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
- package/src/domains/dispatch/fleet-run.ts +1 -0
- package/src/domains/dispatch/host-verification.ts +114 -13
- package/src/domains/dispatch/intent.ts +28 -18
- package/src/domains/dispatch/orphan-recovery.ts +2 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/reservation-store.ts +5 -3
- package/src/domains/dispatch/state.ts +15 -2
- package/src/domains/dispatch/types.ts +17 -2
- package/src/domains/eval/runners/clio-run.ts +12 -9
- package/src/domains/eval/runners/context-index.ts +2 -7
- package/src/domains/eval/runners/context-init.ts +3 -6
- package/src/domains/eval/runners/external-command.ts +29 -11
- package/src/domains/evidence/build.ts +102 -15
- package/src/domains/evidence/detail.ts +69 -0
- package/src/domains/evidence/eval.ts +13 -1
- package/src/domains/evidence/finish-contract-map.ts +5 -1
- package/src/domains/evidence/inventory.ts +167 -0
- package/src/domains/evidence/store.ts +16 -0
- package/src/domains/evidence/types.ts +12 -0
- package/src/domains/extensions/resources.ts +7 -0
- package/src/domains/middleware/marketplace-offer.ts +20 -1
- package/src/domains/middleware/runtime.ts +7 -3
- package/src/domains/mux/detect.ts +3 -6
- package/src/domains/observability/accountability.ts +15 -1
- package/src/domains/observability/contract.ts +52 -7
- package/src/domains/observability/evidence-index.ts +10 -0
- package/src/domains/observability/extension.ts +9 -5
- package/src/domains/observability/projection.ts +394 -45
- package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
- package/src/domains/prompts/fragments/operating/contract.md +2 -0
- package/src/domains/prompts/fragments/wiki/page.md +8 -0
- package/src/domains/providers/model-discovery.ts +1 -4
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
- package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
- package/src/domains/providers/support.ts +1 -1
- package/src/domains/providers/types/runtime-descriptor.ts +1 -1
- package/src/domains/safety/action-classifier.ts +7 -0
- package/src/domains/safety/default-path-policy.ts +2 -0
- package/src/domains/safety/finish-contract-registration.ts +29 -14
- package/src/domains/safety/finish-contract.ts +252 -40
- package/src/domains/safety/index.ts +20 -1
- package/src/domains/safety/policy-engine.ts +26 -6
- package/src/domains/safety/rigor.ts +53 -39
- package/src/domains/safety/validation-contract.ts +388 -0
- package/src/domains/session/archive-readers.ts +10 -1
- package/src/domains/session/decision-board.ts +101 -2
- package/src/domains/session/entries.ts +44 -7
- package/src/domains/session/extension.ts +4 -4
- package/src/domains/session/handoff.ts +2 -1
- package/src/domains/session/manager.ts +2 -3
- package/src/domains/session/task-board.ts +14 -1
- package/src/domains/session/tree/fork.ts +1 -2
- package/src/domains/session/tree/navigator.ts +1 -1
- package/src/domains/user-tasks/acceptance.ts +56 -0
- package/src/domains/user-tasks/active-acceptance.ts +40 -0
- package/src/domains/user-tasks/store.ts +34 -3
- package/src/engine/acp/adapter.ts +24 -6
- package/src/engine/acp/server.ts +21 -4
- package/src/engine/acp/transport.ts +53 -8
- package/src/engine/acp/types.ts +4 -0
- package/src/engine/apis/ollama-native.ts +15 -0
- package/src/engine/claude/subprocess-runtime.ts +107 -60
- package/src/engine/external-subprocess.ts +12 -4
- package/src/entry/orchestrator.ts +11 -2
- package/src/interactive/dispatch-board.ts +46 -717
- package/src/interactive/fleet-run-preview.ts +2 -1
- package/src/interactive/interactive-application.ts +3 -2
- package/src/interactive/interactive-presentation.ts +55 -12
- package/src/interactive/interactive-slash-runtime.ts +2 -1
- package/src/interactive/oracle.ts +5 -2
- package/src/interactive/overlays/fleet-run-approval.ts +3 -2
- package/src/interactive/overlays/message-picker.ts +2 -2
- package/src/interactive/overlays/settings.ts +2 -2
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/renderers/branch-summary.ts +1 -1
- package/src/interactive/slash-autocomplete.ts +4 -6
- package/src/interactive/slash-commands.ts +25 -39
- package/src/interactive/slash-spec.ts +28 -0
- package/src/interactive/view/artifacts.ts +2 -0
- package/src/interactive/worker-stream.ts +7 -3
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +31 -0
- package/src/tools/compete-worktrees.ts +7 -1
- package/src/tools/core-bootstrap.ts +16 -0
- package/src/tools/decide.ts +136 -0
- package/src/tools/dispatch-admission.ts +21 -0
- package/src/tools/dispatch-plan.ts +5 -2
- package/src/tools/dispatch-runner.ts +15 -1
- package/src/tools/dispatch-types.ts +6 -0
- package/src/tools/evidence.ts +96 -0
- package/src/tools/limitation.ts +76 -0
- package/src/tools/policy.ts +9 -0
- package/src/tools/presentation.ts +3 -0
- package/src/tools/registry.ts +1 -1
- package/src/tools/result-shaping.ts +17 -5
- package/src/tools/task-worktree.ts +13 -3
- package/src/tools/tasks.ts +10 -1
- package/src/tools/verify/authoring.ts +170 -83
- package/src/tools/verify/catalog.ts +122 -5
- package/src/tools/verify/index.ts +2 -1
- package/src/tools/verify/numeric.ts +298 -0
- package/src/tools/verify/perf.ts +143 -0
- package/src/tools/verify/scripts.ts +229 -2
- package/dist/chunk-7DICMOS6.js +0 -313
- package/dist/chunk-RVG5JXAL.js +0 -41
- package/dist/chunk-T56WDKA5.js +0 -183
- package/dist/chunk-VPKWYKEY.js +0 -169
|
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
parseJsonObjectPayload,
|
|
4
4
|
parseVerifierResult
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KFV5L5SK.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWrite
|
|
8
8
|
} from "./chunk-HAXOFFRH.js";
|
|
@@ -685,4 +685,4 @@ export {
|
|
|
685
685
|
readGateDecisionArtifacts,
|
|
686
686
|
readGateDecisionArtifactsForRunIds
|
|
687
687
|
};
|
|
688
|
-
//# sourceMappingURL=chunk-
|
|
688
|
+
//# sourceMappingURL=chunk-NXIMQY5W.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
canonicalizeExistingPath
|
|
4
|
+
} from "./chunk-ECH6PKUQ.js";
|
|
2
5
|
import {
|
|
3
6
|
artifactDefaultPath
|
|
4
7
|
} from "./chunk-GYV6VZOC.js";
|
|
5
8
|
import {
|
|
6
9
|
isVerificationScriptName
|
|
7
10
|
} from "./chunk-UL3WSD3F.js";
|
|
8
|
-
import {
|
|
9
|
-
canonicalizeExistingPath
|
|
10
|
-
} from "./chunk-ECH6PKUQ.js";
|
|
11
11
|
import {
|
|
12
12
|
ToolNames
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4NSRCOYP.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esm_shims
|
|
16
16
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -804,4 +804,4 @@ export {
|
|
|
804
804
|
commandArgumentSegments,
|
|
805
805
|
scanShellLike
|
|
806
806
|
};
|
|
807
|
-
//# sourceMappingURL=chunk-
|
|
807
|
+
//# sourceMappingURL=chunk-NXYCB2VD.js.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
describeValidationContract,
|
|
4
|
+
loadValidationContract
|
|
5
|
+
} from "./chunk-V76WTFTW.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esm_shims
|
|
8
|
+
} from "./chunk-3R73A4XB.js";
|
|
9
|
+
|
|
10
|
+
// src/domains/safety/rigor.ts
|
|
11
|
+
init_esm_shims();
|
|
12
|
+
function rigorResolution(options) {
|
|
13
|
+
if (options.override === "high" || options.override === "normal") {
|
|
14
|
+
return { rigor: options.override, source: "override" };
|
|
15
|
+
}
|
|
16
|
+
const cwd = options.cwd ?? process.cwd();
|
|
17
|
+
const loaded = loadValidationContract(cwd);
|
|
18
|
+
if (!loaded.ok) {
|
|
19
|
+
const resolution = { rigor: "normal", source: "invalid-contract", contractPath: loaded.path };
|
|
20
|
+
const diagnostic = describeValidationContract(loaded);
|
|
21
|
+
if (diagnostic !== null) resolution.diagnostic = diagnostic;
|
|
22
|
+
return resolution;
|
|
23
|
+
}
|
|
24
|
+
if (loaded.contract !== null) {
|
|
25
|
+
return { rigor: "high", source: "validation-contract", contractPath: loaded.path };
|
|
26
|
+
}
|
|
27
|
+
if ("advisory" in loaded) {
|
|
28
|
+
const resolution = { rigor: "normal", source: "markdown-advisory", contractPath: loaded.path };
|
|
29
|
+
const diagnostic = describeValidationContract(loaded);
|
|
30
|
+
if (diagnostic !== null) resolution.diagnostic = diagnostic;
|
|
31
|
+
return resolution;
|
|
32
|
+
}
|
|
33
|
+
return { rigor: "normal", source: "none" };
|
|
34
|
+
}
|
|
35
|
+
function resolveRigor(options) {
|
|
36
|
+
return rigorResolution(options).rigor;
|
|
37
|
+
}
|
|
38
|
+
function parseRigorOverride(value) {
|
|
39
|
+
if (typeof value !== "string") return null;
|
|
40
|
+
const normalized = value.trim().toLowerCase();
|
|
41
|
+
if (normalized === "high") return "high";
|
|
42
|
+
if (normalized === "normal") return "normal";
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export {
|
|
47
|
+
resolveRigor,
|
|
48
|
+
parseRigorOverride
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=chunk-ODGTEFFI.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-RKKLTLYB.js";
|
|
5
5
|
import {
|
|
6
6
|
enabledExtensionResourceRoots
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TQAHXW6Y.js";
|
|
8
8
|
import {
|
|
9
9
|
PATH_BOUNDARY_MAX_ENTRIES,
|
|
10
10
|
normalizePathBoundary,
|
|
@@ -5073,4 +5073,4 @@ export {
|
|
|
5073
5073
|
listFleetContracts,
|
|
5074
5074
|
renderFleetPrompt
|
|
5075
5075
|
};
|
|
5076
|
-
//# sourceMappingURL=chunk-
|
|
5076
|
+
//# sourceMappingURL=chunk-OEJSLEPW.js.map
|
|
@@ -1390,7 +1390,9 @@ async function detectMux(options = {}) {
|
|
|
1390
1390
|
return { detection: none("panes are turned off"), client: null };
|
|
1391
1391
|
}
|
|
1392
1392
|
if (enabled === "embedded") {
|
|
1393
|
-
|
|
1393
|
+
const reason = "embedded pane hosting is not implemented; use auto or guest";
|
|
1394
|
+
log("warning", reason);
|
|
1395
|
+
return { detection: none(reason, [], true), client: null };
|
|
1394
1396
|
}
|
|
1395
1397
|
if (env.HERDR_ENV !== "1") {
|
|
1396
1398
|
return { detection: none("HERDR_ENV is not 1, so Clio is not running inside a pane host"), client: null };
|
|
@@ -1830,4 +1832,4 @@ export {
|
|
|
1830
1832
|
createYaziSession,
|
|
1831
1833
|
createMuxDomainModule
|
|
1832
1834
|
};
|
|
1833
|
-
//# sourceMappingURL=chunk-
|
|
1835
|
+
//# sourceMappingURL=chunk-OMQNJVKW.js.map
|
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
verifyTool
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-23L32XTI.js";
|
|
5
5
|
import {
|
|
6
6
|
discoverDeclaredChecksAtRoot,
|
|
7
7
|
discoverDeclaredProjectEntriesAtRoot
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-K6T2ZAMZ.js";
|
|
9
9
|
import {
|
|
10
10
|
parseTomlDocument,
|
|
11
11
|
tomlTableAt
|
|
12
12
|
} from "./chunk-LCGCVYZ4.js";
|
|
13
|
+
import {
|
|
14
|
+
VALIDATION_CONTRACT_MARKDOWN_PATH,
|
|
15
|
+
loadValidationContract
|
|
16
|
+
} from "./chunk-V76WTFTW.js";
|
|
13
17
|
import {
|
|
14
18
|
PROJECT_VERIFIER_CATALOG_CAPS,
|
|
15
19
|
PROJECT_VERIFIER_CATALOG_RELATIVE_PATH,
|
|
16
20
|
PROJECT_VERIFIER_CATALOG_VERSION,
|
|
17
|
-
|
|
21
|
+
normalizeNumericTolerance,
|
|
18
22
|
parseProjectVerifierCatalogText
|
|
19
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-DXKJURES.js";
|
|
20
24
|
import {
|
|
21
25
|
isVerificationScriptName
|
|
22
26
|
} from "./chunk-UL3WSD3F.js";
|
|
27
|
+
import {
|
|
28
|
+
compareCodepoints
|
|
29
|
+
} from "./chunk-I5FWO7L5.js";
|
|
23
30
|
import {
|
|
24
31
|
SAFE_EXEC_DEFAULT_TIMEOUT_MS,
|
|
25
32
|
resolveSafeCwd
|
|
26
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-TOIVGRUX.js";
|
|
27
34
|
import {
|
|
28
35
|
require_dist
|
|
29
36
|
} from "./chunk-APJ265NV.js";
|
|
@@ -48,12 +55,6 @@ import {
|
|
|
48
55
|
} from "node:fs";
|
|
49
56
|
import path from "node:path";
|
|
50
57
|
var DECLARED_FILE_CAP_BYTES = 1024 * 1024;
|
|
51
|
-
var VALIDATION_CONTRACT_PATHS = [
|
|
52
|
-
".clio-coder/validation.yaml",
|
|
53
|
-
".clio-coder/validation.yml",
|
|
54
|
-
"validation.yaml",
|
|
55
|
-
"validation.yml"
|
|
56
|
-
];
|
|
57
58
|
function manualEntryInstruction() {
|
|
58
59
|
return 'No unambiguous declared command was found. Add one explicitly with `clio-coder verifiers add --id <id> --description <text> --command \'["executable","arg"]\'`; `--command` is an exact JSON argv array. Review the preview, then rerun with `--yes`.';
|
|
59
60
|
}
|
|
@@ -62,9 +63,20 @@ function cloneCheck(check) {
|
|
|
62
63
|
...check,
|
|
63
64
|
command: [...check.command],
|
|
64
65
|
tags: [...check.tags],
|
|
66
|
+
...check.numeric !== void 0 ? { numeric: structuredClone(check.numeric) } : {},
|
|
67
|
+
...check.perf !== void 0 ? { perf: structuredClone(check.perf) } : {},
|
|
65
68
|
provenance: { ...check.provenance }
|
|
66
69
|
};
|
|
67
70
|
}
|
|
71
|
+
function kindFields(check) {
|
|
72
|
+
const kind = check.kind ?? "command";
|
|
73
|
+
if (kind === "command") return {};
|
|
74
|
+
return {
|
|
75
|
+
kind,
|
|
76
|
+
...check.numeric !== void 0 ? { numeric: structuredClone(check.numeric) } : {},
|
|
77
|
+
...check.perf !== void 0 ? { perf: structuredClone(check.perf) } : {}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
68
80
|
function relativePath(workspaceRoot, filePath) {
|
|
69
81
|
const relative = path.relative(workspaceRoot, filePath);
|
|
70
82
|
return relative.length === 0 ? "." : relative.split(path.sep).join("/");
|
|
@@ -139,6 +151,7 @@ function projectedCheck(workspaceRoot, check) {
|
|
|
139
151
|
cwd: check.cwd,
|
|
140
152
|
timeoutMs: check.timeoutMs,
|
|
141
153
|
tags: [...check.tags],
|
|
154
|
+
...kindFields(check),
|
|
142
155
|
provenance: sourceProvenance(workspaceRoot, check),
|
|
143
156
|
state: check.source.kind === "package.json" ? "active" : "existing",
|
|
144
157
|
...check.source.kind === "package.json" ? {} : { catalogId: check.id }
|
|
@@ -469,13 +482,6 @@ function shellLikeArgv(command) {
|
|
|
469
482
|
if ((argv[0] ?? "").includes("=")) return new Error("environment assignments are not argv executables");
|
|
470
483
|
return argv;
|
|
471
484
|
}
|
|
472
|
-
function validatorArgv(value) {
|
|
473
|
-
if (typeof value === "string") return shellLikeArgv(value);
|
|
474
|
-
if (!Array.isArray(value) || value.length === 0 || value.some((entry) => typeof entry !== "string" || entry.length === 0)) {
|
|
475
|
-
return new Error("validator must be a command string or a non-empty argv string array");
|
|
476
|
-
}
|
|
477
|
-
return [...value];
|
|
478
|
-
}
|
|
479
485
|
function validationPreferredId(argv) {
|
|
480
486
|
const executable = path.basename(argv[0] ?? "check").replace(/\.[^.]+$/u, "");
|
|
481
487
|
const script = argv.find((entry, index) => index > 0 && /\.(?:py|js|mjs|sh)$/u.test(entry));
|
|
@@ -484,80 +490,64 @@ function validationPreferredId(argv) {
|
|
|
484
490
|
}
|
|
485
491
|
function validationContractProposals(workspaceRoot, diagnostics) {
|
|
486
492
|
const proposals = [];
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
}
|
|
494
|
-
const document = (0, import_yaml.parseDocument)(text, { prettyErrors: false, strict: true, uniqueKeys: true });
|
|
495
|
-
if (document.errors.length > 0) {
|
|
496
|
-
diagnostics.push(`${relative}: invalid YAML; validation command discovery skipped.`);
|
|
497
|
-
continue;
|
|
498
|
-
}
|
|
499
|
-
let parsed;
|
|
500
|
-
try {
|
|
501
|
-
parsed = document.toJS({ maxAliasCount: 0 });
|
|
502
|
-
} catch (error) {
|
|
503
|
-
diagnostics.push(`${relative}: invalid YAML (${error instanceof Error ? error.message : String(error)}).`);
|
|
504
|
-
continue;
|
|
505
|
-
}
|
|
506
|
-
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) continue;
|
|
507
|
-
const validators = parsed.validators;
|
|
508
|
-
if (!Array.isArray(validators)) continue;
|
|
509
|
-
for (const [index, validator] of validators.entries()) {
|
|
510
|
-
const record = validator !== null && typeof validator === "object" && !Array.isArray(validator) ? validator : null;
|
|
511
|
-
if (record !== null) {
|
|
512
|
-
const typedFields = [
|
|
513
|
-
["id", (value) => typeof value === "string"],
|
|
514
|
-
["description", (value) => typeof value === "string"],
|
|
515
|
-
["cwd", (value) => typeof value === "string"],
|
|
516
|
-
["timeoutMs", (value) => typeof value === "number"],
|
|
517
|
-
["tags", (value) => Array.isArray(value) && value.every((tag) => typeof tag === "string")]
|
|
518
|
-
];
|
|
519
|
-
const invalidField = typedFields.find(([field, valid]) => Object.hasOwn(record, field) && !valid(record[field]));
|
|
520
|
-
if (invalidField !== void 0) {
|
|
521
|
-
diagnostics.push(
|
|
522
|
-
`${relative}: validators[${index}].${String(invalidField[0])} has an ambiguous type; use manual argv entry.`
|
|
523
|
-
);
|
|
524
|
-
continue;
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
const commandValue = record === null ? validator : record.command;
|
|
528
|
-
const argv = validatorArgv(commandValue);
|
|
493
|
+
const loaded = loadValidationContract(workspaceRoot);
|
|
494
|
+
if (!loaded.ok) {
|
|
495
|
+
diagnostics.push(`${loaded.path}: ${loaded.reason}; validation command discovery skipped.`);
|
|
496
|
+
} else if (loaded.contract !== null) {
|
|
497
|
+
for (const [index, validator] of (loaded.contract.validators ?? []).entries()) {
|
|
498
|
+
const argv = shellLikeArgv(validator);
|
|
529
499
|
if (argv instanceof Error) {
|
|
530
|
-
diagnostics.push(`${
|
|
500
|
+
diagnostics.push(`${loaded.path}: validators[${index}] is ambiguous (${argv.message}); use manual argv entry.`);
|
|
531
501
|
continue;
|
|
532
502
|
}
|
|
533
|
-
const declaredId = typeof record?.id === "string" ? record.id : validationPreferredId(argv);
|
|
534
|
-
const description = typeof record?.description === "string" ? record.description : `Run validation contract command ${JSON.stringify(argv)}`;
|
|
535
|
-
const cwd = typeof record?.cwd === "string" ? record.cwd : ".";
|
|
536
|
-
const timeoutMs = typeof record?.timeoutMs === "number" ? record.timeoutMs : SAFE_EXEC_DEFAULT_TIMEOUT_MS;
|
|
537
|
-
const tags = Array.isArray(record?.tags) ? record.tags.filter((tag) => typeof tag === "string") : [];
|
|
538
503
|
proposals.push({
|
|
539
|
-
preferredId:
|
|
540
|
-
description
|
|
504
|
+
preferredId: validationPreferredId(argv),
|
|
505
|
+
description: `Run validation contract command ${JSON.stringify(argv)}`,
|
|
541
506
|
command: argv,
|
|
542
|
-
cwd,
|
|
543
|
-
timeoutMs,
|
|
544
|
-
tags:
|
|
507
|
+
cwd: ".",
|
|
508
|
+
timeoutMs: SAFE_EXEC_DEFAULT_TIMEOUT_MS,
|
|
509
|
+
tags: ["scientific", "validation"],
|
|
545
510
|
provenance: {
|
|
546
511
|
kind: "validation-contract",
|
|
547
|
-
path:
|
|
512
|
+
path: loaded.path,
|
|
548
513
|
detail: `validators[${index}]`,
|
|
549
514
|
authority: "project-declared"
|
|
550
515
|
}
|
|
551
516
|
});
|
|
552
517
|
}
|
|
553
518
|
}
|
|
554
|
-
if (existsSync(path.join(workspaceRoot,
|
|
519
|
+
if (existsSync(path.join(workspaceRoot, VALIDATION_CONTRACT_MARKDOWN_PATH))) {
|
|
555
520
|
diagnostics.push(
|
|
556
|
-
|
|
521
|
+
`${VALIDATION_CONTRACT_MARKDOWN_PATH} is advisory prose; enter an exact argv vector manually instead of inferring a command.`
|
|
557
522
|
);
|
|
558
523
|
}
|
|
559
524
|
return proposals;
|
|
560
525
|
}
|
|
526
|
+
function numericContractProposals(workspaceRoot) {
|
|
527
|
+
const loaded = loadValidationContract(workspaceRoot);
|
|
528
|
+
if (!loaded.ok || loaded.contract === null) return [];
|
|
529
|
+
const proposals = [];
|
|
530
|
+
const seen = /* @__PURE__ */ new Set();
|
|
531
|
+
for (const artifact of loaded.contract.artifacts ?? []) {
|
|
532
|
+
if (artifact.numerical_tolerances === void 0) continue;
|
|
533
|
+
const tolerance = normalizeNumericTolerance(artifact.numerical_tolerances);
|
|
534
|
+
if (tolerance instanceof Error) continue;
|
|
535
|
+
const base = slug(path.basename(artifact.path).replace(/\.[^.]+$/u, ""), "artifact");
|
|
536
|
+
const preferred = boundedId(`numeric-${base}`);
|
|
537
|
+
let id = preferred;
|
|
538
|
+
for (let suffix = 2; seen.has(id); suffix += 1) id = `${boundedId(preferred, `-${suffix}`)}-${suffix}`;
|
|
539
|
+
seen.add(id);
|
|
540
|
+
const reference = `${artifact.path}.reference.json`;
|
|
541
|
+
proposals.push({
|
|
542
|
+
id,
|
|
543
|
+
artifactPath: artifact.path,
|
|
544
|
+
reference,
|
|
545
|
+
tolerance,
|
|
546
|
+
addCommand: `clio-coder verifiers add --id ${id} --kind numeric-compare --reference ${JSON.stringify(reference)} --tolerance '${JSON.stringify(tolerance)}' --description ${JSON.stringify(`Compare ${artifact.path} against its reference within tolerance`)} --command '["<executable>","<arg>"]'`
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
return proposals;
|
|
550
|
+
}
|
|
561
551
|
function deduplicatedRawProposals(proposals, diagnostics) {
|
|
562
552
|
const seen = /* @__PURE__ */ new Map();
|
|
563
553
|
for (const proposal of proposals.sort(rawProposalSort)) {
|
|
@@ -652,6 +642,7 @@ function discoverVerifierAuthoring(workspaceRoot = process.cwd()) {
|
|
|
652
642
|
activeChecks,
|
|
653
643
|
existingChecks,
|
|
654
644
|
proposals,
|
|
645
|
+
numericProposals: numericContractProposals(workspaceRoot),
|
|
655
646
|
diagnostics,
|
|
656
647
|
manualEntry,
|
|
657
648
|
...typeof catalogText === "string" ? { catalogText } : {}
|
|
@@ -663,13 +654,28 @@ function createVerifierDraft(discovery, options = {}) {
|
|
|
663
654
|
catalogPath: discovery.catalogPath,
|
|
664
655
|
activeChecks: discovery.activeChecks.map(cloneCheck),
|
|
665
656
|
checks: [...discovery.existingChecks, ...options.includeProposals === false ? [] : discovery.proposals].map(cloneCheck).sort((left, right) => compareCodepoints(left.id, right.id)),
|
|
657
|
+
numericProposals: options.includeProposals === false ? [] : discovery.numericProposals.map((proposal) => ({ ...proposal })),
|
|
666
658
|
diagnostics: [...discovery.diagnostics],
|
|
667
659
|
manualEntry: discovery.manualEntry,
|
|
668
660
|
...discovery.catalogText === void 0 ? {} : { catalogText: discovery.catalogText }
|
|
669
661
|
};
|
|
670
662
|
}
|
|
671
|
-
function catalogEntry(
|
|
672
|
-
|
|
663
|
+
function catalogEntry(check) {
|
|
664
|
+
const { id, description, command, cwd, timeoutMs, tags } = check;
|
|
665
|
+
const entry = { id, description, command: [...command], cwd, timeoutMs, tags: [...tags] };
|
|
666
|
+
const kind = check.kind ?? "command";
|
|
667
|
+
if (kind === "command") return entry;
|
|
668
|
+
entry.kind = kind;
|
|
669
|
+
if (check.numeric !== void 0) {
|
|
670
|
+
entry.reference = check.numeric.reference;
|
|
671
|
+
entry.tolerance = { ...check.numeric.tolerance };
|
|
672
|
+
}
|
|
673
|
+
if (check.perf !== void 0) {
|
|
674
|
+
if (check.perf.budget !== void 0) entry.budget = structuredClone(check.perf.budget);
|
|
675
|
+
if (check.perf.baseline !== void 0) entry.baseline = check.perf.baseline;
|
|
676
|
+
if (check.perf.tolerance !== void 0) entry.tolerance = { ...check.perf.tolerance };
|
|
677
|
+
}
|
|
678
|
+
return entry;
|
|
673
679
|
}
|
|
674
680
|
function serializeVerifierDraft(draft) {
|
|
675
681
|
const checks = [...draft.checks].sort((left, right) => compareCodepoints(left.id, right.id));
|
|
@@ -697,8 +703,17 @@ function serializeVerifierDraft(draft) {
|
|
|
697
703
|
node.set(field, value);
|
|
698
704
|
changed = true;
|
|
699
705
|
}
|
|
706
|
+
for (const field of ["kind", "reference", "tolerance", "budget", "baseline"]) {
|
|
707
|
+
if (Object.hasOwn(current, field) && !Object.hasOwn(entry, field)) {
|
|
708
|
+
node.delete(field);
|
|
709
|
+
changed = true;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
700
712
|
}
|
|
701
713
|
if (!changed && appended.length === 0 && kept.size === sequence.items.length) return draft.catalogText;
|
|
714
|
+
if (document.get("version") !== PROJECT_VERIFIER_CATALOG_VERSION) {
|
|
715
|
+
document.set("version", PROJECT_VERIFIER_CATALOG_VERSION);
|
|
716
|
+
}
|
|
702
717
|
sequence.items = [...sequence.items.filter((node) => (0, import_yaml.isMap)(node) && kept.has(node)), ...appended];
|
|
703
718
|
return document.toString({ lineWidth: 0 });
|
|
704
719
|
}
|
|
@@ -727,6 +742,7 @@ function validateVerifierDraft(draft) {
|
|
|
727
742
|
cwd: check.cwd,
|
|
728
743
|
timeoutMs: check.timeoutMs,
|
|
729
744
|
tags: [...check.tags],
|
|
745
|
+
...kindFields(check),
|
|
730
746
|
provenance: original?.provenance ?? {
|
|
731
747
|
kind: "manual-entry",
|
|
732
748
|
path: PROJECT_VERIFIER_CATALOG_RELATIVE_PATH,
|
|
@@ -744,6 +760,7 @@ function cloneDraft(draft) {
|
|
|
744
760
|
...draft,
|
|
745
761
|
activeChecks: draft.activeChecks.map(cloneCheck),
|
|
746
762
|
checks: draft.checks.map(cloneCheck),
|
|
763
|
+
numericProposals: draft.numericProposals.map((proposal) => ({ ...proposal })),
|
|
747
764
|
diagnostics: [...draft.diagnostics]
|
|
748
765
|
};
|
|
749
766
|
}
|
|
@@ -806,6 +823,17 @@ function reviseVerifierDraft(draft, revisions) {
|
|
|
806
823
|
if (revision.changes.cwd !== void 0) check.cwd = revision.changes.cwd;
|
|
807
824
|
if (revision.changes.timeoutMs !== void 0) check.timeoutMs = revision.changes.timeoutMs;
|
|
808
825
|
if (revision.changes.tags !== void 0) check.tags = [...revision.changes.tags];
|
|
826
|
+
if (revision.changes.kind !== void 0) {
|
|
827
|
+
const next2 = kindFields({
|
|
828
|
+
kind: revision.changes.kind,
|
|
829
|
+
...revision.changes.numeric !== void 0 ? { numeric: revision.changes.numeric } : {},
|
|
830
|
+
...revision.changes.perf !== void 0 ? { perf: revision.changes.perf } : {}
|
|
831
|
+
});
|
|
832
|
+
delete check.kind;
|
|
833
|
+
delete check.numeric;
|
|
834
|
+
delete check.perf;
|
|
835
|
+
Object.assign(check, next2);
|
|
836
|
+
}
|
|
809
837
|
diagnostics.push(`Edited check '${revision.id}' without changing its deterministic ID.`);
|
|
810
838
|
}
|
|
811
839
|
next.checks.sort((left, right) => compareCodepoints(left.id, right.id));
|
|
@@ -830,9 +858,24 @@ function renderCheck(check, destinationPath) {
|
|
|
830
858
|
` cwd: ${check.cwd}`,
|
|
831
859
|
` timeoutMs: ${check.timeoutMs}`,
|
|
832
860
|
` tags: ${JSON.stringify(check.tags)}`,
|
|
861
|
+
...renderKind(check),
|
|
833
862
|
` effective execution authority: ${authorityDescription(check)}`
|
|
834
863
|
];
|
|
835
864
|
}
|
|
865
|
+
function renderKind(check) {
|
|
866
|
+
const kind = check.kind ?? "command";
|
|
867
|
+
if (kind === "command") return [];
|
|
868
|
+
const lines = [` kind: ${kind}`];
|
|
869
|
+
if (check.numeric !== void 0) {
|
|
870
|
+
lines.push(` reference: ${check.numeric.reference}`, ` tolerance: ${JSON.stringify(check.numeric.tolerance)}`);
|
|
871
|
+
}
|
|
872
|
+
if (check.perf !== void 0) {
|
|
873
|
+
if (check.perf.budget !== void 0) lines.push(` budget: ${JSON.stringify(check.perf.budget)}`);
|
|
874
|
+
if (check.perf.baseline !== void 0) lines.push(` baseline: ${check.perf.baseline}`);
|
|
875
|
+
if (check.perf.tolerance !== void 0) lines.push(` tolerance: ${JSON.stringify(check.perf.tolerance)}`);
|
|
876
|
+
}
|
|
877
|
+
return lines;
|
|
878
|
+
}
|
|
836
879
|
function previewVerifierDraft(draft, options = {}) {
|
|
837
880
|
const validation = validateVerifierDraft(draft);
|
|
838
881
|
const lines = [
|
|
@@ -847,6 +890,18 @@ function previewVerifierDraft(draft, options = {}) {
|
|
|
847
890
|
lines.push("", "Catalog checks after confirmation:");
|
|
848
891
|
if (draft.checks.length === 0) lines.push("(none)");
|
|
849
892
|
else for (const check of draft.checks) lines.push(...renderCheck(check, draft.catalogPath));
|
|
893
|
+
if (draft.numericProposals.length > 0) {
|
|
894
|
+
lines.push("", "Numeric-compare checks the validation contract implies (command required before they can be added):");
|
|
895
|
+
for (const proposal of draft.numericProposals) {
|
|
896
|
+
lines.push(
|
|
897
|
+
`- ${proposal.id}`,
|
|
898
|
+
` artifact: ${proposal.artifactPath}`,
|
|
899
|
+
` reference: ${proposal.reference}`,
|
|
900
|
+
` tolerance: ${JSON.stringify(proposal.tolerance)}`,
|
|
901
|
+
` add with: ${proposal.addCommand}`
|
|
902
|
+
);
|
|
903
|
+
}
|
|
904
|
+
}
|
|
850
905
|
if (draft.diagnostics.length > 0) {
|
|
851
906
|
lines.push("", "Diagnostics:");
|
|
852
907
|
for (const diagnostic of draft.diagnostics) lines.push(`- ${diagnostic}`);
|
|
@@ -960,4 +1015,4 @@ export {
|
|
|
960
1015
|
previewVerifierDraft,
|
|
961
1016
|
runVerifierAuthoringWorkflow
|
|
962
1017
|
};
|
|
963
|
-
//# sourceMappingURL=chunk-
|
|
1018
|
+
//# sourceMappingURL=chunk-Q4WO54TA.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
normalizeWriteBoundary,
|
|
5
5
|
normalizeWriteBoundaryEntry,
|
|
6
6
|
writeBoundaryCovers
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OEJSLEPW.js";
|
|
8
8
|
import {
|
|
9
9
|
asDirectoryPathBoundary,
|
|
10
10
|
pathBoundaryEntryCovers
|
|
@@ -75,9 +75,12 @@ function isCanonicalWorktreePathInside(parent, candidate) {
|
|
|
75
75
|
const rel = relative(canonicalParent, canonicalCandidate);
|
|
76
76
|
return rel.length > 0 && rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);
|
|
77
77
|
}
|
|
78
|
-
function commitWorktreePath(path, identity, message) {
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
function commitWorktreePath(path, identity, message, excludedPaths = []) {
|
|
79
|
+
if (excludedPaths.length > 0) {
|
|
80
|
+
git(path, ["reset", "-q", "HEAD", "--", ...excludedPaths.map((entry) => `:(top,literal)${entry}`)]);
|
|
81
|
+
}
|
|
82
|
+
git(path, ["add", "-A", "--", ".", ...excludedPaths.map((entry) => `:(top,exclude,literal)${entry}`)]);
|
|
83
|
+
if (git(path, ["diff", "--cached", "--name-only", "-z"]).length === 0) return false;
|
|
81
84
|
git(path, [
|
|
82
85
|
"-c",
|
|
83
86
|
`user.name=${identity}`,
|
|
@@ -593,7 +596,10 @@ async function createCandidateWorktreeMapped(ownership, index, baseline, mux) {
|
|
|
593
596
|
return { ...native, provenance: { backend: "native", path, branch, fallback } };
|
|
594
597
|
}
|
|
595
598
|
function commitCandidateWork(worktree, message) {
|
|
596
|
-
return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message
|
|
599
|
+
return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message, [
|
|
600
|
+
".clio-coder/codewiki.json",
|
|
601
|
+
".clio-coder/state.json"
|
|
602
|
+
]);
|
|
597
603
|
}
|
|
598
604
|
function candidateDiffStat(root, branch) {
|
|
599
605
|
return worktreeBranchDiffStat(root, branch);
|
|
@@ -1199,4 +1205,4 @@ export {
|
|
|
1199
1205
|
preflightWriteBoundaries,
|
|
1200
1206
|
createWriteBoundaryEnforcer
|
|
1201
1207
|
};
|
|
1202
|
-
//# sourceMappingURL=chunk-
|
|
1208
|
+
//# sourceMappingURL=chunk-QUFRYSWI.js.map
|
|
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
ToolNames,
|
|
4
4
|
isBuiltinToolName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4NSRCOYP.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esm_shims
|
|
8
8
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -98,4 +98,4 @@ export {
|
|
|
98
98
|
assertToolProfileEnforceable,
|
|
99
99
|
applyToolProfile
|
|
100
100
|
};
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-QZWQA4DE.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-5B2AEOW5.js";
|
|
5
5
|
import {
|
|
6
6
|
ToolNames
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4NSRCOYP.js";
|
|
8
8
|
import {
|
|
9
9
|
StringEnum
|
|
10
10
|
} from "./chunk-YPC6ZR5L.js";
|
|
@@ -29,4 +29,4 @@ var steerToolSurface = {
|
|
|
29
29
|
export {
|
|
30
30
|
steerToolSurface
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-RAY4OVGZ.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
parseAgentRecipeSchema
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7UGL4MB5.js";
|
|
5
5
|
import {
|
|
6
6
|
parseFleetContract
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OEJSLEPW.js";
|
|
8
8
|
import {
|
|
9
9
|
parseFrontmatter
|
|
10
10
|
} from "./chunk-RKKLTLYB.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
loadSkills,
|
|
16
16
|
parsePendingSkillRequests,
|
|
17
17
|
projectCompatTrusted
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-2ZSONWVL.js";
|
|
19
19
|
import {
|
|
20
20
|
normalizedSkillHash
|
|
21
21
|
} from "./chunk-NDDGJUXD.js";
|
|
@@ -25,11 +25,11 @@ import {
|
|
|
25
25
|
sourceInfoForRoot,
|
|
26
26
|
splitYamlFrontmatter,
|
|
27
27
|
stringField
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-YECAMM3D.js";
|
|
29
29
|
import {
|
|
30
30
|
assertAgentSpecPolicy,
|
|
31
31
|
normalizeAgentSpec
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-KFV5L5SK.js";
|
|
33
33
|
import {
|
|
34
34
|
INTEROP_AGENT_KINDS
|
|
35
35
|
} from "./chunk-KXDSS5WJ.js";
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
} from "./chunk-GHS5EBTQ.js";
|
|
40
40
|
import {
|
|
41
41
|
runCommandVector
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-TOIVGRUX.js";
|
|
43
43
|
import {
|
|
44
44
|
expandConfigPath
|
|
45
45
|
} from "./chunk-336NSSKI.js";
|
|
@@ -908,4 +908,4 @@ export {
|
|
|
908
908
|
ResourcesDomainModule,
|
|
909
909
|
createResourcesDomainModule
|
|
910
910
|
};
|
|
911
|
-
//# sourceMappingURL=chunk-
|
|
911
|
+
//# sourceMappingURL=chunk-RQCKCSRL.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-5B2AEOW5.js";
|
|
5
5
|
import {
|
|
6
6
|
ToolNames
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4NSRCOYP.js";
|
|
8
8
|
import {
|
|
9
9
|
StringEnum
|
|
10
10
|
} from "./chunk-YPC6ZR5L.js";
|
|
@@ -49,4 +49,4 @@ export {
|
|
|
49
49
|
CODE_NAV_MAX_LIMIT,
|
|
50
50
|
codeNavToolSurface
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-RXTN6AKH.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
discoverAgentRecipes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7UGL4MB5.js";
|
|
5
5
|
import {
|
|
6
6
|
assertAgentIdNamespace
|
|
7
7
|
} from "./chunk-DR52UMZW.js";
|
|
8
8
|
import {
|
|
9
9
|
normalizeAgentSpec
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KFV5L5SK.js";
|
|
11
11
|
import {
|
|
12
12
|
BusChannels
|
|
13
13
|
} from "./chunk-F4EKGO4N.js";
|
|
@@ -146,4 +146,4 @@ var AgentsDomainModule = {
|
|
|
146
146
|
export {
|
|
147
147
|
AgentsDomainModule
|
|
148
148
|
};
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-RZDWV63N.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
compileExecutionPlan
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LTIKRKFL.js";
|
|
5
5
|
import {
|
|
6
6
|
deriveExecutionRole
|
|
7
7
|
} from "./chunk-H7IXIC72.js";
|
|
@@ -94,4 +94,4 @@ function compileScoutTransition(input) {
|
|
|
94
94
|
export {
|
|
95
95
|
compileScoutTransition
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-S6PYF2XF.js.map
|