@iowarp/clio-coder 0.3.1 → 0.3.3
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 +233 -373
- package/CONTRIBUTING.md +23 -23
- package/README.md +284 -613
- package/dist/{acp-FPR54DGL.js → acp-P2AQILE2.js} +43 -53
- package/dist/{agents-OGPIHPJH.js → agents-72W3BI7I.js} +43 -26
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
- package/dist/chunk-2DJ2KNFG.js +2095 -0
- package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
- package/dist/chunk-2SFS6XQE.js +122 -0
- package/dist/{chunk-PV4JUBVJ.js → chunk-2TLUCQVG.js} +40 -21
- package/dist/chunk-2VTFPG5O.js +48 -0
- package/dist/chunk-4BJ5BYCE.js +61 -0
- package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
- package/dist/chunk-4VP4KH3K.js +962 -0
- package/dist/chunk-4XUGQOHA.js +797 -0
- package/dist/chunk-4ZG3XFUR.js +77 -0
- package/dist/chunk-5B2AEOW5.js +5407 -0
- package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
- package/dist/{chunk-4QKXUHSR.js → chunk-5UFT4SUX.js} +70 -20
- package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
- package/dist/chunk-65DEGPJ6.js +52 -0
- package/dist/chunk-6EJMN2Y3.js +17 -0
- package/dist/chunk-6N5PTWMY.js +136 -0
- package/dist/chunk-6SGHMWE3.js +277 -0
- package/dist/chunk-6XLNIQDB.js +27 -0
- package/dist/chunk-7CR24IG7.js +242 -0
- package/dist/chunk-7MNJORFF.js +22 -0
- package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
- package/dist/chunk-AGYYIBLL.js +1069 -0
- package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
- package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
- package/dist/chunk-CBCAPZAA.js +229 -0
- package/dist/chunk-CMZWFGD2.js +352 -0
- package/dist/chunk-COU2UHX6.js +400 -0
- package/dist/chunk-DSELYM6W.js +1077 -0
- package/dist/chunk-DUYJ5IO6.js +644 -0
- package/dist/chunk-ECH6PKUQ.js +39 -0
- package/dist/chunk-ED4KHGC3.js +143 -0
- package/dist/chunk-EKMEHE4H.js +340 -0
- package/dist/chunk-FCSXB6T2.js +338 -0
- package/dist/chunk-FJ3H4MN5.js +48 -0
- package/dist/{chunk-RPTR2H26.js → chunk-FNTMWMX5.js} +21 -15
- package/dist/chunk-FQ4SKYE4.js +29 -0
- package/dist/chunk-G4BMMOKF.js +182 -0
- package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
- package/dist/chunk-HC4CLZ2Y.js +68 -0
- package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
- package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
- package/dist/chunk-I4HZDVNP.js +73 -0
- package/dist/chunk-IKCO5N3L.js +162 -0
- package/dist/chunk-IR4CFBFN.js +56 -0
- package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
- package/dist/chunk-J7CWMCQD.js +255 -0
- package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
- package/dist/chunk-KZWTDYJF.js +217 -0
- package/dist/chunk-LBMZMYH2.js +285 -0
- package/dist/{chunk-G34LV2PF.js → chunk-LM5TQCJZ.js} +84 -170
- package/dist/chunk-LW6DSM3M.js +5135 -0
- package/dist/chunk-LWLEKMDQ.js +3482 -0
- package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
- package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
- package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
- package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
- package/dist/chunk-OAO4GE4M.js +619 -0
- package/dist/{chunk-Q3RUPKEJ.js → chunk-OC7FIQPC.js} +58 -189
- package/dist/chunk-OKGUZO2U.js +34 -0
- package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
- package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
- package/dist/chunk-OQE5J4C6.js +73 -0
- package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
- package/dist/{chunk-MAR7Y6HW.js → chunk-PAJK6MAQ.js} +23 -16
- package/dist/{chunk-M5T5VO65.js → chunk-PIWWS5BL.js} +837 -635
- package/dist/chunk-POHLU5DW.js +1186 -0
- package/dist/chunk-QKMUKYO7.js +4961 -0
- package/dist/chunk-SRDMMSEP.js +16405 -0
- package/dist/chunk-SST6Z5JA.js +80 -0
- package/dist/chunk-STBPMHSX.js +2456 -0
- package/dist/chunk-T6YILFSB.js +80 -0
- package/dist/chunk-TZK7PACC.js +174 -0
- package/dist/chunk-TZTZS7QK.js +227 -0
- package/dist/{chunk-ASND7OZK.js → chunk-UFIIWP2H.js} +13 -13
- package/dist/chunk-UOV2BYIW.js +107 -0
- package/dist/{chunk-PFEFKVGL.js → chunk-V6RTAOC2.js} +13 -11
- package/dist/chunk-VAKQQHWR.js +434 -0
- package/dist/chunk-VG7TBQIY.js +128 -0
- package/dist/chunk-VJWL6YS5.js +244 -0
- package/dist/{chunk-EYOKLTMF.js → chunk-VPAYEGVX.js} +17 -3
- package/dist/chunk-WEH5XRJQ.js +32 -0
- package/dist/chunk-X4RCMKVQ.js +641 -0
- package/dist/{chunk-TEKV33Q5.js → chunk-X6IAEBZR.js} +65 -33
- package/dist/chunk-XBXAASKX.js +18 -0
- package/dist/chunk-XN3L4EYL.js +46 -0
- package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
- package/dist/chunk-YHZX5GEU.js +193 -0
- package/dist/chunk-YXLYO42X.js +91 -0
- package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
- package/dist/chunk-ZI647VB5.js +37 -0
- package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
- package/dist/chunk-ZWMF7253.js +1882 -0
- package/dist/cli/index.js +62 -54
- package/dist/clio-JOU4FXVA.js +25 -0
- package/dist/code-nav-7AX6FYE6.js +600 -0
- package/dist/codewiki/build-worker.js +66 -0
- package/dist/compile-cache-CVJMMODC.js +18 -0
- package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
- package/dist/{config-IRUQ7SE4.js → config-XCDVKR23.js} +92 -55
- package/dist/configure-4GAP54ZW.js +42 -0
- package/dist/{context-5RADCKTR.js → context-4UOGGLQ5.js} +71 -35
- package/dist/context-5VKGUVJJ.js +866 -0
- package/dist/{context-3KWFLHJG.js → context-77FM5DV5.js} +15 -13
- package/dist/{context-clear-7TSNPAAI.js → context-clear-XXJRLCJJ.js} +54 -28
- package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
- package/dist/dispatch-runner-QPRDDBDX.js +1997 -0
- package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
- package/dist/{doctor-UC5NAJYQ.js → doctor-HR46URBJ.js} +27 -17
- package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
- package/dist/{evidence-YEGUW4L3.js → evidence-6HG2PY2B.js} +46 -26
- package/dist/{evolve-TXARCTPG.js → evolve-K7YU3NCY.js} +45 -25
- package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
- package/dist/{fleet-6G3DHNYE.js → fleet-VY3HHKN6.js} +163 -54
- package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
- package/dist/{init-KZ5QTF6M.js → init-JYGXI3FK.js} +69 -32
- package/dist/{memory-73ESV5YC.js → memory-WFZMGYHX.js} +48 -27
- package/dist/{models-A4PVNWJK.js → models-I5QWSEOM.js} +39 -25
- package/dist/monitor-GE4ID3IA.js +661 -0
- package/dist/{chunk-FCIH3BIZ.js → orchestrator-EM5MC3HM.js} +15979 -12407
- package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
- package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
- package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
- package/dist/{run-YTPEYQOH.js → run-ZU3QMZPZ.js} +101 -61
- package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
- package/dist/{skills-2V6RA3OQ.js → skills-X5VXCRNQ.js} +34 -14
- package/dist/{skills-eval-S2TVJO4F.js → skills-eval-WKIHWTHR.js} +70 -34
- package/dist/steer-GGWFUJUD.js +77 -0
- package/dist/{targets-TYXLPB23.js → targets-SNCPI2NR.js} +43 -27
- package/dist/terminal-lease-BNAHVHBS.js +395 -0
- package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
- package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
- package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
- package/dist/{upgrade-33G2LMM5.js → upgrade-JQHHPQ4K.js} +45 -25
- package/dist/{usage-ZAFSXKKG.js → usage-OR4O5SMZ.js} +62 -31
- package/dist/verify-375KUB3Y.js +716 -0
- package/dist/web-fetch-2YHJ3KTG.js +638 -0
- package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-UEXP2ARI.js} +74 -34
- package/dist/worker/entry.js +221 -36
- package/dist/workspace-G4ZWUIPR.js +22 -0
- package/docs/README.md +22 -17
- package/docs/acp.md +168 -16
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +136 -7
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +114 -71
- package/docs/config-knobs-audit.md +1 -3
- package/docs/configuration-and-targets.md +174 -46
- package/docs/context-engine.md +29 -6
- package/docs/development-pipeline.md +26 -1
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +2 -2
- package/docs/documentation-guide.md +1 -1
- package/docs/environment-variables.md +13 -5
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +6 -2
- package/docs/evolution.md +2 -2
- package/docs/exit-codes-and-output.md +15 -9
- package/docs/extensions-and-sharing.md +9 -9
- package/docs/fleet-dispatch.md +7 -5
- package/docs/git-commit-provenance.md +120 -0
- package/docs/glossary.md +1 -1
- package/docs/installation-and-lifecycle.md +34 -27
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +45 -14
- package/docs/observability.md +8 -5
- package/docs/performance-methodology.md +491 -0
- package/docs/pi-boundary.md +72 -0
- package/docs/proactive-memory.md +3 -3
- package/docs/prompt-envelope-and-tools.md +24 -3
- package/docs/provider-adapter-cookbook.md +57 -4
- package/docs/release-cut-checklist.md +129 -115
- package/docs/safety-model.md +9 -5
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +55 -12
- package/docs/skills-marketplace.md +12 -8
- package/docs/time-conventions.md +1 -1
- package/docs/tool-usage.md +3 -3
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +10 -7
- package/docs/tui-design.md +47 -10
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +19 -22
- package/skills/coding/ast-grep/SKILL.md +136 -0
- package/skills/coding/ast-grep/evals.md +56 -0
- package/skills/coding/ast-grep/references/rule_reference.md +297 -0
- package/skills/coding/coding-standards/SKILL.md +113 -0
- package/skills/coding/coding-standards/evals.md +34 -0
- package/skills/coding/prototype/SKILL.md +86 -0
- package/skills/coding/prototype/evals.md +42 -0
- package/skills/coding/prototype/references/LOGIC.md +67 -0
- package/skills/coding/prototype/references/UI.md +112 -0
- package/skills/coding/tdd/SKILL.md +101 -0
- package/skills/coding/tdd/evals.md +41 -0
- package/skills/coding/tdd/references/mocking.md +59 -0
- package/skills/coding/tdd/references/tests.md +77 -0
- package/skills/context/context-handoff/SKILL.md +126 -0
- package/skills/context/context-handoff/evals.md +57 -0
- package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
- package/skills/context/context-prime/SKILL.md +95 -0
- package/skills/context/context-prime/evals.md +54 -0
- package/skills/meta/clio-dev/SKILL.md +91 -0
- package/skills/meta/clio-dev/evals.md +45 -0
- package/skills/meta/clio-test/SKILL.md +130 -0
- package/skills/meta/clio-test/evals.md +43 -0
- package/skills/meta/clio-test/references/harness.md +97 -0
- package/skills/meta/clio-test/references/test-map.md +59 -0
- package/skills/meta/credentials/SKILL.md +125 -0
- package/skills/meta/credentials/evals.md +104 -0
- package/skills/meta/find-skills/SKILL.md +72 -0
- package/skills/meta/find-skills/evals.md +47 -0
- package/skills/meta/herdr/SKILL.md +127 -0
- package/skills/meta/herdr/evals.md +38 -0
- package/skills/meta/skill-craft/SKILL.md +102 -0
- package/skills/meta/skill-craft/evals.md +41 -0
- package/skills/planning/architecture/SKILL.md +129 -0
- package/skills/planning/architecture/evals.md +36 -0
- package/skills/planning/backlog/SKILL.md +90 -0
- package/skills/planning/backlog/evals.md +43 -0
- package/skills/planning/prd/SKILL.md +82 -0
- package/skills/planning/prd/evals.md +49 -0
- package/skills/planning/product-intent/SKILL.md +112 -0
- package/skills/planning/product-intent/evals.md +36 -0
- package/skills/planning/tech-spec/SKILL.md +115 -0
- package/skills/planning/tech-spec/evals.md +47 -0
- package/skills/registry.yaml +136 -0
- package/skills/research/arxiv-literature/SKILL.md +104 -0
- package/skills/research/arxiv-literature/evals.md +58 -0
- package/skills/research/experiment-protocol/SKILL.md +122 -0
- package/skills/research/experiment-protocol/evals.md +91 -0
- package/skills/research/scientific-debugging/SKILL.md +119 -0
- package/skills/research/scientific-debugging/evals.md +138 -0
- package/skills/research/scientific-modernization/SKILL.md +138 -0
- package/skills/research/scientific-modernization/evals.md +84 -0
- package/skills/workflow/design-council/SKILL.md +139 -0
- package/skills/workflow/design-council/evals.md +97 -0
- package/skills/workflow/grill-me/SKILL.md +186 -0
- package/skills/workflow/grill-me/evals.md +78 -0
- package/skills/workflow/workflow-distiller/SKILL.md +136 -0
- package/skills/workflow/workflow-distiller/evals.md +107 -0
- package/src/cli/acp.ts +31 -4
- package/src/cli/clio.ts +68 -6
- package/src/cli/config-inspect.ts +28 -22
- package/src/cli/configure.ts +47 -9
- package/src/cli/context-clear.ts +2 -2
- package/src/cli/context-index.ts +21 -23
- package/src/cli/context.ts +13 -8
- package/src/cli/default-target.ts +9 -17
- package/src/cli/docs.ts +11 -5
- package/src/cli/evidence.ts +4 -1
- package/src/cli/extensions.ts +10 -1
- package/src/cli/fleet.ts +47 -6
- package/src/cli/index.ts +55 -26
- package/src/cli/memory.ts +3 -1
- package/src/cli/models.ts +1 -1
- package/src/cli/modes/json-stream.ts +37 -1
- package/src/cli/modes/print.ts +24 -9
- package/src/cli/run.ts +2 -2
- package/src/cli/skills-eval.ts +23 -8
- package/src/cli/skills.ts +19 -4
- package/src/cli/targets.ts +4 -0
- package/src/cli/text-layout.ts +15 -5
- package/src/cli/trace.ts +62 -14
- package/src/cli/upgrade.ts +18 -2
- package/src/cli/usage.ts +10 -3
- package/src/cli/wiki-generate.ts +2 -1
- package/src/core/agent-environment.ts +7 -0
- package/src/core/bash-exec.ts +72 -1
- package/src/core/boot-trace.ts +9 -4
- package/src/core/bus-events.ts +20 -4
- package/src/core/commit-attribution.ts +157 -0
- package/src/core/compile-cache.ts +159 -0
- package/src/core/config.ts +131 -2
- package/src/core/defaults.ts +39 -5
- package/src/core/domain-loader.ts +12 -5
- package/src/core/git-commit-attribution.ts +387 -0
- package/src/core/incomplete-installation.ts +45 -0
- package/src/core/response-schema.ts +1 -1
- package/src/core/safe-exec.ts +13 -1
- package/src/core/settings-layers.ts +155 -21
- package/src/core/skill-activation.ts +1 -1
- package/src/core/startup-timer.ts +3 -3
- package/src/core/state-file-lock.ts +13 -1
- package/src/core/termination.ts +78 -5
- package/src/domains/config/classify.ts +15 -3
- package/src/domains/config/extension.ts +19 -13
- package/src/domains/config/index.ts +10 -0
- package/src/domains/config/keybindings.ts +45 -9
- package/src/domains/context/bootstrap-prompt.ts +1 -1
- package/src/domains/context/bootstrap.ts +111 -18
- package/src/domains/context/clear.ts +16 -11
- package/src/domains/context/clio-md.ts +111 -9
- package/src/domains/context/codewiki/artifact.ts +400 -0
- package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
- package/src/domains/context/codewiki/build-worker.ts +54 -0
- package/src/domains/context/codewiki/coordinator.ts +182 -0
- package/src/domains/context/codewiki/indexer.ts +59 -144
- package/src/domains/context/codewiki/paths.ts +67 -0
- package/src/domains/context/codewiki/schema.ts +80 -0
- package/src/domains/context/codewiki/tree-sitter.ts +1 -1
- package/src/domains/context/contract.ts +11 -5
- package/src/domains/context/extension.ts +94 -143
- package/src/domains/context/fingerprint.ts +3 -1
- package/src/domains/context/index.ts +12 -22
- package/src/domains/context/project-metadata.ts +19 -0
- package/src/domains/context/prompt-context.ts +9 -10
- package/src/domains/context/refresh.ts +29 -21
- package/src/domains/context/runtime.ts +17 -0
- package/src/domains/context/wiki/generate.ts +39 -34
- package/src/domains/context/wiki/plan.ts +1 -1
- package/src/domains/context/wiki/prompts.ts +21 -8
- package/src/domains/dispatch/code-step.ts +20 -1
- package/src/domains/dispatch/extension.ts +158 -21
- package/src/domains/dispatch/failure-classification.ts +6 -0
- package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
- package/src/domains/dispatch/orphan-recovery.ts +50 -8
- package/src/domains/dispatch/receipt-integrity.ts +5 -0
- package/src/domains/dispatch/state.ts +31 -6
- package/src/domains/dispatch/transport.ts +2 -1
- package/src/domains/dispatch/types.ts +14 -0
- package/src/domains/dispatch/worker-spawn.ts +21 -2
- package/src/domains/eval/metrics/context.ts +1 -1
- package/src/domains/eval/types.ts +0 -1
- package/src/domains/evidence/build.ts +41 -1
- package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
- package/src/domains/lifecycle/migrations/index.ts +24 -4
- package/src/domains/middleware/hooks-io.ts +12 -0
- package/src/domains/middleware/skills-reminder.ts +30 -15
- package/src/domains/prompts/compiler.ts +142 -84
- package/src/domains/prompts/contract.ts +18 -2
- package/src/domains/prompts/extension.ts +39 -7
- package/src/domains/prompts/fragment-loader.ts +0 -1
- package/src/domains/prompts/fragments/identity/clio.md +2 -4
- package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
- package/src/domains/prompts/fragments/operating/contract.md +4 -50
- package/src/domains/prompts/fragments/operating/delegation.md +42 -0
- package/src/domains/prompts/fragments/operating/skills.md +26 -0
- package/src/domains/prompts/fragments/operating/worker.md +16 -0
- package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
- package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
- package/src/domains/prompts/fragments/safety/read-only.md +4 -4
- package/src/domains/prompts/fragments/safety/suggest.md +2 -2
- package/src/domains/prompts/fragments/wiki/page.md +10 -0
- package/src/domains/prompts/fragments/wiki/plan.md +10 -0
- package/src/domains/prompts/preload.ts +3 -3
- package/src/domains/providers/auth/api-key.ts +1 -1
- package/src/domains/providers/auth/backend-file.ts +20 -10
- package/src/domains/providers/auth/backend-memory.ts +59 -4
- package/src/domains/providers/auth/boot-status.ts +65 -0
- package/src/domains/providers/auth/oauth.ts +2 -1
- package/src/domains/providers/auth/storage.ts +97 -38
- package/src/domains/providers/capabilities.ts +12 -4
- package/src/domains/providers/contract.ts +15 -4
- package/src/domains/providers/extension.ts +18 -6
- package/src/domains/providers/model-runtime-capabilities.ts +15 -4
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
- package/src/domains/providers/plugins.ts +5 -3
- package/src/domains/providers/probe/fingerprint.ts +25 -5
- package/src/domains/providers/registry.ts +31 -10
- package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
- package/src/domains/providers/runtimes/builtins.ts +2 -2
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
- package/src/domains/providers/support.ts +6 -3
- package/src/domains/providers/types/local-model-quirks.ts +7 -9
- package/src/domains/providers/types/runtime-descriptor.ts +12 -1
- package/src/domains/providers/types/target-descriptor.ts +22 -0
- package/src/domains/resources/contract.ts +0 -1
- package/src/domains/resources/extension.ts +1 -3
- package/src/domains/resources/loader.ts +3 -4
- package/src/domains/resources/prompts/loader.ts +16 -2
- package/src/domains/resources/prompts/substitute.ts +1 -65
- package/src/domains/resources/skills/content-hash.ts +2 -0
- package/src/domains/resources/skills/install.ts +17 -0
- package/src/domains/resources/skills/loader.ts +17 -10
- package/src/domains/resources/skills/marketplace.ts +55 -9
- package/src/domains/safety/action-classifier.ts +4 -2
- package/src/domains/safety/audit.ts +8 -2
- package/src/domains/safety/extension.ts +1 -1
- package/src/domains/session/compaction/branch-summary.ts +3 -2
- package/src/domains/session/compaction/cut-point.ts +2 -1
- package/src/domains/session/compaction/tokens.ts +2 -1
- package/src/domains/session/context-ledger.ts +14 -0
- package/src/domains/session/contract.ts +15 -0
- package/src/domains/session/decision-board.ts +190 -0
- package/src/domains/session/entries.ts +66 -3
- package/src/domains/session/extension.ts +93 -12
- package/src/domains/session/retry.ts +10 -18
- package/src/domains/session/session-artifacts.ts +107 -0
- package/src/domains/session/task-board.ts +207 -13
- package/src/domains/session/tree/active-path.ts +44 -5
- package/src/domains/session/tree/fork.ts +26 -27
- package/src/domains/session/tree/preview.ts +2 -2
- package/src/domains/session/workspace/git-probe.ts +17 -11
- package/src/domains/user-tasks/store.ts +297 -0
- package/src/engine/acp/errors.ts +96 -0
- package/src/engine/acp/server.ts +1728 -146
- package/src/engine/acp/transport.ts +135 -14
- package/src/engine/acp/types.ts +26 -0
- package/src/engine/agent.ts +3 -3
- package/src/engine/ai.ts +32 -27
- package/src/engine/alcf-oauth.ts +26 -19
- package/src/engine/api-registry.ts +223 -0
- package/src/engine/apis/index.ts +3 -7
- package/src/engine/apis/llamacpp-residency.ts +49 -9
- package/src/engine/apis/lmstudio-residency.ts +5 -21
- package/src/engine/apis/lmstudio.ts +243 -0
- package/src/engine/apis/ollama-native.ts +24 -3
- package/src/engine/apis/openai-completions.ts +170 -91
- package/src/engine/apis/residency.ts +139 -3
- package/src/engine/apis/types.ts +16 -0
- package/src/engine/env-api-keys.ts +98 -0
- package/src/engine/gemma-channel-filter.ts +223 -0
- package/src/engine/instrumented-tui.ts +192 -0
- package/src/engine/messages.ts +14 -0
- package/src/engine/models.ts +42 -0
- package/src/engine/oauth.ts +16 -12
- package/src/engine/prompt-templates.ts +1 -0
- package/src/engine/provider-payload.ts +16 -59
- package/src/engine/strip-tokenizer-sentinels.ts +1 -1
- package/src/engine/truncate.ts +9 -0
- package/src/engine/tui.ts +17 -9
- package/src/engine/types.ts +3 -6
- package/src/engine/worker-runtime-capabilities.ts +5 -0
- package/src/engine/worker-runtime.ts +1 -1
- package/src/engine/worker-tools.ts +9 -4
- package/src/entry/boot-options.ts +50 -0
- package/src/entry/orchestrator.ts +288 -150
- package/src/interactive/application-controller.ts +89 -2
- package/src/interactive/chat-loop.ts +266 -41
- package/src/interactive/chat-panel.ts +715 -278
- package/src/interactive/chat-renderer.ts +306 -85
- package/src/interactive/clio-editor.ts +3 -8
- package/src/interactive/command-fallbacks.ts +2 -2
- package/src/interactive/context-overlay.ts +27 -1
- package/src/interactive/editor-submit.ts +253 -24
- package/src/interactive/export-html/ansi-to-html.ts +161 -0
- package/src/interactive/export-html/index.ts +51 -0
- package/src/interactive/export-html/template.ts +45 -0
- package/src/interactive/export-html/tool-renderer.ts +54 -0
- package/src/interactive/footer/dashboard.ts +4 -0
- package/src/interactive/footer/notifications.ts +1 -1
- package/src/interactive/footer/widgets.ts +42 -22
- package/src/interactive/footer-panel.ts +8 -3
- package/src/interactive/format-time.ts +14 -2
- package/src/interactive/interactive-application.ts +203 -17
- package/src/interactive/interactive-event-projection.ts +18 -1
- package/src/interactive/interactive-input-runtime.ts +50 -4
- package/src/interactive/interactive-presentation.ts +151 -19
- package/src/interactive/interactive-shell.ts +268 -14
- package/src/interactive/interactive-slash-runtime.ts +184 -117
- package/src/interactive/interactive-tickers.ts +38 -7
- package/src/interactive/keybinding-manager.ts +1 -1
- package/src/interactive/layout.ts +40 -3
- package/src/interactive/overlay-frame.ts +1 -1
- package/src/interactive/overlay-general-openers.ts +58 -1
- package/src/interactive/overlay-key-routing.ts +3 -0
- package/src/interactive/overlay-lifecycle.ts +13 -0
- package/src/interactive/overlay-permission-lifecycle.ts +2 -1
- package/src/interactive/overlay-session-lifecycle.ts +69 -12
- package/src/interactive/overlays/ask-user.ts +146 -24
- package/src/interactive/overlays/decisions.ts +300 -0
- package/src/interactive/overlays/help-reference.ts +15 -10
- package/src/interactive/overlays/model-selector.ts +34 -16
- package/src/interactive/overlays/session-selector.ts +18 -0
- package/src/interactive/overlays/settings.ts +105 -17
- package/src/interactive/overlays/skills-hub.ts +4 -4
- package/src/interactive/overlays/tree-selector.ts +41 -6
- package/src/interactive/render-trace.ts +499 -90
- package/src/interactive/renderers/compaction-summary.ts +2 -2
- package/src/interactive/renderers/diff.ts +115 -104
- package/src/interactive/renderers/mermaid.ts +53 -0
- package/src/interactive/renderers/tool-execution.ts +516 -168
- package/src/interactive/renderers/worker-entry.ts +20 -4
- package/src/interactive/session-switch-settlement.ts +10 -0
- package/src/interactive/slash-autocomplete.ts +6 -114
- package/src/interactive/slash-commands.ts +135 -47
- package/src/interactive/slash-spec.ts +9 -38
- package/src/interactive/status/controller.ts +5 -1
- package/src/interactive/status/index.ts +12 -1
- package/src/interactive/status/reasoning.ts +87 -0
- package/src/interactive/status/summary.ts +13 -2
- package/src/interactive/stdout-backpressure.ts +99 -0
- package/src/interactive/stream-pacer.ts +530 -0
- package/src/interactive/stream-pacing-policy.ts +66 -0
- package/src/interactive/tasks-overlay.ts +368 -14
- package/src/interactive/terminal-lease.ts +485 -0
- package/src/interactive/theme/tokens.ts +1 -1
- package/src/interactive/transcript-detail.ts +120 -0
- package/src/interactive/turn-context.ts +4 -3
- package/src/interactive/turn-persistence.ts +30 -13
- package/src/interactive/turn-queues.ts +12 -0
- package/src/interactive/turn-recovery.ts +25 -8
- package/src/interactive/turn-runtime.ts +79 -12
- package/src/interactive/turn-state.ts +10 -0
- package/src/interactive/view/artifacts.ts +114 -4
- package/src/interactive/view/view-overlay.ts +3 -0
- package/src/interactive/welcome-dashboard.ts +17 -16
- package/src/interactive/worker-receipts.ts +52 -3
- package/src/interactive/worker-stream.ts +5 -1
- package/src/tools/agent-tools.ts +23 -3
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +23 -13
- package/src/tools/bash.ts +30 -2
- package/src/tools/bootstrap.ts +34 -431
- package/src/tools/builtin-tool-catalog.ts +271 -0
- package/src/tools/codewiki/code-nav-surface.ts +29 -0
- package/src/tools/codewiki/code-nav.ts +8 -22
- package/src/tools/codewiki/shared.ts +41 -38
- package/src/tools/context/docs-engine.ts +14 -3
- package/src/tools/context/index.ts +107 -28
- package/src/tools/context/surface.ts +19 -0
- package/src/tools/core-bootstrap.ts +168 -0
- package/src/tools/credential-present.ts +5 -5
- package/src/tools/dispatch-admission.ts +533 -0
- package/src/tools/dispatch-background.ts +54 -0
- package/src/tools/dispatch-event-text.ts +6 -0
- package/src/tools/dispatch-plan.ts +9 -4
- package/src/tools/dispatch-run-events.ts +238 -0
- package/src/tools/dispatch-runner.ts +2370 -0
- package/src/tools/dispatch-scout-admission.ts +295 -0
- package/src/tools/dispatch-types.ts +77 -0
- package/src/tools/dispatch.ts +67 -3161
- package/src/tools/find.ts +4 -2
- package/src/tools/grep.ts +2 -2
- package/src/tools/lazy-tool.ts +60 -0
- package/src/tools/ledger.ts +3 -3
- package/src/tools/monitor-surface.ts +36 -0
- package/src/tools/monitor.ts +2 -32
- package/src/tools/observers.ts +2 -2
- package/src/tools/presentation.ts +107 -0
- package/src/tools/registry.ts +45 -27
- package/src/tools/safe-exec.ts +2 -2
- package/src/tools/steer-surface.ts +17 -0
- package/src/tools/steer.ts +2 -13
- package/src/tools/tasks.ts +108 -11
- package/src/tools/truncate.ts +25 -184
- package/src/tools/verify/frontend.ts +3 -1
- package/src/tools/verify/index.ts +3 -38
- package/src/tools/verify/surface.ts +46 -0
- package/src/tools/web-fetch-surface.ts +23 -0
- package/src/tools/web-fetch.ts +2 -20
- package/src/tools/write.ts +7 -2
- package/src/worker/entry.ts +39 -2
- package/src/worker/spec-contract.ts +26 -5
- package/dist/chunk-7SS2CTV2.js +0 -61361
- package/dist/chunk-DKGKUHFA.js +0 -924
- package/dist/chunk-GEP36Y4X.js +0 -12796
- package/dist/chunk-XYWBQRDM.js +0 -137
- package/dist/clio-BZVGEUFJ.js +0 -58
- package/dist/configure-S7S6F6CL.js +0 -32
- package/docs/html/agents_blueprint.html +0 -936
- package/docs/html/alcf_blueprint.html +0 -324
- package/docs/html/architecture_blueprint.html +0 -850
- package/docs/html/commands_blueprint.html +0 -939
- package/docs/html/config_knobs_audit_blueprint.html +0 -178
- package/docs/html/configuration_blueprint.html +0 -1080
- package/docs/html/context_blueprint.html +0 -603
- package/docs/html/documentation_blueprint.html +0 -832
- package/docs/html/environment_blueprint.html +0 -404
- package/docs/html/eval_blueprint.html +0 -743
- package/docs/html/evals_internal_blueprint.html +0 -190
- package/docs/html/evolution_blueprint.html +0 -674
- package/docs/html/extensions_blueprint.html +0 -2065
- package/docs/html/fleet_dispatch_blueprint.html +0 -286
- package/docs/html/index.html +0 -919
- package/docs/html/lifecycle_blueprint.html +0 -723
- package/docs/html/memory_blueprint.html +0 -699
- package/docs/html/middleware_blueprint.html +0 -664
- package/docs/html/models_blueprint.html +0 -2366
- package/docs/html/observability_blueprint.html +0 -683
- package/docs/html/provider_adapter_blueprint.html +0 -245
- package/docs/html/safety_blueprint.html +0 -1386
- package/docs/html/shared.css +0 -571
- package/docs/html/shared.js +0 -143
- package/docs/html/skills_blueprint.html +0 -671
- package/docs/html/soak_blueprint.html +0 -182
- package/docs/html/tool_usage_blueprint.html +0 -350
- package/docs/html/tools_blueprint.html +0 -2249
- package/docs/html/trace_blueprint.html +0 -235
- package/docs/html/tui_design_blueprint.html +0 -374
- package/docs/html/validation_blueprint.html +0 -961
- package/docs/html/worker_dispatch_blueprint.html +0 -231
- package/src/core/release.ts +0 -2
- package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
- package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
- package/src/engine/apis/lmstudio-native.ts +0 -1438
- package/src/engine/apis/thinking-replay.ts +0 -11
- package/src/tools/string-enum.ts +0 -15
package/README.md
CHANGED
|
@@ -7,44 +7,36 @@
|
|
|
7
7
|
|
|
8
8
|
<h1 align="center">Clio Coder</h1>
|
|
9
9
|
|
|
10
|
-
<p align="center"><strong>
|
|
10
|
+
<p align="center"><strong>The coding agent for the people who maintain the code that science runs on.</strong><br />Your models. Your machines. A receipt for everything it did.</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://github.com/iowarp/clio-coder/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/tag/iowarp/clio-coder?sort=semver&label=release&color=00d4db&style=flat-square" /></a>
|
|
14
14
|
<a href="https://www.npmjs.com/package/@iowarp/clio-coder"><img alt="npm" src="https://img.shields.io/npm/v/%40iowarp%2Fclio-coder?label=npm&color=cb3837&style=flat-square" /></a>
|
|
15
15
|
<a href="https://github.com/iowarp/clio-coder/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/iowarp/clio-coder/ci.yml?branch=main&label=ci&style=flat-square" /></a>
|
|
16
|
-
<a href="#
|
|
16
|
+
<a href="#install"><img alt="Node >=22.19" src="https://img.shields.io/badge/node-%3E%3D22.19-147366?style=flat-square" /></a>
|
|
17
17
|
<a href="LICENSE"><img alt="License Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-241131?style=flat-square" /></a>
|
|
18
18
|
<a href="https://iowarp.ai"><img alt="IOWarp CLIO" src="https://img.shields.io/badge/IOWarp-CLIO-00d4db?style=flat-square" /></a>
|
|
19
19
|
<a href="https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318"><img alt="NSF #2411318" src="https://img.shields.io/badge/NSF-%232411318-241131?style=flat-square" /></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
-
> [!WARNING]
|
|
23
|
-
> **Experimental v0.3.1 release.** Clio Coder's behavior and interfaces may
|
|
24
|
-
> break or change without notice. Use version control, review proposed changes,
|
|
25
|
-
> and keep backups when operating on important repositories.
|
|
26
|
-
|
|
27
22
|
---
|
|
28
23
|
|
|
29
|
-
Clio Coder is a terminal coding agent for
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ever seen.
|
|
24
|
+
Clio Coder is a terminal coding agent built for scientific and HPC software:
|
|
25
|
+
simulation kernels, data pipelines, numerical libraries, and build systems that
|
|
26
|
+
take twenty minutes and break in ways no cloud model has ever seen.
|
|
33
27
|
|
|
34
|
-
You bring the model. A
|
|
35
|
-
|
|
36
|
-
Leadership Computing Facility inference gateway. Clio brings the harness
|
|
37
|
-
|
|
38
|
-
shell, a fleet of bounded worker agents that can run across your whole
|
|
39
|
-
cluster over SSH, durable sessions, and
|
|
28
|
+
You bring the model. A llama.cpp, Ollama, LM Studio, vLLM, or SGLang server on
|
|
29
|
+
your own GPU; a cloud API; your ChatGPT or Claude subscription; or an Argonne
|
|
30
|
+
Leadership Computing Facility inference gateway. Clio brings the harness around
|
|
31
|
+
it: a terminal UI that stays out of your way, twenty typed tools instead of a
|
|
32
|
+
raw shell, a fleet of bounded worker agents that can run across your whole
|
|
33
|
+
cluster over SSH, durable sessions, and a sealed receipt for every run.
|
|
40
34
|
|
|
41
35
|
CLIO stands for Context Layer for Input/Output. Clio Coder is the interactive
|
|
42
|
-
coding agent in IOWarp's ecosystem of agentic science, named for the Greek
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### Get started
|
|
36
|
+
coding agent in IOWarp's ecosystem of agentic science, named for the Greek muse
|
|
37
|
+
of history and built by the Gnosis Research Center at Illinois Tech.
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
## Get started
|
|
48
40
|
|
|
49
41
|
```bash
|
|
50
42
|
npm install -g @iowarp/clio-coder
|
|
@@ -52,245 +44,144 @@ clio-coder configure # pick a model provider or a local server
|
|
|
52
44
|
clio-coder # start the interactive session in any project directory
|
|
53
45
|
```
|
|
54
46
|
|
|
55
|
-
`configure`
|
|
56
|
-
model, probes it, and saves it as the chat and worker target
|
|
57
|
-
`clio-coder`
|
|
58
|
-
first session, type a request in plain words
|
|
59
|
-
palette
|
|
60
|
-
`clio-coder doctor` reports the install's health
|
|
61
|
-
up yet it says so in one row and exits 0.
|
|
62
|
-
|
|
63
|
-
### Pick your path
|
|
47
|
+
Requires Node.js `>=22.19.0`. `configure` lists the runtimes, asks for the
|
|
48
|
+
endpoint and model, probes it, and saves it as the chat and worker target; bare
|
|
49
|
+
`clio-coder` opens the same wizard when nothing usable is configured yet. In the
|
|
50
|
+
first session, type a request in plain words or `/help` for the command
|
|
51
|
+
palette. `/settings` changes the model later, `/quit` leaves, and
|
|
52
|
+
`clio-coder doctor` reports the install's health at any time.
|
|
64
53
|
|
|
65
54
|
| | You are | Start here |
|
|
66
55
|
| --- | --- | --- |
|
|
67
|
-
| 🔬 | A researcher or developer who wants to use it | [
|
|
56
|
+
| 🔬 | A researcher or developer who wants to use it | [Your models](#your-models-your-choice) → [At the keyboard](#at-the-keyboard) → [Safety](#safety-you-can-read) |
|
|
68
57
|
| 🤖 | An AI agent that just landed in this repository | [For agents](#for-agents) |
|
|
69
58
|
| 🛠️ | A developer who wants to contribute | [For contributors](#for-contributors) |
|
|
70
59
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## Why Clio is different
|
|
60
|
+
## Why Clio
|
|
74
61
|
|
|
75
62
|
Most coding agents ask you to trust a remote model with a shell. Clio makes a
|
|
76
|
-
different bet: the harness should be strong enough that a 20B model
|
|
77
|
-
|
|
63
|
+
different bet: the harness should be strong enough that a 20B model on your own
|
|
64
|
+
GPU is genuinely useful, and honest enough that you can reconstruct every
|
|
78
65
|
decision afterward.
|
|
79
66
|
|
|
80
|
-
**The model never gets a shell by default.**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
the
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
**
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
# For humans
|
|
118
|
-
|
|
119
|
-
## Requirements
|
|
120
|
-
|
|
121
|
-
- Node.js `>=22.19.0` and npm
|
|
122
|
-
- Linux or macOS. Windows is best effort until a stable release.
|
|
123
|
-
- At least one model target: a local OpenAI-compatible server, Ollama, LM
|
|
124
|
-
Studio, llama.cpp, vLLM, SGLang, a cloud API key, a ChatGPT or Claude
|
|
125
|
-
subscription login, an ALCF Globus account, or an installed `claude` command
|
|
126
|
-
|
|
127
|
-
## Install
|
|
128
|
-
|
|
129
|
-
From npm, [Get started](#get-started) is the whole install. `clio-coder upgrade`
|
|
130
|
-
moves an existing install to the latest release; `--channel=beta` follows a
|
|
131
|
-
dist-tag instead.
|
|
132
|
-
|
|
133
|
-
From source, pinned to this release:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
git clone --branch v0.3.1 https://github.com/iowarp/clio-coder.git
|
|
137
|
-
cd clio-coder
|
|
138
|
-
npm run install:local
|
|
139
|
-
export PATH="$HOME/.local/bin:$PATH"
|
|
140
|
-
hash -r
|
|
141
|
-
"$HOME/.local/bin/clio-coder" --version
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
`npm run install:local` builds the CLI, links it at
|
|
145
|
-
`${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and initializes the home.
|
|
146
|
-
Put the `export PATH` line in your shell profile. If an older install is on your
|
|
147
|
-
`PATH`, `command -v clio-coder` shows which file the bare name reaches; the
|
|
148
|
-
installer warns when it finds one.
|
|
149
|
-
|
|
150
|
-
To remove it, preview first:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
clio-coder uninstall --dry-run
|
|
154
|
-
clio-coder uninstall --remove-binary --force
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
Full lifecycle details, including `reset` and the upgrade path, are in
|
|
158
|
-
[docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
|
|
159
|
-
|
|
160
|
-
## Five-minute start
|
|
161
|
-
|
|
162
|
-
Run Clio from the repository you want to work on and point one target at a
|
|
163
|
-
running model server. The wizard under [Get started](#get-started) does this
|
|
164
|
-
interactively; the flags below do the same thing from a script. This example
|
|
165
|
-
uses LM Studio; other local runtime ids include `ollama-native`, `llamacpp`,
|
|
166
|
-
`vllm`, and `sglang`.
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
cd /path/to/your/repo
|
|
170
|
-
|
|
171
|
-
clio-coder configure \
|
|
172
|
-
--id local-lmstudio \
|
|
173
|
-
--runtime lmstudio-native \
|
|
174
|
-
--url http://localhost:1234 \
|
|
175
|
-
--model your-model-id \
|
|
176
|
-
--set-orchestrator \
|
|
177
|
-
--set-fleet-default
|
|
178
|
-
|
|
179
|
-
clio-coder targets use local-lmstudio
|
|
180
|
-
clio-coder targets --probe
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
Once the target probes healthy, teach Clio about your project, try a headless
|
|
184
|
-
turn, then open the TUI:
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
clio-coder context init # bootstraps local generated CLIO-CODER.md context from your real source tree
|
|
188
|
-
clio-coder run "Summarize this repository layout and identify the main entry points."
|
|
189
|
-
clio-coder # interactive terminal UI
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Inside the TUI, `/settings` shows the target, fleet, and routing the session
|
|
193
|
-
uses (`/targets` and `/fleet` open straight into their sections), `/agents` and
|
|
194
|
-
`/skill` list what it can dispatch and run, and `/help` opens the interactive
|
|
195
|
-
help center.
|
|
196
|
-
|
|
197
|
-
## Bring your own model
|
|
198
|
-
|
|
199
|
-
Clio treats models as named **targets**. A target is a runtime plus an
|
|
200
|
-
endpoint plus a model plus credentials, and you can route interactive chat and
|
|
201
|
-
fleet dispatch through different targets independently.
|
|
202
|
-
|
|
203
|
-
### Local runtimes
|
|
204
|
-
|
|
205
|
-
| Runtime id | Server |
|
|
67
|
+
- **The model never gets a shell by default.** Twenty typed tools in seven
|
|
68
|
+
policy planes. Bash is default-deny behind
|
|
69
|
+
[damage-control rules](damage-control-rules.yaml) and per-project policy,
|
|
70
|
+
reads are bounded, writes are queued and reviewable, and every privileged
|
|
71
|
+
call passes through one admission path the model cannot talk its way around.
|
|
72
|
+
- **Local models are the design target, not a fallback.** Clio keeps the
|
|
73
|
+
compiled prompt and tool schemas byte-stable so a llama.cpp prefix cache
|
|
74
|
+
stays hot across turns and sessions, bounds every tool result so one `grep`
|
|
75
|
+
cannot blow the window, and records a per-call cache verdict in the ledger
|
|
76
|
+
so you can see when and why the cache went cold.
|
|
77
|
+
- **Work goes to bounded workers, not one long context.** The orchestrator
|
|
78
|
+
dispatches focused agents with explicit tool profiles, call budgets, cost
|
|
79
|
+
ceilings, and typed result contracts. A worker that cannot produce a
|
|
80
|
+
conforming answer fails loudly instead of returning confident prose.
|
|
81
|
+
- **Your cluster is the runtime.** Declare your nodes and the same worker
|
|
82
|
+
protocol tunnels over SSH with the same prompts, the same safety matrix, and
|
|
83
|
+
the same receipts. Placement is deterministic and pinnable; capacity is
|
|
84
|
+
governed by durable leases that survive process death.
|
|
85
|
+
- **Everything is auditable.** Every run seals a receipt covering tokens,
|
|
86
|
+
priced cost, tool activity, safety decisions, routing, worker attestation,
|
|
87
|
+
and result conformance. Default-on scientific commit provenance adds only
|
|
88
|
+
the assistance, testing, review, and contributor trailers that this evidence
|
|
89
|
+
justifies; it never replaces the human author. Nothing in the audit trail is
|
|
90
|
+
reconstructed from prose.
|
|
91
|
+
- **Science is a first-class domain.**
|
|
92
|
+
[clio-kit](https://github.com/iowarp/clio-kit) adds MCP servers for HDF5,
|
|
93
|
+
Slurm, ParaView, Pandas, NetCDF, FITS, Zarr, and ArXiv, and the shipped
|
|
94
|
+
skills catalog includes scientific debugging and experiment-protocol guides.
|
|
95
|
+
|
|
96
|
+
## Your models, your choice
|
|
97
|
+
|
|
98
|
+
Clio treats models as named **targets**: a runtime, an endpoint, a model, and
|
|
99
|
+
credentials. Interactive chat and fleet dispatch can route through different
|
|
100
|
+
targets independently, so a strong orchestrator can direct cheap local muscle,
|
|
101
|
+
or the reverse.
|
|
102
|
+
|
|
103
|
+
| Runtime id | Serves |
|
|
206
104
|
| --- | --- |
|
|
207
105
|
| `llamacpp`, `llamacpp-anthropic`, `llamacpp-completion` | llama.cpp and llama-swap routers |
|
|
208
|
-
| `lmstudio
|
|
106
|
+
| `lmstudio` | LM Studio |
|
|
209
107
|
| `ollama-native` | Ollama |
|
|
210
108
|
| `vllm`, `sglang` | vLLM and SGLang |
|
|
211
109
|
| `lemonade`, `lemonade-anthropic` | Lemonade |
|
|
212
110
|
| `openai-compat`, `anthropic-compat` | Any OpenAI- or Anthropic-shaped endpoint |
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
111
|
+
| `openai`, `anthropic`, `google`, `groq`, `mistral`, `deepseek`, `openrouter`, `bedrock` | Cloud APIs |
|
|
112
|
+
| `alcf` | Argonne's Sophia and Metis gateways over Globus OAuth ([guide](docs/alcf-provider.md)) |
|
|
113
|
+
| `anthropic-max`, `openai-codex` | Your Claude Pro/Max or ChatGPT Plus/Pro subscription |
|
|
114
|
+
| `claude-sdk`, `claude-code`, `antigravity-code` | Claude Code and Google Antigravity as workers behind Clio's permission gate |
|
|
115
|
+
|
|
116
|
+
**One GPU with 24 GB or more?** Serve **Qwen3.8-27B** (the
|
|
117
|
+
`unsloth/Qwen3.8-27B-GGUF` quantizations) and point both the chat and fleet
|
|
118
|
+
targets at it. It is the model this release was hardened against on llama.cpp
|
|
119
|
+
and LM Studio: a 4-bit quantization at 131072 context fits in 24 GB with a
|
|
120
|
+
q8_0 KV cache, tool calls and reasoning parse cleanly on both runtimes, and
|
|
121
|
+
Clio's `thinkingLevel` drives the model's reasoning effort per request. Start
|
|
122
|
+
llama.cpp with `--jinja --reasoning on`; LM Studio needs nothing beyond loading
|
|
123
|
+
the model. Quantization and context-window details for this and other families
|
|
124
|
+
live in [docs/model-catalog.md](docs/model-catalog.md).
|
|
125
|
+
|
|
126
|
+
Scripting the same setup the wizard performs:
|
|
224
127
|
|
|
225
128
|
```bash
|
|
226
|
-
clio-coder
|
|
227
|
-
|
|
129
|
+
clio-coder configure --id local-lmstudio --runtime lmstudio \
|
|
130
|
+
--url http://localhost:1234 --model your-model-id \
|
|
131
|
+
--set-orchestrator --set-fleet-default
|
|
132
|
+
clio-coder targets --probe
|
|
228
133
|
|
|
229
|
-
clio-coder
|
|
230
|
-
clio-coder configure --id
|
|
134
|
+
clio-coder auth login anthropic-max # or: openai-codex
|
|
135
|
+
clio-coder configure --id claude-sub --runtime anthropic-max --model claude-sonnet-5 --set-orchestrator
|
|
231
136
|
```
|
|
232
137
|
|
|
233
|
-
Pick model ids from `clio-coder models --target <id>` after login.
|
|
234
|
-
|
|
235
138
|
> [!NOTE]
|
|
236
139
|
> Connecting a Claude Pro/Max subscription over OAuth uses the same path as
|
|
237
140
|
> Claude Code. Using subscription credentials outside a vendor's first-party
|
|
238
141
|
> apps may not align with their terms of service. Enable at your own
|
|
239
142
|
> discretion.
|
|
240
143
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
permission gating in front of them.
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
claude auth login # authenticate the official Claude CLI first
|
|
144
|
+
The full reference, including fleet profiles, per-agent target bindings, and
|
|
145
|
+
keeping a small scout model resident beside your main model, is
|
|
146
|
+
[docs/configuration-and-targets.md](docs/configuration-and-targets.md).
|
|
248
147
|
|
|
249
|
-
|
|
250
|
-
clio-coder configure --id claude-sdk-worker --runtime claude-sdk --model sonnet --set-fleet-default
|
|
148
|
+
## At the keyboard
|
|
251
149
|
|
|
252
|
-
|
|
253
|
-
|
|
150
|
+
Run `clio-coder` from the repository you want to work on. The session opens on a
|
|
151
|
+
one-line header that names where Clio is working, which route answers, and
|
|
152
|
+
whether project context is ready, and then the transcript owns the screen.
|
|
153
|
+
Tool calls render as live rows with their verdicts, successful edits render as
|
|
154
|
+
numbered diffs, and `!` runs a shell command in the same transcript.
|
|
254
155
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
156
|
+
| You want to | Type |
|
|
157
|
+
| --- | --- |
|
|
158
|
+
| Change model, target, thinking level, autonomy, or terminal options | `/settings`, `/model`, `/thinking` |
|
|
159
|
+
| See what is in the context window and what it costs | `/context`, `/cost` |
|
|
160
|
+
| Branch, revisit, or pick up a session | `/tree`, `/fork`, `/resume`, `/new` |
|
|
161
|
+
| Delegate to a fleet agent and watch it work | `/run coder "..."`, `/tasks`, `Alt+W` |
|
|
162
|
+
| Load a skill or bootstrap project context | `/skill <name>`, `/context init` |
|
|
163
|
+
| Save a self-contained HTML transcript | `/export` (an explicit `.md` path keeps Markdown) |
|
|
164
|
+
| Everything else | `/help` |
|
|
165
|
+
|
|
166
|
+
Enter while Clio is running steers the current turn; `Alt+Enter` queues a
|
|
167
|
+
follow-up; `Esc` cancels. Settings → Terminal offers an opt-in fullscreen mode
|
|
168
|
+
with a sticky composer beneath an independently scrollable transcript; regular
|
|
169
|
+
terminal scrollback is the default. The complete command and keybinding
|
|
170
|
+
reference is [docs/commands-and-modes.md](docs/commands-and-modes.md).
|
|
171
|
+
|
|
172
|
+
Outside the TUI, the same engine runs headless and speaks to editors:
|
|
263
173
|
|
|
264
174
|
```bash
|
|
265
|
-
clio-coder
|
|
266
|
-
clio-coder
|
|
267
|
-
clio-coder
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
clio-coder targets profile claude-sdk claude-worker --model sonnet
|
|
271
|
-
clio-coder run --agent coder "Refactor src/engine/parser.ts"
|
|
175
|
+
clio-coder run "Summarize this repository layout and its entry points." # one turn
|
|
176
|
+
clio-coder run "<task>" --json # JSONL events for scripts
|
|
177
|
+
clio-coder run "<task>" --agent coder # one fleet agent, with a receipt
|
|
178
|
+
clio-coder acp # Agent Client Protocol over stdio
|
|
272
179
|
```
|
|
273
180
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
### Keeping a scout model resident
|
|
277
|
-
|
|
278
|
-
Fast scout agents work best when a small scout model is already loaded beside
|
|
279
|
-
your main coding model on a local router. This is only safe when the combined
|
|
280
|
-
weights, KV caches, context windows, and parallel slots fit in GPU memory. If
|
|
281
|
-
the router spills into CPU RAM, both scout calls and main turns get slow.
|
|
282
|
-
|
|
283
|
-
Load both models manually on the target host, then point the orchestrator and
|
|
284
|
-
the scout worker profile at them. On llama.cpp routers, keep `max_instances`
|
|
285
|
-
at least as high as the number of models you want resident. Clio can see which
|
|
286
|
-
router instances are loaded and the router's instance limit, but current
|
|
287
|
-
llama.cpp router responses do not expose free VRAM, so confirming the loaded
|
|
288
|
-
set fits remains the operator's job. Workers on other nodes are unaffected.
|
|
289
|
-
|
|
290
|
-
## Safety and autonomy
|
|
181
|
+
## Safety you can read
|
|
291
182
|
|
|
292
|
-
|
|
293
|
-
|
|
183
|
+
One tool surface, one admission path. What changes is the autonomy level, set
|
|
184
|
+
in `/settings` or per run with `--autonomy`.
|
|
294
185
|
|
|
295
186
|
| Level | Behavior |
|
|
296
187
|
| --- | --- |
|
|
@@ -299,39 +190,19 @@ level, set in `/settings` or overridden for a single run with `--autonomy`.
|
|
|
299
190
|
| `auto-edit` | File edits proceed; execution and dispatch still gate. |
|
|
300
191
|
| `full-auto` | Approved classes proceed unattended, still inside damage-control rules. |
|
|
301
192
|
|
|
302
|
-
|
|
193
|
+
Every notice names its mechanism so you always know who stopped a call:
|
|
303
194
|
`[safety-net]` for level-independent blocks, `[approval]` for parked calls,
|
|
304
195
|
`[autonomy]` for read-only denials, and `[middleware]` for hook diagnostics.
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
only narrow it, and reviewers and judges always run read-only. A `&&` chain is
|
|
308
|
-
judged at its most restrictive recognized member and refused whole if any
|
|
309
|
-
member is unrecognized, and `/tmp`, `/var/tmp`, and `/var/folders` are scratch
|
|
310
|
-
while the rest of the system roots stay protected. Details:
|
|
196
|
+
Workers can never exceed the orchestrator's authority; a dispatch can only
|
|
197
|
+
narrow it, and reviewers and judges always run read-only. Details:
|
|
311
198
|
[docs/safety-model.md](docs/safety-model.md).
|
|
312
199
|
|
|
313
|
-
##
|
|
314
|
-
|
|
315
|
-
Clio's orchestrator delegates work to bounded workers. With a fleet declared,
|
|
316
|
-
those workers run on other machines over SSH while every guarantee holds: one
|
|
317
|
-
admission path, one autonomy matrix, one receipt chain.
|
|
318
|
-
|
|
319
|
-
```mermaid
|
|
320
|
-
flowchart LR
|
|
321
|
-
U["you"] --> O["orchestrator TUI"]
|
|
322
|
-
O --> P["execution plan<br/>hashed DAG, capacity waves"]
|
|
323
|
-
P --> A["admission<br/>leases, queue, cost ceiling"]
|
|
324
|
-
A --> L["local worker"]
|
|
325
|
-
A --> S1["ssh node: node-a"]
|
|
326
|
-
A --> S2["ssh node: node-b"]
|
|
327
|
-
L --> R["receipts and evidence"]
|
|
328
|
-
S1 --> R
|
|
329
|
-
S2 --> R
|
|
330
|
-
R --> O
|
|
331
|
-
```
|
|
200
|
+
## One machine or the whole cluster
|
|
332
201
|
|
|
333
|
-
|
|
334
|
-
|
|
202
|
+
Clio's orchestrator delegates to bounded workers. Declare a fleet and those
|
|
203
|
+
workers run on other machines over SSH while every guarantee holds: one
|
|
204
|
+
admission path, one autonomy matrix, one receipt chain. The implicit `local`
|
|
205
|
+
node is always present.
|
|
335
206
|
|
|
336
207
|
```yaml
|
|
337
208
|
fleet:
|
|
@@ -339,149 +210,129 @@ fleet:
|
|
|
339
210
|
- id: node-a
|
|
340
211
|
host: node-a.example.net
|
|
341
212
|
maxWorkers: 2
|
|
342
|
-
residency: observe
|
|
343
213
|
- id: node-b
|
|
344
214
|
host: node-b.example.net
|
|
345
215
|
maxWorkers: 1
|
|
346
216
|
```
|
|
347
217
|
|
|
348
|
-
|
|
349
|
-
drives and observes
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
## Project context: CLIO-CODER.md
|
|
384
|
-
|
|
385
|
-
Clio loads a local `CLIO-CODER.md` as generated project context on every session.
|
|
386
|
-
`clio-coder context init` grounds a draft in the actual source tree, preserves an
|
|
387
|
-
existing handbook until an explicit replacement action, and can adopt existing
|
|
388
|
-
`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context with
|
|
389
|
-
provenance and conflict reporting. `CLIO-CODER.md` is a gitignored runtime artifact,
|
|
390
|
-
not canonical repository documentation.
|
|
218
|
+
`clio-coder doctor` preflights every node, `clio-coder fleet list|run|status`
|
|
219
|
+
drives and observes work, and `clio-coder fleet drain|resume` closes or reopens
|
|
220
|
+
admission without interrupting running work. Nodes share the project
|
|
221
|
+
filesystem at the same absolute path, and a target URL resolves on the node the
|
|
222
|
+
worker runs on, so `localhost` means that node's own inference server. The
|
|
223
|
+
end-to-end walkthrough, including a recorded multi-node demo, is in
|
|
224
|
+
[docs/fleet-dispatch.md](docs/fleet-dispatch.md) and
|
|
225
|
+
[docs/fleet-demo-runbook.md](docs/fleet-demo-runbook.md).
|
|
226
|
+
|
|
227
|
+
## Teach it your project
|
|
228
|
+
|
|
229
|
+
**`CLIO-CODER.md`** is the project handbook Clio loads on every session.
|
|
230
|
+
`clio-coder context init` drafts one from your actual source tree and can adopt
|
|
231
|
+
existing `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, Cursor, and Copilot context
|
|
232
|
+
with provenance. It is yours to edit and version; Clio's own runtime state
|
|
233
|
+
stays in a gitignored `.clio-coder/`. A `CLIO-CODER.override.md` in a
|
|
234
|
+
subdirectory replaces inherited guidance for that subtree.
|
|
235
|
+
|
|
236
|
+
**The codewiki** from `clio-coder context index` is a structural map the
|
|
237
|
+
`code_nav` tool navigates, so a model finds a symbol without reading half the
|
|
238
|
+
repository into its window.
|
|
239
|
+
|
|
240
|
+
**Skills** are reusable `SKILL.md` guides the model loads on demand, discovered
|
|
241
|
+
from per-user and per-project roots including `.claude/skills` and
|
|
242
|
+
`.codex/skills`. The shipped [catalog](skills/README.md) pins content hashes so
|
|
243
|
+
an installed copy verifies against its audited source, and
|
|
244
|
+
`clio-coder skills eval <name>` runs a skill's executable evals instead of
|
|
245
|
+
trusting the prose.
|
|
246
|
+
|
|
247
|
+
**Task memory** keeps long runs from drifting: a rules-only tier with no model
|
|
248
|
+
calls watches tool and lifecycle hooks and surfaces advisory reminders at the
|
|
249
|
+
right boundaries, `/memory` inspects it, and durable lessons are reviewed with
|
|
250
|
+
`clio-coder memory list|propose|approve|reject|prune`. Design notes:
|
|
251
|
+
[docs/proactive-memory.md](docs/proactive-memory.md).
|
|
391
252
|
|
|
392
|
-
|
|
393
|
-
`code_nav` tool navigates, so a model can find a symbol without reading half
|
|
394
|
-
the repository into its window.
|
|
253
|
+
## Install
|
|
395
254
|
|
|
396
|
-
|
|
255
|
+
- Node.js `>=22.19.0` and npm
|
|
256
|
+
- Linux or macOS. Windows is best effort until a stable release.
|
|
257
|
+
- At least one model target from the table above
|
|
397
258
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
skill's `allowed-tools` declaration is enforced at tool admission, and a skill
|
|
402
|
-
can ship executable RED-GREEN evals that `clio-coder skills eval <name>` runs
|
|
403
|
-
instead of trusting the prose.
|
|
259
|
+
From npm, [Get started](#get-started) is the whole install. `clio-coder upgrade`
|
|
260
|
+
moves an existing install to the latest release; `--channel=beta` follows a
|
|
261
|
+
dist-tag instead.
|
|
404
262
|
|
|
405
|
-
|
|
406
|
-
provenance frontmatter, evals, and content hashes pinned in
|
|
407
|
-
`skills/registry.yaml`, so an installed copy verifies against its audited
|
|
408
|
-
source at activation. Nothing auto-loads.
|
|
263
|
+
From source, pinned to this release:
|
|
409
264
|
|
|
410
265
|
```bash
|
|
411
|
-
|
|
412
|
-
clio-coder
|
|
266
|
+
git clone --branch v0.3.3 https://github.com/iowarp/clio-coder.git
|
|
267
|
+
cd clio-coder
|
|
268
|
+
npm run install:local
|
|
269
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
270
|
+
hash -r
|
|
271
|
+
"$HOME/.local/bin/clio-coder" --version
|
|
413
272
|
```
|
|
414
273
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
274
|
+
`npm run install:local` builds the CLI, links it at
|
|
275
|
+
`${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder`, and initializes the home.
|
|
276
|
+
Put the `export PATH` line in your shell profile. If an older install is on your
|
|
277
|
+
`PATH`, `command -v clio-coder` shows which file the bare name reaches; the
|
|
278
|
+
installer warns when it finds one.
|
|
419
279
|
|
|
420
|
-
|
|
280
|
+
To remove it, preview first:
|
|
421
281
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
282
|
+
```bash
|
|
283
|
+
clio-coder uninstall --dry-run
|
|
284
|
+
clio-coder uninstall --remove-binary --force
|
|
285
|
+
```
|
|
426
286
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
tool surface never change, `/memory` inspects the bank, and disabling
|
|
430
|
-
`memory.intervention.enabled` removes the whole mechanism. Durable lessons are
|
|
431
|
-
separate, scoped, evidence-linked, and managed through `clio-coder memory
|
|
432
|
-
list|propose|approve|reject|prune`. Design notes:
|
|
433
|
-
[docs/proactive-memory.md](docs/proactive-memory.md).
|
|
287
|
+
Full lifecycle details, including `reset` and the upgrade path, are in
|
|
288
|
+
[docs/installation-and-lifecycle.md](docs/installation-and-lifecycle.md).
|
|
434
289
|
|
|
435
290
|
## Status
|
|
436
291
|
|
|
437
|
-
|
|
438
|
-
**v0.3.1**, installable from npm as
|
|
292
|
+
The current release is **v0.3.3**, installable from npm as
|
|
439
293
|
[`@iowarp/clio-coder`](https://www.npmjs.com/package/@iowarp/clio-coder) or
|
|
440
|
-
from source.
|
|
441
|
-
model-specific behavior varies by target
|
|
442
|
-
|
|
443
|
-
Release notes live in the [CHANGELOG](CHANGELOG.md)
|
|
444
|
-
behind each entry lives in the commit history, and every release is gated by
|
|
294
|
+
from source. Clio Coder is still experimental: we ship quickly, interfaces may
|
|
295
|
+
change between minor versions, and model-specific behavior varies by target, so
|
|
296
|
+
keep important repositories under version control and review what it proposes.
|
|
297
|
+
Release notes live in the [CHANGELOG](CHANGELOG.md); every release is gated by
|
|
445
298
|
the deterministic `npm run ci:release` suite.
|
|
446
299
|
|
|
447
|
-
|
|
300
|
+
### Troubleshooting
|
|
448
301
|
|
|
449
302
|
| Problem | Try this |
|
|
450
303
|
| --- | --- |
|
|
451
304
|
| `clio-coder: command not found` | Run `npm run install:local`, then `hash -r`; confirm `${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}` is on `PATH`. |
|
|
452
305
|
| No model target is available | Run `clio-coder configure`, then `clio-coder targets --probe`. |
|
|
453
|
-
| Local model does not respond | Confirm the
|
|
306
|
+
| Local model does not respond | Confirm the server is running and the target URL is correct; `clio-coder targets` shows what Clio sees. |
|
|
454
307
|
| Cloud model auth fails | Check `clio-coder auth status <target>` and verify the API key or login flow. |
|
|
455
308
|
| A fleet node never gets work | Run `clio-coder doctor`; per-node preflight reports filesystem parity and target facts. |
|
|
456
|
-
| Source changes do not appear | Re-run `npm run build`; the linked CLI points at `dist/`. |
|
|
457
309
|
| State appears corrupted | Run `clio-coder doctor`, then `clio-coder doctor --fix`. |
|
|
458
310
|
|
|
459
|
-
When filing an issue, include
|
|
460
|
-
|
|
461
|
-
|
|
311
|
+
When filing an issue, include `clio-coder --version`, `node --version`,
|
|
312
|
+
`clio-coder doctor`, and `clio-coder targets`. Redact secrets, private prompts,
|
|
313
|
+
logs, and proprietary code. [docs/troubleshooting.md](docs/troubleshooting.md)
|
|
314
|
+
is keyed by exact user-facing messages.
|
|
462
315
|
|
|
463
316
|
---
|
|
464
317
|
|
|
465
318
|
# For agents
|
|
466
319
|
|
|
467
320
|
If you are an AI agent operating inside this repository or driving Clio as a
|
|
468
|
-
tool,
|
|
321
|
+
tool, start here.
|
|
469
322
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
The indexed entry points are `src/cli/index.ts`, `src/domains/agents/index.ts`,
|
|
323
|
+
**Orient from the index, not from a wide read.** `clio-coder context index`
|
|
324
|
+
builds a codewiki over the roughly 1,200 source and test files; use `code_nav`
|
|
325
|
+
in `entries`, `path`, or `symbol` mode first. The indexed entry points are
|
|
326
|
+
`src/cli/index.ts`, `src/domains/agents/index.ts`,
|
|
475
327
|
`src/domains/components/index.ts`, `src/domains/config/index.ts`,
|
|
476
328
|
`src/domains/context/bootstrap.ts`, `src/domains/context/index.ts`,
|
|
477
|
-
`src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`.
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
## The tool surface
|
|
329
|
+
`src/domains/dispatch/index.ts`, and `src/domains/eval/index.ts`. Then read the
|
|
330
|
+
local `CLIO-CODER.md`; it carries the project-specific invariants and traps
|
|
331
|
+
that are not obvious from the source. `docs/` is source-aligned: when prose and
|
|
332
|
+
source disagree, trust source, tests, and `CHANGELOG.md`.
|
|
482
333
|
|
|
483
|
-
|
|
484
|
-
class, size posture, result schema, and concurrency rule.
|
|
334
|
+
**The tool surface** is twenty tools in seven planes. Each plane is one policy
|
|
335
|
+
unit covering action class, size posture, result schema, and concurrency rule.
|
|
485
336
|
|
|
486
337
|
| Plane | Tools | Posture |
|
|
487
338
|
| --- | --- | --- |
|
|
@@ -494,298 +345,118 @@ class, size posture, result schema, and concurrency rule.
|
|
|
494
345
|
| ARTIFACT | `artifact` | Plans, reviews, and reports as durable artifacts |
|
|
495
346
|
|
|
496
347
|
Every observation carries a truncation envelope with offload paths and next
|
|
497
|
-
hints, so a large result is bounded rather than silently cut.
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
to the background as a detached batch, which review gates, compete, pipelines,
|
|
519
|
-
and time-boxed calls refuse with a reason.
|
|
520
|
-
|
|
521
|
-
Admission refuses a pairing it can prove impossible, such as a pinned read-only
|
|
522
|
-
recipe aimed at mutation work, and flags the receipt where it is unsure rather
|
|
523
|
-
than blocking. Claimed file changes and validation commands are checked against
|
|
524
|
-
the run's own tool events, so a path the run never wrote cannot seal as done.
|
|
525
|
-
|
|
526
|
-
## Execution roles and typed results
|
|
527
|
-
|
|
528
|
-
Every dispatch carries an `ExecutionRole`: `builder`, `reviewer`, `judge`,
|
|
529
|
-
`researcher`, `verifier`, or `recovery`. The role is typed on every request,
|
|
530
|
-
ledger envelope, receipt, route candidate, plan task, and route decision.
|
|
531
|
-
Route statistics never mix roles, and any attempt after the first is
|
|
532
|
-
`recovery`.
|
|
533
|
-
|
|
534
|
-
Workers answer typed terminal contracts, not trailing prose. A `scout-report`
|
|
535
|
-
carries findings as `{claim, path, line}`, and grounding is structural rather
|
|
536
|
-
than a regex over prose: a cited line must fall inside a span this run
|
|
537
|
-
actually read, so an estimated line number cannot pass as an observation. A
|
|
538
|
-
worker validates its own result and spends a bounded number of repair rounds
|
|
539
|
-
before failing the run; the orchestrator's sealed validation is the authority.
|
|
540
|
-
|
|
541
|
-
Review and compete gates default to the builtin `verifier` and never fall back
|
|
542
|
-
to the builder agent. A gate decider's postcondition is the gate result
|
|
543
|
-
contract, not its own recipe contract.
|
|
544
|
-
|
|
545
|
-
## The built-in fleet
|
|
546
|
-
|
|
547
|
-
`architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`, `scout`,
|
|
548
|
-
`researcher`, `provenance`, and `git-master`. Each is a versioned frontmatter
|
|
549
|
-
recipe with an explicit tool profile, call and cost budget, and result
|
|
550
|
-
contract. Malformed custom recipes are quarantined with a diagnostic; malformed
|
|
551
|
-
builtins fail startup. Reference:
|
|
552
|
-
[docs/built-in-agents.md](docs/built-in-agents.md).
|
|
553
|
-
|
|
554
|
-
This roster is compiled into the session prompt whenever the dispatch tool is
|
|
555
|
-
available, so pin an id from it. `agent: "auto"` baselines from task shape and
|
|
556
|
-
is a fallback, not a router.
|
|
557
|
-
|
|
558
|
-
## Programmatic interfaces
|
|
348
|
+
hints, so a large result is bounded rather than silently cut. Parameters and
|
|
349
|
+
payloads: [docs/tool-usage.md](docs/tool-usage.md).
|
|
350
|
+
|
|
351
|
+
**Dispatch** goes through one tool, one admission chain, and one autonomy
|
|
352
|
+
matrix. `task` runs one assignment; `tasks: [...]` fans out; `mode:
|
|
353
|
+
"sequential"` and `mode: "pipeline"` chain steps; `detach: true` returns ids to
|
|
354
|
+
collect later with `monitor` in `collect` mode; `review: {...}` adds a
|
|
355
|
+
read-only verifier gate; `mode: "compete"` runs two to four candidates in
|
|
356
|
+
scratch worktrees behind a read-only judge. Every dispatch carries a typed
|
|
357
|
+
`ExecutionRole` and answers a typed result contract; a cited line in a
|
|
358
|
+
`scout-report` must fall inside a span the run actually read. The built-in
|
|
359
|
+
fleet is `architect`, `coder`, `tester`, `verifier`, `debugger`, `documenter`,
|
|
360
|
+
`scout`, `researcher`, `provenance`, and `git-master`
|
|
361
|
+
([docs/built-in-agents.md](docs/built-in-agents.md)); pin an id from it, since
|
|
362
|
+
`agent: "auto"` is a fallback, not a router.
|
|
363
|
+
|
|
364
|
+
**Every run seals a receipt** covering routing intent, the resolved route,
|
|
365
|
+
worker attestation, priced cost, phase timing, tool activity, safety decisions,
|
|
366
|
+
and result conformance. `clio-coder evidence inspect` and `/view verify <runId>`
|
|
367
|
+
check them; `clio-coder trace` reads the same store.
|
|
368
|
+
[docs/observability.md](docs/observability.md) has the shapes.
|
|
559
369
|
|
|
560
370
|
```bash
|
|
561
371
|
clio-coder run "<task>" --json # one headless turn, JSONL events
|
|
562
|
-
clio-coder
|
|
563
|
-
clio-coder acp # serve ACP v1 over stdio for ACP frontends
|
|
372
|
+
clio-coder acp # ACP v1 over stdio
|
|
564
373
|
clio-coder fleet run <contract> # run a fleet DAG contract
|
|
565
|
-
clio-coder fleet drain # pause new execution starts for up to one hour
|
|
566
|
-
clio-coder fleet resume # reopen durable dispatch admission
|
|
567
374
|
clio-coder evidence build|inspect|list # deterministic evidence artifacts
|
|
568
375
|
clio-coder eval validate|run|report|compare|gate
|
|
569
376
|
```
|
|
570
377
|
|
|
571
|
-
Dispatch can also delegate to external ACP agents while Clio mediates
|
|
572
|
-
permissions. Clio implements the
|
|
573
|
-
[Agent Client Protocol](https://agentclientprotocol.com) so the engine stays
|
|
574
|
-
decoupled from IDE frontends.
|
|
575
|
-
|
|
576
|
-
## What gets recorded
|
|
577
|
-
|
|
578
|
-
Every run seals a receipt. Receipt integrity is at v15 and covers normalized
|
|
579
|
-
routing intent, the resolved route, worker attestation, priced cost, phase
|
|
580
|
-
timing, tool activity, safety decisions, and result-contract conformance.
|
|
581
|
-
Gate decisions are v2 artifacts that seal route correlation across agent,
|
|
582
|
-
target, model family, runtime, and node, and they cross a staged durable
|
|
583
|
-
boundary rather than being written directly.
|
|
584
|
-
|
|
585
|
-
A worker attests its protocol version, pid, process-group id, host, settings
|
|
586
|
-
fingerprint, WorkerSpec digest, runtime, target, endpoint identity hash, wire
|
|
587
|
-
model, effective tool signature, and bounded resource facts before any model
|
|
588
|
-
call. Any drift from the approved identity kills the worker.
|
|
589
|
-
|
|
590
|
-
`clio-coder trace` reads the same store and now records interactive turns beside
|
|
591
|
-
dispatched runs, one event per tool call with its verdict.
|
|
592
|
-
|
|
593
|
-
Verify from the TUI with `/view verify <runId>`, or from the shell with `clio-coder evidence inspect`. See [docs/observability.md](docs/observability.md).
|
|
594
|
-
|
|
595
378
|
---
|
|
596
379
|
|
|
597
380
|
# For contributors
|
|
598
381
|
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
```mermaid
|
|
605
|
-
flowchart TB
|
|
606
|
-
CLI["src/cli"] --> ENG["src/engine"]
|
|
607
|
-
TUI["src/interactive"] --> ENG
|
|
608
|
-
ENG --> TOOLS["src/tools<br/>20 typed tools, 7 planes"]
|
|
609
|
-
ENG --> DOM["src/domains"]
|
|
610
|
-
DOM --> DISP["dispatch<br/>plans, leases, routing, receipts"]
|
|
611
|
-
DOM --> CTX["context<br/>codewiki, compaction, CLIO-CODER.md"]
|
|
612
|
-
DOM --> PROV["providers<br/>runtimes, auth, catalog"]
|
|
613
|
-
DOM --> SAFE["safety<br/>damage control, policy"]
|
|
614
|
-
DISP --> WORK["src/worker<br/>bounded worker runtime"]
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
The largest indexed areas are `src/domains` (392 files), `tests/contracts`
|
|
618
|
-
(236), `src/interactive` (83), `src/cli` (48), `src/tools` (42), `src/engine`
|
|
619
|
-
(40), and `src/core` (35). Compile-time boundaries between domains are
|
|
620
|
-
enforced by a test suite, not by convention. Read
|
|
621
|
-
[docs/architecture.md](docs/architecture.md) before adding a cross-domain
|
|
622
|
-
import.
|
|
623
|
-
|
|
624
|
-
## Local development
|
|
382
|
+
The fastest way in is to fix something you hit while using Clio on your own
|
|
383
|
+
research code. [CONTRIBUTING.md](CONTRIBUTING.md) covers setup, architecture
|
|
384
|
+
invariants, branch and commit conventions, and the review rubric; security
|
|
385
|
+
reports go through [SECURITY.md](SECURITY.md), not public issues.
|
|
625
386
|
|
|
626
387
|
```bash
|
|
627
388
|
npm ci
|
|
628
|
-
npm run dev
|
|
629
|
-
npm run ci
|
|
389
|
+
npm run dev # tsup watch build
|
|
390
|
+
npm run ci # typecheck, lint and hygiene, skills pin check, build, tests
|
|
391
|
+
npm run ci:release # ci plus the dist and package audit that gates a release
|
|
630
392
|
```
|
|
631
393
|
|
|
632
|
-
Targeted checks when the risk is narrower:
|
|
633
|
-
|
|
634
394
|
| Check | Command |
|
|
635
395
|
| --- | --- |
|
|
636
396
|
| Types | `npm run typecheck` |
|
|
637
|
-
| Style | `npm run lint` |
|
|
638
|
-
|
|
|
639
|
-
| Smoke flows | `npm run test:smoke` |
|
|
640
|
-
| Domain boundaries | `npm run check:boundaries` |
|
|
397
|
+
| Style and domain boundaries | `npm run lint` |
|
|
398
|
+
| One suite | `npm run test:file -- tests/contracts/<name>.test.ts` |
|
|
641
399
|
| Everything | `npm run test` |
|
|
642
400
|
|
|
643
401
|
Conventions worth knowing before your first PR: local imports end in `.js`,
|
|
644
|
-
tests use `node:test`,
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
That runs typecheck, Biome, the skills pin check, the production build, the
|
|
653
|
-
contract, smoke, and boundary suites, and the `check-release` dist and package
|
|
654
|
-
audit. Live model validation is separate, manual, and opt-in, because no
|
|
655
|
-
deterministic suite can promise that every local model behaves identically:
|
|
656
|
-
|
|
657
|
-
```bash
|
|
658
|
-
CLIO_CODER_LIVE_SMOKE=1 \
|
|
659
|
-
CLIO_CODER_LIVE_TARGET=openai-compat \
|
|
660
|
-
CLIO_CODER_LIVE_RUNTIME=openai-compat \
|
|
661
|
-
CLIO_CODER_LIVE_MODEL=your-model \
|
|
662
|
-
CLIO_CODER_LIVE_BASE_URL=http://localhost:8080/v1 \
|
|
663
|
-
npm run test:live
|
|
664
|
-
|
|
665
|
-
CLIO_CODER_LIVE_SMOKE=1 npm run test:live -- --delegation # needs local opencode and copilot
|
|
666
|
-
npm run test:live-eval:fleet-dispatch # multi-node dispatch regression
|
|
667
|
-
```
|
|
668
|
-
|
|
669
|
-
Benchmarks against public suites live under `benchmarks/`:
|
|
670
|
-
|
|
671
|
-
```bash
|
|
672
|
-
npm run bench:swe # SWE-bench Lite
|
|
673
|
-
npm run bench:scicode # SciCode
|
|
674
|
-
npm run bench:tb # Terminal-Bench
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
## Where to start
|
|
678
|
-
|
|
679
|
-
Read [CONTRIBUTING.md](CONTRIBUTING.md) for setup, architecture invariants,
|
|
680
|
-
branch and commit conventions, and the review rubric. Good first areas:
|
|
681
|
-
provider adapters for a runtime you use
|
|
682
|
-
([cookbook](docs/provider-adapter-cookbook.md)), skills for a scientific
|
|
683
|
-
domain you know ([catalog](skills/README.md)), and documentation gaps you hit
|
|
684
|
-
during onboarding.
|
|
685
|
-
|
|
686
|
-
Security reports go through [SECURITY.md](SECURITY.md), not public issues.
|
|
687
|
-
|
|
688
|
-
---
|
|
402
|
+
tests use `node:test`, `any` needs a tracking issue, and compile-time
|
|
403
|
+
boundaries between domains are enforced by the hygiene lint rather than by
|
|
404
|
+
convention. Read [docs/architecture.md](docs/architecture.md) before adding a
|
|
405
|
+
cross-domain import. Live model validation (`npm run test:live`) and the
|
|
406
|
+
SWE-bench, SciCode, and Terminal-Bench harnesses under `benchmarks/` are
|
|
407
|
+
separate and opt-in, because no deterministic suite can promise that every
|
|
408
|
+
local model behaves identically.
|
|
689
409
|
|
|
690
410
|
## Documentation
|
|
691
411
|
|
|
692
|
-
The full set lives under [docs/](docs/README.md)
|
|
693
|
-
|
|
412
|
+
The full set lives under [docs/](docs/README.md); from a source checkout,
|
|
413
|
+
`clio-coder docs` serves the interactive blueprints locally. The pages people
|
|
414
|
+
reach for most:
|
|
694
415
|
|
|
695
416
|
| Topic | Guide |
|
|
696
417
|
| --- | --- |
|
|
697
|
-
| Commands, slash commands,
|
|
698
|
-
|
|
|
699
|
-
|
|
|
700
|
-
|
|
|
701
|
-
|
|
|
702
|
-
|
|
|
703
|
-
|
|
|
704
|
-
|
|
|
705
|
-
|
|
|
706
|
-
|
|
|
707
|
-
|
|
|
708
|
-
|
|
|
709
|
-
|
|
|
710
|
-
|
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
| Runtime model refresh, catalog sources, local and cloud model quirks | [model-catalog.md](docs/model-catalog.md) |
|
|
719
|
-
| Active component snapshots and the experimental middleware hook contract | [middleware-and-components.md](docs/middleware-and-components.md) |
|
|
720
|
-
| Advisory validation-contract patterns for scientific artifacts and HPC assumptions | [scientific-validation.md](docs/scientific-validation.md) |
|
|
721
|
-
| Falsifiable Change Manifest templates, auditability, and `clio-coder evolve` | [evolution.md](docs/evolution.md) |
|
|
722
|
-
| Interface layout, palette, Unicode vocabulary, drawing choreography | [tui-design.md](docs/tui-design.md) |
|
|
723
|
-
| Source-first docs workflow, mapping matrix, alpha wording guidance | [documentation-guide.md](docs/documentation-guide.md) |
|
|
724
|
-
| Private context index determinism and target smoke matrices (internal) | [evals-internal.md](docs/evals-internal.md) |
|
|
725
|
-
| Point-in-time inventory of legacy environment variables (historical) | [config-knobs-audit.md](docs/config-knobs-audit.md) |
|
|
726
|
-
|
|
727
|
-
## Measuring local model performance
|
|
728
|
-
|
|
729
|
-
llama.cpp and similar backends often expose a single prefix-cache slot. When
|
|
730
|
-
dispatch traffic or compaction invalidates it, the next turn records the
|
|
731
|
-
expected-cold reasons and shows one dim notice. Per-call cache verdicts
|
|
732
|
-
(`hot`, `partial`, `cold`, `small`) are persisted with timing and prompt-cache
|
|
733
|
-
counters in each session's `context-snapshots.jsonl`, so a slow session can be
|
|
734
|
-
diagnosed from the ledger alone.
|
|
735
|
-
|
|
736
|
-
```bash
|
|
737
|
-
clio-coder usage report --days 7 # cost and token facts with cited run ids
|
|
738
|
-
```
|
|
739
|
-
|
|
740
|
-
Inside the TUI, `/cost` shows session totals and `/context` opens the
|
|
741
|
-
context-window ledger. See [docs/context-engine.md](docs/context-engine.md)
|
|
742
|
-
for how the context engine measures and protects the prompt prefix.
|
|
743
|
-
|
|
744
|
-
---
|
|
745
|
-
|
|
746
|
-
## Heritage, lineage, and funding
|
|
747
|
-
|
|
748
|
-
Clio Coder is developed under the [IOWarp](https://iowarp.ai) project by the
|
|
749
|
-
[Gnosis Research Center](https://grc.iit.edu) at the
|
|
750
|
-
[Illinois Institute of Technology](https://www.iit.edu) in collaboration with
|
|
751
|
-
the University of Utah.
|
|
752
|
-
|
|
753
|
-
IOWarp and the CLIO (Context Layer for Input/Output) architecture are funded by
|
|
754
|
-
the National Science Foundation under
|
|
418
|
+
| Commands, slash commands, keybindings, operating posture | [commands-and-modes.md](docs/commands-and-modes.md) |
|
|
419
|
+
| Targets, local model configuration, fleet profiles, auth | [configuration-and-targets.md](docs/configuration-and-targets.md) |
|
|
420
|
+
| Model catalog, quantizations, context windows, quirks | [model-catalog.md](docs/model-catalog.md) |
|
|
421
|
+
| Safety posture, default-deny Bash, damage-control rules | [safety-model.md](docs/safety-model.md) |
|
|
422
|
+
| Multi-node fleet dispatch and the demo runbook | [fleet-dispatch.md](docs/fleet-dispatch.md), [fleet-demo-runbook.md](docs/fleet-demo-runbook.md) |
|
|
423
|
+
| Built-in agents and dispatch admission | [built-in-agents.md](docs/built-in-agents.md) |
|
|
424
|
+
| Context window, token accounting, compaction | [context-engine.md](docs/context-engine.md) |
|
|
425
|
+
| Sessions, the ledger, `/tree`, `/fork`, `/resume` | [session-lifecycle.md](docs/session-lifecycle.md) |
|
|
426
|
+
| Receipts, evidence, and `clio-coder trace` | [observability.md](docs/observability.md) |
|
|
427
|
+
| The twenty tools, parameter by parameter | [tool-usage.md](docs/tool-usage.md) |
|
|
428
|
+
| Exit codes, `--help`, and `--json` contracts | [exit-codes-and-output.md](docs/exit-codes-and-output.md) |
|
|
429
|
+
| Install, upgrade, reset, uninstall | [installation-and-lifecycle.md](docs/installation-and-lifecycle.md) |
|
|
430
|
+
| Adding a runtime or inference server | [provider-adapter-cookbook.md](docs/provider-adapter-cookbook.md) |
|
|
431
|
+
| Source layout and domain boundaries | [architecture.md](docs/architecture.md) |
|
|
432
|
+
|
|
433
|
+
## Heritage
|
|
434
|
+
|
|
435
|
+
Clio Coder is developed by the [Gnosis Research Center](https://grc.iit.edu)
|
|
436
|
+
at the [Illinois Institute of Technology](https://www.iit.edu) in collaboration
|
|
437
|
+
with the University of Utah. IOWarp and the CLIO architecture are funded by the
|
|
438
|
+
National Science Foundation under
|
|
755
439
|
[Award #2411318](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318) for
|
|
756
440
|
2024 through 2029. Principal Investigator: Dr. Xian-He Sun. Co-Principal
|
|
757
441
|
Investigators: Dr. Anthony Kougkas, Dr. Jake Hochhalter, and Dr. Vivek
|
|
758
442
|
Srikumar.
|
|
759
443
|
|
|
760
444
|
Clio Coder is the interactive coding orchestrator in a larger ecosystem:
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
- **Anthropic Claude Agent SDK** through
|
|
777
|
-
[@anthropic-ai/claude-agent-sdk](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)
|
|
778
|
-
for Claude Code worker runs under Pro/Max subscriptions.
|
|
779
|
-
- **Agent Client Protocol** for decoupling the engine from IDE frontends.
|
|
780
|
-
- **Globus Auth** for authenticating against ALCF's Sophia and Metis inference
|
|
781
|
-
gateways.
|
|
782
|
-
|
|
783
|
-
### Evaluation
|
|
784
|
-
|
|
785
|
-
Subagents and prompt techniques are evaluated against
|
|
786
|
-
[SWE-bench](https://www.swebench.com) and SciCode. Every subagent run produces
|
|
787
|
-
structured execution evidence, matched against baseline and candidate
|
|
788
|
-
evaluations to catch silent regressions.
|
|
445
|
+
[clio-core](https://github.com/iowarp/clio-core) is the tiered data and context
|
|
446
|
+
storage layer, and [clio-kit](https://github.com/iowarp/clio-kit) is a suite of
|
|
447
|
+
[Model Context Protocol](https://modelcontextprotocol.io) servers exposing 150+
|
|
448
|
+
tools for scientific computing.
|
|
449
|
+
|
|
450
|
+
It is built on the **Pi Agent Framework** from
|
|
451
|
+
[Earendil Works](https://github.com/earendil-works)
|
|
452
|
+
([pi-ai](https://www.npmjs.com/package/@earendil-works/pi-ai),
|
|
453
|
+
[pi-tui](https://www.npmjs.com/package/@earendil-works/pi-tui), and
|
|
454
|
+
[pi-agent-core](https://www.npmjs.com/package/@earendil-works/pi-agent-core)),
|
|
455
|
+
the **Anthropic Claude Agent SDK** for Claude Code worker runs, the **Agent
|
|
456
|
+
Client Protocol** for editor frontends, and **Globus Auth** for ALCF's inference
|
|
457
|
+
gateways. Subagents and prompt techniques are evaluated against
|
|
458
|
+
[SWE-bench](https://www.swebench.com) and SciCode, with structured execution
|
|
459
|
+
evidence matched against baselines to catch silent regressions.
|
|
789
460
|
|
|
790
461
|
---
|
|
791
462
|
|