@iowarp/clio-coder 0.4.2 → 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 +98 -0
- package/CONTRIBUTING.md +86 -19
- package/README.md +35 -6
- package/dist/{acp-TMDQZDIG.js → acp-WNAYYF4F.js} +12 -13
- package/dist/{agents-5N5NG3XG.js → agents-3OKXHLOI.js} +60 -57
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-Z5CCBXKQ.js → auth-VKNNMGPU.js} +21 -19
- package/dist/{builtins-K6TNDT24.js → builtins-WGALA46I.js} +9 -4
- package/dist/{chunk-XE3PCIXH.js → chunk-23L32XTI.js} +12 -9
- package/dist/{chunk-I64IFBLB.js → chunk-25QBEXRS.js} +18 -11
- package/dist/{chunk-CDNVLKUX.js → chunk-26QSH3EJ.js} +13 -7
- package/dist/{chunk-QQLGQY2A.js → chunk-2ASED4PZ.js} +22 -22
- package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
- package/dist/chunk-2DSOYNFC.js +108 -0
- package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
- package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
- package/dist/{chunk-O3YUNJZ2.js → chunk-2ZSONWVL.js} +82 -25
- package/dist/{chunk-2NHR3NAY.js → chunk-36CT5VVL.js} +331 -42
- package/dist/{chunk-2X4RYJTJ.js → chunk-3GY4F45V.js} +3 -3
- package/dist/{chunk-ZW55JB7N.js → chunk-3ODX73FK.js} +4 -6
- package/dist/{chunk-PBP4B7XR.js → chunk-3UNOLWNZ.js} +3 -3
- package/dist/{chunk-4JDLP6ZS.js → chunk-3UUXNFEX.js} +14 -10
- package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
- package/dist/{chunk-ZW4HH5JJ.js → chunk-4M6Z5QVF.js} +6 -6
- package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
- package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
- package/dist/{chunk-FSP7CMNU.js → chunk-54X7T7DK.js} +61 -6
- package/dist/{chunk-54ODD65L.js → chunk-5636DCO5.js} +4 -4
- package/dist/chunk-57XXR6DR.js +3763 -0
- package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
- package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
- package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
- package/dist/{chunk-YJISEZKC.js → chunk-5TUB6SLS.js} +6 -6
- package/dist/{chunk-IMXMHHMQ.js → chunk-6OSVSQL5.js} +341 -57
- package/dist/{chunk-Q4XWMHX6.js → chunk-6PAZTBPA.js} +14 -2
- package/dist/{chunk-FVDGR2ZL.js → chunk-6Q3CYFD3.js} +112 -39
- package/dist/{chunk-IDNA72AH.js → chunk-6QOTUPRG.js} +155 -36
- package/dist/{chunk-X7IARSHT.js → chunk-6UINWWS6.js} +16 -10
- package/dist/{chunk-CYZW7JHJ.js → chunk-72YIHOZQ.js} +9 -9
- package/dist/{chunk-IKSLQ4XV.js → chunk-75W7L2E2.js} +752 -861
- package/dist/{chunk-CRFOIAX3.js → chunk-7UGL4MB5.js} +6 -6
- package/dist/{chunk-HIICAHCJ.js → chunk-AUPNRN7C.js} +2 -2
- package/dist/{chunk-7BHIY2MW.js → chunk-BJVFZO5U.js} +8 -50
- package/dist/{chunk-B74PXLU7.js → chunk-CUSRQKPU.js} +65 -3
- package/dist/chunk-DQOVN6KV.js +386 -0
- package/dist/{chunk-E7GT7O5N.js → chunk-DT3LWJOB.js} +7 -4
- package/dist/chunk-DXKJURES.js +671 -0
- package/dist/{chunk-JBCS7CRR.js → chunk-EL24TAU4.js} +10 -10
- package/dist/{chunk-TPEQIQIE.js → chunk-ELWDPP3Y.js} +8 -8
- package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
- package/dist/chunk-EXLD33WO.js +381 -0
- package/dist/chunk-FEAXX7B6.js +101 -0
- package/dist/{chunk-RLYRBIYQ.js → chunk-FFUPXJC4.js} +90 -331
- package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
- package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
- package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
- package/dist/chunk-GX5WYQO4.js +59 -0
- package/dist/chunk-GYV6VZOC.js +26 -0
- package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
- package/dist/chunk-I2DWJ4GM.js +390 -0
- package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
- package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
- package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
- package/dist/chunk-IRXAATOX.js +539 -0
- package/dist/chunk-IXIY2H4R.js +44 -0
- package/dist/{chunk-SSEYRH53.js → chunk-IZXGRF7P.js} +92 -147
- package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
- package/dist/{chunk-JWJGP5DQ.js → chunk-JEIYHLOR.js} +7 -7
- package/dist/{chunk-F2I26BDK.js → chunk-JQLNNIKT.js} +4 -4
- package/dist/{chunk-BYMNWQ7O.js → chunk-JSD46VO2.js} +315 -63
- package/dist/{chunk-AK5XEFVZ.js → chunk-JT2RFCC5.js} +64 -14
- package/dist/{chunk-MCMZMDAC.js → chunk-K6T2ZAMZ.js} +168 -6
- package/dist/{chunk-PGF63K6I.js → chunk-KFV5L5SK.js} +73 -4
- package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
- package/dist/{chunk-PJX3WQUQ.js → chunk-LLXSDWXS.js} +3 -3
- package/dist/{chunk-DZAW46HP.js → chunk-LTIKRKFL.js} +3 -3
- package/dist/{chunk-DZEK6CJN.js → chunk-N56KALIC.js} +21 -21
- package/dist/{chunk-B7HM5Z7T.js → chunk-NAI6ZFCY.js} +9 -5
- package/dist/{chunk-I66ZTYNP.js → chunk-NRO2BJRH.js} +2656 -2213
- package/dist/{chunk-ZGNYYXQ6.js → chunk-NXIMQY5W.js} +3 -3
- package/dist/{chunk-IKOZFYBN.js → chunk-NXYCB2VD.js} +149 -106
- package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
- package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
- package/dist/chunk-ODGTEFFI.js +50 -0
- package/dist/{chunk-3F7VUY77.js → chunk-OEJSLEPW.js} +2 -2
- package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
- package/dist/{chunk-5KW52TEP.js → chunk-Q4WO54TA.js} +132 -77
- package/dist/{chunk-W6NIE6OW.js → chunk-QUFRYSWI.js} +13 -7
- package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
- package/dist/chunk-R6Q67RJH.js +134 -0
- package/dist/{chunk-W4YEMFBX.js → chunk-RAY4OVGZ.js} +3 -3
- package/dist/{chunk-ZNT2M6TG.js → chunk-RQCKCSRL.js} +17 -17
- package/dist/{chunk-LJID3DYZ.js → chunk-RXTN6AKH.js} +3 -3
- package/dist/{chunk-P75RZCJW.js → chunk-RZDWV63N.js} +3 -3
- package/dist/{chunk-UH632ZYL.js → chunk-S6PYF2XF.js} +2 -2
- package/dist/{chunk-HJWWJ6IL.js → chunk-TOIVGRUX.js} +17 -5
- package/dist/{chunk-HLAFFSEK.js → chunk-TQAHXW6Y.js} +2 -2
- package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
- package/dist/{chunk-2HFQNRV3.js → chunk-UEPWCCTY.js} +12 -12
- package/dist/chunk-UOIZ7DA4.js +41 -0
- package/dist/{chunk-UH347SHR.js → chunk-USR47QNF.js} +11 -11
- package/dist/{chunk-AZ4WMN4W.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-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
- package/dist/{chunk-UBRFI4HS.js → chunk-XULDXHTN.js} +142 -50
- package/dist/chunk-XXYSBZIQ.js +283 -0
- package/dist/{chunk-HKMD33FO.js → chunk-Y55JBDO5.js} +405 -122
- package/dist/{chunk-XOXV5GKE.js → chunk-YD5GIKET.js} +17 -8
- package/dist/{chunk-XGDPUNND.js → chunk-YECAMM3D.js} +2 -2
- package/dist/{chunk-BO7Y52RY.js → chunk-YNFKXPEC.js} +7 -7
- package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
- package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
- package/dist/cli/index.js +42 -40
- package/dist/{clio-7VB377CC.js → clio-QLICPCF5.js} +7 -7
- package/dist/{code-nav-YVLCYA7V.js → code-nav-IJR2DBPR.js} +9 -9
- package/dist/{components-UBWCQSRW.js → components-2TGAI2RC.js} +5 -6
- package/dist/{config-4HVOS65E.js → config-IUA6OYNS.js} +88 -81
- package/dist/{configure-PIWO7B24.js → configure-VEPX4NMX.js} +26 -25
- package/dist/{context-KQYIWPWT.js → context-2DKHWH2T.js} +60 -45
- package/dist/{context-IYEHL3WQ.js → context-4MPR7WKB.js} +78 -69
- package/dist/{context-N6ZE3LGJ.js → context-BOYF5EJM.js} +15 -11
- package/dist/{context-clear-G4OGZJDS.js → context-clear-S4ZJCQUX.js} +73 -65
- package/dist/context-map-COB37XXN.js +505 -0
- package/dist/{context-working-set-BWLF6LJP.js → context-working-set-3I3FYX6Y.js} +18 -17
- package/dist/detail-A7JAVSIG.js +98 -0
- package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-RJ5I2F2O.js} +99 -75
- package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
- package/dist/{doctor-LHBD36VU.js → doctor-DKICC2SN.js} +71 -48
- package/dist/{eval-C45FYRJ6.js → eval-OQOQUDHK.js} +308 -146
- package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
- package/dist/{evidence-6SHONYAF.js → evidence-4DQ25GUQ.js} +79 -175
- package/dist/evidence-4F5USFKH.js +208 -0
- package/dist/{evolve-KRKMV72X.js → evolve-GSS52E5J.js} +71 -67
- package/dist/{extensions-KPZ2UHBB.js → extensions-G7MFLYHT.js} +8 -9
- package/dist/{fleet-IVTCKDHT.js → fleet-Q37YHHAQ.js} +126 -118
- package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-G7E4N7SM.js} +16 -13
- package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-O7M6QBA2.js} +9 -8
- package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-TOUBW6OW.js} +21 -20
- package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-SW33JJNI.js} +65 -60
- package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-CV2655TW.js} +4 -5
- package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-KESZX2YH.js} +25 -24
- package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-UQPMTVE3.js} +66 -61
- package/dist/{fleet-view-TWHJKCN6.js → fleet-view-MN2VG4MR.js} +65 -60
- package/dist/{init-T2QORQ3Y.js → init-PXEXQSBF.js} +90 -82
- package/dist/{interop-IN5I2A66.js → interop-ZG5T62U3.js} +12 -13
- package/dist/inventory-C26CFDRR.js +101 -0
- package/dist/{library-LSCATDLZ.js → library-B2W4N74O.js} +29 -29
- package/dist/{memory-HYOKAGGJ.js → memory-YCANYS5A.js} +73 -69
- package/dist/{models-2GPMFYCM.js → models-GERTU3YI.js} +51 -47
- package/dist/{monitor-E4ASVUJH.js → monitor-CPNIUULB.js} +74 -67
- package/dist/{orchestrator-DDMPR3PY.js → orchestrator-J4BSH4WQ.js} +1288 -1606
- package/dist/{panes-E3RUXOW5.js → panes-BOHAEGYC.js} +4 -4
- package/dist/{panes-IXKLOKA2.js → panes-NXSLDQZ2.js} +10 -11
- package/dist/{paths-L7LGY6RN.js → paths-VSUWNC22.js} +6 -7
- package/dist/reset-TNWTB5LU.js +343 -0
- package/dist/{resources-OTRSN34L.js → resources-4PXNMD5G.js} +29 -22
- package/dist/{run-5DEYH5QK.js → run-D6XJ34CN.js} +132 -132
- package/dist/{share-IHWTLO3M.js → share-2NWMJJEE.js} +27 -27
- package/dist/{skills-IYMXMKW4.js → skills-KR7WON5G.js} +40 -33
- package/dist/{skills-eval-DROHSJAR.js → skills-eval-O2ZNOLDS.js} +81 -77
- package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-ZZOUBK7O.js} +23 -22
- package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-ZXPJD64J.js} +47 -37
- package/dist/{steer-Z5DO23FJ.js → steer-XA25PSCS.js} +4 -4
- package/dist/{support-U7QOWY26.js → support-7EMVWYG2.js} +6 -6
- package/dist/{targets-P2FUC4IL.js → targets-OMH2XCSN.js} +50 -49
- package/dist/tasks-IPAGMEIX.js +36 -0
- package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-C2J3JYRE.js} +4 -4
- package/dist/{tools-5B7RO6MV.js → tools-EFFEAIDP.js} +8 -9
- package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
- package/dist/uninstall-HALS6BLF.js +407 -0
- package/dist/upgrade-MS72RJEP.js +306 -0
- package/dist/{usage-ME5MPXGX.js → usage-NHG6MCJM.js} +162 -108
- package/dist/{verifiers-BVZ7IWOO.js → verifiers-7AUNVXDY.js} +155 -22
- package/dist/{verify-5K7ZKQFC.js → verify-FWYGPKMR.js} +14 -12
- package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
- package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-743CIGJW.js} +99 -90
- package/dist/{with-panes-BYOJCLAM.js → with-panes-BDQEWBRT.js} +10 -10
- package/dist/worker/entry.js +72 -68
- package/docs/README.md +3 -2
- package/docs/architecture/acp.md +17 -0
- package/docs/architecture/artifact-placement.md +1 -0
- package/docs/architecture/artifact-versions.md +2 -2
- package/docs/architecture/context-engine.md +4 -0
- package/docs/architecture/dispatch-typed-intent.md +1 -1
- package/docs/architecture/evidence-and-memory.md +1 -1
- package/docs/architecture/middleware-and-components.md +1 -1
- package/docs/architecture/model-catalog.md +21 -10
- package/docs/architecture/observability.md +19 -2
- package/docs/architecture/prompt-envelope-and-tools.md +17 -5
- package/docs/architecture/provider-adapter-cookbook.md +63 -0
- package/docs/architecture/safety-model.md +25 -22
- package/docs/architecture/tui-design.md +1 -1
- package/docs/guide/built-in-agents.md +25 -11
- package/docs/guide/commands-and-modes.md +18 -3
- package/docs/guide/configuration-and-targets.md +100 -10
- package/docs/guide/configuration-reference.md +17 -7
- package/docs/guide/environment-variables.md +4 -2
- package/docs/guide/installation-and-lifecycle.md +37 -4
- package/docs/guide/proactive-memory.md +66 -55
- package/docs/guide/skills-marketplace.md +18 -0
- package/docs/guide/tool-usage.md +78 -3
- package/docs/history/config-knobs-audit.md +2 -2
- package/docs/process/development-pipeline.md +40 -2
- package/docs/process/eval-runner.md +67 -3
- 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/evals/behavioral-model.yaml +3 -2
- package/package.json +2 -2
- package/skills/README.md +7 -5
- package/skills/coding/ast-grep/SKILL.md +101 -30
- package/skills/coding/ast-grep/evals.md +26 -0
- package/skills/coding/coding-standards/SKILL.md +47 -2
- package/skills/coding/coding-standards/evals.md +23 -0
- package/skills/coding/prototype/SKILL.md +87 -28
- package/skills/coding/prototype/evals.md +19 -0
- package/skills/coding/tdd/SKILL.md +80 -53
- package/skills/coding/tdd/evals.md +20 -0
- package/skills/context/context-handoff/SKILL.md +43 -2
- package/skills/context/context-handoff/evals.md +44 -0
- package/skills/context/context-prime/SKILL.md +45 -15
- package/skills/context/context-prime/evals.md +45 -0
- package/skills/git/branch-closeout/SKILL.md +132 -0
- package/skills/git/branch-closeout/evals.md +133 -0
- package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
- package/skills/git/file-ticket/SKILL.md +77 -63
- package/skills/git/file-ticket/assets/issue-template.md +22 -0
- package/skills/git/file-ticket/evals.md +31 -26
- package/skills/git/file-ticket/references/issue-discovery.md +49 -0
- package/skills/git/fix-issue/SKILL.md +87 -64
- package/skills/git/fix-issue/evals.md +35 -31
- package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
- package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
- package/skills/git/resolve-merge-conflicts/evals.md +52 -25
- package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
- package/skills/git/ship/SKILL.md +103 -67
- package/skills/git/ship/assets/pr-template.md +21 -0
- package/skills/git/ship/evals.md +44 -28
- package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
- package/skills/git/worktree-create/SKILL.md +80 -50
- package/skills/git/worktree-create/evals.md +40 -33
- package/skills/git/worktree-create/references/worktree-setup.md +62 -66
- package/skills/git/worktree-merge/SKILL.md +112 -65
- package/skills/git/worktree-merge/evals.md +42 -34
- package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
- package/skills/planning/archify/SKILL.md +196 -0
- package/skills/planning/archify/evals.md +65 -0
- package/skills/planning/architecture/SKILL.md +61 -12
- package/skills/planning/architecture/evals.md +65 -0
- package/skills/planning/backlog/SKILL.md +130 -14
- package/skills/planning/backlog/evals.md +142 -0
- package/skills/planning/prd/SKILL.md +47 -6
- package/skills/planning/prd/evals.md +54 -0
- package/skills/planning/product-intent/SKILL.md +57 -2
- package/skills/planning/product-intent/evals.md +70 -0
- package/skills/planning/tech-spec/SKILL.md +53 -2
- package/skills/planning/tech-spec/evals.md +73 -0
- package/skills/registry.yaml +58 -50
- package/skills/remote.yaml +13 -0
- package/skills/research/arxiv-literature/SKILL.md +76 -18
- package/skills/research/arxiv-literature/evals.md +50 -0
- package/skills/research/experiment-protocol/SKILL.md +20 -1
- package/skills/research/experiment-protocol/evals.md +23 -0
- package/skills/research/scientific-debugging/SKILL.md +24 -1
- package/skills/research/scientific-debugging/evals.md +18 -0
- package/skills/research/scientific-modernization/SKILL.md +26 -1
- package/skills/research/scientific-modernization/evals.md +27 -0
- package/skills/skill-marketplace.json +63 -28
- package/skills/workflow/cut-it/SKILL.md +64 -5
- package/skills/workflow/cut-it/evals.md +101 -0
- package/skills/workflow/design-council/SKILL.md +112 -27
- package/skills/workflow/design-council/evals.md +161 -0
- package/skills/workflow/grill-me/SKILL.md +85 -10
- package/skills/workflow/grill-me/evals.md +153 -0
- package/skills/workflow/workflow-distiller/SKILL.md +76 -17
- package/skills/workflow/workflow-distiller/evals.md +118 -0
- package/src/cli/args.ts +0 -8
- package/src/cli/configure-interop.ts +105 -13
- package/src/cli/configure-oauth.ts +57 -0
- package/src/cli/configure-onboarding.ts +980 -0
- package/src/cli/configure-target.ts +594 -0
- package/src/cli/configure.ts +1084 -529
- package/src/cli/context-map.ts +114 -0
- package/src/cli/context.ts +4 -0
- 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 +3 -0
- package/src/cli/lifecycle-presenter.ts +436 -0
- package/src/cli/models.ts +10 -2
- package/src/cli/modes/print.ts +5 -1
- package/src/cli/reset.ts +228 -106
- package/src/cli/run.ts +7 -4
- package/src/cli/select.ts +664 -0
- package/src/cli/skills.ts +9 -2
- package/src/cli/targets.ts +3 -0
- package/src/cli/tasks.ts +84 -0
- package/src/cli/uninstall.ts +233 -165
- package/src/cli/upgrade.ts +210 -150
- package/src/cli/usage.ts +92 -27
- package/src/cli/validate-model.ts +3 -3
- 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/config.ts +56 -0
- package/src/core/external-diagnostic.ts +44 -0
- package/src/core/gateway-routing.ts +157 -0
- package/src/core/git-commit-attribution.ts +46 -3
- package/src/core/run-overrides.ts +0 -5
- package/src/core/safe-exec.ts +17 -2
- package/src/core/skill-activation.ts +92 -2
- 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/agents/builtins/world-knowledge.md +31 -0
- package/src/domains/agents/catalog.ts +1 -1
- package/src/domains/agents/result-contract.ts +70 -0
- 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/map-seed.ts +589 -0
- package/src/domains/context/wiki/plan.ts +2 -2
- package/src/domains/context/wiki/prompts.ts +43 -0
- package/src/domains/dispatch/active-route-planner.ts +4 -0
- package/src/domains/dispatch/admission.ts +29 -0
- package/src/domains/dispatch/agent-candidates.ts +10 -0
- package/src/domains/dispatch/budget-envelope.ts +86 -1
- package/src/domains/dispatch/capability-match.ts +1 -0
- package/src/domains/dispatch/capacity-lease.ts +17 -0
- package/src/domains/dispatch/code-step.ts +11 -4
- package/src/domains/dispatch/contract.ts +42 -8
- package/src/domains/dispatch/execution-scheduler.ts +2 -0
- package/src/domains/dispatch/extension.ts +184 -56
- 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 +20 -2
- package/src/domains/dispatch/worker-model-metadata.ts +38 -0
- package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
- package/src/domains/eval/metrics/token-stream.ts +201 -31
- package/src/domains/eval/metrics/tracked.ts +40 -4
- package/src/domains/eval/runners/clio-run.ts +17 -11
- 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/eval/schema/suite.ts +28 -0
- package/src/domains/eval/schema/verdict.ts +2 -2
- package/src/domains/eval/suites/resolve.ts +13 -1
- package/src/domains/eval/suites/run.ts +24 -3
- 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/interop/registry.ts +6 -2
- package/src/domains/interop/types.ts +4 -0
- package/src/domains/lifecycle/migrations/index.ts +4 -0
- package/src/domains/memory/task-memory-policy.ts +70 -26
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- package/src/domains/middleware/index.ts +0 -1
- package/src/domains/middleware/marketplace-offer.ts +22 -35
- package/src/domains/middleware/memory-intervention.ts +127 -32
- package/src/domains/middleware/memory-step-endpoint.ts +3 -2
- package/src/domains/middleware/runtime.ts +7 -3
- package/src/domains/middleware/skills-reminder.ts +31 -2
- package/src/domains/mux/detect.ts +3 -6
- package/src/domains/observability/accountability.ts +15 -1
- package/src/domains/observability/compaction-usage.ts +118 -0
- package/src/domains/observability/contract.ts +52 -7
- package/src/domains/observability/cost.ts +1 -1
- package/src/domains/observability/evidence-index.ts +10 -0
- package/src/domains/observability/extension.ts +15 -6
- package/src/domains/observability/out-of-turn-usage.ts +52 -21
- 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/contract.ts +4 -1
- package/src/domains/providers/extension.ts +40 -9
- package/src/domains/providers/model-capabilities.ts +9 -0
- package/src/domains/providers/model-discovery.ts +3 -4
- package/src/domains/providers/model-runtime-capabilities.ts +15 -5
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +48 -26
- package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
- package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
- package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
- package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
- package/src/domains/providers/support.ts +11 -5
- package/src/domains/providers/target-model-cache.ts +25 -2
- package/src/domains/providers/types/capability-flags.ts +2 -0
- package/src/domains/providers/types/runtime-descriptor.ts +20 -1
- package/src/domains/providers/types/target-descriptor.ts +19 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/skills/install.ts +72 -7
- package/src/domains/resources/skills/loader.ts +7 -0
- package/src/domains/resources/skills/marketplace.ts +63 -11
- package/src/domains/safety/action-classifier.ts +7 -0
- package/src/domains/safety/autonomy.ts +15 -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 +21 -1
- package/src/domains/safety/path-policy.ts +1 -1
- package/src/domains/safety/policy-engine.ts +60 -17
- package/src/domains/safety/protected-artifacts.ts +191 -88
- package/src/domains/safety/rigor.ts +53 -39
- package/src/domains/safety/run-effects.ts +2 -22
- package/src/domains/safety/skill-authority.ts +55 -0
- package/src/domains/safety/validation-contract.ts +388 -0
- package/src/domains/session/archive-readers.ts +10 -1
- package/src/domains/session/compaction/compact.ts +72 -22
- package/src/domains/session/decision-board.ts +101 -2
- package/src/domains/session/entries.ts +50 -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/session/usage.ts +3 -3
- 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/agent.ts +13 -3
- package/src/engine/ai.ts +26 -8
- package/src/engine/antigravity/subprocess-runtime.ts +386 -120
- package/src/engine/api-registry.ts +3 -0
- package/src/engine/apis/ollama-native.ts +15 -0
- package/src/engine/apis/openai-completions.ts +117 -14
- package/src/engine/claude/subprocess-runtime.ts +107 -60
- package/src/engine/external-subprocess.ts +122 -6
- package/src/entry/background-model-metadata.ts +18 -0
- package/src/entry/compaction-prompt.ts +57 -0
- package/src/entry/orchestrator.ts +416 -218
- package/src/entry/task-memory-lifecycle.ts +35 -0
- package/src/interactive/chat-loop-messages.ts +13 -4
- package/src/interactive/chat-loop.ts +65 -2
- package/src/interactive/chat-renderer.ts +1 -0
- package/src/interactive/cost-overlay.ts +26 -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 +4 -2
- 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/renderers/worker-entry.ts +32 -0
- package/src/interactive/slash-autocomplete.ts +4 -6
- package/src/interactive/slash-commands.ts +49 -45
- package/src/interactive/slash-spec.ts +28 -0
- package/src/interactive/theme/labels.ts +19 -13
- package/src/interactive/turn-context.ts +9 -5
- package/src/interactive/turn-recovery.ts +8 -0
- package/src/interactive/turn-runtime.ts +27 -11
- package/src/interactive/turn-state.ts +7 -0
- package/src/interactive/view/artifacts.ts +2 -0
- package/src/interactive/worker-receipts.ts +1 -0
- package/src/interactive/worker-stream.ts +13 -4
- 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/context/index.ts +30 -9
- 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-arguments.ts +1 -0
- package/src/tools/dispatch-event-text.ts +10 -0
- package/src/tools/dispatch-plan.ts +6 -2
- package/src/tools/dispatch-runner.ts +27 -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 +11 -5
- 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/src/tools/worker-evidence.ts +3 -1
- package/src/worker/spec-contract.ts +4 -0
- package/dist/chunk-2Z2IKEXI.js +0 -1554
- package/dist/chunk-RVG5JXAL.js +0 -41
- package/dist/chunk-T56WDKA5.js +0 -183
- package/dist/chunk-VN3SHNBN.js +0 -313
- package/dist/chunk-VPKWYKEY.js +0 -169
- package/dist/reset-OAQP3W4O.js +0 -230
- package/dist/uninstall-N34PCTGJ.js +0 -331
- package/dist/upgrade-PXK3S2YM.js +0 -325
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
settingsPath,
|
|
5
5
|
validateSettings,
|
|
6
6
|
withSettingsLock
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GHS5EBTQ.js";
|
|
8
8
|
import {
|
|
9
9
|
require_dist
|
|
10
10
|
} from "./chunk-APJ265NV.js";
|
|
@@ -305,4 +305,4 @@ export {
|
|
|
305
305
|
migrateSettingsV1Document,
|
|
306
306
|
settings_v2_default
|
|
307
307
|
};
|
|
308
|
-
//# sourceMappingURL=chunk-
|
|
308
|
+
//# sourceMappingURL=chunk-5ICU3EUH.js.map
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
require_dist
|
|
7
7
|
} from "./chunk-APJ265NV.js";
|
|
8
|
-
import {
|
|
9
|
-
clioConfigDir
|
|
10
|
-
} from "./chunk-BYP5D4HI.js";
|
|
11
8
|
import {
|
|
12
9
|
safeResourceWrite
|
|
13
10
|
} from "./chunk-WEPFGWHJ.js";
|
|
11
|
+
import {
|
|
12
|
+
clioConfigDir
|
|
13
|
+
} from "./chunk-BYP5D4HI.js";
|
|
14
14
|
import {
|
|
15
15
|
__toESM,
|
|
16
16
|
init_esm_shims
|
|
@@ -1331,4 +1331,4 @@ export {
|
|
|
1331
1331
|
disableExtension,
|
|
1332
1332
|
removeExtension
|
|
1333
1333
|
};
|
|
1334
|
-
//# sourceMappingURL=chunk-
|
|
1334
|
+
//# sourceMappingURL=chunk-5MEZN6CB.js.map
|
|
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
createEngineAi,
|
|
4
4
|
getEngineSupportedThinkingLevels
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YPC6ZR5L.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esm_shims
|
|
8
8
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -162,4 +162,4 @@ export {
|
|
|
162
162
|
catalogThinkingLevelsForRuntime,
|
|
163
163
|
synthesizeCatalogBackedModel
|
|
164
164
|
};
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
165
|
+
//# sourceMappingURL=chunk-5OIVVPHF.js.map
|
|
@@ -9,6 +9,11 @@ import {
|
|
|
9
9
|
installedToolVersions,
|
|
10
10
|
removeTool
|
|
11
11
|
} from "./chunk-D4CJV46V.js";
|
|
12
|
+
import {
|
|
13
|
+
formatColumns,
|
|
14
|
+
printError,
|
|
15
|
+
printOk
|
|
16
|
+
} from "./chunk-JCI2ROMZ.js";
|
|
12
17
|
import {
|
|
13
18
|
describeFloorRejection,
|
|
14
19
|
describeResolution,
|
|
@@ -20,11 +25,6 @@ import {
|
|
|
20
25
|
PINNED_TOOLS,
|
|
21
26
|
findPinnedTool
|
|
22
27
|
} from "./chunk-QDC3K2U3.js";
|
|
23
|
-
import {
|
|
24
|
-
formatColumns,
|
|
25
|
-
printError,
|
|
26
|
-
printOk
|
|
27
|
-
} from "./chunk-VPKWYKEY.js";
|
|
28
28
|
import {
|
|
29
29
|
init_esm_shims
|
|
30
30
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -299,4 +299,4 @@ function jsonShape(status) {
|
|
|
299
299
|
export {
|
|
300
300
|
runToolsCommand
|
|
301
301
|
};
|
|
302
|
-
//# sourceMappingURL=chunk-
|
|
302
|
+
//# sourceMappingURL=chunk-5TUB6SLS.js.map
|
|
@@ -2,12 +2,15 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
THINKING_LEVELS
|
|
4
4
|
} from "./chunk-UXCU4E3T.js";
|
|
5
|
+
import {
|
|
6
|
+
runCommandVector
|
|
7
|
+
} from "./chunk-TOIVGRUX.js";
|
|
5
8
|
import {
|
|
6
9
|
catalogThinkingLevelsForRuntime,
|
|
7
10
|
listCatalogModelsForRuntime,
|
|
8
11
|
mergeCapabilities,
|
|
9
12
|
synthesizeCatalogBackedModel
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5OIVVPHF.js";
|
|
11
14
|
import {
|
|
12
15
|
init_esm_shims
|
|
13
16
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -17,47 +20,243 @@ init_esm_shims();
|
|
|
17
20
|
|
|
18
21
|
// src/domains/providers/runtimes/antigravity/antigravity-code.ts
|
|
19
22
|
init_esm_shims();
|
|
20
|
-
|
|
23
|
+
|
|
24
|
+
// src/core/external-diagnostic.ts
|
|
25
|
+
init_esm_shims();
|
|
26
|
+
var REDACTED = "[redacted]";
|
|
27
|
+
function redactExternalDiagnostic(input) {
|
|
28
|
+
return input.replace(/\b(?:authorization|proxy-authorization)\s*:\s*[^\r\n]+/giu, `Authorization: ${REDACTED}`).replace(/\b(?:set-cookie|cookie)\s*:\s*[^\r\n]+/giu, `Cookie: ${REDACTED}`).replace(/\bbearer\s+[A-Za-z0-9._~+/-]+=*/giu, `Bearer ${REDACTED}`).replace(
|
|
29
|
+
/\b(?:api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password)\s*[:=]\s*[^\s,;]+/giu,
|
|
30
|
+
(match) => {
|
|
31
|
+
const separator = match.includes(":") ? ":" : "=";
|
|
32
|
+
return `${match.slice(0, match.indexOf(separator)).trim()}${separator}${REDACTED}`;
|
|
33
|
+
}
|
|
34
|
+
).replace(/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/gu, REDACTED).replace(
|
|
35
|
+
/(?:~|\/[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*)\/\.(?:gemini\/antigravity-cli|antigravitycli)(?:\/[^\s]*)?/gu,
|
|
36
|
+
"[redacted credential path]"
|
|
37
|
+
).replace(/https?:\/\/[^\s"'<>]+/giu, (url2) => {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = new URL(url2);
|
|
40
|
+
if (/(?:auth|oauth|login|signin|callback)/iu.test(parsed.pathname)) return "[redacted authorization URL]";
|
|
41
|
+
parsed.username = "";
|
|
42
|
+
parsed.password = "";
|
|
43
|
+
parsed.search = "";
|
|
44
|
+
parsed.hash = "";
|
|
45
|
+
return parsed.toString();
|
|
46
|
+
} catch {
|
|
47
|
+
return REDACTED;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function boundedExternalDiagnostic(input, maxBytes = 8192) {
|
|
52
|
+
const redacted = redactExternalDiagnostic(input).trim();
|
|
53
|
+
const bytes = Buffer.from(redacted, "utf8");
|
|
54
|
+
if (bytes.byteLength <= maxBytes) return redacted;
|
|
55
|
+
return `${bytes.subarray(0, Math.max(0, maxBytes - 32)).toString("utf8")}
|
|
56
|
+
[diagnostic truncated]`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/domains/providers/runtimes/antigravity/antigravity-code.ts
|
|
60
|
+
var ANTIGRAVITY_AUTH_NOTICE = "Experimental local delegation through your installed Antigravity (`agy`) CLI. Clio neither signs in nor stores or inspects Antigravity credentials. Run `agy` yourself and complete sign-in before probing this target.";
|
|
21
61
|
var ANTIGRAVITY_MODELS = [
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"Claude Sonnet 4.6 (Thinking)",
|
|
28
|
-
"Claude Opus 4.6 (Thinking)",
|
|
29
|
-
"GPT-OSS 120B (Medium)"
|
|
62
|
+
"gemini-3.8-flash-high",
|
|
63
|
+
"gemini-3.8-flash-medium",
|
|
64
|
+
"gemini-3.8-flash-low",
|
|
65
|
+
"gemini-3.1-pro-high",
|
|
66
|
+
"gemini-3.1-pro-low"
|
|
30
67
|
];
|
|
31
68
|
var antigravityCapabilities = {
|
|
32
69
|
chat: true,
|
|
33
|
-
tools:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
vision: true,
|
|
70
|
+
tools: false,
|
|
71
|
+
reasoning: false,
|
|
72
|
+
vision: false,
|
|
37
73
|
audio: false,
|
|
38
74
|
embeddings: false,
|
|
39
75
|
rerank: false,
|
|
40
76
|
fim: false,
|
|
41
|
-
contextWindow:
|
|
42
|
-
maxTokens:
|
|
77
|
+
contextWindow: 0,
|
|
78
|
+
maxTokens: 0
|
|
43
79
|
};
|
|
80
|
+
var ANTIGRAVITY_MAX_CATALOG_BYTES = 1024 * 1024;
|
|
81
|
+
var ANTIGRAVITY_MAX_DISCOVERED_MODELS = 4096;
|
|
82
|
+
var MAX_MODEL_ID_CHARS = 1024;
|
|
83
|
+
var MAX_MODEL_LABEL_CHARS = 1024;
|
|
84
|
+
var AntigravityCatalogError = class extends Error {
|
|
85
|
+
kind;
|
|
86
|
+
constructor(kind, message) {
|
|
87
|
+
super(message);
|
|
88
|
+
this.name = "AntigravityCatalogError";
|
|
89
|
+
this.kind = kind;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
function record(value) {
|
|
93
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
94
|
+
}
|
|
95
|
+
function parseAntigravityModelCatalogDetails(output) {
|
|
96
|
+
let decoded;
|
|
97
|
+
try {
|
|
98
|
+
decoded = JSON.parse(output);
|
|
99
|
+
} catch {
|
|
100
|
+
throw new AntigravityCatalogError(
|
|
101
|
+
"unsupported-feature",
|
|
102
|
+
"agy returned an unreadable model catalog; update the Antigravity CLI and retry"
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
const envelope = record(decoded);
|
|
106
|
+
const command = record(envelope?.command);
|
|
107
|
+
const data = record(command?.data);
|
|
108
|
+
if (envelope?.status !== "SUCCESS") {
|
|
109
|
+
const detail = boundedExternalDiagnostic(
|
|
110
|
+
typeof envelope?.error === "string" ? envelope.error : typeof command?.error === "string" ? command.error : "agy could not list models"
|
|
111
|
+
);
|
|
112
|
+
const kind = classifyAntigravityDiagnostic(detail);
|
|
113
|
+
throw new AntigravityCatalogError(kind, antigravityProbeMessage(kind, detail));
|
|
114
|
+
}
|
|
115
|
+
if (command?.name !== "models" || !Array.isArray(data?.models)) {
|
|
116
|
+
throw new AntigravityCatalogError(
|
|
117
|
+
"unsupported-feature",
|
|
118
|
+
"agy returned an unsupported model catalog; update the Antigravity CLI and retry"
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
if (data.models.length === 0) {
|
|
122
|
+
throw new AntigravityCatalogError(
|
|
123
|
+
"catalog-unavailable",
|
|
124
|
+
"agy returned no available models; run `agy` locally and verify the signed-in account has model access"
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
if (data.models.length > ANTIGRAVITY_MAX_DISCOVERED_MODELS) {
|
|
128
|
+
throw new AntigravityCatalogError(
|
|
129
|
+
"catalog-unavailable",
|
|
130
|
+
`agy returned more than ${ANTIGRAVITY_MAX_DISCOVERED_MODELS} models; the authoritative catalog was refused rather than truncated`
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
const models = [];
|
|
134
|
+
const labels = {};
|
|
135
|
+
const seen = /* @__PURE__ */ new Set();
|
|
136
|
+
for (const value of data.models) {
|
|
137
|
+
const model = record(value);
|
|
138
|
+
const id = typeof model?.id === "string" ? model.id.trim() : "";
|
|
139
|
+
const label = typeof model?.label === "string" ? model.label.trim() : "";
|
|
140
|
+
if (id.length === 0 || id.length > MAX_MODEL_ID_CHARS || /[\r\n\0]/u.test(id)) {
|
|
141
|
+
throw new AntigravityCatalogError("catalog-unavailable", "agy returned an invalid model identifier");
|
|
142
|
+
}
|
|
143
|
+
if (label.length === 0 || label.length > MAX_MODEL_LABEL_CHARS || /[\r\n\0]/u.test(label)) {
|
|
144
|
+
throw new AntigravityCatalogError("catalog-unavailable", `agy returned an invalid label for model '${id}'`);
|
|
145
|
+
}
|
|
146
|
+
if (seen.has(id)) {
|
|
147
|
+
if (labels[id] !== label) {
|
|
148
|
+
throw new AntigravityCatalogError(
|
|
149
|
+
"catalog-unavailable",
|
|
150
|
+
`agy returned conflicting labels for duplicate model '${id}'`
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
seen.add(id);
|
|
156
|
+
models.push(id);
|
|
157
|
+
labels[id] = label;
|
|
158
|
+
}
|
|
159
|
+
return { models, labels };
|
|
160
|
+
}
|
|
161
|
+
function classifyAntigravityDiagnostic(detail) {
|
|
162
|
+
if (/(?:enoent|not found|cannot find|could not start|spawn .*agy)/iu.test(detail)) return "missing";
|
|
163
|
+
if (/(?:sign[ -]?in|log[ -]?in|unauthori[sz]ed|authenticat|credential|account.*required)/iu.test(detail)) {
|
|
164
|
+
return "authentication";
|
|
165
|
+
}
|
|
166
|
+
if (/(?:unknown|unsupported|unrecognized|invalid) (?:option|argument|command)|output-format|models command/iu.test(detail)) {
|
|
167
|
+
return "unsupported-feature";
|
|
168
|
+
}
|
|
169
|
+
return "generic";
|
|
170
|
+
}
|
|
171
|
+
function antigravityProbeMessage(kind, detail) {
|
|
172
|
+
const safeDetail = boundedExternalDiagnostic(detail || "no diagnostic was provided");
|
|
173
|
+
switch (kind) {
|
|
174
|
+
case "missing":
|
|
175
|
+
return "Antigravity CLI is not installed or `agy` is not on PATH";
|
|
176
|
+
case "authentication":
|
|
177
|
+
return `Antigravity sign-in is required; run \`agy\` yourself and complete sign-in (${safeDetail})`;
|
|
178
|
+
case "unsupported-feature":
|
|
179
|
+
return `the installed Antigravity CLI does not expose the required structured model catalog; update \`agy\` (${safeDetail})`;
|
|
180
|
+
case "catalog-unavailable":
|
|
181
|
+
return safeDetail;
|
|
182
|
+
case "cancelled":
|
|
183
|
+
return "Antigravity model discovery was cancelled";
|
|
184
|
+
default:
|
|
185
|
+
return `Antigravity model discovery failed: ${safeDetail}`;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
async function probeAntigravityModelCatalog(ctx, runner = runCommandVector) {
|
|
189
|
+
const result = await runner("agy", ["--output-format", "json", "models"], {
|
|
190
|
+
cwd: process.cwd(),
|
|
191
|
+
workspaceRoot: process.cwd(),
|
|
192
|
+
timeoutMs: Math.max(1, ctx.httpTimeoutMs),
|
|
193
|
+
maxOutputBytes: ANTIGRAVITY_MAX_CATALOG_BYTES,
|
|
194
|
+
...ctx.signal ? { signal: ctx.signal } : {}
|
|
195
|
+
});
|
|
196
|
+
if (result.aborted || result.timedOut) {
|
|
197
|
+
return {
|
|
198
|
+
ok: false,
|
|
199
|
+
latencyMs: result.durationMs,
|
|
200
|
+
failureKind: "cancelled",
|
|
201
|
+
error: antigravityProbeMessage("cancelled", "")
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
if (result.outputCapped) {
|
|
205
|
+
return {
|
|
206
|
+
ok: false,
|
|
207
|
+
latencyMs: result.durationMs,
|
|
208
|
+
failureKind: "catalog-unavailable",
|
|
209
|
+
error: `agy model catalog exceeded ${ANTIGRAVITY_MAX_CATALOG_BYTES} bytes`
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
if (result.exitCode !== 0) {
|
|
213
|
+
const detail = boundedExternalDiagnostic(result.stderr || result.stdout || `agy exited ${String(result.exitCode)}`);
|
|
214
|
+
const kind = classifyAntigravityDiagnostic(detail);
|
|
215
|
+
return { ok: false, latencyMs: result.durationMs, failureKind: kind, error: antigravityProbeMessage(kind, detail) };
|
|
216
|
+
}
|
|
217
|
+
try {
|
|
218
|
+
const catalog = parseAntigravityModelCatalogDetails(result.stdout);
|
|
219
|
+
return {
|
|
220
|
+
ok: true,
|
|
221
|
+
latencyMs: result.durationMs,
|
|
222
|
+
models: catalog.models,
|
|
223
|
+
modelLabels: catalog.labels
|
|
224
|
+
};
|
|
225
|
+
} catch (cause) {
|
|
226
|
+
const kind = cause instanceof AntigravityCatalogError ? cause.kind : "generic";
|
|
227
|
+
const detail = cause instanceof Error ? cause.message : String(cause);
|
|
228
|
+
return { ok: false, latencyMs: result.durationMs, failureKind: kind, error: boundedExternalDiagnostic(detail) };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
44
231
|
var antigravityCodeRuntime = {
|
|
45
232
|
id: "antigravity-code",
|
|
46
|
-
displayName: "Antigravity CLI",
|
|
233
|
+
displayName: "Antigravity CLI \u2014 experimental local delegation",
|
|
47
234
|
kind: "subprocess",
|
|
48
235
|
tier: "subscription",
|
|
49
|
-
|
|
50
|
-
// to its own runner before any pi-ai inference, so this only needs to be a
|
|
51
|
-
// valid, google-backed family. The runner is selected by runtime id, and the
|
|
52
|
-
// plain-text parser is named by `outputParser`.
|
|
53
|
-
apiFamily: "google-generative-ai",
|
|
236
|
+
apiFamily: "external-agent-subprocess",
|
|
54
237
|
auth: "none",
|
|
55
238
|
authNotice: ANTIGRAVITY_AUTH_NOTICE,
|
|
56
239
|
knownModels: [...ANTIGRAVITY_MODELS],
|
|
57
240
|
binaryName: "agy",
|
|
58
|
-
headlessCommand: "agy --
|
|
59
|
-
outputParser: "antigravity-
|
|
241
|
+
headlessCommand: "agy --input-format stream-json --output-format stream-json",
|
|
242
|
+
outputParser: "antigravity-stream-json",
|
|
60
243
|
defaultCapabilities: antigravityCapabilities,
|
|
244
|
+
externalAgentLoop: {
|
|
245
|
+
tools: "externally-governed-unobserved",
|
|
246
|
+
network: "externally-governed-unobserved",
|
|
247
|
+
budget: "external-one-shot",
|
|
248
|
+
generatingRetry: "forbidden",
|
|
249
|
+
modelCatalog: "live-authoritative"
|
|
250
|
+
},
|
|
251
|
+
async probe(_target, ctx) {
|
|
252
|
+
try {
|
|
253
|
+
return await probeAntigravityModelCatalog(ctx);
|
|
254
|
+
} catch (cause) {
|
|
255
|
+
const detail = boundedExternalDiagnostic(cause instanceof Error ? cause.message : String(cause));
|
|
256
|
+
const kind = classifyAntigravityDiagnostic(detail);
|
|
257
|
+
return { ok: false, failureKind: kind, error: antigravityProbeMessage(kind, detail) };
|
|
258
|
+
}
|
|
259
|
+
},
|
|
61
260
|
synthesizeModel(target, wireModelId, kb) {
|
|
62
261
|
return synthesizeCatalogBackedModel({
|
|
63
262
|
target,
|
|
@@ -65,9 +264,9 @@ var antigravityCodeRuntime = {
|
|
|
65
264
|
kb,
|
|
66
265
|
defaultCapabilities: antigravityCapabilities,
|
|
67
266
|
runtimeId: "antigravity-code",
|
|
68
|
-
api: "
|
|
69
|
-
provider: "
|
|
70
|
-
defaultBaseUrl: "antigravity
|
|
267
|
+
api: "external-agent-subprocess",
|
|
268
|
+
provider: "antigravity",
|
|
269
|
+
defaultBaseUrl: "external-agent://antigravity/local"
|
|
71
270
|
});
|
|
72
271
|
}
|
|
73
272
|
};
|
|
@@ -129,6 +328,15 @@ var claudeCodeRuntime = {
|
|
|
129
328
|
headlessCommand: "claude -p --output-format stream-json",
|
|
130
329
|
outputParser: "claude-code-stream-json",
|
|
131
330
|
defaultCapabilities: claudeCodeCapabilities,
|
|
331
|
+
// The Claude CLI runs its own tool loop. Clio observes only the stream, so a
|
|
332
|
+
// declared per-tool budget is recorded as external-one-shot, never enforced.
|
|
333
|
+
externalAgentLoop: {
|
|
334
|
+
tools: "externally-governed-unobserved",
|
|
335
|
+
network: "externally-governed-unobserved",
|
|
336
|
+
budget: "external-one-shot",
|
|
337
|
+
generatingRetry: "allowed",
|
|
338
|
+
modelCatalog: "static"
|
|
339
|
+
},
|
|
132
340
|
synthesizeModel(target, wireModelId, kb) {
|
|
133
341
|
return synthesizeClaudeDelegatedModel({
|
|
134
342
|
target,
|
|
@@ -577,7 +785,8 @@ function synthLocalModel(input) {
|
|
|
577
785
|
...target.gateway === true ? { gateway: true } : {},
|
|
578
786
|
...kb?.entry.family ? { family: kb.entry.family } : {},
|
|
579
787
|
...quirks ? { quirks } : {},
|
|
580
|
-
...target.lmstudio ? { lmstudio: target.lmstudio } : {}
|
|
788
|
+
...target.lmstudio ? { lmstudio: target.lmstudio } : {},
|
|
789
|
+
...target.litellm ? { litellm: target.litellm } : {}
|
|
581
790
|
}
|
|
582
791
|
};
|
|
583
792
|
if (headers) model.headers = headers;
|
|
@@ -750,41 +959,41 @@ function isRecord2(value) {
|
|
|
750
959
|
function positiveNumber(value) {
|
|
751
960
|
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
|
|
752
961
|
}
|
|
753
|
-
function firstPositiveNumber(
|
|
962
|
+
function firstPositiveNumber(record2, keys) {
|
|
754
963
|
for (const key of keys) {
|
|
755
|
-
const value = positiveNumber(
|
|
964
|
+
const value = positiveNumber(record2[key]);
|
|
756
965
|
if (value !== void 0) return value;
|
|
757
966
|
}
|
|
758
967
|
return void 0;
|
|
759
968
|
}
|
|
760
|
-
function capabilityListFlag(
|
|
761
|
-
const list =
|
|
969
|
+
function capabilityListFlag(record2, name) {
|
|
970
|
+
const list = record2.capabilities;
|
|
762
971
|
if (!Array.isArray(list)) return void 0;
|
|
763
972
|
return list.some((entry) => entry === name) ? true : void 0;
|
|
764
973
|
}
|
|
765
|
-
function booleanFromAny(
|
|
974
|
+
function booleanFromAny(record2, keys) {
|
|
766
975
|
for (const key of keys) {
|
|
767
|
-
const value =
|
|
976
|
+
const value = record2[key];
|
|
768
977
|
if (typeof value === "boolean") return value;
|
|
769
978
|
}
|
|
770
979
|
return void 0;
|
|
771
980
|
}
|
|
772
|
-
function nestedRecord(
|
|
773
|
-
const value =
|
|
981
|
+
function nestedRecord(record2, key) {
|
|
982
|
+
const value = record2[key];
|
|
774
983
|
return isRecord2(value) ? value : null;
|
|
775
984
|
}
|
|
776
|
-
function firstString(
|
|
777
|
-
if (!
|
|
985
|
+
function firstString(record2, keys) {
|
|
986
|
+
if (!record2) return void 0;
|
|
778
987
|
for (const key of keys) {
|
|
779
|
-
const value =
|
|
988
|
+
const value = record2[key];
|
|
780
989
|
if (typeof value === "string" && value.trim().length > 0) return value.trim();
|
|
781
990
|
}
|
|
782
991
|
return void 0;
|
|
783
992
|
}
|
|
784
|
-
function firstBoolean(
|
|
785
|
-
if (!
|
|
993
|
+
function firstBoolean(record2, keys) {
|
|
994
|
+
if (!record2) return void 0;
|
|
786
995
|
for (const key of keys) {
|
|
787
|
-
const value =
|
|
996
|
+
const value = record2[key];
|
|
788
997
|
if (typeof value === "boolean") return value;
|
|
789
998
|
}
|
|
790
999
|
return void 0;
|
|
@@ -2678,8 +2887,8 @@ function lmStudioReasoningLevels(options) {
|
|
|
2678
2887
|
return [...new Set(levels)];
|
|
2679
2888
|
}
|
|
2680
2889
|
function lmStudioReasoningEffort(level, options) {
|
|
2890
|
+
if (options?.includes("on") && options.includes("off")) return level === "off" ? "none" : void 0;
|
|
2681
2891
|
if (level === "off") return "none";
|
|
2682
|
-
if (options?.includes("on") && !options.includes("medium") && !options.includes("high")) return "low";
|
|
2683
2892
|
if (level === "medium" && options?.includes("medium") !== false) return "medium";
|
|
2684
2893
|
if ((level === "high" || level === "xhigh" || level === "max") && options?.includes("high") !== false) return "high";
|
|
2685
2894
|
return "low";
|
|
@@ -3118,7 +3327,7 @@ var defaultCapabilities25 = {
|
|
|
3118
3327
|
embeddings: false,
|
|
3119
3328
|
rerank: false,
|
|
3120
3329
|
fim: false,
|
|
3121
|
-
structuredOutputs: "
|
|
3330
|
+
structuredOutputs: "none",
|
|
3122
3331
|
contextWindow: CLIO_MIN_CONTEXT_WINDOW,
|
|
3123
3332
|
maxTokens: CLIO_MIN_MAX_OUTPUT_TOKENS
|
|
3124
3333
|
};
|
|
@@ -3143,6 +3352,8 @@ function boolean(value) {
|
|
|
3143
3352
|
}
|
|
3144
3353
|
function capabilitiesFromLiteLLMModelInfo(info) {
|
|
3145
3354
|
const caps = {};
|
|
3355
|
+
if (info.runtime === "lm-studio") caps.thinkingControlRuntime = "lmstudio";
|
|
3356
|
+
else if (info.runtime === "llama.cpp") caps.thinkingControlRuntime = "llamacpp";
|
|
3146
3357
|
const contextWindow = positiveInteger(info.max_input_tokens) ?? positiveInteger(info.max_tokens);
|
|
3147
3358
|
if (contextWindow !== void 0) caps.contextWindow = contextWindow;
|
|
3148
3359
|
const maxTokens = positiveInteger(info.max_output_tokens);
|
|
@@ -3164,36 +3375,96 @@ function capabilitiesFromLiteLLMModelInfo(info) {
|
|
|
3164
3375
|
caps.rerank = true;
|
|
3165
3376
|
}
|
|
3166
3377
|
if (info.mode === "chat") caps.chat = true;
|
|
3167
|
-
|
|
3378
|
+
const responseSchema = boolean(info.supports_response_schema);
|
|
3379
|
+
if (responseSchema !== void 0) caps.structuredOutputs = responseSchema ? "json-schema" : "none";
|
|
3168
3380
|
return caps;
|
|
3169
3381
|
}
|
|
3170
|
-
var
|
|
3382
|
+
var BOOLEAN_CAPABILITIES = [
|
|
3383
|
+
"chat",
|
|
3384
|
+
"tools",
|
|
3385
|
+
"reasoning",
|
|
3386
|
+
"vision",
|
|
3387
|
+
"audio",
|
|
3388
|
+
"embeddings",
|
|
3389
|
+
"rerank",
|
|
3390
|
+
"fim"
|
|
3391
|
+
];
|
|
3392
|
+
function aggregateLiteLLMCapabilities(rows) {
|
|
3393
|
+
if (rows.length === 0) return {};
|
|
3394
|
+
const aggregate = {};
|
|
3395
|
+
for (const key of ["contextWindow", "maxTokens"]) {
|
|
3396
|
+
const values = rows.map((row) => row[key]);
|
|
3397
|
+
if (values.every((value) => typeof value === "number")) {
|
|
3398
|
+
aggregate[key] = Math.min(...values);
|
|
3399
|
+
}
|
|
3400
|
+
}
|
|
3401
|
+
for (const key of BOOLEAN_CAPABILITIES) {
|
|
3402
|
+
const values = rows.map((row) => row[key]);
|
|
3403
|
+
if (values.some((value) => value === false)) aggregate[key] = false;
|
|
3404
|
+
else if (values.every((value) => value === true)) aggregate[key] = true;
|
|
3405
|
+
}
|
|
3406
|
+
const controlRuntime = rows[0]?.thinkingControlRuntime;
|
|
3407
|
+
if (controlRuntime !== void 0 && rows.every((row) => row.thinkingControlRuntime === controlRuntime)) {
|
|
3408
|
+
aggregate.thinkingControlRuntime = controlRuntime;
|
|
3409
|
+
}
|
|
3410
|
+
const structuredOutputs = rows.map((row) => row.structuredOutputs);
|
|
3411
|
+
if (structuredOutputs.some((value) => value === "none")) aggregate.structuredOutputs = "none";
|
|
3412
|
+
else if (structuredOutputs.every((value) => value === "json-schema")) aggregate.structuredOutputs = "json-schema";
|
|
3413
|
+
return aggregate;
|
|
3414
|
+
}
|
|
3415
|
+
var EMPTY_CATALOG = {
|
|
3416
|
+
models: [],
|
|
3417
|
+
modelCapabilities: {},
|
|
3418
|
+
modelStates: {},
|
|
3419
|
+
deployments: {},
|
|
3420
|
+
authFailed: false
|
|
3421
|
+
};
|
|
3422
|
+
function isAuthError(leg) {
|
|
3423
|
+
return !leg.ok && /^HTTP 40[13]\b/u.test(leg.error ?? "");
|
|
3424
|
+
}
|
|
3171
3425
|
async function fetchCatalog(base, ctx, headers) {
|
|
3172
3426
|
const detailOpts = { url: `${base}/v1/model/info`, timeoutMs: ctx.httpTimeoutMs, headers };
|
|
3173
3427
|
const detail = await (ctx.signal ? probeJson({ ...detailOpts, signal: ctx.signal }) : probeJson(detailOpts));
|
|
3174
3428
|
if (detail.ok && Array.isArray(detail.data?.data)) {
|
|
3175
|
-
const catalog = {
|
|
3429
|
+
const catalog = {
|
|
3430
|
+
models: [],
|
|
3431
|
+
modelCapabilities: {},
|
|
3432
|
+
modelStates: {},
|
|
3433
|
+
deployments: {},
|
|
3434
|
+
authFailed: false
|
|
3435
|
+
};
|
|
3436
|
+
const capabilityRows = {};
|
|
3176
3437
|
for (const row of detail.data.data) {
|
|
3177
3438
|
if (typeof row?.model_name !== "string" || row.model_name.length === 0) continue;
|
|
3178
3439
|
const alias = row.model_name;
|
|
3179
|
-
if (catalog.deployments[alias]
|
|
3180
|
-
|
|
3440
|
+
if (catalog.deployments[alias] === void 0) {
|
|
3441
|
+
catalog.models.push(alias);
|
|
3442
|
+
catalog.deployments[alias] = [];
|
|
3443
|
+
capabilityRows[alias] = [];
|
|
3444
|
+
}
|
|
3181
3445
|
const caps = row.model_info ? capabilitiesFromLiteLLMModelInfo(row.model_info) : {};
|
|
3182
|
-
|
|
3446
|
+
capabilityRows[alias]?.push(caps);
|
|
3183
3447
|
const upstream = row.litellm_params?.model;
|
|
3184
3448
|
const apiBase = row.litellm_params?.api_base;
|
|
3185
|
-
catalog.deployments[alias]
|
|
3449
|
+
catalog.deployments[alias]?.push({
|
|
3186
3450
|
model: typeof upstream === "string" ? upstream : alias,
|
|
3187
3451
|
...typeof apiBase === "string" ? { apiBase } : {}
|
|
3188
|
-
};
|
|
3452
|
+
});
|
|
3453
|
+
}
|
|
3454
|
+
for (const alias of catalog.models) {
|
|
3455
|
+
const caps = aggregateLiteLLMCapabilities(capabilityRows[alias] ?? []);
|
|
3456
|
+
if (Object.keys(caps).length > 0) catalog.modelCapabilities[alias] = caps;
|
|
3189
3457
|
}
|
|
3190
3458
|
if (catalog.models.length > 0) return catalog;
|
|
3191
3459
|
}
|
|
3460
|
+
const detailAuthFailed = isAuthError(detail);
|
|
3192
3461
|
const listOpts = { url: `${base}/v1/models`, timeoutMs: ctx.httpTimeoutMs, headers };
|
|
3193
3462
|
const list = await (ctx.signal ? probeJson({ ...listOpts, signal: ctx.signal }) : probeJson(listOpts));
|
|
3194
|
-
if (!list.ok || !Array.isArray(list.data?.data))
|
|
3463
|
+
if (!list.ok || !Array.isArray(list.data?.data)) {
|
|
3464
|
+
return { ...EMPTY_CATALOG, authFailed: detailAuthFailed || isAuthError(list) };
|
|
3465
|
+
}
|
|
3195
3466
|
const models = list.data.data.map((row) => typeof row?.id === "string" ? row.id : null).filter((id) => id !== null && id.length > 0);
|
|
3196
|
-
return { models, modelCapabilities: {}, modelStates: {}, deployments: {} };
|
|
3467
|
+
return { models, modelCapabilities: {}, modelStates: {}, deployments: {}, authFailed: false };
|
|
3197
3468
|
}
|
|
3198
3469
|
var litellmRuntime = {
|
|
3199
3470
|
id: "litellm",
|
|
@@ -3214,8 +3485,9 @@ var litellmRuntime = {
|
|
|
3214
3485
|
if (catalog.models.length === 0) {
|
|
3215
3486
|
const result2 = {
|
|
3216
3487
|
ok: false,
|
|
3217
|
-
error: "gateway is live but served no model catalog; check the target's API key"
|
|
3488
|
+
error: catalog.authFailed ? "gateway rejected the key" : "gateway is live but served no model catalog; check the target's API key"
|
|
3218
3489
|
};
|
|
3490
|
+
if (catalog.authFailed) result2.authFailed = true;
|
|
3219
3491
|
if (live.latencyMs !== void 0) result2.latencyMs = live.latencyMs;
|
|
3220
3492
|
return result2;
|
|
3221
3493
|
}
|
|
@@ -3235,7 +3507,18 @@ var litellmRuntime = {
|
|
|
3235
3507
|
if (configured && !catalog.models.includes(configured)) {
|
|
3236
3508
|
notes.push(`configured model '${configured}' is not in the gateway catalog`);
|
|
3237
3509
|
}
|
|
3238
|
-
const
|
|
3510
|
+
const routeEntries = Object.entries(catalog.deployments);
|
|
3511
|
+
const physical = routeEntries.filter(([alias, deployments]) => {
|
|
3512
|
+
const slash = alias.indexOf("/");
|
|
3513
|
+
if (slash <= 0 || deployments.length !== 1) return false;
|
|
3514
|
+
const upstream = deployments[0]?.model.replace(/^openai\//u, "");
|
|
3515
|
+
return upstream === alias.slice(slash + 1);
|
|
3516
|
+
});
|
|
3517
|
+
if (physical.length > 0) notes.push(`physical routes: ${physical.length} node/model names map one-to-one`);
|
|
3518
|
+
const routed = routeEntries.filter(([alias]) => !physical.some(([physicalAlias]) => physicalAlias === alias)).map(([alias, deployments]) => {
|
|
3519
|
+
const models = [...new Set(deployments.map((deployment) => deployment.model))];
|
|
3520
|
+
return `${alias}=${models.join("|")}`;
|
|
3521
|
+
}).sort();
|
|
3239
3522
|
if (routed.length > 0) notes.push(`routes: ${routed.join(", ")}`);
|
|
3240
3523
|
if (notes.length > 0) result.notes = notes;
|
|
3241
3524
|
return result;
|
|
@@ -3318,8 +3601,9 @@ export {
|
|
|
3318
3601
|
lmStudioReasoningEffort,
|
|
3319
3602
|
listLmStudioModels,
|
|
3320
3603
|
greetLmStudio,
|
|
3604
|
+
boundedExternalDiagnostic,
|
|
3321
3605
|
formatContextWindowSlots,
|
|
3322
3606
|
BUILTIN_RUNTIMES,
|
|
3323
3607
|
registerBuiltinRuntimes
|
|
3324
3608
|
};
|
|
3325
|
-
//# sourceMappingURL=chunk-
|
|
3609
|
+
//# sourceMappingURL=chunk-6OSVSQL5.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
|
isSessionEntry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-54X7T7DK.js";
|
|
5
5
|
import {
|
|
6
6
|
init_esm_shims
|
|
7
7
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -45,6 +45,7 @@ function boardStatus(tasks) {
|
|
|
45
45
|
function toTaskLedgerEntryFields(board, now) {
|
|
46
46
|
const evidence = [];
|
|
47
47
|
const subgoals = board.tasks.map((task) => {
|
|
48
|
+
evidence.push(...(task.requiredValidationEvidence ?? []).map((item) => ({ ...item })));
|
|
48
49
|
if (task.status === "completed" && task.evidence) {
|
|
49
50
|
evidence.push({
|
|
50
51
|
id: `${task.id}.evidence`,
|
|
@@ -139,6 +140,8 @@ function toEntryView(entry) {
|
|
|
139
140
|
origin: goal.origin ?? "agent"
|
|
140
141
|
};
|
|
141
142
|
if (goal.userTaskId) task.userTaskId = goal.userTaskId;
|
|
143
|
+
const required = entry.requiredValidationEvidence.filter((item) => item.id.startsWith(`${goal.id}.acceptance.`));
|
|
144
|
+
if (required.length > 0) task.requiredValidationEvidence = required.map((item) => ({ ...item }));
|
|
142
145
|
if (goal.description) task.reason = goal.description;
|
|
143
146
|
const evidence = evidenceByTask.get(goal.id);
|
|
144
147
|
if (evidence) task.evidence = evidence;
|
|
@@ -211,6 +214,15 @@ function applyMutation(board, mutation) {
|
|
|
211
214
|
origin: "user",
|
|
212
215
|
userTaskId: mutation.userTaskId
|
|
213
216
|
};
|
|
217
|
+
if (mutation.verification && mutation.verification.length > 0) {
|
|
218
|
+
picked.requiredValidationEvidence = mutation.verification.map((item, index) => ({
|
|
219
|
+
id: `${picked.id}.acceptance.${index}`,
|
|
220
|
+
description: `Operator acceptance: ${item.check}`,
|
|
221
|
+
command: item.check,
|
|
222
|
+
status: "pending",
|
|
223
|
+
notes: `timeoutMs=${item.timeoutMs}`
|
|
224
|
+
}));
|
|
225
|
+
}
|
|
214
226
|
return {
|
|
215
227
|
board: {
|
|
216
228
|
boardId: board?.boardId ?? "",
|
|
@@ -371,4 +383,4 @@ export {
|
|
|
371
383
|
foldSessionTaskHistory,
|
|
372
384
|
createTaskBoardStore
|
|
373
385
|
};
|
|
374
|
-
//# sourceMappingURL=chunk-
|
|
386
|
+
//# sourceMappingURL=chunk-6PAZTBPA.js.map
|