@iowarp/clio-coder 0.3.7 → 0.3.8
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 +31 -0
- package/README.md +7 -2
- package/dist/{acp-SK4MD6MM.js → acp-U67UHUK2.js} +13 -13
- package/dist/{agents-2FN2K6ME.js → agents-YU6SGALZ.js} +35 -33
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-QIYZWM5I.js → auth-5ZPJOIVG.js} +32 -24
- package/dist/builtins-C6JMZVV6.js +17 -0
- package/dist/{chunk-YD734TPH.js → chunk-26LEYJZH.js} +2 -2
- package/dist/{chunk-TSHXZTOQ.js → chunk-2HEJ2F35.js} +5 -5
- package/dist/{chunk-WJHBC77E.js → chunk-2HFZQUHL.js} +5 -5
- package/dist/{chunk-FO5ZOVUY.js → chunk-3BINW3FP.js} +5 -5
- package/dist/{chunk-EOOQZZDE.js → chunk-4SPRNWDE.js} +18 -18
- package/dist/{chunk-EBEFWSGL.js → chunk-5DHKRSMQ.js} +7 -7
- package/dist/{chunk-OBMAI2DP.js → chunk-5H3GB5BO.js} +11 -9
- package/dist/{chunk-JTSEDYVQ.js → chunk-5Q2VVUKB.js} +7 -7
- package/dist/{chunk-VQNODYQ4.js → chunk-7RFXX52T.js} +294 -3704
- package/dist/{chunk-XEGB6BCN.js → chunk-7RGZWPB6.js} +5 -5
- package/dist/{chunk-GH5622CP.js → chunk-A2NJGIB3.js} +2 -2
- package/dist/{chunk-CEYBNUGC.js → chunk-A3WNZD3P.js} +323 -27
- package/dist/{chunk-D4MDIG46.js → chunk-B5CSFE7B.js} +7 -7
- package/dist/{chunk-2SFS6XQE.js → chunk-DGSYXYMX.js} +3 -2
- package/dist/{chunk-ZWLZP4ZT.js → chunk-DYIM5TJT.js} +98 -12
- package/dist/{chunk-KCMKRQX4.js → chunk-E77JEWSD.js} +42 -49
- package/dist/{chunk-J7PIKKWC.js → chunk-EMYUUSFG.js} +7 -7
- package/dist/{chunk-JRIO5UD2.js → chunk-EQ63NRB7.js} +5 -5
- package/dist/{chunk-UVDSQ6LW.js → chunk-FBVTI2TJ.js} +74 -28
- package/dist/{chunk-BMWK7ZIZ.js → chunk-FHJEP5SW.js} +13 -13
- package/dist/{chunk-FOT2FX5J.js → chunk-GN57SG4G.js} +7 -7
- package/dist/{chunk-SROCI7ZU.js → chunk-GPIEI3LY.js} +5 -5
- package/dist/{chunk-UFQ3F4FW.js → chunk-GU2UIAFZ.js} +4 -4
- package/dist/{chunk-UND3GU2L.js → chunk-H7IXIC72.js} +2 -2
- package/dist/{chunk-VREKEFLL.js → chunk-HLE42MG7.js} +3 -3
- package/dist/{chunk-465YSENW.js → chunk-IFBNV6H6.js} +3 -3
- package/dist/{chunk-LADCF22A.js → chunk-IGWKHNIQ.js} +113 -54
- package/dist/chunk-IIZWH4XA.js +172 -0
- package/dist/{chunk-UHXRNZ2J.js → chunk-IJ7RPIYJ.js} +4 -4
- package/dist/{chunk-M4AKACEO.js → chunk-J3YUBZWY.js} +2 -2
- package/dist/{chunk-AB4XIIVB.js → chunk-JOZYP4GM.js} +6 -6
- package/dist/{chunk-ZGH7FGS5.js → chunk-K4XHGFR5.js} +742 -12
- package/dist/{chunk-EELBMBT6.js → chunk-KTYTFRMB.js} +62 -5
- package/dist/chunk-LU7P4LHA.js +33 -0
- package/dist/{chunk-DQA7QLMD.js → chunk-ME6CCNFO.js} +9 -24
- package/dist/{chunk-KZ2H5X4G.js → chunk-MXKJU4JB.js} +88 -14
- package/dist/{chunk-DMD2AGVS.js → chunk-N22QMJKY.js} +20 -18
- package/dist/chunk-NMPKI6XL.js +3006 -0
- package/dist/chunk-NUGM5KR6.js +165 -0
- package/dist/{chunk-5C77SEEY.js → chunk-P43ETTHK.js} +2 -2
- package/dist/{chunk-JNXPYBB4.js → chunk-PMDBGQSJ.js} +2 -2
- package/dist/chunk-PT7HYKEM.js +165 -0
- package/dist/{chunk-GEYXPTRF.js → chunk-RWSI4YD7.js} +2 -2
- package/dist/{chunk-C4JBQ5SR.js → chunk-TANS5ZJS.js} +6 -6
- package/dist/{chunk-YTYFXUI3.js → chunk-TB5666IT.js} +9 -9
- package/dist/{chunk-UUANF5CR.js → chunk-TLQJPP24.js} +375 -687
- package/dist/{chunk-OB5HIGJY.js → chunk-TT36MB5S.js} +2 -1
- package/dist/{chunk-DJNLUABN.js → chunk-TTHACPOM.js} +135 -17
- package/dist/{chunk-6M7VS3J3.js → chunk-TYPGUK6W.js} +4 -4
- package/dist/{chunk-THKY7CD7.js → chunk-U6MBIEMB.js} +108 -24
- package/dist/{chunk-PD3MESLB.js → chunk-VAWNZU7Z.js} +4 -4
- package/dist/{chunk-IR4CFBFN.js → chunk-VCBR6CU7.js} +12 -12
- package/dist/{chunk-WHJYKASB.js → chunk-VHN4MY6O.js} +2 -2
- package/dist/{chunk-MXI6J5JF.js → chunk-VWZOAB7K.js} +10 -10
- package/dist/{chunk-QCTRSGHQ.js → chunk-WLFILSD5.js} +36 -36
- package/dist/{chunk-5UJ6ECTS.js → chunk-WNIJTQQK.js} +6 -6
- package/dist/{chunk-4DWFMQDR.js → chunk-WSB3FPX7.js} +68 -20
- package/dist/{chunk-3HAPLH5M.js → chunk-WWCZ5F23.js} +112 -10
- package/dist/{chunk-X2KV5FXT.js → chunk-WXY7KU3G.js} +2 -2
- package/dist/{chunk-PPAMZ32Z.js → chunk-XK56QHLX.js} +6 -1
- package/dist/{chunk-DOOEX22V.js → chunk-XWSF374K.js} +4 -4
- package/dist/{chunk-6TUKSZVF.js → chunk-YS5VLNH5.js} +8 -8
- package/dist/{chunk-ZZMN5OM4.js → chunk-ZNLWCMVZ.js} +2 -2
- package/dist/{chunk-WHGPSPT5.js → chunk-ZVJ5BLO2.js} +2 -2
- package/dist/cli/index.js +31 -31
- package/dist/{clio-WBVQEBKO.js → clio-QVTYJ57A.js} +8 -8
- package/dist/code-nav-FGGFIE7L.js +2 -2
- package/dist/codewiki/build-worker.js +4 -4
- package/dist/{components-F7OEATSO.js → components-ZFA3SAER.js} +8 -8
- package/dist/{config-TRBL3RCF.js → config-LW5IJFQN.js} +58 -53
- package/dist/{configure-OLCVPHNM.js → configure-7XIZCOU4.js} +26 -21
- package/dist/{context-XEWE3MOJ.js → context-L3WL3X7K.js} +47 -41
- package/dist/{context-WFPKQSM6.js → context-N52ZA626.js} +22 -22
- package/dist/{context-MJIJ6GOX.js → context-Y6Y7QPR6.js} +12 -12
- package/dist/{context-clear-KNOS2JPB.js → context-clear-MBQRLSDQ.js} +47 -41
- package/dist/{context-index-SSR5ECNE.js → context-index-HVMFQHK3.js} +5 -5
- package/dist/{context-working-set-EUXAZI6N.js → context-working-set-GS6DSO7F.js} +14 -14
- package/dist/{dispatch-runner-B7MTOVKL.js → dispatch-runner-22ZCNOM3.js} +83 -55
- package/dist/{docs-FLJTIDSE.js → docs-7LQ23DLM.js} +8 -8
- package/dist/{doctor-RN4YKO2X.js → doctor-M7YEDGAE.js} +24 -20
- package/dist/{eval-RUBJVSNQ.js → eval-BEC2WHDA.js} +71 -19
- package/dist/{evidence-JZNBUOQZ.js → evidence-REJUMSKM.js} +62 -56
- package/dist/{evolve-FJVC4KKI.js → evolve-PY5ZBA5K.js} +41 -35
- package/dist/{extensions-IQL36S7K.js → extensions-HVKU65YU.js} +6 -6
- package/dist/{fleet-BDKYJFCP.js → fleet-7WZEWRFA.js} +72 -67
- package/dist/{fleet-commands-ZFIWZSB3.js → fleet-commands-UVHWM76J.js} +10 -10
- package/dist/{fleet-graph-Y6HPXIVF.js → fleet-graph-6ULH7PES.js} +13 -13
- package/dist/{fleet-preflight-BHSNPBMH.js → fleet-preflight-J53T6CCE.js} +5 -5
- package/dist/{fleet-validate-BIYREGIK.js → fleet-validate-72PC4SLA.js} +17 -17
- package/dist/{init-LQUB5COQ.js → init-OG3TPGQG.js} +61 -56
- package/dist/{library-NJAHIGG4.js → library-CNTMPLRF.js} +18 -18
- package/dist/{memory-OG6HOYKM.js → memory-6IS7F275.js} +43 -37
- package/dist/{models-5ZG5XY7J.js → models-ENRJDA5W.js} +33 -28
- package/dist/{monitor-TJ7AMTGB.js → monitor-XLDVO7TN.js} +56 -38
- package/dist/{orchestrator-WZYB54DM.js → orchestrator-6KSPYRHA.js} +421 -303
- package/dist/{paths-XUC7GS6E.js → paths-DBXMZMDU.js} +5 -5
- package/dist/registry-LG64LTF4.js +11 -0
- package/dist/{reset-PXQT45IY.js → reset-RZ4ER727.js} +10 -10
- package/dist/{run-FQ74YF62.js → run-Y2CNK5RU.js} +79 -74
- package/dist/{share-FW7SVCL3.js → share-A55GYP6Z.js} +16 -16
- package/dist/{skills-7E7IRB3R.js → skills-ALC5J6AT.js} +19 -19
- package/dist/{skills-eval-LI75W6OK.js → skills-eval-JPBEBYQU.js} +52 -47
- package/dist/support-MIETYA5E.js +38 -0
- package/dist/{targets-4CIFKCTW.js → targets-VGNXIR3S.js} +42 -33
- package/dist/{terminal-lease-WUZY7ZV5.js → terminal-lease-WOBR64YA.js} +3 -3
- package/dist/{uninstall-7FV7IP4E.js → uninstall-ZJF5H5ZN.js} +8 -8
- package/dist/{upgrade-K2HVIVMQ.js → upgrade-FUSUAGHR.js} +27 -25
- package/dist/{usage-GTZELZQX.js → usage-N4MKVHKD.js} +51 -46
- package/dist/{verifiers-RLAHT27O.js → verifiers-YAWOJ3H2.js} +13 -13
- package/dist/{verify-BX3BRKH5.js → verify-LTDHYBGY.js} +9 -9
- package/dist/{wiki-generate-ASIFASCN.js → wiki-generate-6M7GHTBJ.js} +66 -61
- package/dist/worker/entry.js +68 -61
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +1 -1
- package/docs/artifact-versions.md +6 -5
- package/docs/built-in-agents.md +1 -1
- package/docs/commands-and-modes.md +2 -2
- package/docs/configuration-and-targets.md +8 -3
- package/docs/context-engine.md +1 -1
- package/docs/documentation-guide.md +1 -1
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +70 -6
- package/docs/evolution.md +1 -1
- package/docs/extensions-and-sharing.md +1 -1
- package/docs/fleet-dispatch.md +34 -9
- package/docs/glossary.md +21 -1
- package/docs/installation-and-lifecycle.md +1 -1
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +1 -1
- package/docs/observability.md +2 -2
- package/docs/proactive-memory.md +1 -1
- package/docs/prompt-envelope-and-tools.md +4 -2
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +41 -38
- package/docs/safety-model.md +1 -1
- package/docs/scientific-validation.md +1 -1
- package/docs/skills-marketplace.md +1 -1
- package/docs/tool-usage.md +1 -1
- package/docs/trace-store.md +1 -1
- package/docs/tui-design.md +1 -1
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +1 -2
- package/src/cli/argv.ts +5 -0
- package/src/cli/configure.ts +107 -23
- package/src/cli/doctor.ts +5 -1
- package/src/cli/evidence.ts +30 -25
- package/src/cli/fleet-preflight.ts +2 -12
- package/src/cli/shared.ts +1 -0
- package/src/cli/targets.ts +4 -1
- package/src/cli/validate-model.ts +60 -5
- package/src/core/bus-events.ts +25 -0
- package/src/core/commit-attribution.ts +4 -4
- package/src/core/path-boundary.ts +100 -0
- package/src/domains/agents/extension.ts +2 -11
- package/src/domains/agents/fleet-contract.ts +30 -12
- package/src/domains/agents/recipe.ts +7 -1
- package/src/domains/agents/registry.ts +73 -5
- package/src/domains/agents/result-contract.ts +128 -17
- package/src/domains/agents/write-boundary.ts +15 -50
- package/src/domains/context/project-rules.ts +51 -1
- package/src/domains/dispatch/assignment-reconcile.ts +22 -5
- package/src/domains/dispatch/assignment-store.ts +151 -14
- package/src/domains/dispatch/contract.ts +15 -1
- package/src/domains/dispatch/delegation-plan.ts +2 -5
- package/src/domains/dispatch/execution-role.ts +9 -1
- package/src/domains/dispatch/extension.ts +156 -67
- package/src/domains/dispatch/fleet-run.ts +57 -3
- package/src/domains/dispatch/gate-role-prompts.ts +38 -0
- package/src/domains/dispatch/index.ts +3 -1
- package/src/domains/dispatch/intent-requirements.ts +40 -0
- package/src/domains/dispatch/intent.ts +84 -8
- package/src/domains/dispatch/path-scope.ts +370 -0
- package/src/domains/dispatch/receipt-integrity.ts +2 -1
- package/src/domains/dispatch/types.ts +14 -7
- package/src/domains/dispatch/validation.ts +6 -3
- package/src/domains/dispatch/write-boundary-enforcer.ts +45 -0
- package/src/domains/dispatch/write-boundary.ts +201 -22
- package/src/domains/eval/metrics/evidence.ts +79 -2
- package/src/domains/eval/runners/clio-run.ts +12 -2
- package/src/domains/evidence/build.ts +69 -11
- package/src/domains/evidence/index.ts +21 -0
- package/src/domains/evidence/provenance.ts +46 -11
- package/src/domains/evidence/trust-projection.ts +274 -0
- package/src/domains/evidence/trust-status.ts +145 -17
- package/src/domains/evidence/types.ts +4 -0
- package/src/domains/extensions/discovery.ts +88 -1
- package/src/domains/extensions/resources.ts +20 -8
- package/src/domains/extensions/state.ts +6 -2
- package/src/domains/extensions/types.ts +4 -1
- package/src/domains/lifecycle/doctor.ts +140 -1
- package/src/domains/prompts/contract.ts +3 -5
- package/src/domains/providers/extension.ts +30 -2
- package/src/domains/resources/common-loader.ts +3 -0
- package/src/domains/resources/prompts/loader.ts +119 -14
- package/src/domains/safety/policy-engine.ts +5 -5
- package/src/domains/safety/run-effects.ts +64 -1
- package/src/domains/safety/scope.ts +7 -12
- package/src/engine/acp/server.ts +4 -1
- package/src/engine/prompt-templates.ts +18 -1
- package/src/engine/worker-runtime.ts +6 -3
- package/src/interactive/dispatch-board.ts +53 -3
- package/src/interactive/interactive-event-projection.ts +14 -0
- package/src/interactive/overlays/settings.ts +141 -47
- package/src/interactive/slash-commands.ts +7 -2
- package/src/interactive/view/artifacts.ts +42 -9
- package/src/interactive/view/view-overlay.ts +15 -3
- package/src/interactive/worker-receipts.ts +14 -2
- package/src/interactive/worker-stream.ts +8 -0
- package/src/tools/dispatch-admission.ts +12 -13
- package/src/tools/dispatch-arguments.ts +27 -0
- package/src/tools/dispatch-plan.ts +29 -0
- package/src/tools/dispatch-runner.ts +48 -13
- package/src/tools/monitor.ts +13 -0
- package/src/tools/worker-evidence.ts +19 -13
- package/src/worker/spec-contract.ts +2 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Evidence Corpus and Long-Term Memory
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **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.
|
|
4
|
+
> **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.8). Use it to design, validate, and simulate memory proposals, approval loops, pruning rules, and token budgets.
|
|
5
5
|
|
|
6
6
|
Clio Coder treats run claims and agent lessons as structured artifacts to support reproducibility and scientific provenance. In evaluations such as [SWE-bench](https://www.swebench.com), capturing granular execution evidence is essential for validating agent claims. Evidence corpora are deterministic directories built from run ledgers, receipts, sessions, audits, and eval artifacts. In v0.3.7, forensic evidence auto-builds on dispatch run completion: when a run finalizes, the observability domain automatically compiles the evidence bundle under `<dataDir>/evidence/run-<id>/` and updates a compact sidecar index row in `<stateDir>/evidence-index.json`. Long-term memory records are local, evidence-linked, and only injected after explicit approval. Use the TUI [`/view`](observability.md) command for interactive inspection of receipts, dispatch output, durable tool output, compaction summaries, and session accountability before building or citing evidence.
|
|
7
7
|
|
|
@@ -76,7 +76,7 @@ Eval evidence adds `eval-result.json` and uses empty receipt/protected-artifact
|
|
|
76
76
|
|
|
77
77
|
Session ledger entries are attributed to a run by the run id the producer stamped on the entry at write time. Rows built from those entries carry that provenance in a `runLink` field (`{ kind, confidence, candidateRunIds? }`) in `tool-events.jsonl` and `protected-artifacts.json`; a write-time stamp is `kind: "entry-run-id"`, `confidence: "exact"`. Entries written without run context fall back to timestamp windowing, labeled `kind: "timestamp-window"`, `confidence: "best-effort"`, and printed as `link=timestamp-window` in the transcript. Concurrent dispatch runs share one clock and their windows overlap, so an entry inside more than one window has no owner the bundle can name. Such an entry is reported in the bundle of every run it may belong to, with `runId: null`, `kind: "ambiguous-timestamp-window"`, and a `candidateRunIds` list, plus a `best-effort-link` finding counting them. It is never dropped and never claimed as exact.
|
|
78
78
|
|
|
79
|
-
When a run was chained (pipeline), composed with a persona override, or escalated for a permission, `transcript.md` and `trace.cleaned.jsonl` surface the receipt's provenance field sets, and `clio-coder evidence inspect` prints them as a `provenance <runId>:` block. The field paths, types, and stability labels are documented in the [receipt provenance schema](./observability.md#receipt-fields-for-dispatch-provenance).
|
|
79
|
+
When a run was chained (pipeline), composed with a persona override, or escalated for a permission, `transcript.md` and `trace.cleaned.jsonl` surface the receipt's provenance field sets, and `clio-coder evidence inspect` prints them as a `provenance <runId>:` block. The block is the detail behind the canonical trust projection, never a second reading of it: it is printed only for a run whose seal the projection verified, its `autonomy:` line carries the policy name, external mode, and bypass flag and never the axis word (`mediated`, `approximated`, `bypassed` are the trust summary's to print), and a run whose seal was rejected or retired gets no block at all, so the output never publishes a value the projection reported as `absent`. The field paths, types, and stability labels are documented in the [receipt provenance schema](./observability.md#receipt-fields-for-dispatch-provenance).
|
|
80
80
|
|
|
81
81
|
### Task and decision provenance
|
|
82
82
|
|
|
@@ -106,6 +106,7 @@ Clio Coder classifies every run, session, and eval record using a closed set of
|
|
|
106
106
|
| `blocked-tool` | Failure | The safety net blocked a tool call requested by the model. |
|
|
107
107
|
| `escalation` | Precaution | A worker permission escalation timed out or was denied; see the receipt provenance schema below. |
|
|
108
108
|
| `receipt-integrity` | Security | Forensic verification detected receipt modification or checksum mismatch. |
|
|
109
|
+
| `receipt-retired` | Provenance | The receipt was sealed under an integrity version this build no longer verifies. It is not migrated and not read as evidence; the row names both versions. An info row, never the security warning a modified receipt gets. |
|
|
109
110
|
| `protected-artifact`| Precaution | Mutating a path protected by project or system safety policies. |
|
|
110
111
|
| `tool-loop` | Constraint | The model repeatedly called the same tool with identical arguments. |
|
|
111
112
|
| `test-failure` | Failure | A verification command containing test/lint keywords exited non-zero. |
|
|
@@ -116,6 +117,9 @@ Clio Coder classifies every run, session, and eval record using a closed set of
|
|
|
116
117
|
| `auth-failure` | Failure | Missing or invalid credentials/API keys. |
|
|
117
118
|
| `external-bypass` | Security | An external runner bypassed standard safety gates. |
|
|
118
119
|
| `external-approximation`| Validation | An external runner approximated results rather than fully executing. |
|
|
120
|
+
| `independent-review` | Validation | The canonical independent-review axis: a failed, correlated, or inconclusive review is a warning; a successful run with no review at all is an info row saying its result rests on its own receipt. |
|
|
121
|
+
| `context-provenance` | Provenance | The canonical context-provenance axis read `invalid`: the receipt's briefing or project-context record contradicts itself. |
|
|
122
|
+
| `completion-evidence` | Validation | The canonical completion-evidence axis: a mutation that finished without validation evidence at the completion boundary is a warning; an explicit limitation is an info row. |
|
|
119
123
|
| `unknown` | Undefined | Unclassified execution failure. |
|
|
120
124
|
|
|
121
125
|
---
|
|
@@ -207,11 +211,12 @@ They do not mutate receipt, gate-decision, evidence-bundle, or session formats.
|
|
|
207
211
|
| Current receipt present but integrity not checked | Artifact integrity is `unknown`; the receipt's own digest never authenticates itself. The other receipt-owned axes are `absent` with `not_observed` until authentication succeeds. |
|
|
208
212
|
| Historical receipt missing its integrity block | Receipt-owned axes are `unknown` through the compatibility source, even if a caller presents a contradictory positive verification result. |
|
|
209
213
|
| Integrity verification succeeds or fails | Artifact integrity is `verified` or `failed`. A failure leaves the receipt-owned validation grounding, context provenance, and autonomy enforcement `absent`; no untrusted receipt claim contributes a positive state. Validation the session ledger observed on its own (a validation command that ran and exited 0) still grounds the run, so a tampered run can read `artifactIntegrity: failed` beside `validationGrounding: validated`. The two axes name different artifacts and different authorities, and the bundle's `receipt-integrity` finding is what flags the pairing. |
|
|
214
|
+
| Receipt sealed under a retired integrity version | Artifact integrity is `unknown` through the compatibility source `run_receipt:<runId>:integrity-v<N>-retired`, which is where the human clause reads the version back from (`seal v19 retired (this build verifies v20)`); `failed` and "seal broken" are reserved for a seal this build checked and rejected. The receipt-owned axes are `absent` with `historical_format`, and the verdict is `unknown` rather than `compromised`. The receipt is not migrated and not read as evidence: the bundle records a `receipt-retired` info finding, `evidence build` prints it as a note and exits 0, and `/view verify` reports `verify retired` with both versions. |
|
|
210
215
|
| Receipt `verification.state: verified` | Validation grounding is `validated` unless a stronger typed failure or ungrounded claim is present. |
|
|
211
216
|
| Receipt `verification.state: unverified` | Validation grounding is `absent` with `not_observed`; lack of a validation tool is not a failed validation. |
|
|
212
217
|
| Receipt verification `unknown` or `not_applicable` | Validation grounding preserves `unknown` or `not_applicable`. A missing historical verification field maps to `unknown`. |
|
|
213
218
|
| Typed receipt validation or result-contract quality | A passing correctness-bearing fact maps to `validated`; a failing fact maps to `failed`; an ungrounded passing claim maps to `ungrounded`. |
|
|
214
|
-
| Valid bounded project context or valid briefing hash | Context provenance is `recorded`. Explicit project-context tier `none` with no briefing is `not_applicable`; a missing historical field is `unknown`; a contradictory block is `invalid`. |
|
|
219
|
+
| Valid bounded project context, valid none-tier workspace-root record, or valid briefing hash | Context provenance is `recorded`. A `none`-tier run still receives the workspace-root message, so a none-tier block naming exactly `workspace-root` with a well-formed count and hash is `recorded`. Explicit project-context tier `none` with no content and no briefing is `not_applicable`; a missing historical field is `unknown`; a contradictory block (a handbook section under a none policy, a hash with no section, a malformed count) is `invalid`. |
|
|
215
220
|
| Gate decision | An authenticated independent pass or fail maps to `passed` or `failed`. Correlated review maps to `not_independent`. Unauthenticated artifacts map to `unknown`; operator or full-auto confirmation alone is `not_applicable` to independent review. |
|
|
216
221
|
| Receipt autonomy grade | `mediated`, `approximated`, and `bypassed` map to `enforced`, `approximated`, and `bypassed`. A dangerous-bypass flag always normalizes to `bypassed`; a missing historical block is `unknown`. |
|
|
217
222
|
| Finish-contract assessment | `validation_evidence`, `unvalidated_mutation`, `explicit_limitation`, and `no_mutation` map to `evidenced`, `incomplete`, `limited`, and `not_applicable`. A run whose receipt was presented and rejected downgrades `evidenced` to `unknown`: the row still points at its own record, but a rejected receipt authenticates nothing about the run it names. |
|
|
@@ -222,15 +227,74 @@ Receipt inspection, worker output, monitor details, and evidence rebuilding all
|
|
|
222
227
|
use the same authenticated receipt projection boundary. Evidence rebuilding
|
|
223
228
|
then composes independently authenticated gate decisions and exact
|
|
224
229
|
finish-contract records without changing receipt-owned axes. Findings such as
|
|
225
|
-
`no-validation`, `proxy-validation`, `external-approximation`,
|
|
226
|
-
`external-bypass`
|
|
227
|
-
|
|
230
|
+
`no-validation`, `proxy-validation`, `external-approximation`,
|
|
231
|
+
`external-bypass`, `independent-review`, `context-provenance`, and
|
|
232
|
+
`completion-evidence` are selected from the canonical states, so every axis
|
|
233
|
+
reaches `findings.md`, while their detailed domain artifacts remain in the
|
|
234
|
+
receipt, gate, audit, and trace files.
|
|
228
235
|
|
|
229
236
|
The canonical aggregate is an additive projection for downstream work. Receipt
|
|
230
237
|
integrity remains version 18, evidence bundles remain version 1, gate decisions
|
|
231
238
|
remain version 2, and no persisted receipt field or cryptographic algorithm
|
|
232
239
|
changes.
|
|
233
240
|
|
|
241
|
+
### Trust projection
|
|
242
|
+
|
|
243
|
+
`src/domains/evidence/trust-projection.ts` is the one place the canonical
|
|
244
|
+
status is turned into words. Every operator surface prints from it, so the
|
|
245
|
+
same canonical input renders the same verdict on the dispatch run line, in a
|
|
246
|
+
monitor block, under `clio-coder evidence inspect`, in `findings.md`, on the
|
|
247
|
+
Alt+W board, in the `/view` receipt header, in eval metrics, and on the ACP
|
|
248
|
+
wire.
|
|
249
|
+
|
|
250
|
+
The compact human line has six fixed clauses in a fixed order and answers the
|
|
251
|
+
four operator questions without receipt internals:
|
|
252
|
+
|
|
253
|
+
```text
|
|
254
|
+
trust v1: sealed; grounded by host-verification; not independently reviewed; mediated; context recorded; completion evidenced
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
| Clause | Axis | Question it answers |
|
|
258
|
+
|---|---|---|
|
|
259
|
+
| `sealed` / `seal broken` / `seal unchecked` / `no receipt` | Artifact integrity | Can the record be trusted to be what was written? |
|
|
260
|
+
| `grounded by <claimant>` / `validation failed by <claimant>` / `inferred: validation claimed, none observed` / `no validation observed` / `validation unknown (<system>)` / `validation not applicable` | Validation grounding | Who claims the result, and what was observed? |
|
|
261
|
+
| `independently reviewed: pass` / `independently reviewed: fail` / `independent review inconclusive` / `review not independent` / `not independently reviewed` | Independent review | What did a second, uncorrelated authority check? |
|
|
262
|
+
| `mediated` / `approximated (<runtime>)` / `bypassed (<runtime>)` / `autonomy not recorded` | Autonomy enforcement | Did Clio's own gate mediate the run? |
|
|
263
|
+
| `context recorded` / `context record invalid` / `context not recorded` | Context provenance | Is what the worker was given recorded consistently? |
|
|
264
|
+
| `completion evidenced` / `completion unevidenced` / `completion limited` / `completion not applicable` | Completion evidence | What did the finish contract observe? |
|
|
265
|
+
|
|
266
|
+
`mediated` is the word for the `enforced` state because it is what the
|
|
267
|
+
receipt grade already says; `inferred` is the word for an `ungrounded` claim.
|
|
268
|
+
Every `unknown` and `absent` state prints as such, so what remains unknown is
|
|
269
|
+
part of the line, never an omission.
|
|
270
|
+
|
|
271
|
+
The drill-down line prints every axis by its canonical state id and is the
|
|
272
|
+
same on every text surface:
|
|
273
|
+
|
|
274
|
+
```text
|
|
275
|
+
trust_status=v1 artifactIntegrity:verified validationGrounding:validated independentReview:absent contextProvenance:recorded autonomyEnforcement:enforced completionEvidence:evidenced
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
The machine projection (`TrustSummaryProjection`, `trust` on the `dispatch`
|
|
279
|
+
tool's `details.runs[]` entries and on the `monitor` receipt details) is
|
|
280
|
+
bounded and versioned: the verdict tier, the six axis states, the claimant,
|
|
281
|
+
the axes still unknown, the compact text, and up to 8 `<kind>:<id>`
|
|
282
|
+
references into the detailed artifacts. It is flat by design so a depth-capped
|
|
283
|
+
wire such as ACP `rawOutput` carries it whole where the nested canonical
|
|
284
|
+
status's artifact references fall off the depth cap.
|
|
285
|
+
|
|
286
|
+
The verdict tier styles a surface and never scores a run. `reviewed` is the
|
|
287
|
+
only tier styled as independently verified; a sealed receipt with observed
|
|
288
|
+
validation is `grounded`, a sealed receipt with nothing observed is
|
|
289
|
+
`unverified`, a broken seal, bypassed gate, failed or inferred validation,
|
|
290
|
+
failed or correlated review, or contradictory context record is
|
|
291
|
+
`compromised`, and an unchecked or missing seal is `unknown`. The Alt+W board
|
|
292
|
+
never carries a verdict on the terminal bus event: the event is published the
|
|
293
|
+
moment the receipt is sealed, before anything has read it back and
|
|
294
|
+
authenticated it against the ledger row, so the board reads the receipt file
|
|
295
|
+
back and projects that authenticated status, and shows `trust: receipt not
|
|
296
|
+
read back` until it can.
|
|
297
|
+
|
|
234
298
|
### Mutation-Report Grounding
|
|
235
299
|
|
|
236
300
|
Mutation-report receipts are grounded directly against observed tool events recorded in the run ledger:
|
package/docs/evolution.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Evolution and Change Manifests
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive change manifest editor, authority risk assessor, and checklist workspace is located at [docs/html/evolution_blueprint.html](html/evolution_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive change manifest editor, authority risk assessor, and checklist workspace is located at [docs/html/evolution_blueprint.html](html/evolution_blueprint.html) (Version: 0.3.8).
|
|
5
5
|
|
|
6
6
|
Clio Coder uses change manifests to make harness changes reviewable, falsifiable, and rollback-friendly. CLIO stands for Context Layer for Input/Output, named for the Greek muse of history. A manifest is JSON, generated or checked with `clio-coder evolve manifest`, and should describe what changed, why, what evidence supports it, what could regress, how to validate it, and how to roll it back.
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Extensions, Prompt Templates, Skills, and Share Archives
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/extensions_blueprint.html](html/extensions_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/extensions_blueprint.html](html/extensions_blueprint.html) (Version: 0.3.8).
|
|
5
5
|
|
|
6
6
|
Clio Coder has lightweight community-oriented resource packaging. Extensions are filesystem bundles that contribute prompts and skills. Share archives are portable JSON files for moving project/user Clio resources between machines or collaborators. Themes are built into the engine and are no longer loaded from extensions.
|
|
7
7
|
|
package/docs/fleet-dispatch.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Fleet Dispatch
|
|
2
2
|
|
|
3
|
-
> **Interactive Spec Available:** An interactive fleet node topology planner, scout router, receipt verifier, and failure taxonomy simulator is located at [docs/html/fleet_dispatch_blueprint.html](html/fleet_dispatch_blueprint.html) (Version: 0.3.
|
|
3
|
+
> **Interactive Spec Available:** An interactive fleet node topology planner, scout router, receipt verifier, and failure taxonomy simulator is located at [docs/html/fleet_dispatch_blueprint.html](html/fleet_dispatch_blueprint.html) (Version: 0.3.8).
|
|
4
4
|
|
|
5
5
|
Clio Coder dispatches bounded worker agents. With a fleet configured, those
|
|
6
6
|
workers run on remote machines over SSH while the orchestrator keeps every
|
|
@@ -424,8 +424,18 @@ marker and no answer text.
|
|
|
424
424
|
|
|
425
425
|
`synthesis: "none"` returns the final member answers directly. `vote` performs
|
|
426
426
|
a deterministic majority tally over structured `verdict` fields without a
|
|
427
|
-
model call. A vote
|
|
428
|
-
|
|
427
|
+
model call. A vote council asks each member for that verdict: the member's task
|
|
428
|
+
carries the ballot directive and the member's run seals a `council-ballot`
|
|
429
|
+
postcondition, `{"verdict":"...","text":"..."}`, in place of the seated
|
|
430
|
+
recipe's own result contract. The seated agent, its persona, and its read-only
|
|
431
|
+
tool profile are unchanged, so any recipe can be voted with. The verdict is a
|
|
432
|
+
single line of at most 64 bytes and is lower-cased before the tally, so members
|
|
433
|
+
who reach the same conclusion land on the same key; the reasoning belongs in
|
|
434
|
+
`text`, which is what the council report shows as the member's answer. A member
|
|
435
|
+
that seals no conforming ballot fails its own run and is reported as a failed
|
|
436
|
+
member rather than dropping silently out of the count. A vote with no majority
|
|
437
|
+
reports `no_majority`, and a vote whose final members all failed reports
|
|
438
|
+
`no_verdict_field`. `judge` runs one additional read-only judge against all final
|
|
429
439
|
answers. Every member run seals a receipt. A judge receipt points backward to
|
|
430
440
|
every final member receipt through gate provenance. The approval artifact names
|
|
431
441
|
each member's label, target, model, thinking level, node, color, round count,
|
|
@@ -521,12 +531,14 @@ The grammar for declared write boundary entries requires repository-relative POS
|
|
|
521
531
|
Write boundary enforcement is detect-and-rollback, never OS or filesystem sandboxing. A step runs with whatever filesystem permissions its underlying execution environment possesses. Upon step completion, the orchestrator inspects the working tree to verify compliance:
|
|
522
532
|
1. Snapshot baseline: Before a step executes, the orchestrator captures a snapshot (`captureWorkspaceSnapshot`) recording the baseline git HEAD commit and existing dirty path content tokens.
|
|
523
533
|
2. Workspace diffing: After step completion, the orchestrator runs git status inspection (`diffWorkspace`) to identify changed paths relative to the snapshot baseline commit.
|
|
524
|
-
3.
|
|
525
|
-
4.
|
|
526
|
-
5.
|
|
527
|
-
6.
|
|
528
|
-
7.
|
|
529
|
-
8.
|
|
534
|
+
3. Authorship attribution: A changed path outside the allowlist is blamed on the window only when it intersects what the window's own runs recorded writing. That record is the run's tool-call stream, folded by the same recorder that grounds a sealed mutation report and read back through `DispatchContract.observedRunWrites`. A change that no run in the window recorded is an unattributed concurrent change: it is listed under `unattributed` in the verdict and reported to the operator, and it is never rolled back. This is what keeps a file an operator edited while a fleet ran from being overwritten with its committed version.
|
|
535
|
+
4. Open records: A run's recorded write set is read as a closed list only when the run could not have written outside it. A window whose steps do not all offer a closed record falls back to blaming every change outside the allowlist, which is the behavior that predates attribution. Three things open a record: a `kind: code` step, whose registered command publishes no tool events; a run whose tool telemetry coverage is not `complete`, such as one on a subprocess runtime; and a run that made a successful call to a tool able to mutate a path its own arguments do not name. That last set is derived from the tool surface rather than authored, as every registered tool outside the `read` and `write` action classes, which today is `bash`, `verify`, `dispatch`, and `steer`, plus any dynamic or MCP tool whose schema this process cannot read. The `git` tool is a closed status, diff, and log surface and stays enumerable. The verdict records `attributionComplete: false` and the operator-facing detail says the blame was inferred from the checkout rather than from the step's own record.
|
|
536
|
+
5. Rollback execution: Attributed unauthorized changes are automatically rolled back (`rollbackPath`).
|
|
537
|
+
6. Content source: Rollback restores content strictly from what git already has in the pinned baseline commit (`snapshot.head`). If a path was already dirty when the step snapshot was captured, its prior content is not stored in git, so in-place restoration cannot be guaranteed. The working tree is left as the step made it, and the status settles as `rollback-incomplete`.
|
|
538
|
+
7. Violation handling: Any attributed unauthorized change fails the step with the typed reason `writes_boundary_violation`.
|
|
539
|
+
8. Window attribution: Enforcement evaluates scheduling windows (`wave-<n>` or `revalidate-<stepId>-<n>`). A wave window cannot combine steps with overlapping declared boundaries or multiple concurrent step writers, ensuring single-step attribution.
|
|
540
|
+
9. Ignored paths and state subtraction: Enforcement evaluates paths reported by git status, which never lists a git-ignored path. A declared `writes` entry the repository ignores is therefore refused before anything runs, by `fleet validate`, by `fleet run` preflight, and by the `/fleet run` preview, with a diagnostic naming the entry and the ignoring rule (for example `'work/' is ignored by .gitignore:1:work/`). Silently certifying such a window as clean is not an option, because nothing about it was observed. The Clio state directory (`.clio-coder/` or `clioStateDir()`) is subtracted from status checks so orchestrator receipts, code step log artifacts, and boundary verdicts do not trigger false violations.
|
|
541
|
+
10. Durable records: Verdicts are serialized as JSON records at `write-boundaries/<rootId>/<window>.json` under the Clio state directory, carrying the baseline HEAD commit, checked paths, violations, unattributed concurrent changes, the attribution completeness flag, rollback actions, status, and SHA-256 digest.
|
|
530
542
|
|
|
531
543
|
### Bounded check/repair loops
|
|
532
544
|
|
|
@@ -670,6 +682,19 @@ Assignment status, attempt ids, and terminal run id are stored separately in
|
|
|
670
682
|
Pipelines and batches await assignment terminals, so downstream stages consume
|
|
671
683
|
the successful fallback output rather than an earlier failed attempt.
|
|
672
684
|
|
|
685
|
+
A fleet run is the exception to "the attempts settle the record". Every step of
|
|
686
|
+
a fleet dispatches under the fleet root id as its lineage root, so all of them
|
|
687
|
+
share one row, and no single step is the run's verdict. The run claims the row
|
|
688
|
+
by writing `verdictOwner: "fleet"` when it opens, files every settled step's
|
|
689
|
+
terminal run id in `attempts` (an agent step's receipt id, a code step's
|
|
690
|
+
`code-*` run id, whose report sits under `code-steps/<fleetRootId>/`), and
|
|
691
|
+
writes `status` once at the end from the whole-run outcome. Until then the row
|
|
692
|
+
stays `running`, and a step settling under it records its attempt without
|
|
693
|
+
touching the status. A run that stops before its last step, whose final step
|
|
694
|
+
fails, or that throws is `failed`; a run abandoned by a crashed process is
|
|
695
|
+
reconciled to `failed` at the next startup rather than inheriting a green
|
|
696
|
+
step's success.
|
|
697
|
+
|
|
673
698
|
Editing assignments also own one baseline-pinned workspace transaction. Every
|
|
674
699
|
attempt gets a distinct worktree. Before any winning diff can reach the
|
|
675
700
|
destination checkout, a pure gate checks terminal outcome, receipt integrity,
|
package/docs/glossary.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Clio Coder Glossary
|
|
2
2
|
|
|
3
|
-
This document defines the
|
|
3
|
+
This document defines the 50 core architectural concepts and terminology used throughout Clio Coder, mapped to their authoritative TypeScript type definitions in `src/`.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -185,3 +185,23 @@ This document defines the 45 core architectural concepts and terminology used th
|
|
|
185
185
|
### 45. Marker
|
|
186
186
|
- **Definition**: The byte-stable one-line stub the projection renders in place of an evicted body, naming the ref, the reason, the tool, the size, and the exact recall call. It carries no timestamp and no counter, because a marker whose bytes drifted between renders would cold-start the prefix cache on a turn that evicted nothing new.
|
|
187
187
|
- **Owning Type**: `renderMarker` in `src/domains/context/working-set/marker.ts`.
|
|
188
|
+
|
|
189
|
+
### 46. Canonical Trust Status
|
|
190
|
+
- **Definition**: The six-axis record of what is known about one run: artifact integrity, validation grounding, independent review, context provenance, autonomy enforcement, and completion evidence. It is an algebra, not a score: no axis promotes another, every non-absent state names its source and authority, and `absent`, `unknown`, and `not_applicable` are states in their own right. See [docs/evidence-and-memory.md](evidence-and-memory.md#canonical-trust-status) for the full state table.
|
|
191
|
+
- **Owning Type**: `CanonicalTrustStatus` in `src/domains/evidence/trust-status.ts`.
|
|
192
|
+
|
|
193
|
+
### 47. Trust Projection
|
|
194
|
+
- **Definition**: The one rendering of the canonical trust status every operator surface prints. The compact human line answers who claims the result, what was observed, what was independently checked, and what is still unknown, in six fixed clauses (`sealed; grounded by host-verification; not independently reviewed; mediated; context recorded; completion evidenced`). The machine projection is the same answer as a bounded, versioned record with references to the detailed artifacts. Dispatch and monitor output, `evidence inspect`, `findings.md`, the Alt+W board, the receipt view, the eval bridge, and the ACP wire all print from it.
|
|
195
|
+
- **Owning Type**: `formatTrustSummary` and `TrustSummaryProjection` in `src/domains/evidence/trust-projection.ts`.
|
|
196
|
+
|
|
197
|
+
### 48. Trust Verdict
|
|
198
|
+
- **Definition**: The presentation tier read off the axes in a fixed order, used for styling and sorting and never as a score. `reviewed` requires an authenticated independent pass and is the only tier styled as independently verified. `grounded` is observed validation without independent review. `unverified` is a sealed receipt with nothing observed. `compromised` is a broken seal, a bypassed gate, a failed or inferred validation, a failed or correlated review, or a contradictory context record. `unknown` is an unchecked or missing seal.
|
|
199
|
+
- **Owning Type**: `TrustVerdict` and `trustVerdict` in `src/domains/evidence/trust-projection.ts`.
|
|
200
|
+
|
|
201
|
+
### 49. Trust Vocabulary
|
|
202
|
+
- **Definition**: The standardized word for each canonical state, so the same fact is never spelled two ways. `sealed` means the receipt authenticated against the ledger row; it says nothing about correctness. `grounded` means validation was observed to run and pass, named by its claimant (`host-verification`, `validation-tool`, `receipt-quality`, `evidence-grounding`). `independently reviewed` means an authenticated reviewer that was not the run itself recorded a verdict. `inferred` means the worker claimed validation and nothing was observed to have run. `mediated` is the word for the `enforced` autonomy state: Clio's own safety gate mediated the run. `approximated` and `bypassed` name an external runtime's enforcement, always with the runtime's id. `unknown` means a named source could not answer; `not applicable` means a named authority decided the axis does not apply.
|
|
203
|
+
- **Owning Type**: `TRUST_STATE_WORDS` in `src/domains/evidence/trust-projection.ts`.
|
|
204
|
+
|
|
205
|
+
### 50. Commonly Confused Trust States
|
|
206
|
+
- **Definition**: `sealed` is not `grounded`: a receipt can authenticate perfectly and describe a run that validated nothing. `grounded` is not `independently reviewed`: a host check is Clio observing the run's own declared command, not a second agent judging the result. A `host checks verified` unit on the board is folded into validation grounding and is never independent review. `mediated` and `enforced` are one state under two names, the receipt grade and the canonical id. `not_requested` is not a trust state at all; a run with no host check reads `no validation observed`. `completion unevidenced` (a mutation finished with no validation at the completion boundary) is distinct from `no validation observed` (no validation was linked anywhere in the run): the first is the finish contract's observation, the second the evidence linker's.
|
|
207
|
+
- **Owning Type**: `TRUST_STATE_WORDS` and `trustVerdict` in `src/domains/evidence/trust-projection.ts`; the axis states in `TRUST_STATUS_STATES` in `src/domains/evidence/trust-status.ts`.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Clio Coder is designed to be self-contained and platform-compliant. This document outlines the default directory paths, file purposes, permission levels, and lifecycle commands (`install`, `reset`, `upgrade`, and `uninstall`). Clio Coder installs from npm as `@iowarp/clio-coder` (`npm install -g @iowarp/clio-coder`, published since v0.3.0) or from a source checkout with a deterministic local symlink; the CLI classifies both install kinds and `clio-coder upgrade` handles each.
|
|
4
4
|
|
|
5
5
|
> [!TIP]
|
|
6
|
-
> **Interactive Spec Available:** An interactive dashboard with a path simulator and visual flowcharts is located at [docs/html/lifecycle_blueprint.html](html/lifecycle_blueprint.html) (Version: 0.3.
|
|
6
|
+
> **Interactive Spec Available:** An interactive dashboard with a path simulator and visual flowcharts is located at [docs/html/lifecycle_blueprint.html](html/lifecycle_blueprint.html) (Version: 0.3.8). You can open it directly in any web browser to view details dynamically.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Middleware and Component Registry
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard with an interactive component scanner and a dynamic hook-and-effect pipeline is located at [docs/html/middleware_blueprint.html](html/middleware_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard with an interactive component scanner and a dynamic hook-and-effect pipeline is located at [docs/html/middleware_blueprint.html](html/middleware_blueprint.html) (Version: 0.3.8).
|
|
5
5
|
|
|
6
6
|
Clio Coder has two related but separate surfaces:
|
|
7
7
|
|
package/docs/model-catalog.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Model Catalog, Runtime Refresh, and Field Notes
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard mapping capabilities, probe discovery, and target resolution is located at [docs/html/models_blueprint.html](html/models_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard mapping capabilities, probe discovery, and target resolution is located at [docs/html/models_blueprint.html](html/models_blueprint.html) (Version: 0.3.8).
|
|
5
5
|
|
|
6
6
|
Clio Coder treats a selectable model as the intersection of three sources:
|
|
7
7
|
|
package/docs/observability.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Observability Viewer
|
|
2
2
|
|
|
3
3
|
> [!TIP]
|
|
4
|
-
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/observability_blueprint.html](html/observability_blueprint.html) (Version: 0.3.
|
|
4
|
+
> **Interactive Spec Available:** An interactive dashboard is located at [docs/html/observability_blueprint.html](html/observability_blueprint.html) (Version: 0.3.8).
|
|
5
5
|
|
|
6
6
|
`/view` is the interactive artifact viewer for a Clio session. It keeps the live transcript compact while preserving a full inspection path for durable artifacts, task ledgers, and successful workspace outputs.
|
|
7
7
|
|
|
@@ -175,7 +175,7 @@ describes validation evidence inside that verified receipt. Likewise,
|
|
|
175
175
|
message. Model-facing dispatch and collect output name all four concepts
|
|
176
176
|
separately and never substitute one hash for another.
|
|
177
177
|
|
|
178
|
-
The evidence bundle renders these sets in `transcript.md` (human sentences) and `trace.cleaned.jsonl` (structured run rows), `clio-coder evidence inspect` prints them as a `provenance <runId>:` block, and the `dispatch` tool appends a compact suffix to each run line plus additive keys on `details.runs[]
|
|
178
|
+
The evidence bundle renders these sets in `transcript.md` (human sentences) and `trace.cleaned.jsonl` (structured run rows), `clio-coder evidence inspect` prints them as a `provenance <runId>:` block, and the `dispatch` tool appends a compact suffix to each run line plus additive keys on `details.runs[]`, including `trust`, the bounded canonical trust projection described in [evidence-and-memory.md](evidence-and-memory.md#trust-projection). A timed-out or denied escalation also raises an `escalation` finding in the bundle.
|
|
179
179
|
|
|
180
180
|
The base provenance sets, steering, routing, quality, worker identity, result-conformance, council provenance, and fleet gate provenance use the strict v19 shape frozen for the release. These fields are labeled `experimental` until the schema is promoted post-1.0. For the complete version registry and migration contract across all artifacts, see [artifact-versions.md](artifact-versions.md).
|
|
181
181
|
|
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.8).
|
|
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.8).
|
|
5
5
|
|
|
6
6
|
Clio Coder keeps the model-facing envelope stable and moves enforcement into the runtime registry and safety policy.
|
|
7
7
|
|
|
@@ -21,7 +21,9 @@ Prompt extensions can add dynamic fragments for project rules, the operator prof
|
|
|
21
21
|
|
|
22
22
|
Prompt templates expand into the operator's user message before submission. They do not alter the compiled system prompt or bypass the trust check on project-scope compatibility roots. The prompt-root locations, frontmatter fields, and trust rules are documented in [extensions-and-sharing.md](extensions-and-sharing.md#prompt-templates).
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
The first whitespace character after `/template-name` is the command delimiter; CRLF counts as one delimiter. Leading whitespace before the slash is also command framing. Every byte after that delimiter is the argument payload, including leading or trailing whitespace, repeated spaces, tabs, quotes, and line breaks.
|
|
25
|
+
|
|
26
|
+
The template body may use `$ARGUMENTS` to insert that raw payload byte-for-byte. Raw insertion is not recursively substituted, so placeholder-like text such as `$1` remains data. `$1` through `$9`, `$@`, `${@:N}`, and `${@:N:L}` retain shell-style parsing: single or double quotes group spaces within one argument, `$@` joins all parsed arguments with single spaces, `${@:N}` selects parsed arguments from one-based position `N`, and `${@:N:L}` selects `L` arguments beginning there. A positional placeholder with no matching argument expands to an empty string. Template names that collide with built-in slash commands fail closed with a diagnostic and are excluded from `/prompts`.
|
|
25
27
|
|
|
26
28
|
## Directory-scoped handbook overrides
|
|
27
29
|
|
|
@@ -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.8).
|
|
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.8 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.8` 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,16 +11,17 @@ 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 | `v0.3.
|
|
19
|
-
| GitHub Release | `v0.3.
|
|
20
|
-
| npm registry | `@iowarp/clio-coder@0.3.
|
|
21
|
-
| npm history | Published versions 0.3.0 through 0.3.4 and 0.3.
|
|
22
|
-
| Milestone | `v0.3.
|
|
23
|
-
|
|
|
14
|
+
| Branch | After the release-cut evidence commit, `v0.3.8` is 30 commits ahead of `main`: the 29-commit candidate through `9b7b80cc` plus the final documentation and verification-evidence commit. The candidate includes the original implementation, the four release-test fixes (#233, #235, #238, #239), the WTF-P extension-resource merge, the `$ARGUMENTS` fidelity fix (#240), and the extension-agent resolution fix (#241). `origin/v0.3.8` remains at `af6546b2`, 17 commits behind the final local tip. |
|
|
15
|
+
| `package.json` version | `0.3.8`; `package-lock.json` agrees at both version fields; the top changelog heading is `## 0.3.8 - 2026-08-29`. |
|
|
16
|
+
| `main` | `598be99c`, the v0.3.7 release SHA; it is an ancestor of the final `v0.3.8` candidate and moves only at Part 4. |
|
|
17
|
+
| `origin/main` | `598be99c`, matching local `main` and still an ancestor of the final candidate. |
|
|
18
|
+
| Tags | `v0.3.7` exists on `598be99c`; no `v0.3.8` tag exists locally or remotely. The redundant `wtfp-safety` tag was deleted. The eight local `tmp-032-*` recovery tags remain and must never be pushed. |
|
|
19
|
+
| GitHub Release | `v0.3.7` is published; no GitHub Release exists for `v0.3.8`. |
|
|
20
|
+
| npm registry | `@iowarp/clio-coder@0.3.8` is absent; `latest` is `0.3.7`; the 0.3.8 dist-tag is undecided. |
|
|
21
|
+
| npm history | Published versions are 0.3.0 through 0.3.4, 0.3.6, and 0.3.7. Version 0.3.5 was published and withdrawn and can never be reused. |
|
|
22
|
+
| Milestone | `v0.3.8` has six open issues, all fixed on the branch: #233, #235, #238, #239, #240, and #241. They close from their `Fixes` trailers when the final candidate reaches `main`. |
|
|
23
|
+
| Interactive release test | The original three-round report is `docs/release-notes/v0.3.8-release-test.md` (57 PASS / 8 FAIL / 3 PARTIAL / 6 OBSERVATION / 2 NOT RUN). The continuation is `docs/release-notes/v0.3.8-verification.md` (44 PASS / 6 non-blocking FAIL / 7 OBSERVATION / 1 NOT RUN), which closes the blocker, verifies the three later merges, and carries the final `CUT` verdict. |
|
|
24
|
+
| Commit provenance identity | Still a post-release maintainer follow-up rather than a release gate; unchanged from 0.3.7. |
|
|
24
25
|
|
|
25
26
|
---
|
|
26
27
|
|
|
@@ -69,35 +70,37 @@ Run against the exact final candidate with `NO_COLOR` unset and
|
|
|
69
70
|
## Part 2: version and notes (repeatable)
|
|
70
71
|
|
|
71
72
|
14. Files carrying a version reference, to update together if the number
|
|
72
|
-
changes: `package.json` and `package-lock.json`, the `## 0.3.
|
|
73
|
-
heading in `CHANGELOG.md`, the `(Version: 0.3.
|
|
74
|
-
the `Blueprint (v0.3.
|
|
73
|
+
changes: `package.json` and `package-lock.json`, the `## 0.3.8 - <date>`
|
|
74
|
+
heading in `CHANGELOG.md`, the `(Version: 0.3.8)` markers in `docs/*.md`,
|
|
75
|
+
the `Blueprint (v0.3.8)` titles in `docs/html/*.html`, the `--branch`
|
|
75
76
|
pin in the README install block (the hygiene lint checks it), and the
|
|
76
77
|
measured-at figures in `scripts/check-release.mjs` if the package size
|
|
77
78
|
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.
|
|
79
|
+
37.9 MB unpacked; re-measure for 0.3.8, inside the 10 MB and 50 MB ceilings set for 0.3.6.
|
|
80
|
+
15. Confirm the `## 0.3.8` section of `CHANGELOG.md` describes every
|
|
80
81
|
user-visible behavior change under `### Added`, and every change to an
|
|
81
82
|
existing behavior under `### Changed`, and carries no Workbench release
|
|
82
83
|
narrative. The release workflow uses this section verbatim as the GitHub
|
|
83
84
|
Release body.
|
|
84
85
|
16. `docs/artifact-versions.md` lists every persisted artifact this release
|
|
85
|
-
added or re-versioned
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
added or re-versioned. For 0.3.8 that is run receipt integrity v20, which
|
|
87
|
+
adds `pathProvenance` on dispatch intent and the resolved `pathScope`, and
|
|
88
|
+
whose entry must also record that a receipt below v20 is reported as
|
|
89
|
+
retired rather than invalid, and the durable assignment record, which now
|
|
90
|
+
carries its owner pid, process birth token, and acquisition time.
|
|
88
91
|
17. Re-run `npm run ci:release` after any version edit and commit as one
|
|
89
|
-
commit on `v0.3.
|
|
92
|
+
commit on `v0.3.8`.
|
|
90
93
|
|
|
91
94
|
## Part 3: present the gate
|
|
92
95
|
|
|
93
|
-
18. Report to the operator before touching `main`: the exact final `v0.3.
|
|
96
|
+
18. Report to the operator before touching `main`: the exact final `v0.3.8`
|
|
94
97
|
SHA and clean status, the commits added since the handoff SHA, the gate
|
|
95
98
|
commands with pass/fail totals, the package version and changelog heading,
|
|
96
99
|
the tarball audit, the clean-install results, the interactive test table,
|
|
97
100
|
and any deferred live check, confirmation that no tag, GitHub Release, or
|
|
98
101
|
npm version exists yet, the proposed commands for Parts 4 through 6, and
|
|
99
102
|
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.
|
|
103
|
+
operator chose `latest` on 2026-08-24; 0.3.8's dist-tag is undecided.
|
|
101
104
|
|
|
102
105
|
---
|
|
103
106
|
|
|
@@ -110,35 +113,35 @@ confirming the exact SHA and the commands.
|
|
|
110
113
|
## Part 4: fast-forward `main`
|
|
111
114
|
|
|
112
115
|
19. `git fetch origin` immediately before integrating; require `origin/main`
|
|
113
|
-
to be an ancestor of the reviewed `v0.3.
|
|
116
|
+
to be an ancestor of the reviewed `v0.3.8` tip and confirm no other
|
|
114
117
|
worktree has `main` checked out.
|
|
115
|
-
20. `git checkout main && git merge --ff-only v0.3.
|
|
118
|
+
20. `git checkout main && git merge --ff-only v0.3.8`. No merge commit, no
|
|
116
119
|
rebase, no reset. Verify `main` equals the reviewed SHA and is clean.
|
|
117
120
|
21. `git fetch origin` once more; stop on any unexpected remote movement. Then
|
|
118
121
|
`git push origin main`. Never `--force` or `--force-with-lease`. The push
|
|
119
|
-
closes the
|
|
122
|
+
closes the six milestone issues through their `Fixes` trailers.
|
|
120
123
|
|
|
121
124
|
## Part 5: exact-SHA CI, tag, GitHub Release
|
|
122
125
|
|
|
123
|
-
22. The `main` push triggers the `ci` workflow.
|
|
124
|
-
|
|
125
|
-
tree itself. A red run
|
|
126
|
+
22. The `main` push triggers the `ci` workflow. Require that exact-SHA run to
|
|
127
|
+
finish green before tagging; `release.yml` then runs the same gate again on
|
|
128
|
+
the tagged tree itself. A red run blocks the cut: investigate it rather than
|
|
126
129
|
tagging around it, and never silence a flake with an unrelated change.
|
|
127
|
-
23. Reconfirm that tag `v0.3.
|
|
128
|
-
`git tag -a v0.3.
|
|
129
|
-
`git push origin refs/tags/v0.3.
|
|
130
|
+
23. Reconfirm that tag `v0.3.8` and the GitHub Release do not exist, then
|
|
131
|
+
`git tag -a v0.3.8 -m "Clio Coder 0.3.8"` on the green SHA and
|
|
132
|
+
`git push origin refs/tags/v0.3.8`.
|
|
130
133
|
24. The tag push triggers `.github/workflows/release.yml`, which verifies the
|
|
131
134
|
tag matches `package.json`, runs `npm run ci:release` on the tagged tree,
|
|
132
|
-
extracts the `## 0.3.
|
|
135
|
+
extracts the `## 0.3.8` section of `CHANGELOG.md` as the release body, and
|
|
133
136
|
attaches the tarball. Do not create a release by hand. Verify the run's
|
|
134
137
|
SHA, the notes, the attached tarball, and the URL.
|
|
135
138
|
|
|
136
139
|
## Part 6: npm publication (irreversible)
|
|
137
140
|
|
|
138
141
|
25. `npm whoami` and confirm the registry and account; reconfirm
|
|
139
|
-
`@iowarp/clio-coder@0.3.
|
|
142
|
+
`@iowarp/clio-coder@0.3.8` is still absent.
|
|
140
143
|
26. Obtain the operator's explicit dist-tag decision. `latest` makes this the
|
|
141
|
-
default install for every user; `--tag next` keeps `0.3.
|
|
144
|
+
default install for every user; `--tag next` keeps `0.3.7` as the default.
|
|
142
145
|
27. Run `npm publish` once. `prepublishOnly` re-runs `ci:release` as a safety
|
|
143
146
|
net; it is not a substitute for Part 1.
|
|
144
147
|
28. A published version cannot be replaced. `npm unpublish` is restricted and
|
|
@@ -146,13 +149,13 @@ confirming the exact SHA and the commands.
|
|
|
146
149
|
|
|
147
150
|
## Part 7: post-publish verification and follow-ups
|
|
148
151
|
|
|
149
|
-
29. `npm view @iowarp/clio-coder@0.3.
|
|
152
|
+
29. `npm view @iowarp/clio-coder@0.3.8` and the selected dist-tag.
|
|
150
153
|
30. On a clean machine, `npm install -g @iowarp/clio-coder` from the registry
|
|
151
154
|
rather than from a local tarball, then repeat step 12 against it, plus
|
|
152
155
|
`configure` to a real target and one real turn when one is authorized.
|
|
153
156
|
This is the only step that tests what users actually receive.
|
|
154
|
-
31. From an installation of 0.3.
|
|
155
|
-
applies 0.3.
|
|
157
|
+
31. From an installation of 0.3.7, verify `clio-coder upgrade` finds and
|
|
158
|
+
applies 0.3.8.
|
|
156
159
|
32. Record the SHA, CI URL, tag, GitHub Release URL, npm version and dist-tag,
|
|
157
160
|
tarball evidence, and the post-publish verification in the release report.
|
|
158
161
|
33. Maintainer follow-up, independent of the release: verify the commit
|
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.8).
|
|
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
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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.8).
|
|
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
|
|
|
@@ -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.8).
|
|
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
|
|
package/docs/tool-usage.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.8).
|
|
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
|
|
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.8).
|
|
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/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.8).
|
|
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
|
|