@iowarp/clio-coder 0.4.1 → 0.4.2
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 +92 -0
- package/CONTRIBUTING.md +59 -36
- package/README.md +404 -472
- package/SECURITY.md +2 -1
- package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
- package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
- package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
- package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
- package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
- package/dist/chunk-2X4RYJTJ.js +39 -0
- package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
- package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
- package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
- package/dist/chunk-3EBYEESD.js +314 -0
- package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
- package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
- package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
- package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
- package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
- package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
- package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
- package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
- package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
- package/dist/chunk-77QIVUZB.js +1334 -0
- package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
- package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
- package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
- package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
- package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
- package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
- package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
- package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
- package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
- package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
- package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
- package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
- package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
- package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
- package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
- package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
- package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
- package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
- package/dist/chunk-HLAFFSEK.js +360 -0
- package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
- package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
- package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
- package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
- package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
- package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
- package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
- package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
- package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
- package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
- package/dist/chunk-KPXDY6QF.js +47 -0
- package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
- package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
- package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
- package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
- package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
- package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
- package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
- package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
- package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
- package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
- package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
- package/dist/chunk-PJX3WQUQ.js +42 -0
- package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
- package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
- package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
- package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
- package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
- package/dist/chunk-SZAA6XDG.js +30 -0
- package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
- package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
- package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
- package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
- package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
- package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
- package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
- package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
- package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
- package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
- package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
- package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
- package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
- package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
- package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
- package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
- package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
- package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
- package/dist/cli/index.js +33 -32
- package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
- package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
- package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
- package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
- package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
- package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
- package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
- package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
- package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
- package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
- package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
- package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
- package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
- package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
- package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
- package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
- package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
- package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
- package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
- package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
- package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
- package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
- package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
- package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
- package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
- package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
- package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
- package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
- package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
- package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
- package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
- package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
- package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
- package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
- package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
- package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
- package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
- package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
- package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
- package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
- package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
- package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
- package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
- package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
- package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
- package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
- package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
- package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
- package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
- package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
- package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
- package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
- package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
- package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
- package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
- package/dist/worker/entry.js +45 -30
- package/docs/README.md +176 -81
- package/docs/{acp.md → architecture/acp.md} +36 -20
- package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
- package/docs/{architecture.md → architecture/architecture.md} +43 -22
- package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
- package/docs/architecture/artifact-versions.md +90 -0
- package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
- package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
- package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
- package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
- package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
- package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
- package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
- package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
- package/docs/{observability.md → architecture/observability.md} +26 -13
- package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
- package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
- package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
- package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
- package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
- package/docs/architecture/time-conventions.md +125 -0
- package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
- package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
- package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
- package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
- package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
- package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
- package/docs/guide/configuration-reference.md +1158 -0
- package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
- package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
- package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
- package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
- package/docs/{glossary.md → guide/glossary.md} +14 -11
- package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
- package/docs/guide/panes-and-files.md +290 -0
- package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
- package/docs/{resource-library.md → guide/resource-library.md} +13 -4
- package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
- package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
- package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
- package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
- package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
- package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
- package/docs/process/documentation-coverage.md +100 -0
- package/docs/process/documentation-guide.md +187 -0
- package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
- package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
- package/docs/{evolution.md → process/evolution.md} +2 -2
- package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
- package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
- package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
- package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
- package/evals/README.md +2 -2
- package/package.json +9 -7
- package/skills/README.md +46 -37
- package/skills/coding/ast-grep/SKILL.md +2 -2
- package/skills/coding/coding-standards/SKILL.md +2 -2
- package/skills/coding/prototype/SKILL.md +2 -2
- package/skills/coding/tdd/SKILL.md +2 -2
- package/skills/context/context-handoff/SKILL.md +2 -2
- package/skills/context/context-prime/SKILL.md +2 -2
- package/skills/git/file-ticket/SKILL.md +2 -2
- package/skills/git/fix-issue/SKILL.md +3 -3
- package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
- package/skills/git/ship/SKILL.md +2 -2
- package/skills/git/worktree-create/SKILL.md +2 -2
- package/skills/git/worktree-merge/SKILL.md +2 -2
- package/skills/meta/clio-coder-dev/SKILL.md +9 -5
- package/skills/meta/clio-coder-dev/evals.md +3 -2
- package/skills/meta/clio-coder-test/SKILL.md +102 -95
- package/skills/meta/clio-coder-test/evals.md +9 -4
- package/skills/meta/clio-coder-test/references/harness.md +100 -124
- package/skills/meta/clio-coder-test/references/test-map.md +77 -50
- package/skills/meta/credentials/SKILL.md +2 -2
- package/skills/meta/find-skills/SKILL.md +2 -2
- package/skills/meta/herdr/SKILL.md +2 -2
- package/skills/meta/skill-craft/SKILL.md +22 -16
- package/skills/planning/architecture/SKILL.md +2 -2
- package/skills/planning/backlog/SKILL.md +2 -2
- package/skills/planning/prd/SKILL.md +2 -2
- package/skills/planning/product-intent/SKILL.md +2 -2
- package/skills/planning/tech-spec/SKILL.md +2 -2
- package/skills/registry.yaml +62 -62
- package/skills/research/arxiv-literature/SKILL.md +2 -2
- package/skills/research/experiment-protocol/SKILL.md +2 -2
- package/skills/research/scientific-debugging/SKILL.md +2 -2
- package/skills/research/scientific-modernization/SKILL.md +2 -2
- package/skills/skill-marketplace.json +62 -62
- package/skills/workflow/cut-it/SKILL.md +2 -2
- package/skills/workflow/design-council/SKILL.md +2 -2
- package/skills/workflow/grill-me/SKILL.md +2 -2
- package/skills/workflow/workflow-distiller/SKILL.md +2 -2
- package/src/cli/args.ts +2 -2
- package/src/cli/bootstrap-generate.ts +1 -1
- package/src/cli/config-inspect.ts +65 -12
- package/src/cli/configure.ts +0 -4
- package/src/cli/docs.ts +22 -14
- package/src/cli/doctor-naming.ts +5 -5
- package/src/cli/doctor-toolchain.ts +3 -3
- package/src/cli/eval.ts +1 -2
- package/src/cli/extensions.ts +2 -1
- package/src/cli/fleet.ts +1 -1
- package/src/cli/index.ts +2 -1
- package/src/cli/internal-dispatch.ts +3 -4
- package/src/cli/panes.ts +19 -5
- package/src/cli/run.ts +2 -2
- package/src/cli/share.ts +5 -1
- package/src/cli/skills-eval.ts +3 -3
- package/src/cli/targets.ts +2 -6
- package/src/cli/trace.ts +55 -4
- package/src/cli/wiki-generate.ts +1 -1
- package/src/core/artifact-paths.ts +1 -1
- package/src/core/bash-exec.ts +131 -86
- package/src/core/bus-events.ts +51 -6
- package/src/core/config.ts +5 -1
- package/src/core/defaults.ts +7 -4
- package/src/core/dispatch-outcome.ts +16 -0
- package/src/core/guardrails.ts +10 -49
- package/src/core/prompt-hint.ts +9 -0
- package/src/domains/agents/builtins/architect.md +2 -3
- package/src/domains/agents/builtins/coder.md +3 -2
- package/src/domains/agents/builtins/debugger.md +2 -2
- package/src/domains/agents/builtins/documenter.md +2 -2
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/oracle.md +1 -1
- package/src/domains/agents/builtins/provenance.md +1 -1
- package/src/domains/agents/builtins/researcher.md +1 -1
- package/src/domains/agents/builtins/scout.md +1 -1
- package/src/domains/agents/builtins/tester.md +2 -2
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +1 -1
- package/src/domains/agents/catalog.ts +12 -14
- package/src/domains/agents/contract.ts +2 -0
- package/src/domains/agents/extension.ts +23 -1
- package/src/domains/config/keybindings.ts +8 -0
- package/src/domains/context/extension.ts +0 -3
- package/src/domains/context/working-set/path-index.ts +1 -0
- package/src/domains/dispatch/capability-match.ts +10 -0
- package/src/domains/dispatch/extension.ts +105 -22
- package/src/domains/dispatch/host-verification.ts +435 -39
- package/src/domains/dispatch/intent-requirements.ts +10 -0
- package/src/domains/dispatch/intent.ts +18 -1
- package/src/domains/dispatch/path-scope.ts +235 -24
- package/src/domains/dispatch/run-event-journal.ts +4 -15
- package/src/domains/dispatch/state.ts +2 -3
- package/src/domains/dispatch/transport.ts +45 -21
- package/src/domains/dispatch/types.ts +55 -3
- package/src/domains/eval/artifacts/store.ts +5 -0
- package/src/domains/eval/store.ts +8 -1
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/extensions/contract.ts +15 -1
- package/src/domains/extensions/discovery.ts +238 -41
- package/src/domains/extensions/extension.ts +105 -6
- package/src/domains/extensions/index.ts +24 -0
- package/src/domains/extensions/integrity.ts +189 -0
- package/src/domains/extensions/manager.ts +17 -1
- package/src/domains/extensions/resource-path.ts +27 -0
- package/src/domains/extensions/resources.ts +18 -38
- package/src/domains/extensions/snapshot-store.ts +39 -0
- package/src/domains/extensions/snapshot.ts +180 -0
- package/src/domains/extensions/state.ts +385 -57
- package/src/domains/extensions/types.ts +118 -1
- package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
- package/src/domains/lifecycle/migrations/index.ts +2 -0
- package/src/domains/lifecycle/naming-resources.ts +19 -4
- package/src/domains/lifecycle/naming-yazi.ts +10 -5
- package/src/domains/middleware/contract.ts +26 -0
- package/src/domains/middleware/extension.ts +24 -24
- package/src/domains/middleware/hook-receipts.ts +27 -4
- package/src/domains/middleware/hooks-io.ts +65 -32
- package/src/domains/middleware/hooks.ts +64 -0
- package/src/domains/middleware/index.ts +28 -4
- package/src/domains/middleware/registrations.ts +326 -0
- package/src/domains/middleware/runtime.ts +28 -0
- package/src/domains/middleware/snapshot.ts +20 -7
- package/src/domains/mux/contract.ts +38 -0
- package/src/domains/mux/detect.ts +6 -13
- package/src/domains/mux/index.ts +1 -1
- package/src/domains/mux/operations.ts +44 -5
- package/src/domains/mux/yazi/assets/yazi.toml +2 -2
- package/src/domains/mux/yazi/session.ts +53 -4
- package/src/domains/mux/yazi/theme.ts +117 -17
- package/src/domains/observability/contract.ts +10 -11
- package/src/domains/observability/extension.ts +11 -3
- package/src/domains/observability/projection.ts +14 -90
- package/src/domains/observability/trace-store.ts +43 -7
- package/src/domains/prompts/compiler.ts +73 -53
- package/src/domains/prompts/contract.ts +15 -3
- package/src/domains/prompts/extension.ts +97 -9
- package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
- package/src/domains/prompts/fragments/identity/clio.md +6 -12
- package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
- package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
- package/src/domains/prompts/fragments/operating/contract.md +7 -15
- package/src/domains/prompts/fragments/operating/delegation.md +32 -34
- package/src/domains/prompts/fragments/operating/skills.md +10 -24
- package/src/domains/prompts/fragments/operating/worker.md +1 -8
- package/src/domains/providers/index.ts +1 -1
- package/src/domains/providers/model-runtime-capabilities.ts +85 -21
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
- package/src/domains/providers/runtime-resolution.ts +31 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
- package/src/domains/providers/types/cost-provenance.ts +19 -0
- package/src/domains/providers/types/local-model-quirks.ts +85 -37
- package/src/domains/resources/skills/loader.ts +16 -19
- package/src/domains/safety/call-target.ts +1 -1
- package/src/domains/safety/loop-detector.ts +7 -4
- package/src/domains/session/task-board.ts +10 -9
- package/src/domains/share/archive.ts +164 -7
- package/src/engine/acp/server.ts +62 -9
- package/src/engine/apis/llamacpp-residency.ts +3 -4
- package/src/engine/apis/lmstudio.ts +3 -3
- package/src/engine/apis/ollama-native.ts +6 -6
- package/src/engine/apis/openai-completions.ts +28 -25
- package/src/engine/apis/output-budget.ts +8 -18
- package/src/engine/apis/residency.ts +8 -27
- package/src/engine/gemma-channel-filter.ts +19 -0
- package/src/engine/loop-guard.ts +92 -12
- package/src/engine/worker-runtime.ts +40 -11
- package/src/engine/worker-tools.ts +3 -1
- package/src/entry/extension-hook-sources.ts +28 -0
- package/src/entry/extension-reload.ts +309 -0
- package/src/entry/orchestrator.ts +59 -35
- package/src/interactive/application-controller.ts +2 -1
- package/src/interactive/bus-notices.ts +8 -1
- package/src/interactive/chat-loop-messages.ts +3 -13
- package/src/interactive/chat-loop.ts +10 -1
- package/src/interactive/chat-panel.ts +36 -13
- package/src/interactive/chat-renderer.ts +71 -7
- package/src/interactive/dispatch-board.ts +6 -11
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/interactive-application.ts +39 -4
- package/src/interactive/interactive-input-runtime.ts +4 -0
- package/src/interactive/interactive-presentation.ts +2 -2
- package/src/interactive/interactive-slash-runtime.ts +2 -0
- package/src/interactive/overlays/extensions.ts +9 -1
- package/src/interactive/overlays/help-reference.ts +13 -0
- package/src/interactive/overlays/settings.ts +27 -16
- package/src/interactive/panes-runtime.ts +111 -35
- package/src/interactive/prompt-cache-identity.ts +88 -0
- package/src/interactive/slash-commands.ts +129 -14
- package/src/interactive/stream-pacing-policy.ts +0 -23
- package/src/interactive/turn-context.ts +30 -15
- package/src/interactive/yazi-bridge.ts +60 -6
- package/src/tools/agent-tools.ts +30 -1
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +3 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +52 -22
- package/src/tools/codewiki/code-nav-surface.ts +6 -0
- package/src/tools/codewiki/code-nav.ts +99 -13
- package/src/tools/context/docs-engine.ts +20 -7
- package/src/tools/context/index.ts +29 -12
- package/src/tools/core-bootstrap.ts +28 -6
- package/src/tools/credential-present.ts +1 -2
- package/src/tools/dispatch-arguments.ts +5 -1
- package/src/tools/dispatch-plan.ts +48 -4
- package/src/tools/dispatch-run-events.ts +1 -1
- package/src/tools/dispatch-schema.ts +338 -0
- package/src/tools/dispatch-types.ts +3 -0
- package/src/tools/dispatch.ts +9 -254
- package/src/tools/ledger.ts +3 -5
- package/src/tools/monitor-surface.ts +5 -13
- package/src/tools/observation.ts +4 -5
- package/src/tools/panes-surface.ts +4 -11
- package/src/tools/panes.ts +4 -2
- package/src/tools/policy.ts +15 -2
- package/src/tools/read.ts +5 -6
- package/src/tools/registry.ts +30 -7
- package/src/tools/result-shaping.ts +18 -14
- package/src/tools/steer-surface.ts +1 -1
- package/src/tools/tasks.ts +1 -1
- package/src/tools/truncate.ts +6 -5
- package/src/tools/verify/surface.ts +6 -12
- package/src/tools/web-fetch-surface.ts +1 -3
- package/dist/chunk-5QIAJV2D.js +0 -48
- package/dist/chunk-JZWT5J3Y.js +0 -814
- package/dist/chunk-K7VKOLQQ.js +0 -15
- package/dist/chunk-PMZCIOCJ.js +0 -25
- package/dist/chunk-SUW5DORT.js +0 -819
- package/dist/chunk-UOV2BYIW.js +0 -107
- package/dist/chunk-WR6U3OVP.js +0 -45
- package/docs/artifact-versions.md +0 -67
- package/docs/documentation-coverage.md +0 -46
- package/docs/documentation-guide.md +0 -167
- package/docs/time-conventions.md +0 -101
|
@@ -14,15 +14,15 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
getSharedBus
|
|
16
16
|
} from "./chunk-PMZVFWSR.js";
|
|
17
|
-
import {
|
|
18
|
-
BusChannels
|
|
19
|
-
} from "./chunk-HLW2MRKE.js";
|
|
20
17
|
import {
|
|
21
18
|
readSettings
|
|
22
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-34BHNEE3.js";
|
|
23
20
|
import {
|
|
24
21
|
warnLegacyNaming
|
|
25
22
|
} from "./chunk-D7E7WCDF.js";
|
|
23
|
+
import {
|
|
24
|
+
BusChannels
|
|
25
|
+
} from "./chunk-F4EKGO4N.js";
|
|
26
26
|
import {
|
|
27
27
|
sleep
|
|
28
28
|
} from "./chunk-EBY63B7G.js";
|
|
@@ -30,14 +30,19 @@ import {
|
|
|
30
30
|
CLIO_CONTEXT_WINDOW_WARN_BELOW,
|
|
31
31
|
CLIO_MIN_CONTEXT_WINDOW,
|
|
32
32
|
CLIO_MIN_MAX_OUTPUT_TOKENS,
|
|
33
|
+
EMPTY_CAPABILITIES,
|
|
34
|
+
VALID_THINKING_LEVELS,
|
|
35
|
+
availableThinkingLevels,
|
|
33
36
|
extractLocalModelQuirks,
|
|
37
|
+
inferLocalModelFamily,
|
|
38
|
+
isHarmonyModelId,
|
|
34
39
|
listLmStudioModels,
|
|
35
40
|
lmStudioReasoningEffort,
|
|
36
41
|
lmStudioRootUrl,
|
|
37
42
|
registerBuiltinRuntimes,
|
|
38
43
|
requestLmStudioJson,
|
|
39
44
|
resolveLmStudioInstance
|
|
40
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-IMXMHHMQ.js";
|
|
41
46
|
import {
|
|
42
47
|
listKnownModelsForRuntime
|
|
43
48
|
} from "./chunk-CDNVLKUX.js";
|
|
@@ -70,7 +75,6 @@ import {
|
|
|
70
75
|
} from "./chunk-NUGM5KR6.js";
|
|
71
76
|
import {
|
|
72
77
|
capabilitiesFromCatalogModel,
|
|
73
|
-
catalogThinkingLevelsForRuntime,
|
|
74
78
|
getCatalogModelForRuntime,
|
|
75
79
|
mergeCapabilities,
|
|
76
80
|
resolveCostProvenance
|
|
@@ -430,7 +434,7 @@ function evictionNotice(facts, entry) {
|
|
|
430
434
|
facts,
|
|
431
435
|
"swap",
|
|
432
436
|
"warning",
|
|
433
|
-
`swapping resident '${entry.modelId}' for requested '${facts.keepModelId}' on '${facts.targetId}' (Clio did not load it; recorded transition instead of a silent unload; set
|
|
437
|
+
`swapping resident '${entry.modelId}' for requested '${facts.keepModelId}' on '${facts.targetId}' (Clio did not load it; recorded transition instead of a silent unload; set lifecycle: user-managed to forbid swaps).`,
|
|
434
438
|
{
|
|
435
439
|
...entry.sizeVramBytes !== void 0 ? { freedVramBytes: entry.sizeVramBytes } : {},
|
|
436
440
|
swappedOut: entry.modelId
|
|
@@ -733,16 +737,8 @@ async function reconcileResidency(adapter) {
|
|
|
733
737
|
}
|
|
734
738
|
return plan;
|
|
735
739
|
}
|
|
736
|
-
function
|
|
737
|
-
|
|
738
|
-
if (opt === "observe" || opt === "off" || opt === "0" || opt === "false" || opt === "user" || opt === "user-managed") {
|
|
739
|
-
return false;
|
|
740
|
-
}
|
|
741
|
-
return true;
|
|
742
|
-
}
|
|
743
|
-
function residencyManagedFor(lifecycle, env = process.env) {
|
|
744
|
-
if (lifecycle === "user-managed") return false;
|
|
745
|
-
return residencyManaged(env);
|
|
740
|
+
function residencyManagedFor(lifecycle) {
|
|
741
|
+
return lifecycle !== "user-managed";
|
|
746
742
|
}
|
|
747
743
|
|
|
748
744
|
// src/core/run-overrides.ts
|
|
@@ -790,97 +786,6 @@ async function withRunOverrides(overrides, fn) {
|
|
|
790
786
|
}
|
|
791
787
|
}
|
|
792
788
|
|
|
793
|
-
// src/domains/providers/types/capability-flags.ts
|
|
794
|
-
init_esm_shims();
|
|
795
|
-
|
|
796
|
-
// src/domains/providers/model-family.ts
|
|
797
|
-
init_esm_shims();
|
|
798
|
-
function normalizeModelIdForFamily(modelId) {
|
|
799
|
-
return (modelId ?? "").trim().toLowerCase().replace(/_/g, "-");
|
|
800
|
-
}
|
|
801
|
-
function isHarmonyModelId(modelId) {
|
|
802
|
-
return normalizeModelIdForFamily(modelId).includes("gpt-oss");
|
|
803
|
-
}
|
|
804
|
-
function inferLocalModelFamily(modelId) {
|
|
805
|
-
const normalized = normalizeModelIdForFamily(modelId);
|
|
806
|
-
if (normalized.length === 0) return "unknown";
|
|
807
|
-
if (normalized.includes("gpt-oss")) return "openai-gpt-oss";
|
|
808
|
-
if (normalized.includes("nemotron-cascade-2") || normalized.includes("nemotron-cascade2")) {
|
|
809
|
-
return "nemotron-cascade-2";
|
|
810
|
-
}
|
|
811
|
-
if (normalized.includes("nemotron-3-nano-omni") || normalized.includes("nemotron-nano-omni")) {
|
|
812
|
-
return "nemotron-3-nano-omni";
|
|
813
|
-
}
|
|
814
|
-
if (normalized.includes("qwen3")) return "qwen3";
|
|
815
|
-
if (normalized.includes("gemma-4") || normalized.includes("gemma4") || normalized.includes("gemopus")) {
|
|
816
|
-
return "gemma-4";
|
|
817
|
-
}
|
|
818
|
-
return "unknown";
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
// src/domains/providers/types/capability-flags.ts
|
|
822
|
-
var EMPTY_CAPABILITIES = {
|
|
823
|
-
chat: false,
|
|
824
|
-
tools: false,
|
|
825
|
-
reasoning: false,
|
|
826
|
-
vision: false,
|
|
827
|
-
audio: false,
|
|
828
|
-
embeddings: false,
|
|
829
|
-
rerank: false,
|
|
830
|
-
fim: false,
|
|
831
|
-
contextWindow: 0,
|
|
832
|
-
maxTokens: 0
|
|
833
|
-
};
|
|
834
|
-
var VALID_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
835
|
-
var THINKING_LEVELS_WITHOUT_XHIGH = ["off", "minimal", "low", "medium", "high"];
|
|
836
|
-
var THINKING_LEVELS_OPENAI_5_1_MINI = ["off", "minimal", "low", "medium", "high"];
|
|
837
|
-
var THINKING_LEVELS_OPENAI_5_2_PLUS = [
|
|
838
|
-
"off",
|
|
839
|
-
"minimal",
|
|
840
|
-
"low",
|
|
841
|
-
"medium",
|
|
842
|
-
"high",
|
|
843
|
-
"xhigh"
|
|
844
|
-
];
|
|
845
|
-
var THINKING_LEVELS_OPENAI_5_6 = [...THINKING_LEVELS_OPENAI_5_2_PLUS, "max"];
|
|
846
|
-
var THINKING_LEVELS_HARMONY = ["low", "medium", "high"];
|
|
847
|
-
function normalizeModelId(modelId) {
|
|
848
|
-
if (!modelId) return void 0;
|
|
849
|
-
const trimmed = modelId.trim();
|
|
850
|
-
if (trimmed.length === 0) return void 0;
|
|
851
|
-
return trimmed.includes("/") ? trimmed.split("/").pop() ?? trimmed : trimmed;
|
|
852
|
-
}
|
|
853
|
-
function availableOpenAICodexThinkingLevels(modelId) {
|
|
854
|
-
const normalized = normalizeModelId(modelId);
|
|
855
|
-
if (!normalized) return VALID_THINKING_LEVELS;
|
|
856
|
-
if (normalized === "gpt-5.1-codex-mini") return THINKING_LEVELS_OPENAI_5_1_MINI;
|
|
857
|
-
if (normalized.startsWith("gpt-5.2") || normalized.startsWith("gpt-5.3") || normalized.startsWith("gpt-5.4") || normalized.startsWith("gpt-5.5")) {
|
|
858
|
-
return THINKING_LEVELS_OPENAI_5_2_PLUS;
|
|
859
|
-
}
|
|
860
|
-
if (normalized.startsWith("gpt-5.6")) {
|
|
861
|
-
return THINKING_LEVELS_OPENAI_5_6;
|
|
862
|
-
}
|
|
863
|
-
return THINKING_LEVELS_WITHOUT_XHIGH;
|
|
864
|
-
}
|
|
865
|
-
function availableThinkingLevels(caps, options) {
|
|
866
|
-
if (!caps.reasoning) return ["off"];
|
|
867
|
-
if (caps.thinkingFormat === "harmony" || isHarmonyModelId(options?.modelId)) {
|
|
868
|
-
return THINKING_LEVELS_HARMONY;
|
|
869
|
-
}
|
|
870
|
-
const catalogLevels = options?.runtimeId && options.modelId ? catalogThinkingLevelsForRuntime(options.runtimeId, options.modelId) : void 0;
|
|
871
|
-
if (catalogLevels) {
|
|
872
|
-
if (!catalogLevels.includes("xhigh")) return catalogLevels.filter((level) => level !== "max");
|
|
873
|
-
return catalogLevels;
|
|
874
|
-
}
|
|
875
|
-
if (caps.thinkingFormat === "openai-codex" || options?.runtimeId === "openai-codex") {
|
|
876
|
-
return availableOpenAICodexThinkingLevels(options?.modelId);
|
|
877
|
-
}
|
|
878
|
-
if (caps.thinkingFormat === "anthropic-extended") {
|
|
879
|
-
return THINKING_LEVELS_WITHOUT_XHIGH;
|
|
880
|
-
}
|
|
881
|
-
return THINKING_LEVELS_WITHOUT_XHIGH;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
789
|
// src/domains/providers/model-capabilities.ts
|
|
885
790
|
init_esm_shims();
|
|
886
791
|
function normalizedModelId(wireModelId) {
|
|
@@ -1140,14 +1045,15 @@ function supportedBudgetLevels(baseLevels, quirks) {
|
|
|
1140
1045
|
function supportedEffortLevels(baseLevels, quirks, harmony) {
|
|
1141
1046
|
if (harmony) return HARMONY_LEVELS;
|
|
1142
1047
|
const efforts = quirks?.thinking?.effortByLevel;
|
|
1143
|
-
|
|
1048
|
+
const byLevelValues = (quirks?.chatTemplateKwargs ?? quirks?.thinking?.chatTemplateKwargs)?.byLevel?.values;
|
|
1049
|
+
if (!efforts && !byLevelValues) return baseLevels;
|
|
1144
1050
|
const out = [];
|
|
1145
1051
|
if (baseLevels.includes("off")) out.push("off");
|
|
1146
|
-
if (efforts
|
|
1147
|
-
if (efforts
|
|
1148
|
-
if (efforts
|
|
1149
|
-
if (efforts
|
|
1150
|
-
if (efforts
|
|
1052
|
+
if (efforts?.minimal !== void 0 || byLevelValues?.minimal !== void 0) out.push("minimal");
|
|
1053
|
+
if (efforts?.low !== void 0 || byLevelValues?.low !== void 0) out.push("low");
|
|
1054
|
+
if (efforts?.medium !== void 0 || byLevelValues?.medium !== void 0) out.push("medium");
|
|
1055
|
+
if (efforts?.high !== void 0 || byLevelValues?.high !== void 0) out.push("high");
|
|
1056
|
+
if (efforts?.xhigh !== void 0 || byLevelValues?.xhigh !== void 0) out.push("xhigh");
|
|
1151
1057
|
return out.length > 0 ? out : baseLevels;
|
|
1152
1058
|
}
|
|
1153
1059
|
function restrictThinkingLevelsByMechanism(levels, mechanism, quirks, options) {
|
|
@@ -1283,12 +1189,45 @@ function resolveThinkingCapability(input, quirks, parser) {
|
|
|
1283
1189
|
budgetEnforcement
|
|
1284
1190
|
};
|
|
1285
1191
|
}
|
|
1286
|
-
var
|
|
1192
|
+
var REASONING_EFFORT_ONLY_RUNTIMES = /* @__PURE__ */ new Set(["lmstudio"]);
|
|
1287
1193
|
function onOffReasoningEffort(thinkingActive) {
|
|
1288
1194
|
return thinkingActive ? "low" : "none";
|
|
1289
1195
|
}
|
|
1290
|
-
function
|
|
1196
|
+
function resolveFamilyChatTemplateKwargs(quirks, effectiveLevel, configuredLevel) {
|
|
1197
|
+
const block = quirks?.chatTemplateKwargs ?? quirks?.thinking?.chatTemplateKwargs;
|
|
1198
|
+
if (!block) return void 0;
|
|
1199
|
+
const out = {};
|
|
1200
|
+
if (block.static) {
|
|
1201
|
+
for (const [k, v] of Object.entries(block.static)) {
|
|
1202
|
+
out[k] = v;
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
if (block.byLevel) {
|
|
1206
|
+
const byLevel = block.byLevel;
|
|
1207
|
+
const val = byLevel.values[effectiveLevel] ?? byLevel.values[configuredLevel];
|
|
1208
|
+
if (val !== void 0) {
|
|
1209
|
+
out[byLevel.key] = val;
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
1213
|
+
}
|
|
1214
|
+
function familyKwargsDeclaredUnsupported(quirks, runtimeId) {
|
|
1215
|
+
if (runtimeId !== "lmstudio") return false;
|
|
1216
|
+
const block = quirks?.chatTemplateKwargs ?? quirks?.thinking?.chatTemplateKwargs;
|
|
1217
|
+
return block?.lmstudio === "unsupported" || block?.byLevel?.lmstudio === "unsupported";
|
|
1218
|
+
}
|
|
1219
|
+
function resolveRequestCapability(thinking, parser, runtimeId, quirks) {
|
|
1291
1220
|
const request = { budgetEnforcement: thinking.budgetEnforcement };
|
|
1221
|
+
const effortOnly = REASONING_EFFORT_ONLY_RUNTIMES.has(runtimeId);
|
|
1222
|
+
const familyKwargs = resolveFamilyChatTemplateKwargs(quirks, thinking.effectiveLevel, thinking.configuredLevel);
|
|
1223
|
+
if (familyKwargs && effortOnly) {
|
|
1224
|
+
request.undeliverableChatTemplateKwargs = {
|
|
1225
|
+
keys: Object.keys(familyKwargs),
|
|
1226
|
+
declaredUnsupported: familyKwargsDeclaredUnsupported(quirks, runtimeId)
|
|
1227
|
+
};
|
|
1228
|
+
} else if (familyKwargs) {
|
|
1229
|
+
request.chatTemplateKwargs = { ...familyKwargs };
|
|
1230
|
+
}
|
|
1292
1231
|
if (thinking.mechanism === "effort-levels" && thinking.effort) {
|
|
1293
1232
|
request.reasoningEffort = thinking.effort;
|
|
1294
1233
|
}
|
|
@@ -1299,15 +1238,16 @@ function resolveRequestCapability(thinking, parser, runtimeId) {
|
|
|
1299
1238
|
request.budgetTokens = thinking.budgetTokens;
|
|
1300
1239
|
}
|
|
1301
1240
|
if (thinking.mechanism === "on-off" && thinking.chatTemplateKwargs) {
|
|
1302
|
-
request.chatTemplateKwargs = { ...thinking.chatTemplateKwargs };
|
|
1303
|
-
if (REASONING_EFFORT_ON_OFF_RUNTIMES.has(runtimeId)) {
|
|
1304
|
-
request.reasoningEffort = onOffReasoningEffort(thinking.thinkingActive);
|
|
1305
|
-
}
|
|
1241
|
+
request.chatTemplateKwargs = { ...request.chatTemplateKwargs ?? {}, ...thinking.chatTemplateKwargs };
|
|
1306
1242
|
}
|
|
1307
1243
|
if (parser === "harmony" && thinking.effort) {
|
|
1308
1244
|
request.reasoningEffort = thinking.effort;
|
|
1309
1245
|
request.chatTemplateKwargs = { ...request.chatTemplateKwargs ?? {}, reasoning_effort: thinking.effort };
|
|
1310
1246
|
}
|
|
1247
|
+
if (effortOnly && thinking.mechanism !== "none" && thinking.mechanism !== "always-on") {
|
|
1248
|
+
if (!thinking.thinkingActive) request.reasoningEffort = onOffReasoningEffort(false);
|
|
1249
|
+
else if (thinking.mechanism === "on-off") request.reasoningEffort = onOffReasoningEffort(true);
|
|
1250
|
+
}
|
|
1311
1251
|
return request;
|
|
1312
1252
|
}
|
|
1313
1253
|
function resolveModelRuntimeCapabilities(input) {
|
|
@@ -1323,7 +1263,7 @@ function resolveModelRuntimeCapabilities(input) {
|
|
|
1323
1263
|
family,
|
|
1324
1264
|
capabilities: input.capabilities,
|
|
1325
1265
|
thinking,
|
|
1326
|
-
request: resolveRequestCapability(thinking, parser, input.runtimeId),
|
|
1266
|
+
request: resolveRequestCapability(thinking, parser, input.runtimeId, quirks),
|
|
1327
1267
|
response: {
|
|
1328
1268
|
parser,
|
|
1329
1269
|
stripTokenizerSentinels: true
|
|
@@ -1821,6 +1761,20 @@ function appendThinkingDiagnostics(diagnostics, resolved, requested) {
|
|
|
1821
1761
|
const severity = thinking.noticeKind === "unsupported" || thinking.noticeKind === "always-on" || thinking.noticeKind === "ignored-on-off" ? "warning" : "info";
|
|
1822
1762
|
diagnostics.push(diagnostic(severity, `thinking-${thinking.noticeKind}`, thinking.notice));
|
|
1823
1763
|
}
|
|
1764
|
+
var CHAT_TEMPLATE_KWARGS_UNDELIVERABLE = "chat-template-kwargs-undeliverable";
|
|
1765
|
+
function appendChatTemplateKwargsDiagnostics(diagnostics, resolved) {
|
|
1766
|
+
const undeliverable = resolved.request.undeliverableChatTemplateKwargs;
|
|
1767
|
+
if (!undeliverable || undeliverable.keys.length === 0) return;
|
|
1768
|
+
const keys = undeliverable.keys.join(", ");
|
|
1769
|
+
const declared = undeliverable.declaredUnsupported ? "its family entry marks them unsupported there" : "its family entry does not say so";
|
|
1770
|
+
diagnostics.push(
|
|
1771
|
+
diagnostic(
|
|
1772
|
+
"warning",
|
|
1773
|
+
CHAT_TEMPLATE_KWARGS_UNDELIVERABLE,
|
|
1774
|
+
`chat-template kwargs ${keys} cannot reach ${resolved.runtimeId}, which ignores chat_template_kwargs; ${resolved.modelId} runs without them and ${declared}`
|
|
1775
|
+
)
|
|
1776
|
+
);
|
|
1777
|
+
}
|
|
1824
1778
|
function nonNegativeFiniteNumber(value) {
|
|
1825
1779
|
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : void 0;
|
|
1826
1780
|
}
|
|
@@ -1948,6 +1902,7 @@ function resolveRuntimeTarget(providers, input) {
|
|
|
1948
1902
|
const decisions = capabilityDecisions(runtime, capabilities);
|
|
1949
1903
|
appendCapabilityDiagnostics(diagnostics, input, capabilities, decisions, targetId);
|
|
1950
1904
|
appendThinkingDiagnostics(diagnostics, modelRuntime, requestedThinkingLevel);
|
|
1905
|
+
appendChatTemplateKwargsDiagnostics(diagnostics, modelRuntime);
|
|
1951
1906
|
if (hasError(diagnostics)) return { ok: false, diagnostics };
|
|
1952
1907
|
const resolved = {
|
|
1953
1908
|
targetId: target.id,
|
|
@@ -1987,6 +1942,7 @@ function modelHintPatch(target, model) {
|
|
|
1987
1942
|
function withoutStaleRuntimeDiagnostics(diagnostics, decisions) {
|
|
1988
1943
|
return diagnostics.filter((entry) => {
|
|
1989
1944
|
if (entry.code.startsWith("thinking-")) return false;
|
|
1945
|
+
if (entry.code === CHAT_TEMPLATE_KWARGS_UNDELIVERABLE) return false;
|
|
1990
1946
|
if (entry.code === "output-budget-unknown" && decisions.maxTokens > 0) return false;
|
|
1991
1947
|
if (entry.code === "tools-unsupported" && decisions.tools) return false;
|
|
1992
1948
|
return true;
|
|
@@ -2025,6 +1981,7 @@ function refineRuntimeTargetWithModelHints(target, model, knowledgeBase) {
|
|
|
2025
1981
|
const decisions = capabilityDecisions(target.runtime, capabilities);
|
|
2026
1982
|
const diagnostics = withoutStaleRuntimeDiagnostics(target.diagnostics, decisions);
|
|
2027
1983
|
appendThinkingDiagnostics(diagnostics, modelRuntime, target.requestedThinkingLevel);
|
|
1984
|
+
appendChatTemplateKwargsDiagnostics(diagnostics, modelRuntime);
|
|
2028
1985
|
return {
|
|
2029
1986
|
...target,
|
|
2030
1987
|
capabilities,
|
|
@@ -2152,6 +2109,15 @@ init_esm_shims();
|
|
|
2152
2109
|
function normalizeCostProvenance(value) {
|
|
2153
2110
|
return value ?? "unknown";
|
|
2154
2111
|
}
|
|
2112
|
+
var COST_PROVENANCE_VALUES = /* @__PURE__ */ new Set([
|
|
2113
|
+
"known",
|
|
2114
|
+
"known_free",
|
|
2115
|
+
"estimated",
|
|
2116
|
+
"unknown"
|
|
2117
|
+
]);
|
|
2118
|
+
function resolveCostProvenance2(value, fallback) {
|
|
2119
|
+
return typeof value === "string" && COST_PROVENANCE_VALUES.has(value) ? value : fallback;
|
|
2120
|
+
}
|
|
2155
2121
|
|
|
2156
2122
|
// src/domains/providers/index.ts
|
|
2157
2123
|
init_esm_shims();
|
|
@@ -2185,6 +2151,9 @@ function residencyTargetKey(runtimeId, baseUrl) {
|
|
|
2185
2151
|
// src/engine/gemma-channel-filter.ts
|
|
2186
2152
|
init_esm_shims();
|
|
2187
2153
|
import { createAssistantMessageEventStream } from "@earendil-works/pi-ai";
|
|
2154
|
+
function usesGemmaChannelMarkers(modelId) {
|
|
2155
|
+
return inferLocalModelFamily(modelId) === "gemma-4";
|
|
2156
|
+
}
|
|
2188
2157
|
var THOUGHT_START = /<\|channel>[^\n]*\n/;
|
|
2189
2158
|
var BARE_THOUGHT_START = /^\s*(?:thought|own[- ]?(?:thought|think))\s*\n/i;
|
|
2190
2159
|
var BARE_THOUGHT_ONLY = /^\s*(?:thought|own[- ]?(?:thought|think))\s*$/i;
|
|
@@ -2384,7 +2353,6 @@ var globalDefaultMaxOutputTokens = 0;
|
|
|
2384
2353
|
function setGlobalDefaultMaxOutputTokens(value) {
|
|
2385
2354
|
globalDefaultMaxOutputTokens = Number.isFinite(value) && value > 0 ? Math.floor(value) : 0;
|
|
2386
2355
|
}
|
|
2387
|
-
var LOCAL_TOOL_TURN_MAX_OUTPUT_TOKENS = CLIO_MIN_MAX_OUTPUT_TOKENS;
|
|
2388
2356
|
function resolveReservedOutputTokens(maxOutputTokens) {
|
|
2389
2357
|
const limit = typeof maxOutputTokens === "number" && Number.isFinite(maxOutputTokens) && maxOutputTokens > 0 ? maxOutputTokens : DEFAULT_MAX_OUTPUT_TOKENS;
|
|
2390
2358
|
return Math.min(limit, DEFAULT_MAX_OUTPUT_TOKENS);
|
|
@@ -2403,7 +2371,7 @@ function remainingContextMaxTokens(model, context, options, limits) {
|
|
|
2403
2371
|
const contextWindow = Math.min(configuredContextWindow, loadedContextWindow);
|
|
2404
2372
|
const budget = Number.isFinite(contextWindow) ? Math.max(1, contextWindow - inputTokens - safety) : Number.POSITIVE_INFINITY;
|
|
2405
2373
|
const modelLimit = model.maxTokens > 0 ? model.maxTokens : Number.POSITIVE_INFINITY;
|
|
2406
|
-
const defaultLimit = limits?.maxOutputTokens !== void 0 && limits.maxOutputTokens > 0 ? limits.maxOutputTokens : globalDefaultMaxOutputTokens > 0 ? globalDefaultMaxOutputTokens : modelLimit;
|
|
2374
|
+
const defaultLimit = limits?.maxOutputTokens !== void 0 && limits.maxOutputTokens > 0 ? limits.maxOutputTokens : globalDefaultMaxOutputTokens > 0 ? globalDefaultMaxOutputTokens : model.maxTokens > 0 ? modelLimit : DEFAULT_MAX_OUTPUT_TOKENS;
|
|
2407
2375
|
const requested = options?.maxTokens ?? defaultLimit;
|
|
2408
2376
|
const resolved = Math.min(requested, modelLimit, budget);
|
|
2409
2377
|
return Number.isFinite(resolved) ? resolved : DEFAULT_MAX_OUTPUT_TOKENS;
|
|
@@ -2441,15 +2409,15 @@ function mergeSamplingOverride(profile, override = runSamplingOverrides()) {
|
|
|
2441
2409
|
// src/engine/apis/ollama-native.ts
|
|
2442
2410
|
var REASONING_CHARS_PER_TOKEN = 4;
|
|
2443
2411
|
function clioQuirks(model) {
|
|
2444
|
-
return model.
|
|
2412
|
+
return model.clioCoder?.quirks;
|
|
2445
2413
|
}
|
|
2446
2414
|
function ollamaTargetId(model) {
|
|
2447
|
-
return model.
|
|
2415
|
+
return model.clioCoder?.targetId ?? model.provider;
|
|
2448
2416
|
}
|
|
2449
2417
|
async function reconcileOllamaResidency(model, headers) {
|
|
2450
2418
|
const baseUrl = model.baseUrl;
|
|
2451
2419
|
if (!baseUrl) return;
|
|
2452
|
-
const metadata2 = model.
|
|
2420
|
+
const metadata2 = model.clioCoder;
|
|
2453
2421
|
const adapter = {
|
|
2454
2422
|
targetKey: residencyTargetKey("ollama-native", baseUrl),
|
|
2455
2423
|
targetId: ollamaTargetId(model),
|
|
@@ -2681,7 +2649,7 @@ function runStream(model, context, options, thinkingLevel) {
|
|
|
2681
2649
|
let doneReason;
|
|
2682
2650
|
const sentinelStripper = createSentinelStripper();
|
|
2683
2651
|
const resolved = resolveModelRuntimeCapabilitiesForModel(model, thinkingLevel);
|
|
2684
|
-
const channelFilter = resolved.
|
|
2652
|
+
const channelFilter = usesGemmaChannelMarkers(resolved.modelId) ? createGemmaChannelFilter() : null;
|
|
2685
2653
|
const closeActiveThinking = () => {
|
|
2686
2654
|
if (!activeThinking) return;
|
|
2687
2655
|
stream.push({
|
|
@@ -3113,7 +3081,7 @@ async function ensureLlamaCppResidency(input) {
|
|
|
3113
3081
|
targetId: input.targetId,
|
|
3114
3082
|
runtimeId: input.runtimeId,
|
|
3115
3083
|
keepModelId: input.keepModelId,
|
|
3116
|
-
managed: input.managed ??
|
|
3084
|
+
managed: input.managed ?? true,
|
|
3117
3085
|
strategy: "router",
|
|
3118
3086
|
listResident: async () => {
|
|
3119
3087
|
const models = await fetchRouterModels(input, fetchImpl);
|
|
@@ -3193,7 +3161,7 @@ function responseInstanceId(data) {
|
|
|
3193
3161
|
return typeof id === "string" && id.trim().length > 0 ? id.trim() : void 0;
|
|
3194
3162
|
}
|
|
3195
3163
|
function metadata(model) {
|
|
3196
|
-
return model.
|
|
3164
|
+
return model.clioCoder;
|
|
3197
3165
|
}
|
|
3198
3166
|
function targetForModel(model) {
|
|
3199
3167
|
const info = metadata(model);
|
|
@@ -3390,10 +3358,10 @@ async function ensureLmStudioResidency(model, options = {}) {
|
|
|
3390
3358
|
var piOpenAICompletions = openAICompletionsApi();
|
|
3391
3359
|
var REASONING_CHARS_PER_TOKEN2 = 4;
|
|
3392
3360
|
function chatTemplateKwargsUnsupported(model) {
|
|
3393
|
-
return model.
|
|
3361
|
+
return model.clioCoder?.chatTemplateKwargsUnsupported === true;
|
|
3394
3362
|
}
|
|
3395
3363
|
function clioQuirks2(model) {
|
|
3396
|
-
return model.
|
|
3364
|
+
return model.clioCoder?.quirks;
|
|
3397
3365
|
}
|
|
3398
3366
|
function pickSamplingProfile2(quirks, thinkingActive) {
|
|
3399
3367
|
const sampling = quirks?.sampling;
|
|
@@ -3424,7 +3392,7 @@ function backendCompletionTimings(value, source) {
|
|
|
3424
3392
|
};
|
|
3425
3393
|
}
|
|
3426
3394
|
function backendTimingsSourceForModel(model) {
|
|
3427
|
-
const metadata2 = model.
|
|
3395
|
+
const metadata2 = model.clioCoder;
|
|
3428
3396
|
if (model.provider === "llamacpp" && metadata2?.runtimeId === "llamacpp") return "llamacpp-timings";
|
|
3429
3397
|
if (model.provider === "lmstudio" && metadata2?.runtimeId === "lmstudio") return "lmstudio-timings";
|
|
3430
3398
|
return null;
|
|
@@ -3602,8 +3570,23 @@ function withStrippedPartial(event) {
|
|
|
3602
3570
|
return { ...event, partial: stripThinkingFromMessage(event.partial) };
|
|
3603
3571
|
}
|
|
3604
3572
|
function applyThinkingPayload(payload, applied, resolved, model) {
|
|
3605
|
-
if (applied.mechanism === "none")
|
|
3606
|
-
|
|
3573
|
+
if (applied.mechanism === "none") {
|
|
3574
|
+
const next2 = stripThinkingRequestFields(payload);
|
|
3575
|
+
if (resolved.request.chatTemplateKwargs && !chatTemplateKwargsUnsupported(model)) {
|
|
3576
|
+
const existing = isPlainRecord(next2.chat_template_kwargs) ? next2.chat_template_kwargs : {};
|
|
3577
|
+
next2.chat_template_kwargs = { ...existing, ...resolved.request.chatTemplateKwargs };
|
|
3578
|
+
}
|
|
3579
|
+
return next2;
|
|
3580
|
+
}
|
|
3581
|
+
if (applied.mechanism === "always-on") {
|
|
3582
|
+
if (resolved.request.chatTemplateKwargs && !chatTemplateKwargsUnsupported(model)) {
|
|
3583
|
+
const next2 = { ...payload };
|
|
3584
|
+
const existing = isPlainRecord(next2.chat_template_kwargs) ? next2.chat_template_kwargs : {};
|
|
3585
|
+
next2.chat_template_kwargs = { ...existing, ...resolved.request.chatTemplateKwargs };
|
|
3586
|
+
return next2;
|
|
3587
|
+
}
|
|
3588
|
+
return payload;
|
|
3589
|
+
}
|
|
3607
3590
|
const next = { ...payload };
|
|
3608
3591
|
if (resolved.request.reasoningEffort && (next.reasoning_effort === void 0 || resolved.response.parser === "harmony")) {
|
|
3609
3592
|
next.reasoning_effort = resolved.request.reasoningEffort;
|
|
@@ -3734,16 +3717,9 @@ function thinkingLevelFromSimple2(options) {
|
|
|
3734
3717
|
return reasoning;
|
|
3735
3718
|
}
|
|
3736
3719
|
function withRemainingContextBudget(model, context, options) {
|
|
3737
|
-
const metadata2 = runtimeMetadata(model);
|
|
3738
|
-
const localToolOutputLimit = options?.maxTokens === void 0 && (context.tools?.length ?? 0) > 0 && (model.provider === "llamacpp" || metadata2?.runtimeId === "llamacpp") ? LOCAL_TOOL_TURN_MAX_OUTPUT_TOKENS : void 0;
|
|
3739
3720
|
return {
|
|
3740
3721
|
...options ?? {},
|
|
3741
|
-
maxTokens: remainingContextMaxTokens(
|
|
3742
|
-
model,
|
|
3743
|
-
context,
|
|
3744
|
-
options,
|
|
3745
|
-
localToolOutputLimit === void 0 ? void 0 : { maxOutputTokens: localToolOutputLimit }
|
|
3746
|
-
)
|
|
3722
|
+
maxTokens: remainingContextMaxTokens(model, context, options)
|
|
3747
3723
|
};
|
|
3748
3724
|
}
|
|
3749
3725
|
function requiredToolArguments(tool) {
|
|
@@ -3757,7 +3733,7 @@ function hasEmptyArguments(args) {
|
|
|
3757
3733
|
return Object.keys(args).length === 0;
|
|
3758
3734
|
}
|
|
3759
3735
|
function runtimeMetadata(model) {
|
|
3760
|
-
return model.
|
|
3736
|
+
return model.clioCoder;
|
|
3761
3737
|
}
|
|
3762
3738
|
function emptyErrorMessage(model, message) {
|
|
3763
3739
|
return {
|
|
@@ -4031,7 +4007,7 @@ var openAICompletionsApiProvider = {
|
|
|
4031
4007
|
(requestModel) => piOpenAICompletions.stream(requestModel, effectiveContext, capturedOptions)
|
|
4032
4008
|
)
|
|
4033
4009
|
),
|
|
4034
|
-
resolved.
|
|
4010
|
+
usesGemmaChannelMarkers(resolved.modelId)
|
|
4035
4011
|
),
|
|
4036
4012
|
resolved
|
|
4037
4013
|
),
|
|
@@ -4063,7 +4039,7 @@ var openAICompletionsApiProvider = {
|
|
|
4063
4039
|
(requestModel) => piOpenAICompletions.streamSimple(requestModel, effectiveContext, capturedOptions)
|
|
4064
4040
|
)
|
|
4065
4041
|
),
|
|
4066
|
-
resolved.
|
|
4042
|
+
usesGemmaChannelMarkers(resolved.modelId)
|
|
4067
4043
|
),
|
|
4068
4044
|
resolved
|
|
4069
4045
|
),
|
|
@@ -4783,8 +4759,6 @@ export {
|
|
|
4783
4759
|
setResidencyNoticeSink,
|
|
4784
4760
|
setProtectedModelsProvider,
|
|
4785
4761
|
withRunOverrides,
|
|
4786
|
-
EMPTY_CAPABILITIES,
|
|
4787
|
-
VALID_THINKING_LEVELS,
|
|
4788
4762
|
applyModelCapabilityPatch,
|
|
4789
4763
|
probeCapabilitiesForModel,
|
|
4790
4764
|
resolveModelCapabilities,
|
|
@@ -4813,6 +4787,7 @@ export {
|
|
|
4813
4787
|
runtimeResolutionWarnings,
|
|
4814
4788
|
runtimeResolutionWarningsBesideThinkingNotice,
|
|
4815
4789
|
normalizeCostProvenance,
|
|
4790
|
+
resolveCostProvenance2 as resolveCostProvenance,
|
|
4816
4791
|
ProvidersDomainModule
|
|
4817
4792
|
};
|
|
4818
|
-
//# sourceMappingURL=chunk-
|
|
4793
|
+
//# sourceMappingURL=chunk-BYMNWQ7O.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
|
loadSkills
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-O3YUNJZ2.js";
|
|
5
5
|
import {
|
|
6
6
|
parseFrontmatter
|
|
7
7
|
} from "./chunk-RKKLTLYB.js";
|
|
8
8
|
import {
|
|
9
9
|
enabledExtensionResourceRoots
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HLAFFSEK.js";
|
|
11
11
|
import {
|
|
12
12
|
assertAgentSpecPolicy,
|
|
13
13
|
isAgentAudience,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
isShadowAgent,
|
|
20
20
|
normalizeAgentSpec,
|
|
21
21
|
parseResultContract
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-PGF63K6I.js";
|
|
23
23
|
import {
|
|
24
24
|
resolvePackageRoot
|
|
25
25
|
} from "./chunk-IWHMRKLL.js";
|
|
@@ -396,4 +396,4 @@ export {
|
|
|
396
396
|
parseAgentRecipeSchema,
|
|
397
397
|
discoverAgentRecipes
|
|
398
398
|
};
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-CRFOIAX3.js.map
|
|
@@ -2,25 +2,25 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
readStrictLayeredSettings,
|
|
4
4
|
updateLayeredSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-M2DAX4F6.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveShutdownHookBudgetMs,
|
|
8
8
|
runWithBudget,
|
|
9
9
|
writeShutdownNotice
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4O6MANBS.js";
|
|
11
11
|
import {
|
|
12
12
|
assertAgentIdNamespace
|
|
13
13
|
} from "./chunk-DR52UMZW.js";
|
|
14
14
|
import {
|
|
15
15
|
getSharedBus
|
|
16
16
|
} from "./chunk-PMZVFWSR.js";
|
|
17
|
-
import {
|
|
18
|
-
BusChannels
|
|
19
|
-
} from "./chunk-HLW2MRKE.js";
|
|
20
17
|
import {
|
|
21
18
|
formatSettingsFailure,
|
|
22
19
|
settingsPath
|
|
23
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-34BHNEE3.js";
|
|
21
|
+
import {
|
|
22
|
+
BusChannels
|
|
23
|
+
} from "./chunk-F4EKGO4N.js";
|
|
24
24
|
import {
|
|
25
25
|
setGitCommitAttributionEnabled
|
|
26
26
|
} from "./chunk-JIEGK6UF.js";
|
|
@@ -377,4 +377,4 @@ export {
|
|
|
377
377
|
ConfigDomainModule,
|
|
378
378
|
createConfigDomainModule
|
|
379
379
|
};
|
|
380
|
-
//# sourceMappingURL=chunk-
|
|
380
|
+
//# sourceMappingURL=chunk-CYZW7JHJ.js.map
|