@iowarp/clio-coder 0.3.6 → 0.3.7
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 +28 -0
- package/README.md +16 -5
- package/dist/{acp-2BEHC4DL.js → acp-SK4MD6MM.js} +10 -10
- package/dist/{agents-LNNFTM53.js → agents-2FN2K6ME.js} +30 -25
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-KXXFI2VS.js → auth-QIYZWM5I.js} +13 -13
- package/dist/{chunk-KHSFENX2.js → chunk-3HAPLH5M.js} +10 -10
- package/dist/{chunk-24I7BN55.js → chunk-465YSENW.js} +2 -2
- package/dist/{chunk-4OC57DA6.js → chunk-4DGYLA73.js} +53 -2
- package/dist/{chunk-CYQKWTG3.js → chunk-4DWFMQDR.js} +4 -4
- package/dist/{chunk-E2ER4LJF.js → chunk-5C3AQNDW.js} +25 -1
- package/dist/{chunk-22NAGB7X.js → chunk-5C77SEEY.js} +5 -94
- package/dist/{chunk-43AOLP7E.js → chunk-5FR74PWO.js} +2 -1
- package/dist/{chunk-K7T3E2SR.js → chunk-5UJ6ECTS.js} +10 -9
- package/dist/{chunk-6US73PDB.js → chunk-6M7VS3J3.js} +5 -5
- package/dist/{chunk-CJUB2JJ2.js → chunk-6TUKSZVF.js} +5 -5
- package/dist/{chunk-5JGRAMKL.js → chunk-AB4XIIVB.js} +8 -6
- package/dist/{chunk-R46L2BIR.js → chunk-BMWK7ZIZ.js} +14 -20
- package/dist/{chunk-4BPJXDWC.js → chunk-C4JBQ5SR.js} +30 -14
- package/dist/{chunk-XXQNGV4M.js → chunk-CEYBNUGC.js} +243 -63
- package/dist/{chunk-VEZEGCGW.js → chunk-D4MDIG46.js} +20 -18
- package/dist/chunk-DJNLUABN.js +843 -0
- package/dist/{chunk-RY3LY4J5.js → chunk-DMD2AGVS.js} +5 -4
- package/dist/{chunk-KOHPCX4K.js → chunk-DOOEX22V.js} +2 -2
- package/dist/chunk-DQA7QLMD.js +123 -0
- package/dist/chunk-DR52UMZW.js +21 -0
- package/dist/{chunk-XF5N4U5A.js → chunk-EBEFWSGL.js} +6 -5
- package/dist/{chunk-EYPA3EGJ.js → chunk-EELBMBT6.js} +120 -13
- package/dist/{chunk-CKXWIANG.js → chunk-EOOQZZDE.js} +16 -14
- package/dist/{chunk-WR67VIZY.js → chunk-FOT2FX5J.js} +63 -5
- package/dist/{chunk-FYYLNIL5.js → chunk-GH5622CP.js} +2 -2
- package/dist/chunk-GWS3VEIW.js +195 -0
- package/dist/{chunk-LYF7OHWH.js → chunk-J7PIKKWC.js} +8 -463
- package/dist/{chunk-NILBFAPG.js → chunk-JNXPYBB4.js} +2 -2
- package/dist/{chunk-4VP4KH3K.js → chunk-JRIO5UD2.js} +4 -4
- package/dist/{chunk-6XXKFVSN.js → chunk-JTSEDYVQ.js} +7 -7
- package/dist/{chunk-QKMUKYO7.js → chunk-KCMKRQX4.js} +236 -84
- package/dist/chunk-KZ2H5X4G.js +1026 -0
- package/dist/{chunk-QNQHSOLF.js → chunk-LADCF22A.js} +12 -12
- package/dist/chunk-M4AKACEO.js +382 -0
- package/dist/{chunk-XYDYPRZI.js → chunk-MXI6J5JF.js} +7 -7
- package/dist/{chunk-G7MUEIGA.js → chunk-OB5HIGJY.js} +1 -1
- package/dist/{chunk-EKY57CSP.js → chunk-OBMAI2DP.js} +61 -767
- package/dist/chunk-PD3MESLB.js +242 -0
- package/dist/{chunk-ZRGEBJ4T.js → chunk-QCTRSGHQ.js} +21 -21
- package/dist/chunk-RVG5JXAL.js +41 -0
- package/dist/{chunk-RD5U66HV.js → chunk-SROCI7ZU.js} +7 -7
- package/dist/{chunk-MFFY33HR.js → chunk-THKY7CD7.js} +466 -205
- package/dist/{chunk-PCZJO5TI.js → chunk-UFQ3F4FW.js} +13 -178
- package/dist/{chunk-AD2SYQYC.js → chunk-UHXRNZ2J.js} +121 -3
- package/dist/chunk-UND3GU2L.js +103 -0
- package/dist/{chunk-QM3F2GKX.js → chunk-UUANF5CR.js} +2247 -2096
- package/dist/chunk-UVDSQ6LW.js +472 -0
- package/dist/{chunk-DJVECN66.js → chunk-VQNODYQ4.js} +14 -14
- package/dist/{chunk-3BPUFZDL.js → chunk-VREKEFLL.js} +3 -3
- package/dist/{chunk-PBTHKCPN.js → chunk-WJHBC77E.js} +6 -6
- package/dist/{chunk-XE2VEJHX.js → chunk-X2KV5FXT.js} +2 -2
- package/dist/{chunk-ZXF4XRKW.js → chunk-XEGB6BCN.js} +157 -7
- package/dist/{chunk-E25LMLRW.js → chunk-YD734TPH.js} +2 -2
- package/dist/{verifiers-NCBTHHN2.js → chunk-YTYFXUI3.js} +65 -322
- package/dist/{chunk-OH3TOQTB.js → chunk-ZGH7FGS5.js} +13 -7
- package/dist/cli/index.js +32 -30
- package/dist/{clio-M2KGYUFZ.js → clio-WBVQEBKO.js} +7 -7
- package/dist/{code-nav-GQNL7XA6.js → code-nav-FGGFIE7L.js} +3 -3
- package/dist/{components-5TTYYX6G.js → components-F7OEATSO.js} +4 -4
- package/dist/{config-XUUYQIWO.js → config-TRBL3RCF.js} +34 -29
- package/dist/{configure-IHJ7YOMV.js → configure-OLCVPHNM.js} +15 -15
- package/dist/{context-74JLXAWD.js → context-MJIJ6GOX.js} +11 -11
- package/dist/{context-ZQ7SIFJV.js → context-WFPKQSM6.js} +19 -3
- package/dist/{context-75MIWW3U.js → context-XEWE3MOJ.js} +31 -26
- package/dist/{context-clear-GYKWNUML.js → context-clear-KNOS2JPB.js} +31 -26
- package/dist/{context-working-set-UX5KEP4J.js → context-working-set-EUXAZI6N.js} +8 -8
- package/dist/{dispatch-runner-GIJBHNFL.js → dispatch-runner-B7MTOVKL.js} +313 -53
- package/dist/{docs-6FZSCG5B.js → docs-FLJTIDSE.js} +4 -4
- package/dist/{doctor-SVJ5BZCW.js → doctor-RN4YKO2X.js} +14 -14
- package/dist/{eval-CG6LLBLD.js → eval-RUBJVSNQ.js} +8 -7
- package/dist/{evidence-ZYFIEN42.js → evidence-JZNBUOQZ.js} +30 -25
- package/dist/{evolve-QGEXEMDW.js → evolve-FJVC4KKI.js} +30 -25
- package/dist/{extensions-ADGNCJJD.js → extensions-IQL36S7K.js} +4 -4
- package/dist/{fleet-S5R4ZOQY.js → fleet-BDKYJFCP.js} +214 -360
- package/dist/fleet-commands-ZFIWZSB3.js +70 -0
- package/dist/fleet-graph-Y6HPXIVF.js +125 -0
- package/dist/fleet-new-RDVJLHHH.js +48 -0
- package/dist/fleet-validate-BIYREGIK.js +79 -0
- package/dist/{init-5DRU55YR.js → init-LQUB5COQ.js} +44 -37
- package/dist/library-NJAHIGG4.js +217 -0
- package/dist/{memory-7YKKR6UC.js → memory-OG6HOYKM.js} +31 -26
- package/dist/{models-ZPOLRU2C.js → models-5ZG5XY7J.js} +21 -20
- package/dist/{monitor-US5F5YGZ.js → monitor-TJ7AMTGB.js} +49 -30
- package/dist/{orchestrator-E2AL4T5N.js → orchestrator-WZYB54DM.js} +3827 -581
- package/dist/{paths-E7KYAQWE.js → paths-XUC7GS6E.js} +4 -4
- package/dist/{reset-KZ652EK6.js → reset-PXQT45IY.js} +7 -7
- package/dist/{run-SRNBKDWD.js → run-FQ74YF62.js} +53 -45
- package/dist/{share-CGZE33UP.js → share-FW7SVCL3.js} +33 -9
- package/dist/{skills-S2X4DLY5.js → skills-7E7IRB3R.js} +24 -8
- package/dist/{skills-eval-W2GGIC4R.js → skills-eval-LI75W6OK.js} +34 -27
- package/dist/{targets-54SWINWB.js → targets-4CIFKCTW.js} +23 -22
- package/dist/{terminal-lease-SAIF2OGY.js → terminal-lease-WUZY7ZV5.js} +4 -4
- package/dist/{uninstall-BVLWXKBT.js → uninstall-7FV7IP4E.js} +4 -4
- package/dist/{upgrade-JKAR27XC.js → upgrade-K2HVIVMQ.js} +20 -19
- package/dist/{usage-MSAWCLX4.js → usage-GTZELZQX.js} +116 -49
- package/dist/verifiers-RLAHT27O.js +336 -0
- package/dist/{verify-X5HDROLA.js → verify-BX3BRKH5.js} +7 -6
- package/dist/{wiki-generate-GUSOQ6ZP.js → wiki-generate-ASIFASCN.js} +45 -37
- package/dist/worker/entry.js +38 -35
- package/docs/README.md +3 -2
- package/docs/acp.md +1 -1
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +2 -2
- package/docs/artifact-versions.md +10 -6
- package/docs/built-in-agents.md +26 -2
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +82 -2
- package/docs/configuration-and-targets.md +79 -2
- package/docs/context-engine.md +1 -1
- package/docs/development-pipeline.md +1 -1
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +3 -3
- package/docs/documentation-guide.md +3 -3
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +5 -5
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +4 -1
- package/docs/extensions-and-sharing.md +6 -2
- package/docs/fleet-demo-runbook.md +2 -2
- package/docs/fleet-dispatch.md +197 -10
- package/docs/git-commit-provenance.md +2 -2
- package/docs/glossary.md +1 -1
- package/docs/installation-and-lifecycle.md +2 -2
- package/docs/middleware-and-components.md +2 -1
- package/docs/model-catalog.md +1 -1
- package/docs/observability.md +55 -8
- package/docs/proactive-memory.md +1 -1
- package/docs/prompt-envelope-and-tools.md +1 -1
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +79 -64
- package/docs/resource-library.md +59 -0
- package/docs/safety-model.md +2 -2
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +37 -1
- package/docs/skills-marketplace.md +16 -3
- package/docs/tool-usage.md +14 -7
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +1 -1
- package/docs/worker-dispatch-mechanics.md +3 -3
- package/package.json +1 -1
- package/src/cli/fleet-commands.ts +37 -0
- package/src/cli/fleet-graph.ts +102 -0
- package/src/cli/fleet-new.ts +36 -0
- package/src/cli/fleet-preflight.ts +121 -0
- package/src/cli/fleet-validate.ts +30 -0
- package/src/cli/fleet.ts +173 -335
- package/src/cli/index.ts +3 -1
- package/src/cli/library.ts +190 -0
- package/src/cli/share.ts +13 -1
- package/src/cli/usage.ts +111 -19
- package/src/core/bus-events.ts +4 -0
- package/src/core/commit-attribution.ts +4 -4
- package/src/core/config.ts +130 -0
- package/src/core/defaults.ts +81 -0
- package/src/domains/agents/builtins/architect.md +1 -0
- package/src/domains/agents/builtins/oracle.md +33 -0
- package/src/domains/agents/catalog.ts +13 -1
- package/src/domains/agents/fleet-contract.ts +278 -16
- package/src/domains/agents/index.ts +14 -0
- package/src/domains/agents/result-contract.ts +235 -1
- package/src/domains/config/classify.ts +4 -0
- package/src/domains/dispatch/active-route-planner.ts +14 -0
- package/src/domains/dispatch/backoff.ts +2 -1
- package/src/domains/dispatch/capability-match.ts +1 -0
- package/src/domains/dispatch/checkout-writer-lease.ts +175 -0
- package/src/domains/dispatch/contract.ts +34 -0
- package/src/domains/dispatch/delegation-plan.ts +167 -0
- package/src/domains/dispatch/execution-plan.ts +76 -5
- package/src/domains/dispatch/execution-role.ts +3 -1
- package/src/domains/dispatch/execution-scheduler.ts +183 -67
- package/src/domains/dispatch/extension.ts +258 -9
- package/src/domains/dispatch/fleet-gate.ts +14 -0
- package/src/domains/dispatch/fleet-plan.ts +63 -3
- package/src/domains/dispatch/fleet-run.ts +737 -0
- package/src/domains/dispatch/gate-role-prompts.ts +9 -0
- package/src/domains/dispatch/host-verification.ts +178 -0
- package/src/domains/dispatch/index.ts +38 -0
- package/src/domains/dispatch/intent.ts +159 -0
- package/src/domains/dispatch/receipt-integrity.ts +8 -4
- package/src/domains/dispatch/state.ts +36 -3
- package/src/domains/dispatch/types.ts +51 -6
- package/src/domains/dispatch/validation.ts +66 -6
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/middleware/index.ts +15 -0
- package/src/domains/middleware/watchdog.ts +281 -0
- package/src/domains/observability/contract.ts +3 -1
- package/src/domains/observability/cost.ts +12 -1
- package/src/domains/observability/extension.ts +2 -2
- package/src/domains/observability/index.ts +10 -0
- package/src/domains/observability/out-of-turn-usage.ts +223 -0
- package/src/domains/resources/index.ts +20 -0
- package/src/domains/resources/library.ts +326 -0
- package/src/domains/resources/skills/marketplace.ts +37 -12
- package/src/domains/session/handoff.ts +629 -0
- package/src/domains/share/archive.ts +67 -2
- package/src/entry/orchestrator.ts +37 -0
- package/src/interactive/bus-notices.ts +26 -0
- package/src/interactive/chat-loop.ts +235 -1
- package/src/interactive/chat-renderer.ts +22 -0
- package/src/interactive/cost-overlay.ts +31 -3
- package/src/interactive/council-dispatch.ts +30 -0
- package/src/interactive/council-grid.ts +213 -0
- package/src/interactive/council.ts +99 -0
- package/src/interactive/dispatch-board.ts +260 -16
- package/src/interactive/fleet-run-preview.ts +307 -0
- package/src/interactive/footer/notifications.ts +219 -0
- package/src/interactive/handoff-round.ts +56 -0
- package/src/interactive/interactive-application.ts +43 -1
- package/src/interactive/interactive-event-projection.ts +9 -1
- package/src/interactive/interactive-slash-runtime.ts +52 -2
- package/src/interactive/interactive-subscriptions.ts +14 -2
- package/src/interactive/oracle.ts +179 -0
- package/src/interactive/overlay-ask-user-lifecycle.ts +6 -0
- package/src/interactive/overlay-general-openers.ts +190 -1
- package/src/interactive/overlay-key-routing.ts +17 -1
- package/src/interactive/overlay-lifecycle.ts +41 -1
- package/src/interactive/overlay-permission-lifecycle.ts +10 -0
- package/src/interactive/overlay-resource-openers.ts +11 -3
- package/src/interactive/overlay-session-lifecycle.ts +234 -2
- package/src/interactive/overlays/fleet-run-approval.ts +208 -0
- package/src/interactive/overlays/handoff-review.ts +185 -0
- package/src/interactive/overlays/library-install-confirm.ts +151 -0
- package/src/interactive/overlays/list-overlay.ts +168 -2
- package/src/interactive/overlays/settings.ts +101 -4
- package/src/interactive/overlays/side-question.ts +139 -0
- package/src/interactive/overlays/skills-hub.ts +401 -15
- package/src/interactive/side-question.ts +171 -0
- package/src/interactive/slash-commands.ts +432 -5
- package/src/interactive/slash-spec.ts +19 -6
- package/src/interactive/theme/tokens.ts +30 -0
- package/src/interactive/turn-middleware.ts +15 -1
- package/src/interactive/watchdog-run.ts +75 -0
- package/src/interactive/worker-share.ts +56 -1
- package/src/interactive/worker-stream.ts +7 -0
- package/src/tools/bootstrap.ts +3 -0
- package/src/tools/compete-worktrees.ts +13 -79
- package/src/tools/dispatch-admission.ts +242 -8
- package/src/tools/dispatch-arguments.ts +57 -1
- package/src/tools/dispatch-plan.ts +136 -6
- package/src/tools/dispatch-runner.ts +319 -13
- package/src/tools/dispatch-types.ts +20 -1
- package/src/tools/dispatch.ts +72 -2
- package/src/tools/monitor.ts +16 -0
- package/src/tools/profiles.ts +18 -4
- package/src/tools/task-worktree.ts +238 -0
- package/src/tools/verify/authoring.ts +61 -1
- package/src/tools/verify/scripts.ts +62 -0
- package/src/tools/worker-evidence.ts +2 -1
- package/src/worker/spec-contract.ts +1 -0
- package/dist/chunk-HC4CLZ2Y.js +0 -68
package/docs/proactive-memory.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Proactive task memory
|
|
2
2
|
|
|
3
|
-
> **Interactive Spec Available:** An interactive memory lifecycle dashboard and simulator is located at [docs/html/memory_blueprint.html](html/memory_blueprint.html) (Version: 0.3.
|
|
3
|
+
> **Interactive Spec Available:** An interactive memory lifecycle dashboard and simulator is located at [docs/html/memory_blueprint.html](html/memory_blueprint.html) (Version: 0.3.7).
|
|
4
4
|
|
|
5
5
|
Clio's proactive task memory protects long-running work from behavioral state
|
|
6
6
|
decay: a requirement, environment fact, failed attempt, or diagnosis can still
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prompt Envelope and Tools
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/tools_blueprint.html](html/tools_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/tools_blueprint.html](html/tools_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
Clio Coder keeps the model-facing envelope stable and moves enforcement into the runtime registry and safety policy.
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Provider Adapter Cookbook
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive runtime adapter descriptor builder and probe sequence capability checklist is located at [docs/html/provider_adapter_blueprint.html](html/provider_adapter_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive runtime adapter descriptor builder and probe sequence capability checklist is located at [docs/html/provider_adapter_blueprint.html](html/provider_adapter_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
This cookbook guides developers through implementing custom model runtimes and inference server integrations within Clio Coder. It explains the runtime descriptor interfaces, probing protocols, model synthesis, and how to configure reasoning and thinking behaviors.
|
|
7
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# v0.3.
|
|
1
|
+
# v0.3.7 Release-Cut Checklist
|
|
2
2
|
|
|
3
|
-
The ordered steps that turn the prepared `v0.3.
|
|
3
|
+
The ordered steps that turn the prepared `v0.3.7` branch into a published
|
|
4
4
|
release. Everything above the line marked **AUTHORIZATION BOUNDARY** is
|
|
5
5
|
repeatable and reversible and is run locally before the cut. Everything below
|
|
6
6
|
it is external or irreversible and needs an explicit decision from the
|
|
@@ -11,14 +11,15 @@ state of every step.
|
|
|
11
11
|
|
|
12
12
|
| Item | State |
|
|
13
13
|
| --- | --- |
|
|
14
|
-
| Branch | `v0.3.
|
|
15
|
-
| `package.json` version | `0.3.
|
|
16
|
-
| `main` | `
|
|
17
|
-
| `origin/main` | `
|
|
18
|
-
| Tags | none for 0.3.
|
|
19
|
-
| GitHub Release | none for 0.3.
|
|
20
|
-
| npm registry | `@iowarp/clio-coder@0.3.
|
|
21
|
-
| npm history |
|
|
14
|
+
| Branch | `v0.3.7`, pushed to `origin` under the explicit refspec `refs/heads/v0.3.7`; sixteen feature and docs commits, the version-bump commit, and the fix commits the interactive release testing produced, ahead of `main` |
|
|
15
|
+
| `package.json` version | `0.3.7`; the top `CHANGELOG.md` heading is `## 0.3.7 - 2026-08-24` |
|
|
16
|
+
| `main` | `9b54219d`, the v0.3.6 release SHA; it is an ancestor of `v0.3.7` and moves only at Part 4 |
|
|
17
|
+
| `origin/main` | `9b54219d`, matching `main` |
|
|
18
|
+
| Tags | `v0.3.6` exists on `9b54219d`; none for 0.3.7, local or remote |
|
|
19
|
+
| GitHub Release | `v0.3.6` published 2026-08-24; none for 0.3.7 |
|
|
20
|
+
| npm registry | `@iowarp/clio-coder@0.3.7` absent; `latest` is `0.3.6` |
|
|
21
|
+
| npm history | Published versions 0.3.0 through 0.3.4 and 0.3.6. Version 0.3.5 was published and withdrawn and can never be reused. |
|
|
22
|
+
| Milestone | `v0.3.7` holds the thirteen issues this branch closes (#155, #204, #206 through #216); the ten off-map items (#156, #158 through #164, #198, #199) moved to `v0.3.8` on 2026-08-24 |
|
|
22
23
|
| Commit provenance identity | Post-release maintainer follow-up, not a gate: verifying `clio-coder@iowarp.ai` on IOWarp-controlled GitHub and GitLab identities (such as `clio-coder-bot` or `iowarp-clio`, with `assets/clio-coder-avatar-512.png` as the avatar) only changes how those platforms render the trailers. |
|
|
23
24
|
|
|
24
25
|
---
|
|
@@ -53,35 +54,50 @@ Run against the exact final candidate with `NO_COLOR` unset and
|
|
|
53
54
|
`docs/html/`, `apps/workbench`, `.superpowers`, `tests/`, `scripts/`,
|
|
54
55
|
`benchmarks/`, scratch files, and source maps are absent. Record the
|
|
55
56
|
filename, packed and unpacked sizes, integrity, and shasum.
|
|
56
|
-
12. Install that tarball into a clean temporary prefix with empty
|
|
57
|
-
verify `--version`, `--help`, an empty-state non-TTY
|
|
58
|
-
`uninstall --dry-run` without developer-local state.
|
|
57
|
+
12. Install that tarball into a clean temporary prefix with an empty
|
|
58
|
+
`CLIO_CODER_HOME` and verify `--version`, `--help`, an empty-state non-TTY
|
|
59
|
+
launch, `doctor`, and `uninstall --dry-run` without developer-local state.
|
|
60
|
+
13. Interactive release testing, which this cut added because the release is
|
|
61
|
+
almost entirely interactive surface: a tester agent drives the step-12
|
|
62
|
+
install through real TUI sessions in a throwaway repository, one session
|
|
63
|
+
per shipped feature, against local targets for the main session and a
|
|
64
|
+
cloud target for council members and advice, and writes a per-feature
|
|
65
|
+
PASS / FAIL / BLOCKED table with evidence. A FAIL on a deterministic
|
|
66
|
+
behavior (a refusal, a file, a receipt field, CLI output) blocks the cut;
|
|
67
|
+
a BLOCKED(model) on a model decision does not.
|
|
59
68
|
|
|
60
69
|
## Part 2: version and notes (repeatable)
|
|
61
70
|
|
|
62
|
-
|
|
63
|
-
changes: `package.json` and `package-lock.json`, the `## 0.3.
|
|
64
|
-
heading in `CHANGELOG.md`, the `(Version: 0.3.
|
|
65
|
-
the `Blueprint (v0.3.
|
|
71
|
+
14. Files carrying a version reference, to update together if the number
|
|
72
|
+
changes: `package.json` and `package-lock.json`, the `## 0.3.7 - <date>`
|
|
73
|
+
heading in `CHANGELOG.md`, the `(Version: 0.3.7)` markers in `docs/*.md`,
|
|
74
|
+
the `Blueprint (v0.3.7)` titles in `docs/html/*.html`, the `--branch`
|
|
66
75
|
pin in the README install block (the hygiene lint checks it), and the
|
|
67
76
|
measured-at figures in `scripts/check-release.mjs` if the package size
|
|
68
|
-
moved materially.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
behavior
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
moved materially. For 0.3.7 the tarball measured 6.5 MB packed and
|
|
78
|
+
37.9 MB unpacked, inside the 10 MB and 50 MB ceilings set for 0.3.6.
|
|
79
|
+
15. Confirm the `## 0.3.7` section of `CHANGELOG.md` describes every
|
|
80
|
+
user-visible behavior change under `### Added`, and every change to an
|
|
81
|
+
existing behavior under `### Changed`, and carries no Workbench release
|
|
82
|
+
narrative. The release workflow uses this section verbatim as the GitHub
|
|
83
|
+
Release body.
|
|
84
|
+
16. `docs/artifact-versions.md` lists every persisted artifact this release
|
|
85
|
+
added or re-versioned: run receipt integrity v19, fleet contract v5, the
|
|
86
|
+
fleet run record, the checkout writer lease, the out-of-turn usage ledger,
|
|
87
|
+
and the library pin file.
|
|
88
|
+
17. Re-run `npm run ci:release` after any version edit and commit as one
|
|
89
|
+
commit on `v0.3.7`.
|
|
75
90
|
|
|
76
91
|
## Part 3: present the gate
|
|
77
92
|
|
|
78
|
-
|
|
93
|
+
18. Report to the operator before touching `main`: the exact final `v0.3.7`
|
|
79
94
|
SHA and clean status, the commits added since the handoff SHA, the gate
|
|
80
|
-
commands with pass/fail totals
|
|
81
|
-
|
|
82
|
-
deferred live check, confirmation that no tag, GitHub Release, or
|
|
83
|
-
version exists yet, the proposed commands for Parts 4 through 6, and
|
|
84
|
-
|
|
95
|
+
commands with pass/fail totals, the package version and changelog heading,
|
|
96
|
+
the tarball audit, the clean-install results, the interactive test table,
|
|
97
|
+
and any deferred live check, confirmation that no tag, GitHub Release, or
|
|
98
|
+
npm version exists yet, the proposed commands for Parts 4 through 6, and
|
|
99
|
+
the npm dist-tag. The dist-tag is the operator's call; for 0.3.7 the
|
|
100
|
+
operator chose `latest` on 2026-08-24.
|
|
85
101
|
|
|
86
102
|
---
|
|
87
103
|
|
|
@@ -93,54 +109,53 @@ confirming the exact SHA and the commands.
|
|
|
93
109
|
|
|
94
110
|
## Part 4: fast-forward `main`
|
|
95
111
|
|
|
96
|
-
|
|
97
|
-
to be an ancestor of the reviewed `v0.3.
|
|
112
|
+
19. `git fetch origin` immediately before integrating; require `origin/main`
|
|
113
|
+
to be an ancestor of the reviewed `v0.3.7` tip and confirm no other
|
|
98
114
|
worktree has `main` checked out.
|
|
99
|
-
|
|
115
|
+
20. `git checkout main && git merge --ff-only v0.3.7`. No merge commit, no
|
|
100
116
|
rebase, no reset. Verify `main` equals the reviewed SHA and is clean.
|
|
101
|
-
|
|
102
|
-
`git push origin main`. Never `--force` or `--force-with-lease`.
|
|
117
|
+
21. `git fetch origin` once more; stop on any unexpected remote movement. Then
|
|
118
|
+
`git push origin main`. Never `--force` or `--force-with-lease`. The push
|
|
119
|
+
closes the thirteen milestone issues through their `Fixes` trailers.
|
|
103
120
|
|
|
104
121
|
## Part 5: exact-SHA CI, tag, GitHub Release
|
|
105
122
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
`git
|
|
113
|
-
|
|
114
|
-
22. The tag push triggers `.github/workflows/release.yml`, which verifies the
|
|
123
|
+
22. The `main` push triggers the `ci` workflow. It is a useful signal but not
|
|
124
|
+
a gate on tagging, because `release.yml` runs the same gate on the tagged
|
|
125
|
+
tree itself. A red run still blocks the cut; investigate it rather than
|
|
126
|
+
tagging around it, and never silence a flake with an unrelated change.
|
|
127
|
+
23. Reconfirm that tag `v0.3.7` and the GitHub Release do not exist, then
|
|
128
|
+
`git tag -a v0.3.7 -m "Clio Coder 0.3.7"` on the green SHA and
|
|
129
|
+
`git push origin refs/tags/v0.3.7`.
|
|
130
|
+
24. The tag push triggers `.github/workflows/release.yml`, which verifies the
|
|
115
131
|
tag matches `package.json`, runs `npm run ci:release` on the tagged tree,
|
|
116
|
-
extracts the `## 0.3.
|
|
117
|
-
attaches the tarball.
|
|
118
|
-
|
|
119
|
-
attached tarball, and the URL.
|
|
132
|
+
extracts the `## 0.3.7` section of `CHANGELOG.md` as the release body, and
|
|
133
|
+
attaches the tarball. Do not create a release by hand. Verify the run's
|
|
134
|
+
SHA, the notes, the attached tarball, and the URL.
|
|
120
135
|
|
|
121
136
|
## Part 6: npm publication (irreversible)
|
|
122
137
|
|
|
123
|
-
|
|
124
|
-
`@iowarp/clio-coder@0.3.
|
|
125
|
-
|
|
126
|
-
default install for every user; `--tag next` keeps `0.3.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
138
|
+
25. `npm whoami` and confirm the registry and account; reconfirm
|
|
139
|
+
`@iowarp/clio-coder@0.3.7` is still absent.
|
|
140
|
+
26. Obtain the operator's explicit dist-tag decision. `latest` makes this the
|
|
141
|
+
default install for every user; `--tag next` keeps `0.3.6` as the default.
|
|
142
|
+
27. Run `npm publish` once. `prepublishOnly` re-runs `ci:release` as a safety
|
|
143
|
+
net; it is not a substitute for Part 1.
|
|
144
|
+
28. A published version cannot be replaced. `npm unpublish` is restricted and
|
|
130
145
|
time-limited; a mistake is corrected by publishing a higher version.
|
|
131
146
|
|
|
132
147
|
## Part 7: post-publish verification and follow-ups
|
|
133
148
|
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
29. `npm view @iowarp/clio-coder@0.3.7` and the selected dist-tag.
|
|
150
|
+
30. On a clean machine, `npm install -g @iowarp/clio-coder` from the registry
|
|
136
151
|
rather than from a local tarball, then repeat step 12 against it, plus
|
|
137
152
|
`configure` to a real target and one real turn when one is authorized.
|
|
138
153
|
This is the only step that tests what users actually receive.
|
|
139
|
-
|
|
140
|
-
applies 0.3.
|
|
141
|
-
|
|
154
|
+
31. From an installation of 0.3.6, verify `clio-coder upgrade` finds and
|
|
155
|
+
applies 0.3.7.
|
|
156
|
+
32. Record the SHA, CI URL, tag, GitHub Release URL, npm version and dist-tag,
|
|
142
157
|
tarball evidence, and the post-publish verification in the release report.
|
|
143
|
-
|
|
158
|
+
33. Maintainer follow-up, independent of the release: verify the commit
|
|
144
159
|
provenance email `clio-coder@iowarp.ai` on IOWarp-controlled GitHub and
|
|
145
160
|
GitLab identities such as `clio-coder-bot` or `iowarp-clio`, and upload
|
|
146
161
|
`assets/clio-coder-avatar-512.png` as the account avatar where PNG is
|
|
@@ -153,7 +168,7 @@ confirming the exact SHA and the commands.
|
|
|
153
168
|
|
|
154
169
|
## Rollback
|
|
155
170
|
|
|
156
|
-
There is no rollback for step
|
|
157
|
-
|
|
158
|
-
through
|
|
171
|
+
There is no rollback for step 27. Before it, every step is reversible: steps
|
|
172
|
+
23 and 24 by deleting the local and remote tag and the draft release, steps 19
|
|
173
|
+
through 21 by a new forward commit on `main` (never by rewriting it), and
|
|
159
174
|
everything in Parts 1 and 2 by `git checkout`.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Resource Library
|
|
2
|
+
|
|
3
|
+
The resource library extends the existing local skills marketplace catalog to carry agent recipes, prompt templates, and fleet contracts. It does not change the Agent Skills format, discovery roots, trust gating, or existing skill installation sources.
|
|
4
|
+
|
|
5
|
+
## Catalog schema
|
|
6
|
+
|
|
7
|
+
A catalog is a JSON or YAML list, or an object whose `skills` property contains the list. The historical property name remains accepted so every existing skill marketplace index works unchanged.
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
skills:
|
|
11
|
+
- kind: fleet
|
|
12
|
+
name: release
|
|
13
|
+
description: Build and verify a release.
|
|
14
|
+
sourceUrl: ./fleets/release.md
|
|
15
|
+
requires:
|
|
16
|
+
- agent:release-builder
|
|
17
|
+
- skill:ship
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`kind` accepts `skill`, `agent`, `prompt`, or `fleet` and defaults to `skill`. `requires` accepts typed references with those same four prefixes. Clio resolves requirements recursively across the selected catalog and the private catalog. Missing, malformed, and cyclic requirements are refused with stable `library_requirement_*` diagnostics. A requirement is satisfied when its typed reference exists in `<configDir>/library-pins.yaml` or its kind-specific destination exists. Add output lists satisfied and unsatisfied requirements separately. Requirements are reported without installation unless `library add` receives `--with-requirements`. That flag installs only the unsatisfied dependencies in dependency order before the requested entry.
|
|
21
|
+
|
|
22
|
+
## Private catalog and remote gating
|
|
23
|
+
|
|
24
|
+
`library.catalog` selects a private catalog and defaults to `<configDir>/library.yaml`. Relative sources in that file resolve beside the catalog. `library.remote` records an optional git remote URL. `library.sync` defaults to false, and no git process is started while it remains false.
|
|
25
|
+
|
|
26
|
+
The private catalog repository must name its git remote `library`. Clio checks it with `git remote get-url library`. Run `clio-coder library remote confirm <url>` once after reviewing the configured URL. When `library.remote` is unset, confirmation records the URL as both the configured and confirmed remote. A confirmation that differs from an existing `library.remote` refuses with `library_remote_mismatch`. A missing confirmation or a later settings change refuses synchronization and publishing with `library_remote_unconfirmed`.
|
|
27
|
+
|
|
28
|
+
When `library.sync` is false, both `library sync` and `library push` refuse with `library_sync_disabled` before any process starts. When synchronization is enabled, `library sync` runs `git fetch library` followed by `git merge --ff-only FETCH_HEAD`, and `library push` runs `git push library`. Both commands execute git as an argument vector without a shell.
|
|
29
|
+
|
|
30
|
+
## CLI
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
clio-coder library list [--kind k] [--json]
|
|
34
|
+
clio-coder library search <query> [--kind k] [--json]
|
|
35
|
+
clio-coder library add <ref> [--from <catalog|path>] [--with-requirements] [--yes] [--json]
|
|
36
|
+
clio-coder library use <kind> <name>
|
|
37
|
+
clio-coder library push
|
|
38
|
+
clio-coder library sync
|
|
39
|
+
clio-coder library remote confirm <url>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`library add` prints every destination and SHA-256 hash before it writes. It writes nothing until `--yes` is present. `library use` prints the invocation to paste into the relevant surface.
|
|
43
|
+
|
|
44
|
+
## In the TUI
|
|
45
|
+
|
|
46
|
+
The Skills Hub carries one tab per kind. `/library <kind>` opens it on that kind's tab and `/library` alone opens it on Skills, which is also where `/skill` opens. Each tab lists the entries this same discovery finds, with the requirements an entry still needs named in the warning token. Installing from a row runs the same plan-then-write pair `library add` runs, behind a confirmation that states every destination and hash and writes nothing when it is cancelled, and an entry with unresolved requirements is refused by name before an install-with-requirements confirmation offers to write them all. `Enter` on an installed row leads where that kind is invoked from: the composer for an agent, a prompt, or a skill, and the `/fleet run` approval preview for a fleet. See [skills-marketplace.md](skills-marketplace.md) for the key table.
|
|
47
|
+
|
|
48
|
+
## Installation roots and validation
|
|
49
|
+
|
|
50
|
+
| Kind | User installation root | Validation before write |
|
|
51
|
+
| --- | --- | --- |
|
|
52
|
+
| skill | `<configDir>/skills/<name>/SKILL.md` | Existing skill loader and installer |
|
|
53
|
+
| agent | `<configDir>/agents/<name>.md` | Agent recipe schema and policy |
|
|
54
|
+
| prompt | `<configDir>/prompts/<name>.md` | Prompt template loader |
|
|
55
|
+
| fleet | `<configDir>/fleets/<name>.md` | Fleet contract parser |
|
|
56
|
+
|
|
57
|
+
Every installed item records a kind-qualified hash in `<configDir>/library-pins.yaml`. Agent recipes become visible through `clio-coder agents`. User fleet contracts participate between built-in and project fleet precedence, so a project contract still wins. Prompts use the existing user prompt root.
|
|
58
|
+
|
|
59
|
+
Share archives may carry agent and fleet entries. Import always validates these formats before writing, and fleet entries land in the user fleet root.
|
package/docs/safety-model.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Clio Coder Safety Model
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/safety_blueprint.html](html/safety_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/safety_blueprint.html](html/safety_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
Clio Coder's safety posture is code-enforced, not prompt-only. As the orchestrator coding agent in the [IOWarp](https://iowarp.ai) ecosystem developed by the [Gnosis Research Center](https://grc.iit.edu) at Illinois Tech under NSF Award [#2411318](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318), Clio gates execution by target capabilities, the tool registry, the safety policy engine, project policies, protected-artifact checks, and audit receipts.
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ Source of truth: `src/domains/safety/**`, `src/tools/registry.ts`, `src/tools/bo
|
|
|
13
13
|
|
|
14
14
|
The `autonomy` setting (`read-only` | `suggest` | `auto-edit` | `full-auto`) is an enforced dial. It controls exactly one thing: which action classes run immediately, which park for operator approval, and which are auto-denied. The safety net (damage-control rules, path policy, protected artifacts, loop guard, dispatch scope admission) is independent of the dial and identical at every level. When a `[safety-net]` notice appears at full-auto, that is the always-on net working as designed, not a contradiction of the level.
|
|
15
15
|
|
|
16
|
-
In Clio Coder v0.3.
|
|
16
|
+
In Clio Coder v0.3.7, effective autonomy resolution is strictly centralized in `src/entry/orchestrator.ts` through `resolveEffectiveAutonomy` and `resolveBaselineAutonomy`. Every admission surface (tool registry admission, dispatch plan provenance, and ACP session snapshots) delegates to this pair of functions so that fallback paths cannot diverge across execution contexts. `resolveBaselineAutonomy` evaluates dispatch settings overrides, headless CLI options, and configuration settings before applying the default `auto-edit` level. `resolveEffectiveAutonomy` combines any active ACP session autonomy level with the baseline resolution.
|
|
17
17
|
|
|
18
18
|
### Autonomy levels
|
|
19
19
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Clio Coder Scientific Validation Contracts
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive numerical tolerance calculator and HPC queue execution simulator is located at [docs/html/validation_blueprint.html](html/validation_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive numerical tolerance calculator and HPC queue execution simulator is located at [docs/html/validation_blueprint.html](html/validation_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
Scientific software development cannot treat simple file presence as proof of correctness. A simulation script that crashes on rank 48, or writes out NetCDF arrays filled with `NaN`s, may still successfully write a file to the disk.
|
|
7
7
|
|
|
8
|
-
Clio Coder recognizes **scientific validation contract files** as an opt-in signal for a higher evidence bar. In v0.3.
|
|
8
|
+
Clio Coder recognizes **scientific validation contract files** as an opt-in signal for a higher evidence bar. In v0.3.7, the session rigor resolver does not parse or enforce a scientific contract schema. The presence of `.clio-coder/validation.yaml`, `.clio-coder/validation.yml`, `validation.yaml`, `validation.yml`, or `VALIDATION.md` at the workspace root raises the default rigor level to `high`; the file contents are advisory material for developers, project agents, and external validators.
|
|
9
9
|
|
|
10
10
|
This advisory convention is separate from the executable project verifier catalog at `.clio-coder/verifiers.yaml`. The verifier catalog has a strict version-1 schema and admits exact argv vectors to the `verify` tool. Scientific validation contracts and handbook expectations do not grant command authority: prose such as `validators: ["python tools/check_grid.py"]` remains guidance until the project owner confirms the equivalent argv, cwd, timeout, and tags in `verifiers.yaml`. The executable catalog does not interpret numerical tolerances or artifact expectations; it only runs the explicitly declared process vector through safe-exec.
|
|
11
11
|
|
|
@@ -95,7 +95,7 @@ Comparing floating-point values in scientific computations must accommodate roun
|
|
|
95
95
|
|
|
96
96
|
## Common Scientific Artifact Families
|
|
97
97
|
|
|
98
|
-
The following labels are useful project conventions for validation contracts and reports. They are not a closed, core-enforced enum in v0.3.
|
|
98
|
+
The following labels are useful project conventions for validation contracts and reports. They are not a closed, core-enforced enum in v0.3.7:
|
|
99
99
|
|
|
100
100
|
- **`HDF5` / `NetCDF` / `Zarr`:** Multi-dimensional scientific array files.
|
|
101
101
|
- **`FITS`:** Flexible Image Transport System (used in astrophysics).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Session Lifecycle
|
|
2
2
|
|
|
3
|
-
This document is the authoritative specification for Clio Coder interactive and headless session lifecycles, on-disk ledger structures, tree-based conversation branching, checkpoints, and recovery protocols in `v0.3.
|
|
3
|
+
This document is the authoritative specification for Clio Coder interactive and headless session lifecycles, on-disk ledger structures, tree-based conversation branching, checkpoints, and recovery protocols in `v0.3.7`.
|
|
4
4
|
|
|
5
5
|
Source implementations: `src/engine/session.ts` and `src/domains/session/`.
|
|
6
6
|
|
|
@@ -127,6 +127,42 @@ The `/fork` command (`src/domains/session/tree/fork.ts:forkFromParentTurn`) init
|
|
|
127
127
|
3. Traces ancestry up to `parentTurnId` and copies exactly the active path entries (excluding later unanchored sidecars) into the new session ledger.
|
|
128
128
|
4. Stamps `parentSession` and `parentTurnId` in the new session header.
|
|
129
129
|
|
|
130
|
+
### Handoff (`/handoff <goal>`)
|
|
131
|
+
|
|
132
|
+
`/handoff` mints a successor session seeded with a reviewed document describing
|
|
133
|
+
what the current session settled. It is a session operation and only that: it
|
|
134
|
+
writes no memory promotion candidate, touches no memory record, and never calls
|
|
135
|
+
the task-memory bank.
|
|
136
|
+
|
|
137
|
+
The rule that makes the document trustworthy is read-ledger validation. Clio folds
|
|
138
|
+
this session's persisted `read`, `edit`, `write`, `ls`, `find`, `grep`, and
|
|
139
|
+
`artifact` tool calls (plus its `fileEntry` records) into a set of
|
|
140
|
+
workspace-relative paths, through `filterEntriesToActivePath` so an abandoned
|
|
141
|
+
`/tree` branch contributes nothing, exactly as the task board folds its own inputs.
|
|
142
|
+
Every path the extraction round names is checked against that set and never against
|
|
143
|
+
the filesystem. A file that exists on disk but that this session never opened is
|
|
144
|
+
still an invention, so it is dropped and listed in the review document under
|
|
145
|
+
`dropped (not in this session's read ledger)`.
|
|
146
|
+
|
|
147
|
+
Extracted decisions merge with the session's settled decision board
|
|
148
|
+
(`src/domains/session/decision-board.ts`); board entries win on conflict and are
|
|
149
|
+
marked as settled. Superseded board decisions are history and do not travel.
|
|
150
|
+
|
|
151
|
+
On accept, the new session opens with one `custom` entry of type `handoffSeed`
|
|
152
|
+
carrying the reviewed document, the originating session id, and the goal. It
|
|
153
|
+
projects into the model's replay as one user-role context message labelled as a
|
|
154
|
+
handoff from the named session, on the same seam compaction and branch summaries
|
|
155
|
+
use; it is never written as a fabricated user turn. The old session's
|
|
156
|
+
`skillActivation` entries are replayed into the new session so loaded skills carry
|
|
157
|
+
forward. The old session gains exactly one `custom` entry of type `handoffNote`
|
|
158
|
+
recording the target session id, and is otherwise untouched. Esc during review
|
|
159
|
+
cancels the whole handoff with nothing written in either session.
|
|
160
|
+
|
|
161
|
+
The extraction round itself runs on the out-of-turn seam `/btw` uses: one call
|
|
162
|
+
against the session's live target and model, the compiled message history as
|
|
163
|
+
read-only input, no tools, and no entry in the ledger. Its provider usage is
|
|
164
|
+
reported to `/cost` under a handoffs row and excluded from the turn count.
|
|
165
|
+
|
|
130
166
|
### Streaming Turn Settlement During Session Transitions
|
|
131
167
|
|
|
132
168
|
When an operator issues `/new`, `/resume`, `/tree`, or `/fork` while an assistant turn is actively streaming, `settleChatBeforeSessionSwitch` (`src/interactive/session-switch-settlement.ts`) cancels the in-flight stream and awaits completion. This guarantees that partial assistant records and completed tool executions seal cleanly into the active session ledger before the session writer is replaced, preventing orphaned records in new sessions or unanswered prompts in original sessions (#114). Synchronous session transitions when chat is idle continue to execute immediately.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Skills Marketplace
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/skills_blueprint.html](html/skills_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/skills_blueprint.html](html/skills_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
The Skills Hub (`/skill`) shows project skills, user skills, and the marketplace. Every marketplace row comes from the same local lookup that `clio-coder skills install <name>` and `/skill <name>` resolve through, so the hub lists nothing it cannot install.
|
|
7
7
|
|
|
@@ -28,18 +28,31 @@ skills/ catalog.
|
|
|
28
28
|
|
|
29
29
|
The CLI reports the same state as `no local skill marketplace catalog or index configured`. A marketplace source that exists but fails (an unreadable index, a broken catalog package) is a diagnostic row in the hub, not a silent omission.
|
|
30
30
|
|
|
31
|
+
The same index machinery can also describe agent recipes, prompt templates, and fleet contracts through typed entries and requirements. See [resource-library.md](resource-library.md) for the schema, private catalog, installation roots, and `clio-coder library` commands. Those kinds render on their own tabs in the hub, described below.
|
|
32
|
+
|
|
31
33
|
## Using the hub
|
|
32
34
|
|
|
33
35
|
| Key | Action |
|
|
34
36
|
|---|---|
|
|
35
37
|
| type | Filter all groups |
|
|
36
|
-
|
|
|
38
|
+
| `←`/`→` | Switch tabs |
|
|
39
|
+
| `Enter` | Use the selected row: insert `/skill <name> ` into the editor for the task text, or the invocation the row's kind is called by |
|
|
37
40
|
| `Tab` | Toggle the detail pane (split layout on wide terminals) |
|
|
38
|
-
| `i` | Install the selected
|
|
41
|
+
| `i` | Install the selected row through the resolver its kind installs by |
|
|
39
42
|
| `PgUp`/`PgDn` | Scroll the detail pane |
|
|
40
43
|
|
|
41
44
|
Invoking an uninstalled marketplace skill with `/skill <name>` prompts before installing it. `i` runs the same install path eagerly from the hub.
|
|
42
45
|
|
|
46
|
+
## Tabs
|
|
47
|
+
|
|
48
|
+
The hub carries one tab per resource library kind: Skills, Agents, Prompts, and Fleets. `←` and `→` move between them, which is the key vocabulary the Settings Center already uses to move between sections. The frame title names the active tab and the footer states its row count, so the numbers on screen always describe the tab being read. `/skill` opens the hub on Skills. `/library <kind>` opens it on that kind's tab, and `/library` alone opens it on Skills.
|
|
49
|
+
|
|
50
|
+
The Skills tab is unchanged. The other three list the entries of their kind from `discoverLibrary()`, which is the same discovery `clio-coder library list --kind <kind>` reads, so the hub and the CLI never disagree about what exists. Each row carries the entry's origin and version, whether it is installed or available, the short form of its recorded pin hash, and, in the warning token, the names of any requirements it still needs. An entry the catalog refuses outright, because a requirement is missing, malformed, or cyclic, appears as a diagnostic row rather than being omitted.
|
|
51
|
+
|
|
52
|
+
`Enter` uses the selected row. An agent inserts `/run <agent> ` into the composer, a prompt inserts its `/<id> ` invocation, a skill does what the Skills tab does, and a fleet closes the hub and opens the `/fleet run` approval preview for that contract. A row that is not installed says so instead and points at `i`.
|
|
53
|
+
|
|
54
|
+
`i` installs, through the same plan-then-write pair `clio-coder library add` runs. A framed confirmation states every destination path and SHA-256 hash before anything is written, which is the TUI spelling of the CLI's `--yes` gate; `Esc` there leaves every destination untouched. An entry whose requirements are not all installed is refused by name on the first `i`, and a second `i` opens the install-with-requirements confirmation, which names every entry it would write in dependency order.
|
|
55
|
+
|
|
43
56
|
The CLI `clio-coder skills` commands manage local skill discovery, validation, and
|
|
44
57
|
creation. Extension resource roots and share archives are documented in
|
|
45
58
|
[extensions-and-sharing.md](extensions-and-sharing.md); this page owns the TUI
|
package/docs/tool-usage.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Tool Usage Reference
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive seven-plane tool atlas and observation envelope truncation/offload calculator is located at [docs/html/tool_usage_blueprint.html](html/tool_usage_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive seven-plane tool atlas and observation envelope truncation/offload calculator is located at [docs/html/tool_usage_blueprint.html](html/tool_usage_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
This is the deep usage reference behind the deliberately terse tool descriptions in the prompt envelope. Toolkit v2 keeps rich guidance out of tool descriptions and puts it here, where `context(scope="docs", query=...)` retrieves it section by section. Each tool below has its own self-contained `##` section covering the argument surface, defaults, truncation and continuation behavior, and concrete calls. Source of truth is `src/tools/`.
|
|
7
7
|
|
|
8
|
-
In Clio Coder v0.3.
|
|
8
|
+
In Clio Coder v0.3.7, `src/tools/agent-tools.ts` serves as the single agent-tool adapter across both orchestrator and worker runtimes. Both surfaces resolve their executable tools through the exact same `effectiveToolNames` narrowing, ensuring that attested tool schemas never drift from the tools available at runtime. Tools are keyed strictly by the `ToolName` union with no alias table. Argument leniency for weak-model callers is provided exclusively by per-tool `prepareArguments` normalizers declared on `ToolSpec`.
|
|
9
9
|
|
|
10
10
|
## Observation envelope: truncation notices, offload, next hints, and the turn budget
|
|
11
11
|
|
|
@@ -234,8 +234,13 @@ Dispatches one or more tasks to Clio fleet agents and returns per-run receipt su
|
|
|
234
234
|
Arguments:
|
|
235
235
|
|
|
236
236
|
- `task` (required for the singular form unless `list:true`). One worker assignment/instruction string. It is distinct from briefing.
|
|
237
|
-
- `tasks` (required for the batch form unless `list:true`). Array of task strings or `{task, agent, target, model, cwd, briefing}` objects. Per-item fields override the top-level defaults below. Supplying both `task` and `tasks` is an error.
|
|
238
|
-
- `mode` (optional). `parallel` (default) runs items concurrently; `sequential` runs them one at a time, each completing before the next dispatches. A single task always runs down the sequential path.
|
|
237
|
+
- `tasks` (required for the batch form unless `list:true`). Array of task strings or `{task, agent, target, model, cwd, briefing, intent, gate}` objects. Per-item fields override the top-level defaults below. Supplying both `task` and `tasks` is an error.
|
|
238
|
+
- `mode` (optional). `parallel` (default) runs items concurrently; `sequential` runs them one at a time, each completing before the next dispatches. `pipeline`, `compete`, and `council` select their named topologies. A single ordinary task always runs down the sequential path.
|
|
239
|
+
- `roster` (council only). Names one `workers.rosters` entry. Supply exactly one of `roster` or `members`.
|
|
240
|
+
- `members` (council only). Supplies two to five inline `{label,target,model?,thinking?}` entries.
|
|
241
|
+
- `synthesis` (council only). Accepts `none`, `judge`, or `vote`; the default is `none`.
|
|
242
|
+
- `rounds` (council only). Accepts an integer from 1 through 3; the default is 1.
|
|
243
|
+
- `judge` (council only with judge synthesis, or compete). Accepts optional `agent`, `model`, `target`, and `node` route fields.
|
|
239
244
|
- `detach` (optional boolean). For parallel fan-out, returns the durable batch id and assignment ids after registration while the shared event consumer continues in the background. An assignment id equals its first attempt's run id. This is the parent model's route to mid-run monitor/steer; ordinary synchronous, sequential, and pipeline calls auto-wait for each assignment's terminal attempt.
|
|
240
245
|
- `list` (optional boolean). Returns the agent catalog instead of dispatching.
|
|
241
246
|
- `agent` (optional). Default agent recipe for items that do not name one; default `coder`. `agent_id` is accepted as an alias inside items.
|
|
@@ -248,13 +253,15 @@ Arguments:
|
|
|
248
253
|
- `cwd` (optional). Default agent working directory.
|
|
249
254
|
- `timeout_ms` (optional). Aborts the whole dispatch; in sequential mode remaining tasks are skipped and the skip is reported.
|
|
250
255
|
- `briefing` (optional string, top-level default or per-task override). Parent-composed context/data, not worker instructions: it cannot replace `task`. It is trimmed and omitted when blank, rejected above 12,000 UTF-8 bytes, sent as its own delimited untrusted dynamic message, and retained only as byte/hash provenance. The shared value applies to string tasks and object tasks without an override; an object-level briefing wins.
|
|
256
|
+
- `intent` (optional object, top-level default or per-task override). Declares `read_roots`, `write_roots`, `relevant_paths`, `expected_outputs`, and `verification`. Path arrays contain normalized repository-relative POSIX paths. Verification entries contain a declared `check` id and optional `timeout_ms`; ids are resolved from package scripts and `.clio-coder/verifiers.yaml` before approval. Checks are ids, not shell commands.
|
|
257
|
+
- `gate` (optional string, top-level default or per-task override). Exact shorthand for `intent.verification=[{check: gate}]`. Supplying it together with `intent.verification` is refused.
|
|
251
258
|
- `max_output_bytes` (optional). Summary byte budget; default 20000, split across runs with at least 1024 bytes each.
|
|
252
259
|
|
|
253
260
|
Argument tolerance: `tasks` sent as a JSON string is parsed and a single object or bare string is wrapped into an array. The top-level singular `task` is first-class. Briefing-only calls fail with guidance that briefing is context and cannot replace a task.
|
|
254
261
|
|
|
255
262
|
Output is one batch-shaped summary even for a single task: a header `dispatch (<mode>) total=N failed=M`, the assignment id list, then one terminal-attempt receipt line per assignment (run id, agent, exit code, target, model, tokens, receipt path, verification state, failure message if any) followed by the worker's final assistant text. `details = {mode, assignmentIds, receiptCount, failedCount, runs[]}`, and each `runs[]` entry carries distinct `assignmentId` and terminal `runId` fields plus the structured `verification` state and `receiptIntegrity` result. There is no `runIds` compatibility alias. Any terminal attempt with a nonzero exit turns the whole result into an error carrying the same summary. A run that succeeded without a single successful tool call carries a `note=` marker; do not treat such a run as validated work.
|
|
256
263
|
|
|
257
|
-
The summary separates
|
|
264
|
+
The summary separates five things that must never be conflated: `receipt_integrity=verified/v19/sha256` comes only from verification against the ledger; `host_verification=<status>` describes orchestrator-executed declared checks; `evidence_verification=<state>/<basis>` describes worker-tool validation evidence; `briefing=bytes:<n> sha256:<hash>` authenticates parent-supplied data; and `project_context=...` authenticates the independently rendered bounded project message. A tampered receipt renders a head-anchored `RECEIPT INTEGRITY FAILED` banner. A read-only Scout can have verified integrity with `not_applicable/read-only-agent` evidence. Missing briefing is `briefing=none`, never a project-context hash.
|
|
258
265
|
|
|
259
266
|
Exit zero is insufficient without a durable deliverable. A successful native or ACP run must seal a nonempty `output.state="final"`. Otherwise it fails with `worker_final_output_missing`; any unfinished text remains partial diagnostics and automatic retry is suppressed. Live tool-use preambles never replace a missing receipt answer.
|
|
260
267
|
|
|
@@ -262,11 +269,11 @@ Sealed receipts are the durable evidence; worker prose remains advisory until ve
|
|
|
262
269
|
|
|
263
270
|
```text
|
|
264
271
|
dispatch(list=true)
|
|
265
|
-
dispatch(agent="debugger", task="Adversarially verify the strict
|
|
272
|
+
dispatch(agent="debugger", task="Adversarially verify the strict v19 receipt boundary", briefing="Prior receipt R1 cited receipt-integrity.ts and left these claims unresolved", detach=true)
|
|
266
273
|
dispatch(tasks=["Run the contract tests in tests/contracts/dispatch.test.ts and report each failure with its assertion"])
|
|
267
274
|
dispatch(tasks=[
|
|
268
275
|
{agent: "researcher", task: "Map every caller of finalizeObservation and summarize the envelope shapes"},
|
|
269
|
-
{agent: "coder", task: "Fix the failing assertion in tests/contracts/safety.test.ts
|
|
276
|
+
{agent: "coder", task: "Fix the failing assertion in tests/contracts/safety.test.ts", intent: {write_roots: ["tests/contracts"], verification: [{check: "test"}]}}
|
|
270
277
|
], mode="parallel")
|
|
271
278
|
dispatch(tasks=["Refactor step 1", "Refactor step 2"], mode="sequential", timeout_ms=600000)
|
|
272
279
|
```
|
package/docs/trace-store.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Trace store contract
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive trace database viewer, schema inspector, and SQL query validator simulator is located at [docs/html/trace_blueprint.html](html/trace_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive trace database viewer, schema inspector, and SQL query validator simulator is located at [docs/html/trace_blueprint.html](html/trace_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
Clio's trace database is a rebuildable, queryable mirror. Receipts, session
|
|
7
7
|
ledgers, gate artifacts, and evidence remain the source of truth. Removing
|
package/docs/troubleshooting.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Troubleshooting & Error Remediation
|
|
2
2
|
|
|
3
|
-
This guide provides concrete, actionable remediation procedures for operational errors, permission denials, target connection failures, and system diagnostics in Clio Coder `v0.3.
|
|
3
|
+
This guide provides concrete, actionable remediation procedures for operational errors, permission denials, target connection failures, and system diagnostics in Clio Coder `v0.3.7`.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
package/docs/tui-design.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Clio TUI Design System
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive color/glyph token laboratory and terminal transcript preview renderer is located at [docs/html/tui_design_blueprint.html](html/tui_design_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive color/glyph token laboratory and terminal transcript preview renderer is located at [docs/html/tui_design_blueprint.html](html/tui_design_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
This document is the reference specification for the Clio Coder TUI visual layout, styling, and behavior. It describes color semantics, the glyph vocabulary, structural recipes, and state choreography for all surfaces under [src/interactive/](../src/interactive/).
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Worker Dispatch Mechanics
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive NDJSON protocol timeline stream and heartbeat watchdog simulator is located at [docs/html/worker_dispatch_blueprint.html](html/worker_dispatch_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive NDJSON protocol timeline stream and heartbeat watchdog simulator is located at [docs/html/worker_dispatch_blueprint.html](html/worker_dispatch_blueprint.html) (Version: 0.3.7).
|
|
5
5
|
|
|
6
6
|
This document describes the design and lifecycle of Clio Coder dispatched workers, focusing on the spawning sequence, execution isolation, the standard input/output NDJSON communication loop, and permission escalation routing.
|
|
7
7
|
|
|
@@ -207,11 +207,11 @@ The coordinator classifies failures into 13 explicit categories (`src/domains/di
|
|
|
207
207
|
|
|
208
208
|
### 5.2 Canonical Receipt Integrity Serialization
|
|
209
209
|
|
|
210
|
-
Receipts carry exactly one integrity version (`RUN_RECEIPT_INTEGRITY_VERSION =
|
|
210
|
+
Receipts carry exactly one integrity version (`RUN_RECEIPT_INTEGRITY_VERSION = 19`); any other version is invalid. It computes a cryptographic SHA-256 digest over a strictly sorted, canonical JSON representation (`serializeCanonical` in `src/domains/dispatch/receipt-integrity.ts`).
|
|
211
211
|
|
|
212
212
|
- **Object Key Sorting**: Keys are sorted lexicographically before serialization (`Object.keys(obj).sort()`).
|
|
213
213
|
- **Strict Primitive Handling**: `undefined` object properties are omitted; non-finite numbers (`NaN`, `Infinity`) or `bigint` throw an explicit serialization error.
|
|
214
|
-
- **Coverage**: Includes every current receipt field and reconstructible ledger field, including route intent/decision/quality, execution role, worker identity, result-contract conformance, node/reroute/gate/plan provenance, briefing, steering, and `outcomeCode`.
|
|
214
|
+
- **Coverage**: Includes every current receipt field and reconstructible ledger field, including route intent/decision/quality, execution role, worker identity, result-contract conformance, node/reroute/gate/plan/council provenance, briefing, steering, task worktree application, and `outcomeCode`.
|
|
215
215
|
|
|
216
216
|
Integrity is only the artifact-integrity axis of the canonical trust status.
|
|
217
217
|
The other axes are validation grounding, independent review, context
|
package/package.json
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { discoverDeclaredProjectCommands } from "../tools/verify/authoring.js";
|
|
4
|
+
|
|
5
|
+
function quoted(value: string): string {
|
|
6
|
+
return JSON.stringify(value);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function runFleetCommands(args: ReadonlyArray<string>): number {
|
|
10
|
+
if (args.length !== 1 || args[0] !== "init") {
|
|
11
|
+
process.stderr.write("clio-coder fleet: commands: usage: clio-coder fleet commands init\n");
|
|
12
|
+
return 2;
|
|
13
|
+
}
|
|
14
|
+
const destination = join(process.cwd(), ".clio-coder", "fleets", "commands.yaml");
|
|
15
|
+
if (existsSync(destination)) {
|
|
16
|
+
process.stderr.write(`clio-coder fleet: commands init: destination already exists: ${destination}\n`);
|
|
17
|
+
return 2;
|
|
18
|
+
}
|
|
19
|
+
const entries = discoverDeclaredProjectCommands(process.cwd());
|
|
20
|
+
const lines = [
|
|
21
|
+
"# Draft fleet command registry.",
|
|
22
|
+
"# Every entry was discovered from a project declaration. Uncommenting an entry confirms its exact invocation.",
|
|
23
|
+
"# version: 1",
|
|
24
|
+
"# commands:",
|
|
25
|
+
];
|
|
26
|
+
for (const entry of entries) {
|
|
27
|
+
lines.push(
|
|
28
|
+
`# ${entry.id}:`,
|
|
29
|
+
`# argv: [${entry.command.map(quoted).join(", ")}]`,
|
|
30
|
+
`# description: ${quoted(`Discovered from ${entry.provenance.path}: ${entry.provenance.detail}`)}`,
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
mkdirSync(dirname(destination), { recursive: true });
|
|
34
|
+
writeFileSync(destination, `${lines.join("\n")}\n`, { flag: "wx" });
|
|
35
|
+
process.stdout.write(`${destination}\n`);
|
|
36
|
+
return 0;
|
|
37
|
+
}
|