@iowarp/clio-coder 0.4.5 → 0.4.6
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 +24 -0
- package/CONTRIBUTING.md +14 -9
- package/NOTICE +16 -0
- package/README.md +312 -685
- package/dist/{acp-H3CU2HBQ.js → acp-UVEVWSDL.js} +6 -6
- package/dist/{agents-IXQQZ7BD.js → agents-VWY37DTK.js} +31 -30
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-R7KYF7N3.js → auth-PCV2XQDV.js} +6 -6
- package/dist/{builtins-CRFDQUVP.js → builtins-PD652MTK.js} +3 -3
- package/dist/{chunk-SDWNDICN.js → chunk-24T2YZ7A.js} +58 -56
- package/dist/{chunk-FSTIBAGM.js → chunk-2AKYFREM.js} +7 -7
- package/dist/{chunk-SE4ZKILO.js → chunk-3BJGMT2D.js} +30 -9
- package/dist/{chunk-GVYWZNRK.js → chunk-3HQVBIKD.js} +2 -2
- package/dist/{chunk-EWD5P3GK.js → chunk-3JLFK5MW.js} +4 -4
- package/dist/{chunk-O2RQ7LCK.js → chunk-3O2ZAUGQ.js} +2 -2
- package/dist/{chunk-GXCCHKN6.js → chunk-3QKXHCGS.js} +4 -4
- package/dist/{chunk-YEJIG7LN.js → chunk-3WBALRQH.js} +7 -7
- package/dist/{chunk-I7VLWRK2.js → chunk-4DU2TVI4.js} +5 -5
- package/dist/{chunk-TEG3RYVZ.js → chunk-4U4TKZFR.js} +3 -3
- package/dist/{chunk-EHCPSZJF.js → chunk-4VMV6OS6.js} +2 -2
- package/dist/{chunk-T7FDXNRU.js → chunk-536HXRFE.js} +4 -4
- package/dist/{chunk-ZMZQEBKI.js → chunk-5QRX7SLS.js} +8 -8
- package/dist/{chunk-RXIOCVBZ.js → chunk-6HAO6X5B.js} +4 -4
- package/dist/{chunk-HGSLRG33.js → chunk-6OII3LOK.js} +2 -2
- package/dist/{chunk-U2JOLB7O.js → chunk-6RYDAVQT.js} +32 -32
- package/dist/{chunk-T53XI6I7.js → chunk-6VRRJT7L.js} +2 -2
- package/dist/{chunk-RLTT5GVY.js → chunk-7JSSKXG2.js} +4 -4
- package/dist/{chunk-633EXGZA.js → chunk-ACCKVSHU.js} +3 -3
- package/dist/{chunk-6SYEGZI3.js → chunk-B3MOMLJ4.js} +2 -2
- package/dist/{chunk-UXAC2FX4.js → chunk-BLTEAUCB.js} +3 -3
- package/dist/{chunk-DRD2A54W.js → chunk-BT7HGDOX.js} +15 -15
- package/dist/{chunk-F34AR6O3.js → chunk-DXLUVUD4.js} +5 -5
- package/dist/{chunk-HR3HPQ76.js → chunk-E7RF4KBO.js} +2 -2
- package/dist/chunk-EM2WNQS2.js +93 -0
- package/dist/{chunk-KYKNBD4Y.js → chunk-F5Z7EWMN.js} +953 -233
- package/dist/{chunk-VLPTKCKT.js → chunk-GLYBJ4RQ.js} +3 -3
- package/dist/{chunk-KDWLXVMN.js → chunk-HPTJF6DG.js} +16 -39
- package/dist/{chunk-6CDNRHWH.js → chunk-HZ2T2YED.js} +2 -2
- package/dist/{chunk-UTUNT5QL.js → chunk-HZFBVU5X.js} +7 -7
- package/dist/{chunk-KF6GFW6O.js → chunk-I2K2NCZQ.js} +7 -7
- package/dist/{chunk-5DDOTTG4.js → chunk-IGLVVNEG.js} +2 -2
- package/dist/{chunk-4SVIVOMC.js → chunk-IKRWLEDA.js} +5 -5
- package/dist/{chunk-R6MAYTMS.js → chunk-JMPL7NUB.js} +3 -3
- package/dist/{chunk-5ZMXGW7P.js → chunk-KAFMW7WM.js} +4 -85
- package/dist/{chunk-R6MICQYU.js → chunk-LIN2K3EL.js} +4 -4
- package/dist/{chunk-QEQISF75.js → chunk-LK2FN5JY.js} +1 -1
- package/dist/{chunk-YYB3MC65.js → chunk-N2OKBREN.js} +2 -2
- package/dist/{chunk-XXBQKW32.js → chunk-NNWJYUNO.js} +4 -4
- package/dist/{chunk-TZ7MFRG4.js → chunk-P5JMBPDJ.js} +22 -20
- package/dist/{chunk-WFKDPU7U.js → chunk-P6M7RKMI.js} +2 -2
- package/dist/{chunk-MDU3C27C.js → chunk-PZN2LQY6.js} +5 -5
- package/dist/{chunk-S32UQ5GL.js → chunk-Q7NNUHQV.js} +15 -15
- package/dist/{chunk-U7VQ4NI4.js → chunk-QCOV5DFY.js} +5 -5
- package/dist/{chunk-MC3JSVR6.js → chunk-QJMRYTCX.js} +7 -7
- package/dist/{chunk-DIMRLNIC.js → chunk-QNWRHOMF.js} +3 -3
- package/dist/{chunk-ILJ7DWGE.js → chunk-QXFBABFJ.js} +4 -4
- package/dist/chunk-R2CT5YDO.js +66 -0
- package/dist/{chunk-E3BQTQUP.js → chunk-RGZNQ5CT.js} +3 -3
- package/dist/{chunk-SBZX6ARC.js → chunk-SXQKNKRA.js} +7 -7
- package/dist/{chunk-WLMSOT73.js → chunk-TJFDL26W.js} +3 -3
- package/dist/{chunk-EQEJJ53P.js → chunk-VAHLPXPY.js} +2 -2
- package/dist/{chunk-7TKWWPD7.js → chunk-VANN3GDP.js} +3 -23
- package/dist/{chunk-GNQRWTMY.js → chunk-VHMX7SXF.js} +2 -2
- package/dist/{chunk-UL36QJX6.js → chunk-WKUYQBCG.js} +6 -6
- package/dist/{chunk-FKIOX6DS.js → chunk-WNGF5AJX.js} +9 -4
- package/dist/{chunk-ICO4TQ2F.js → chunk-WV6TDAPN.js} +36 -20
- package/dist/{chunk-K6RDB7IA.js → chunk-X3BI7HTV.js} +9 -9
- package/dist/{chunk-NY6IWDVU.js → chunk-XWMSPJYN.js} +2 -2
- package/dist/{chunk-7HBHHVCK.js → chunk-YPRSNUTC.js} +2 -2
- package/dist/{chunk-ONRTXOZY.js → chunk-ZS43Y2FT.js} +2 -2
- package/dist/cli/index.js +27 -27
- package/dist/{clio-5I2IBFYL.js → clio-QQCMTUZE.js} +6 -6
- package/dist/{code-nav-YXIAEZVS.js → code-nav-GUPM6766.js} +8 -8
- package/dist/{config-Y2JDJ3JJ.js → config-IIM7YOD3.js} +42 -41
- package/dist/{configure-SML6UBZ5.js → configure-4ZM5HWJX.js} +28 -10
- package/dist/{context-S2EEC3EJ.js → context-44BZLJ3J.js} +12 -12
- package/dist/{context-P5YSEO55.js → context-AIDVQKMW.js} +34 -33
- package/dist/{context-QQ53HSGJ.js → context-OL5P3HEP.js} +25 -24
- package/dist/{context-clear-TMEQCOTH.js → context-clear-OQV76MYP.js} +34 -33
- package/dist/{context-working-set-CNLSQN5K.js → context-working-set-ZUW3EGLS.js} +10 -9
- package/dist/{detail-5572VLBO.js → detail-UXPWRANG.js} +35 -34
- package/dist/{dispatch-runner-FRHD6P2O.js → dispatch-runner-P3ZW6G77.js} +38 -37
- package/dist/{doctor-N3LCM2LG.js → doctor-JJVGPZWT.js} +18 -17
- package/dist/{eval-BUU3ZOUZ.js → eval-V2RTN3UH.js} +26 -25
- package/dist/{evidence-DTGEN456.js → evidence-35PYWGSO.js} +34 -33
- package/dist/{evidence-SQ5DNFEN.js → evidence-CIGGKI6J.js} +36 -35
- package/dist/{evolve-IJNUFZDS.js → evolve-33SM3NJP.js} +34 -33
- package/dist/{fleet-ZNNVSYFO.js → fleet-LFO7SIPC.js} +62 -61
- package/dist/{fleet-commands-5YE7NPJL.js → fleet-commands-RLK72GU3.js} +9 -9
- package/dist/fleet-decisions-3SBSCTCW.js +1 -1
- package/dist/{fleet-graph-6HHPWF5T.js → fleet-graph-JZIBCGMW.js} +11 -11
- package/dist/{fleet-inspect-JEYMGCGC.js → fleet-inspect-2L5YGGZJ.js} +35 -34
- package/dist/{fleet-validate-4PM4GDDL.js → fleet-validate-LIAVKDUU.js} +12 -12
- package/dist/{fleet-verify-NJDTHTO3.js → fleet-verify-JIK3OQZR.js} +34 -33
- package/dist/{fleet-view-UP2BWQQY.js → fleet-view-IWHYGQKK.js} +35 -34
- package/dist/{init-S3GZQ5ZF.js → init-NJEDOTQW.js} +46 -45
- package/dist/{interop-YOTGXFJM.js → interop-RVCAYECG.js} +4 -4
- package/dist/{inventory-K2OZ36YJ.js → inventory-74UL7UHU.js} +35 -34
- package/dist/{library-GJI6W6OK.js → library-CTKZA7K3.js} +10 -10
- package/dist/{memory-OQOXQGYD.js → memory-I76I5VUH.js} +34 -33
- package/dist/{models-3IK2Y5WE.js → models-D4YDIQZQ.js} +19 -18
- package/dist/{monitor-FTJLTKCQ.js → monitor-NKVD55HX.js} +40 -39
- package/dist/{orchestrator-N47O7SFD.js → orchestrator-I6OATVPK.js} +658 -1092
- package/dist/{preload-65U34NG6.js → preload-EJAWJEIO.js} +34 -33
- package/dist/{reset-MUVQDLNL.js → reset-4XMQKDNZ.js} +5 -3
- package/dist/{resources-LM76COAO.js → resources-TVYVXK3Q.js} +10 -10
- package/dist/{run-3VFZQ33N.js → run-OWQNNSJU.js} +61 -60
- package/dist/{share-4JUB4BL7.js → share-NPZZMUXG.js} +11 -11
- package/dist/{skills-S36AAJHU.js → skills-OXFEAWMT.js} +12 -12
- package/dist/{skills-eval-G6T57L7M.js → skills-eval-J5TCKSJA.js} +38 -37
- package/dist/{skills-inventory-WLM46PJH.js → skills-inventory-7II4DM57.js} +10 -10
- package/dist/{slash-commands-GBARG3Y7.js → slash-commands-MDSDSWYF.js} +26 -25
- package/dist/{targets-N5REUETU.js → targets-KILZEOCE.js} +36 -20
- package/dist/{tasks-6BVY5YZF.js → tasks-R6P6OV22.js} +7 -7
- package/dist/{terminal-lease-57UEOJKS.js → terminal-lease-LZCG2KN3.js} +2 -2
- package/dist/{upgrade-4HD5HAIV.js → upgrade-D2OZH6IQ.js} +9 -9
- package/dist/{usage-4GWM2WWP.js → usage-PIASNUS4.js} +40 -39
- package/dist/{verifiers-GSKWKWVG.js → verifiers-LTHUY2PX.js} +9 -9
- package/dist/{verify-3AS3ULCY.js → verify-HYF7KBVE.js} +7 -7
- package/dist/{wiki-generate-7BV7XWIY.js → wiki-generate-RK7JQ5NP.js} +51 -50
- package/dist/worker/entry.js +41 -39
- package/docs/architecture/context-engine.md +1 -1
- package/docs/architecture/tui-design.md +45 -30
- package/docs/guide/commands-and-modes.md +26 -25
- package/docs/guide/configuration-and-targets.md +122 -27
- package/docs/guide/configuration-reference.md +9 -4
- package/docs/guide/fleet-dispatch.md +1 -6
- package/docs/guide/glossary.md +1 -1
- package/docs/guide/installation-and-lifecycle.md +44 -11
- package/docs/process/development-pipeline.md +1 -1
- package/docs/process/documentation-coverage.md +1 -1
- package/docs/process/release-cut-checklist.md +18 -6
- package/package.json +1 -1
- package/src/cli/ask.ts +10 -10
- package/src/cli/configure-editor.ts +51 -0
- package/src/cli/configure-interop.ts +1 -1
- package/src/cli/configure-oauth.ts +1 -1
- package/src/cli/configure-onboarding.ts +232 -96
- package/src/cli/configure-prompts.ts +76 -0
- package/src/cli/configure-quick.ts +274 -0
- package/src/cli/configure-target.ts +14 -2
- package/src/cli/configure.ts +413 -174
- package/src/cli/oauth-manual-input.ts +1 -1
- package/src/cli/reset.ts +2 -0
- package/src/cli/select.ts +35 -4
- package/src/cli/upgrade.ts +2 -2
- package/src/core/config.ts +6 -1
- package/src/core/defaults.ts +33 -11
- package/src/{interactive → core}/external-editor.ts +4 -4
- package/src/domains/config/classify.ts +1 -1
- package/src/domains/config/keybindings.ts +3 -31
- package/src/domains/providers/probe/fingerprint.ts +13 -6
- package/src/domains/providers/probe/reasoning.ts +2 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
- package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
- package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
- package/src/interactive/application-controller.ts +1 -31
- package/src/interactive/chat-panel.ts +163 -637
- package/src/interactive/chat-renderer.ts +13 -30
- package/src/interactive/dispatch-board.ts +1 -3
- package/src/interactive/editor-submit.ts +8 -31
- package/src/interactive/footer/dashboard.ts +8 -3
- package/src/interactive/footer/widgets.ts +50 -91
- package/src/interactive/interactive-application.ts +16 -42
- package/src/interactive/interactive-event-projection.ts +2 -44
- package/src/interactive/interactive-input-runtime.ts +3 -28
- package/src/interactive/interactive-presentation.ts +30 -9
- package/src/interactive/interactive-slash-runtime.ts +3 -40
- package/src/interactive/layout.ts +29 -4
- package/src/interactive/overlay-general-openers.ts +2 -0
- package/src/interactive/overlay-lifecycle.ts +1 -0
- package/src/interactive/overlay-session-lifecycle.ts +1 -1
- package/src/interactive/overlays/settings.ts +9 -8
- package/src/interactive/renderers/preview.ts +16 -0
- package/src/interactive/renderers/tool-execution.ts +67 -160
- package/src/interactive/renderers/worker-entry.ts +57 -41
- package/src/interactive/slash-autocomplete.ts +1 -6
- package/src/interactive/slash-commands.ts +7 -39
- package/src/interactive/status/controller.ts +0 -5
- package/src/interactive/status/state-machine.ts +44 -26
- package/src/interactive/status/types.ts +3 -0
- package/src/interactive/status/verbs.ts +13 -12
- package/src/interactive/transcript-detail.ts +50 -112
- package/src/interactive/view/artifacts.ts +4 -0
- package/src/interactive/view/view-overlay.ts +44 -34
- package/src/tools/presentation.ts +1 -1
- package/src/tools/registry.ts +1 -1
- package/src/tools/verify/numeric.ts +4 -4
|
@@ -9,6 +9,32 @@ The governing principle: **the user reads state from color, structure from frame
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## Output styles
|
|
13
|
+
|
|
14
|
+
**Alt+O** cycles **Compact → Standard → Detailed → Compact**. Standard is the default, so the first press reveals Detailed. The current style appears in the footer. Cycling applies immediately to the current session, including streaming output and history. Save a preferred startup style through **/settings interface → Output style → Apply and save globally**, or `clio-coder configure --section panes`.
|
|
15
|
+
|
|
16
|
+
| Content | Compact | Standard | Detailed |
|
|
17
|
+
| --- | --- | --- | --- |
|
|
18
|
+
| Answers and user messages | Complete | Complete | Complete |
|
|
19
|
+
| Supplied reasoning | Marker | 3 rows | 12 rows |
|
|
20
|
+
| Reads and searches | Consecutive successful observations grouped | Action and outcome | 8 result rows |
|
|
21
|
+
| File changes | Paths and change facts | 8 diff rows | 20 diff rows |
|
|
22
|
+
| Agent shell commands | Command and outcome | Command and outcome | 12 output rows |
|
|
23
|
+
| Your `!` / `!!` shell commands | 3 output rows | 6 output rows | 12 output rows |
|
|
24
|
+
| Workers | Identity, execution and validation outcome | 3 summary rows | 8 summary rows and bounded tool activity |
|
|
25
|
+
| Failures and refusals | Actionable reason, up to 4 rows | Actionable reason, up to 4 rows | Up to 12 rows |
|
|
26
|
+
| Turn receipt | None | Completion and available duration | Usage and model-call facts |
|
|
27
|
+
|
|
28
|
+
Preview budgets count terminal rows **after wrapping**, including the `/view` overflow hint, and shrink on short terminals. Reasoning previews retain the newest text when streaming stops. Detailed remains bounded: a successful `cat` or file read cannot fill the transcript with the entire file.
|
|
29
|
+
|
|
30
|
+
Use **/view transcript** to select full available reasoning, tool arguments/results, local shell output, or worker details. Search the list, press Enter to inspect, and Escape to return. Offloaded tool and dispatch output remains available in the other `/view` categories; missing or truncated captured content is identified. Inspection applies secret redaction, and `!!` output remains excluded from model context.
|
|
31
|
+
|
|
32
|
+
Output style changes presentation only. **Shift+Tab** still changes the model's thinking effort. It does not reveal unavailable reasoning; Clio shows only reasoning supplied by the provider. The previous Alt+R, Alt+P, and expand-all rendering shortcuts are retired. `/output` now explains how to reach Alt+O and Settings. Existing `minimal`, `default`, and `verbose` preferences map to `compact`, `standard`, and `detailed` without rewriting other preferences.
|
|
33
|
+
|
|
34
|
+
The footer owns live activity. Transcript actions have static running or outcome markers and update in place. Background workers add a count without replacing the main agent's current phase; a completed worker cannot clear a sibling's active state. Approval and user-input waits do not spin. Failed and cancelled turns retain their actual outcome, and an elapsed wait is described as silence rather than proof that a process is stuck. A worker's successful execution remains separate from its validation result.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
12
38
|
## 1. Color System
|
|
13
39
|
|
|
14
40
|
All color styling is defined in [src/interactive/theme/tokens.ts](../../src/interactive/theme/tokens.ts). No raw SGR sequences, `38;2;`/`38;5;` ANSI escape fragments, or hardcoded hex colors are allowed outside this theme module.
|
|
@@ -22,7 +48,7 @@ All color styling is defined in [src/interactive/theme/tokens.ts](../../src/inte
|
|
|
22
48
|
| `action` | `rgb(255, 126, 41)` (Orange) | Active autonomous operations: dispatching phase pills, active fleet badges, running fleet indicators, running connect/probe indicators, and user-steering queues. |
|
|
23
49
|
| `success` | `rgb(87, 227, 137)` (Green) | Positive outcomes: success indicators (`✓`), ok health status, clean git trees, and output-token count updates. |
|
|
24
50
|
| `warning` | `rgb(255, 180, 84)` (Amber) | Real warnings only: stale data, dirty trees, retry status, blocked tools, and truncation. |
|
|
25
|
-
| `error` | `rgb(255, 92, 102)` (Red) | Failures: error indicators (`✗`), error rails,
|
|
51
|
+
| `error` | `rgb(255, 92, 102)` (Red) | Failures: error indicators (`✗`), error rails, failed outcomes, and error message text. |
|
|
26
52
|
| `info` | `rgb(91, 168, 255)` (Blue) | Informational messages, notices, and system-prompt meters. |
|
|
27
53
|
| `reason` | `rgb(157, 140, 255)` (Purple) | Reasoning-related status: thinking phases, thinking rails, reasoning-token metrics, and context compacting. |
|
|
28
54
|
| `dim` | `rgb(106, 122, 133)` | Scaffolding elements: separators, key names, keyboard shortcut hints, durations, and timestamps. |
|
|
@@ -191,9 +217,9 @@ Interactive startup uses one terminal lease across both boot stages. Stage 0 own
|
|
|
191
217
|
|
|
192
218
|
### 5.3 Progressively Disclosed Footer
|
|
193
219
|
|
|
194
|
-
- **Compact Mode (Quiet Idle)**: Two always-on lines that eliminate idle telemetry noise (suppresses `tools none`, `◌ idle`, and
|
|
220
|
+
- **Compact Mode (Quiet Idle)**: Two always-on lines that eliminate idle telemetry noise (suppresses `tools none`, `◌ idle`, and duplicate turn receipts):
|
|
195
221
|
- **Line 1 (Workspace & Readiness)**: CWD path, git branch/dirty state, and active phase pill only when meaningful.
|
|
196
|
-
- **Line 2 (Context &
|
|
222
|
+
- **Line 2 (Context & Style)**: Context window meter, Output style, and session cost.
|
|
197
223
|
- **Expanded Mode (`Alt+U`)**: Four responsive sections ordered by operational urgency rather than a static telemetry grid:
|
|
198
224
|
1. `Activity`: Live agent phase, active workers, running tool calls.
|
|
199
225
|
2. `Context`: Context window gauge, breakdown, token headroom.
|
|
@@ -210,15 +236,15 @@ State is signaled through the status pill in the footer and matches the followin
|
|
|
210
236
|
|---|---|---|---|
|
|
211
237
|
| idle | Quiet (phase omitted; line 1 shows workspace, line 2 shows context/receipt) | None; last-turn telemetry on line 2 | No |
|
|
212
238
|
| preparing / waiting | spinner + `waiting` (info) | None | No |
|
|
213
|
-
| thinking | spinner + `thinking` (reason) |
|
|
239
|
+
| thinking | spinner + `thinking` (reason) | Bounded supplied reasoning | No |
|
|
214
240
|
| writing | spinner + `writing` (accent) | Streaming markdown text | No |
|
|
215
|
-
| tool running | spinner + `
|
|
241
|
+
| tool running | spinner + `Running <name>` (accent) | `▸` tool execution ledger line | No |
|
|
216
242
|
| blocked | `⏸ blocked` (warning) | Permission prompt surface | No |
|
|
217
243
|
| retrying | `↻ retry 2/5` (warning) | Dim retry details line | No |
|
|
218
244
|
| compacting | spinner + `compacting` (reason) | None | No |
|
|
219
|
-
| dispatching / fleet live |
|
|
220
|
-
|
|
|
221
|
-
|
|
|
245
|
+
| dispatching / fleet live | Main phase plus worker count | Task island status updates | Yes |
|
|
246
|
+
| prolonged silence | `⚠ No output · 12s` (warning) | No duplicate status | No |
|
|
247
|
+
| ended | Ready, Failed, Cancelled, or Output limit | Settled transcript blocks | No |
|
|
222
248
|
|
|
223
249
|
---
|
|
224
250
|
|
|
@@ -230,27 +256,18 @@ State is signaled through the status pill in the footer and matches the followin
|
|
|
230
256
|
- **Two-Cell Hanging Indent**: User and assistant prose are rendered with a fixed two-cell gutter. The first line begins with the turn prefix (`› ` or `✦ `), while all wrapped continuation lines indent by two spaces (`PROSE_GUTTER = " "`), keeping multiline text visibly attached to its voice glyph.
|
|
231
257
|
|
|
232
258
|
### 6.2 Thinking Blocks
|
|
233
|
-
|
|
259
|
+
|
|
260
|
+
Supplied reasoning stays in stream order on the `reason` color rail. Compact shows a historical marker; Standard and Detailed show the bounded tail defined in [Output styles](#output-styles). The footer alone reports current activity.
|
|
234
261
|
|
|
235
262
|
### 6.3 Tool Ledger
|
|
236
|
-
Every tool call owns one stable transcript block for its complete lifecycle. Streamed
|
|
237
|
-
`toolcall_*` message updates first expose the call as `forming call`, the completed argument block
|
|
238
|
-
becomes `ready`, `tool_execution_start` changes the same row to `running`, and cumulative
|
|
239
|
-
`tool_execution_update` results replace the live body until `tool_execution_end` settles it. Rapid
|
|
240
|
-
tool updates are coalesced to terminal frame rate; settlement always renders immediately.
|
|
241
263
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
264
|
+
Each call owns one stable action row. Argument fragments stay hidden until the call is formed. A formed call becomes ready, then running, then settles with its actual outcome. Cumulative output replaces the live preview; late partials cannot overwrite a settled result. The same policy applies during replay.
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
▸ bash(cat README.md) · exit 0 ✓ · 230ms
|
|
245
268
|
```
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
- Running calls label `live output` and replace the cumulative partial result in place. Settled calls label `output` and show available exit status, result or observation counts, line count, displayed and total byte sizes, truncation, timeout, tool-token usage, dynamically added tools, context exclusion, and the full-output path. A blocked or aborted admission instead labels its `decision` and does not claim that the tool ran.
|
|
249
|
-
- A call parked for one-shot approval replaces its running timer with `awaiting approval` and shows the already-sanitized action class, asking safety axis, and target below the row. These facts are transient UI state: approval, denial, abort, or settlement clears them, and they are never reconstructed from the session ledger.
|
|
250
|
-
- The live permission frame derives its consequence tier from those typed facts and the authenticated origin. It anchors at bottom center with five rows reserved for the composer and footer, and it recomputes that anchor on resize. Each queued frame retains its own tier and requester.
|
|
251
|
-
- Text and image tool results keep their text while rendering images as MIME and byte-size placeholders; base64 image data is never written to the terminal.
|
|
252
|
-
- Successful `edit` and `write` calls render the bounded diff produced by the tool result. Live regular-screen and fullscreen rows color removed and added lines with the `error` and `success` tokens and emphasize changed words; `/resume` replay and `/export` keep the same numbered diff as plain text.
|
|
253
|
-
- Operator `!` and `!!` bash commands use the same running and settled block as model-initiated bash. The block appears before the process starts, streams the throttled cumulative stdout/stderr tail, and settles in place while the existing `bashExecution` session entry remains the durable record. `!!` continues to exclude that record from model context and says so in the block.
|
|
269
|
+
|
|
270
|
+
Successful reads and shell commands keep raw content out of Standard. Mutations show bounded diffs, and failures keep actionable context in every preset. `/view transcript` exposes full available arguments and results. Approval rows show the sanitized action and target, with no running spinner. Truncation, context exclusion, offload paths, refusal, cancellation, and missing results remain visible.
|
|
254
271
|
|
|
255
272
|
### 6.4 Editor Rail
|
|
256
273
|
The right-hand label shows `model · thinking`. Thinking level colors map as: `off` (dim), `minimal`/`low` (muted), `medium`/`high` (`reason` purple), and `xhigh`/`max`/`on` (bold `reason` purple).
|
|
@@ -258,11 +275,9 @@ The right-hand label shows `model · thinking`. Thinking level colors map as: `o
|
|
|
258
275
|
### 6.5 Transcript Notices
|
|
259
276
|
Replay and system tags (e.g. `[retry]`, `[model]`) are wrapped in `dim` brackets with a `muted` message. Retry tags use `warning` amber.
|
|
260
277
|
|
|
261
|
-
### 6.6 Output
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
- `default`: Renders one compact dim receipt: `turn · in <N> · out <M>`.
|
|
265
|
-
- `verbose`: Renders the full receipt with model call counts (`over N calls`), cache reads/writes (`cache R/W`), reasoning tokens with provenance (`reasoning N provider` or `reasoning ≈N estimated`), and the verification caveat (`· reasoning text is a UI excerpt, not a verification`).
|
|
278
|
+
### 6.6 Output Style Receipts
|
|
279
|
+
|
|
280
|
+
Compact omits the separate turn receipt. Standard shows a small completion line with available duration. Detailed includes model calls, input/output tokens, cache usage, and supplied reasoning usage with provenance. Reasoning text is an excerpt, not verification. The quiet footer keeps the style and session cost visible; detailed telemetry is available through Detailed or the expanded dashboard.
|
|
266
281
|
|
|
267
282
|
### 6.7 Code Ink (Syntax Highlighting)
|
|
268
283
|
|
|
@@ -189,7 +189,6 @@ The registry table below lists the available interactive slash commands. On a ba
|
|
|
189
189
|
| `/panes` | `/panes show <run-or-agent> \| /panes open <preset-or-argv> \| /panes zoom [target] \| /panes close [target]` | Inspect the pane layer, watch a live run in a pane, or open a utility pane (`files`, `logs`, `shell`, `files --once`, or a command); a second open focuses the pane already there |
|
|
190
190
|
| `/files` | `/files [open\|close\|pick]` | Toggle the files pane docked below the session; picks land in the composer as `@` mentions. See [Panes and the Files Pane](panes-and-files.md) |
|
|
191
191
|
| `/thinking` | `/thinking [level]` | Set the chat thinking level, or open Settings → Orchestrator |
|
|
192
|
-
| `/output` | `/output [verbosity]` | Set transcript detail (minimal, default, verbose), or open Settings → Terminal |
|
|
193
192
|
| `/model` | `/model [pattern]` | Open model selector or set a model |
|
|
194
193
|
| `/settings` | `/settings [chat\|fleet\|targets\|context\|safety\|interface\|integrations] [group]` | Open interactive settings, optionally at a durable area and UI group |
|
|
195
194
|
| `/resume` | `/resume` | Resume a past session |
|
|
@@ -344,7 +343,7 @@ text is still there to correct, rather than having to be retyped. Retired spelli
|
|
|
344
343
|
|
|
345
344
|
The accepted spelling of every command is the table under [Interactive Slash Commands](#interactive-slash-commands); there is exactly one per operation, and nothing else is parsed as a command.
|
|
346
345
|
|
|
347
|
-
Configuration lives in one place: the `/settings` overlay. `/settings <section>` reaches every section directly. `/thinking <level
|
|
346
|
+
Configuration lives in one place: the `/settings` overlay. `/settings <section>` reaches every section directly. `/thinking <level>` and `/model <pattern>` stay as quick setters that apply without opening anything.
|
|
348
347
|
|
|
349
348
|
Settings → Targets presents an operational console table (`HEALTH`, `ID`, `ROLES`, `RUNTIME`, `LATENCY`) with an in-place action/detail drawer for URL, default model, last probe error, and reachability. `Enter` opens actions for `Use` (switches active chat target and rebases model), `Connect` (runs the API-key or OAuth flow then probes), `Probe`, and `Remove` (with preflight analysis of affected routes/profiles). Probing runs live when the overlay opens or when explicitly requested. Target creation is initiated via `clio-coder targets add`.
|
|
350
349
|
|
|
@@ -357,13 +356,7 @@ or `◇ codex (acp) · run 7hq2ab` for ACP peers), the worker's prose down a rai
|
|
|
357
356
|
one coalesced line of tool names, and a one-line footer carrying the outcome glyph,
|
|
358
357
|
token count, duration, and contract status (such as `└ ✓ ok · 8.4k tok · 18s · contract unmeasured`),
|
|
359
358
|
with the failure reason printed on the rail above the footer when a run fails.
|
|
360
|
-
|
|
361
|
-
cards under the spawning tool segment; operator-typed runs are `◇` and open.
|
|
362
|
-
The footer chip in the status line splits them (such as `◇1 ◆3`). `Alt+O` toggles
|
|
363
|
-
the newest foldable item (tool call or worker block), while `Ctrl+Alt+O` or
|
|
364
|
-
`Alt+Shift+O` toggles every one. Memory workers on the background target never
|
|
365
|
-
appear as transcript blocks. A run that fails over keeps one block and gains an
|
|
366
|
-
`↻ failed over → attempt 2 on node-b/example-coder-model` line inside it.
|
|
359
|
+
Model-launched workers use `◆` and operator-launched workers use `◇`; both follow the same Output style. Standard shows a short reported summary, Detailed adds bounded activity, and Compact keeps identity and outcome. The footer shows the active worker count alongside the main agent's phase. Use `/view transcript` or `/view dispatch:<runId>` for full available details. Memory workers do not appear as transcript blocks. A failover keeps one block with an attempt annotation.
|
|
367
360
|
|
|
368
361
|
That block is the only place a `/run` answer goes. The main agent is not told
|
|
369
362
|
about it, which is what makes a side run a side run; asked about the answer, it
|
|
@@ -483,11 +476,7 @@ editor reserves and can be rebound through `settings.yaml.keybindings`.
|
|
|
483
476
|
| `Alt+B` | Open the composite session and operator task board (`/tasks`). Approved application-boundary override of editor word-back. |
|
|
484
477
|
| `Alt+D` | Open the settled interview decision board (`/decisions`). Approved application-boundary override of editor word-delete. |
|
|
485
478
|
| `Alt+S` / `Ctrl+Alt+B` | Convert an active attached dispatch to a detached background batch. |
|
|
486
|
-
| `Alt+O` |
|
|
487
|
-
| `Ctrl+Alt+O` / `Alt+Shift+O` | Toggle all tool calls and worker blocks between collapsed sublines and full bodies. |
|
|
488
|
-
| `Alt+P` | Toggle streaming partial tool output in expanded tool bodies. |
|
|
489
|
-
| `Alt+R` | Toggle the latest thinking block between hidden marker and full body. |
|
|
490
|
-
| `Ctrl+Alt+R` / `Alt+Shift+R` | Toggle all thinking blocks between hidden markers and full bodies. |
|
|
479
|
+
| `Alt+O` | Cycle Output style: Compact, Standard, Detailed. Session only; save a default in `/settings interface`. |
|
|
491
480
|
| `Alt+G` | Open the current input in an external editor. |
|
|
492
481
|
| `Alt+X` | Dismiss footer notifications. |
|
|
493
482
|
| `Ctrl+G`, then a letter | Portable leader fallback for Alt-letter actions. |
|
|
@@ -757,17 +746,29 @@ model-free.
|
|
|
757
746
|
`outline`, `deps`, and `dependents` resolve an exact indexed path or a unique
|
|
758
747
|
substring match.
|
|
759
748
|
|
|
760
|
-
##
|
|
749
|
+
## Output styles
|
|
761
750
|
|
|
762
|
-
|
|
751
|
+
**Alt+O** cycles **Compact → Standard → Detailed → Compact**. Standard is the default, so the first press reveals Detailed. The current style appears in the footer. Cycling applies immediately to the current session, including streaming output and history. Save a preferred startup style through **/settings interface → Output style → Apply and save globally**, or `clio-coder configure --section panes`.
|
|
763
752
|
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
753
|
+
| Content | Compact | Standard | Detailed |
|
|
754
|
+
| --- | --- | --- | --- |
|
|
755
|
+
| Answers and user messages | Complete | Complete | Complete |
|
|
756
|
+
| Supplied reasoning | Marker | 3 rows | 12 rows |
|
|
757
|
+
| Reads and searches | Consecutive successful observations grouped | Action and outcome | 8 result rows |
|
|
758
|
+
| File changes | Paths and change facts | 8 diff rows | 20 diff rows |
|
|
759
|
+
| Agent shell commands | Command and outcome | Command and outcome | 12 output rows |
|
|
760
|
+
| Your `!` / `!!` shell commands | 3 output rows | 6 output rows | 12 output rows |
|
|
761
|
+
| Workers | Identity, execution and validation outcome | 3 summary rows | 8 summary rows and bounded tool activity |
|
|
762
|
+
| Failures and refusals | Actionable reason, up to 4 rows | Actionable reason, up to 4 rows | Up to 12 rows |
|
|
763
|
+
| Turn receipt | None | Completion and available duration | Usage and model-call facts |
|
|
764
|
+
|
|
765
|
+
Preview budgets count terminal rows **after wrapping**, including the `/view` overflow hint, and shrink on short terminals. Reasoning previews retain the newest text when streaming stops. Detailed remains bounded: a successful `cat` or file read cannot fill the transcript with the entire file.
|
|
766
|
+
|
|
767
|
+
Use **/view transcript** to select full available reasoning, tool arguments/results, local shell output, or worker details. Search the list, press Enter to inspect, and Escape to return. Offloaded tool and dispatch output remains available in the other `/view` categories; missing or truncated captured content is identified. Inspection applies secret redaction, and `!!` output remains excluded from model context.
|
|
768
|
+
|
|
769
|
+
Output style changes presentation only. **Shift+Tab** still changes the model's thinking effort. It does not reveal unavailable reasoning; Clio shows only reasoning supplied by the provider. The previous Alt+R, Alt+P, and expand-all rendering shortcuts are retired. `/output` now explains how to reach Alt+O and Settings. Existing `minimal`, `default`, and `verbose` preferences map to `compact`, `standard`, and `detailed` without rewriting other preferences.
|
|
770
|
+
|
|
771
|
+
The footer owns live activity. Transcript actions have static running or outcome markers and update in place. Background workers add a count without replacing the main agent's current phase; a completed worker cannot clear a sibling's active state. Approval and user-input waits do not spin. Failed and cancelled turns retain their actual outcome, and an elapsed wait is described as silence rather than proof that a process is stuck. A worker's successful execution remains separate from its validation result.
|
|
771
772
|
|
|
772
773
|
## TUI Surface Refinements
|
|
773
774
|
|
|
@@ -775,7 +776,7 @@ The Clio TUI has been enhanced to maximize readability, operational focus, and c
|
|
|
775
776
|
|
|
776
777
|
- **Adaptive Welcome Launchpad:** Before the first prompt, renders a compact launchpad with bold CAPS section tags (`WORKSPACE`, `ROUTE`, `NEXT`), honest readiness indicators, and context-sensitive next actions. Upon first prompt submission, it deliberately collapses into a single-line session header (`>C_ Clio Coder vX.Y.Z · <workspace · git branch> · <target·model · ready> · ctx ready · type a task`) so the conversation transcript owns the viewport.
|
|
777
778
|
- **Unmistakable Clio Composer:** The input editor features an explicit left section tag reflecting current prompt semantics (`MESSAGE` while idle, `FOLLOW-UP` while Clio runs, and orange `STEER` when Enter steers in-flight execution). Includes the dim placeholder `Ask Clio… / for commands` and lower-rail hint `Enter send · Shift+Enter newline` at wider widths.
|
|
778
|
-
- **Progressively Disclosed Footer:** The compact footer uses a quiet two-zone status layout that suppresses idle decoration (`tools none`, `◌ idle`, and
|
|
779
|
+
- **Progressively Disclosed Footer:** The compact footer uses a quiet two-zone status layout that suppresses idle decoration (`tools none`, `◌ idle`, and duplicate turn receipts). Line 1 displays workspace location, git branch/dirty state, and active phase only when meaningful; Line 2 displays the context window gauge, current Output style, and session cost. `Alt+U` toggles the expanded dashboard, which orders information by operational urgency (Activity, Context, Session, Workspace).
|
|
779
780
|
- **Footer Notification Degradation Ladder:** The footer notification badge reserves the severity head (`glyph count noun`) and `[Alt+X] dismiss` tail first, allocating remaining width to an ellipsized message body. Under narrow terminal constraints, it degrades cleanly down the ladder without clipping action keys.
|
|
780
781
|
- **Grouped Slash Command Palette:** Typing `/` opens an autocomplete command palette grouped by operational category (`Run`, `Inspect`, `Configure`, `Sessions`) with compact argument hints. Every suggestion is the command's one canonical spelling.
|
|
781
782
|
- **Voice-First Transcript & Receipts:** User (`› `) and assistant (`✦ `) prose are formatted with a two-cell hanging indent, ensuring wrapped continuation lines remain visually tied to their voice prefix. Tool ledgers maintain full terminal width. Completed turn receipts honor output verbosity (`minimal` none, `default` compact dim `turn · in N · out M`, `verbose` full receipt with call counts, cache reads/writes, reasoning provenance, and verification caveats).
|
|
@@ -822,7 +823,7 @@ The detail pane displays structured descriptions, usage, or state metadata using
|
|
|
822
823
|
### Responsive Width Adaptation
|
|
823
824
|
|
|
824
825
|
All TUI overlays fluidly adapt to narrow terminals down to 40 columns:
|
|
825
|
-
-
|
|
826
|
+
- `/view` falls back to one pane on narrow terminals. Type to filter, use Enter to read, Escape to return to the list, and Escape again to close. Ctrl+U clears the filter; long text wraps and scrolls. Tab also switches panes.
|
|
826
827
|
- Settings provides a drill-down navigation stack below 72 columns (sections → rows → details) with breadcrumbs and `Esc` backtracking.
|
|
827
828
|
- Text content and detail descriptions wrap cleanly without line truncation.
|
|
828
829
|
|
|
@@ -47,26 +47,120 @@ configured remote before synchronization can run. See
|
|
|
47
47
|
|
|
48
48
|
## First-run flow
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
After [installing Clio](installation-and-lifecycle.md), run `clio-coder configure`
|
|
51
|
+
from the repository you want to work on. The launcher has three choices:
|
|
51
52
|
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
pnpm install --frozen-lockfile
|
|
57
|
-
pnpm run install:local
|
|
58
|
-
hash -r
|
|
59
|
-
clio-coder --version
|
|
53
|
+
```text
|
|
54
|
+
❯ Quick Connect endpoint → model → ready
|
|
55
|
+
Settings all configuration options
|
|
56
|
+
Diagnostics check an existing installation
|
|
60
57
|
```
|
|
61
58
|
|
|
62
|
-
|
|
59
|
+
Choose **Quick Connect**:
|
|
60
|
+
|
|
61
|
+
1. Enter your endpoint URL. Examples: `localhost:1234` for LM Studio,
|
|
62
|
+
`localhost:11434` for Ollama, or the URL supplied by your API provider.
|
|
63
|
+
2. Enter an API key if requested. Native local servers that work without a key
|
|
64
|
+
skip this step. Other APIs offer a key field even when their model list is
|
|
65
|
+
public, because chat may still require authentication; leave it blank only
|
|
66
|
+
for a keyless server.
|
|
67
|
+
3. Choose a model if the endpoint offers several. Type to filter the list,
|
|
68
|
+
use arrows to move, and Enter to select. A single model is selected for you.
|
|
69
|
+
4. Review the endpoint and model, then choose **Connect**. Run `clio-coder` to
|
|
70
|
+
start coding. Starting `clio-coder` itself without a target opens this same
|
|
71
|
+
launcher and continues into chat after setup succeeds.
|
|
72
|
+
|
|
73
|
+
Quick Connect detects LM Studio, Ollama, and LiteLLM where their discovery APIs
|
|
74
|
+
are available; other servers use the OpenAI- or Anthropic-compatible protocol.
|
|
75
|
+
It checks live model discovery, without sending a generation request. An
|
|
76
|
+
unreachable endpoint or empty model list stays in setup with a useful error.
|
|
77
|
+
Use **Settings → Targets & Auth → Add a target** for browser sign-in,
|
|
78
|
+
subscriptions, AWS credentials, explicit runtime selection, or a server that
|
|
79
|
+
needs a manually entered model id.
|
|
80
|
+
|
|
81
|
+
A first connection powers both chat and dispatched workers. Connecting again
|
|
82
|
+
changes chat; existing fleet and background assignments, target capabilities,
|
|
83
|
+
and preferences remain in place. A saved matching endpoint reuses its credential.
|
|
84
|
+
New endpoints never inherit an unrelated provider key. Pasted keys are masked
|
|
85
|
+
and saved locally only when you choose **Connect**.
|
|
86
|
+
|
|
87
|
+
Escape goes back one step, including from the review screen. Ctrl+U clears a
|
|
88
|
+
text field or model filter; Ctrl+C quits. In ordinary menus, `q` also quits;
|
|
89
|
+
in the model filter it is text. Cancelling leaves the connection draft unsaved.
|
|
90
|
+
Leaving first setup without a chat target exits 130. Use
|
|
91
|
+
`clio-coder configure --quick` to open this path directly.
|
|
92
|
+
|
|
93
|
+
## Recommended defaults
|
|
94
|
+
|
|
95
|
+
Quick Connect uses the shipped defaults, with no separate preset to maintain.
|
|
96
|
+
These aim to make one coding session useful on a laptop or a shared endpoint:
|
|
97
|
+
|
|
98
|
+
| Area | Default and purpose |
|
|
99
|
+
| --- | --- |
|
|
100
|
+
| Connection | One endpoint and model for chat and the fleet default on first setup. No separate model assignments to learn. |
|
|
101
|
+
| Autonomy | `auto-edit`: workspace edits are allowed; unrecognized commands need approval. The safety policy still applies. |
|
|
102
|
+
| Parallel work | One worker at a time, so a single local model or shared endpoint is not flooded by default. Explicit `auto` still allows four workers. |
|
|
103
|
+
| Worker permissions | Deny worker tool requests that need approval (`deny`), returning a structured denial so the worker can continue. This works across native and external runtimes. Interactive operator escalation is available for mediated runtimes in Settings. |
|
|
104
|
+
| Cost | $5 tracked session budget. This depends on reported usage and known pricing; it is not a provider billing cap. |
|
|
105
|
+
| Thinking | Low for chat, off for workers; actual support depends on the chosen model. |
|
|
106
|
+
| Model limits | Runtime/model discovery supplies limits where available. `chat.maxOutputTokens: 0` uses the resolved model limit. Unknown models still use Clio's fallback limits; set a capability override in Settings if the server cannot advertise its actual capacity. |
|
|
107
|
+
| Long sessions | Automatic compaction at 80% context pressure, with working-set management enabled. Compaction uses the chat model. |
|
|
108
|
+
| Bounded work | Up to 3 chat retries, 2 worker retries, 60 chat tool calls per turn, 150 tool calls per worker run, and a 15-minute internal worker timeout. |
|
|
109
|
+
| Background activity | Prompt prewarm is off. Memory stays rules-only without a separate memory route. No automatic peer setup or library sync. |
|
|
110
|
+
| Terminal | Regular terminal mode, smooth streaming on automatic TTY detection, no panes or desktop notifications. |
|
|
111
|
+
| Extensions and trust | No configured external peers or runtime plugins; project resource imports are untrusted by default. |
|
|
112
|
+
|
|
113
|
+
Newly initialized settings contain these values. Existing explicit values are
|
|
114
|
+
preserved; omitted keys inherit the current shipped defaults. For this release,
|
|
115
|
+
the changed defaults are worker concurrency `1`, prewarm `false`, and smooth
|
|
116
|
+
streaming `auto`. See the
|
|
117
|
+
[full settings reference](configuration-reference.md) for every key.
|
|
118
|
+
|
|
119
|
+
## Advanced settings
|
|
120
|
+
|
|
121
|
+
Choose **Settings**, or run `clio-coder configure --settings`, to open the full
|
|
122
|
+
configuration menu:
|
|
123
|
+
|
|
124
|
+
- **Targets & Auth**: add, edit, rename, or remove a target; choose chat, fleet,
|
|
125
|
+
and background-memory defaults. Add and Edit share the full target wizard.
|
|
126
|
+
Adding a target preserves existing defaults. Editing preserves its other
|
|
127
|
+
capabilities, gateway settings, and role-specific model overrides. Rename
|
|
128
|
+
updates the target name and its references together.
|
|
129
|
+
- **Models & Thinking**, **Chat Defaults**, **Fleet**, **Permissions & Autonomy**,
|
|
130
|
+
**Panes & Layout**, and **Skills & Extensions** cover common settings.
|
|
131
|
+
- **Diagnostics** shows paths, runs the read-only doctor, and displays saved YAML.
|
|
132
|
+
- **All Settings** opens a validated editor for every settings key, including
|
|
133
|
+
fleet profiles, routing, memory, compaction, plugins, hooks, and keybindings.
|
|
134
|
+
|
|
135
|
+
Escape returns to the parent menu, which remembers the selected row. Each
|
|
136
|
+
accepted setting is saved immediately; leaving another field does not undo
|
|
137
|
+
previously accepted settings. Clear a model override or list by deleting its
|
|
138
|
+
prefilled text before accepting it. The full target wizard instead saves at
|
|
139
|
+
**Save target** after review. Pasted keys wait for Save; browser sign-in stores
|
|
140
|
+
credentials when sign-in succeeds. Optional delegation review follows Save.
|
|
141
|
+
|
|
142
|
+
Open a section directly, or open the full editor:
|
|
63
143
|
|
|
64
144
|
```bash
|
|
65
|
-
|
|
66
|
-
clio-coder
|
|
67
|
-
clio-coder configure --
|
|
145
|
+
clio-coder configure --section targets
|
|
146
|
+
clio-coder configure --section models
|
|
147
|
+
clio-coder configure --edit
|
|
68
148
|
```
|
|
69
149
|
|
|
150
|
+
The editor uses `VISUAL`, then `EDITOR`, then an available `nano` or `vi`. It edits
|
|
151
|
+
a temporary draft, validates it against the same schema Clio uses at startup,
|
|
152
|
+
and asks you to save, return to the editor, or discard. Invalid YAML or settings
|
|
153
|
+
never replace the saved file. A save keeps the previous file at
|
|
154
|
+
`settings.yaml.bak` and refuses to overwrite concurrent changes. `--edit` also
|
|
155
|
+
works when malformed settings prevent the regular menu from loading.
|
|
156
|
+
|
|
157
|
+
These commands edit user settings. Approved project settings and session
|
|
158
|
+
choices can override them; use `clio-coder config inspect` to see the active
|
|
159
|
+
sources. Without a terminal, `--section` prints its values and exits; `--json`
|
|
160
|
+
and `--list` inspect settings and runtimes without initializing an installation.
|
|
161
|
+
Dumb terminals retain the numbered prompt fallback; Quick Connect requires a
|
|
162
|
+
regular interactive terminal. Use explicit flags for unattended target setup.
|
|
163
|
+
|
|
70
164
|
Start one local runtime and register exactly one target first. Clio integrates with popular local inference engines:
|
|
71
165
|
- **[LM Studio](https://lmstudio.ai):** A desktop application to run LLMs locally. Target runtime ID: `lmstudio`.
|
|
72
166
|
- **[Ollama](https://ollama.com):** A lightweight, extensible framework for building and running LLMs locally. Target runtime ID: `ollama-native`.
|
|
@@ -75,8 +169,8 @@ Start one local runtime and register exactly one target first. Clio integrates w
|
|
|
75
169
|
- **[SGLang](https://github.com/sgl-project/sglang):** A fast serving framework for large language models. Target runtime ID: `sglang`.
|
|
76
170
|
- **[LiteLLM](https://docs.litellm.ai):** An OpenAI-compatible gateway that publishes routed models across multiple inference endpoints. Target runtime ID: `litellm`.
|
|
77
171
|
|
|
78
|
-
|
|
79
|
-
worker-only colleague. If `agy` is already on `PATH`, the final optional step is
|
|
172
|
+
The full target wizard completes a valid orchestrator before it offers any
|
|
173
|
+
worker-only colleague. Quick Connect skips this optional review. If `agy` is already on `PATH`, the final optional step is
|
|
80
174
|
named **Antigravity CLI — experimental local delegation**. It runs only the
|
|
81
175
|
non-generating model-catalog probe, explains that Clio uses the operator's
|
|
82
176
|
existing local session without inspecting credentials, and can create and bind a
|
|
@@ -177,7 +271,7 @@ chat:
|
|
|
177
271
|
favorites: []
|
|
178
272
|
recentLimit: 12
|
|
179
273
|
maxOutputTokens: 0
|
|
180
|
-
prewarm:
|
|
274
|
+
prewarm: false
|
|
181
275
|
|
|
182
276
|
fleet:
|
|
183
277
|
default:
|
|
@@ -188,7 +282,7 @@ fleet:
|
|
|
188
282
|
rosters: {}
|
|
189
283
|
agentProfiles: {}
|
|
190
284
|
nodes: []
|
|
191
|
-
concurrency:
|
|
285
|
+
concurrency: 1
|
|
192
286
|
|
|
193
287
|
context:
|
|
194
288
|
workingSet:
|
|
@@ -216,8 +310,8 @@ safety:
|
|
|
216
310
|
enabled: false
|
|
217
311
|
|
|
218
312
|
interface:
|
|
219
|
-
outputDetail:
|
|
220
|
-
smoothStreaming:
|
|
313
|
+
outputDetail: standard
|
|
314
|
+
smoothStreaming: auto
|
|
221
315
|
mode: regular
|
|
222
316
|
fullscreenScrollbar: auto
|
|
223
317
|
terminalProgress: false
|
|
@@ -584,7 +678,7 @@ each as a stable deep link:
|
|
|
584
678
|
| `targets` | Runtime connections, advertised models, auth metadata, and capability overrides |
|
|
585
679
|
| `context` | Working set, compaction, and proactive memory |
|
|
586
680
|
| `safety` | Autonomy, cost/tool/read limits, and the optional review watchdog |
|
|
587
|
-
| `interface` | Output
|
|
681
|
+
| `interface` | Output style, terminal behavior, notifications, keybindings, and experimental pane settings |
|
|
588
682
|
| `integrations` | Project-resource trust, external agents, runtime plugins, resource library, and Git attribution |
|
|
589
683
|
|
|
590
684
|
The Center groups rows with task-oriented labels such as Orchestrator, Targets,
|
|
@@ -617,7 +711,7 @@ This is the version-2 durable schema shipped in `DEFAULT_SETTINGS`. Validation i
|
|
|
617
711
|
| `chat.modelPicker.favorites` | `[]` | list of target/model references | immediately |
|
|
618
712
|
| `chat.modelPicker.recentLimit` | `12` | integer ≥ 1 | immediately |
|
|
619
713
|
| `chat.maxOutputTokens` | `0` | integer ≥ 0; `0` uses the model cap or the 32,768-token fallback when unknown | next turn |
|
|
620
|
-
| `chat.prewarm` | `
|
|
714
|
+
| `chat.prewarm` | `false` | boolean | next turn |
|
|
621
715
|
| `chat.retry.enabled` | `true` | boolean | next turn |
|
|
622
716
|
| `chat.retry.maxRetries` | `3` | integer ≥ 0 | next turn |
|
|
623
717
|
| `chat.retry.baseDelayMs` | `2000` | integer ≥ 0 | next turn |
|
|
@@ -643,7 +737,7 @@ This is the version-2 durable schema shipped in `DEFAULT_SETTINGS`. Validation i
|
|
|
643
737
|
| `fleet.permissions.mode` | `deny` | `deny`, `fail`, `escalate` | next dispatch |
|
|
644
738
|
| `fleet.permissions.escalation.timeoutMs` | `120000` | integer ≥ 1 | next dispatch |
|
|
645
739
|
| `fleet.permissions.escalation.fallback` | `deny` | `deny` or `fail` | next dispatch |
|
|
646
|
-
| `fleet.concurrency` | `
|
|
740
|
+
| `fleet.concurrency` | `1` | `auto` or integer ≥ 1 | restart |
|
|
647
741
|
| `fleet.retry.maxRetries` | `2` | integer ≥ 0 | next dispatch |
|
|
648
742
|
| `fleet.retry.routeCooldownMs` | `15000` | integer ≥ 0 | next dispatch |
|
|
649
743
|
| `fleet.limits.toolCallsPerRun` | `150` | integer ≥ 1 | next dispatch |
|
|
@@ -695,10 +789,10 @@ The safety-limit leaves have no one-process `CLIO_CODER_*` overrides in the curr
|
|
|
695
789
|
| Key | Default | Validation | When it applies |
|
|
696
790
|
| --- | --- | --- | --- |
|
|
697
791
|
| `interface.terminalProgress` | `false` | boolean | next turn |
|
|
698
|
-
| `interface.outputDetail` | `
|
|
792
|
+
| `interface.outputDetail` | `standard` | `compact`, `standard`, `detailed` | immediately |
|
|
699
793
|
| `interface.mode` | `regular` | `regular` or `fullscreen` | restart |
|
|
700
794
|
| `interface.fullscreenScrollbar` | `auto` | `hidden`, `auto`, `always` | restart |
|
|
701
|
-
| `interface.smoothStreaming` | `
|
|
795
|
+
| `interface.smoothStreaming` | `auto` | `off`, `auto`, `on` | immediately |
|
|
702
796
|
| `interface.desktopNotifications` | `false` | boolean | next turn |
|
|
703
797
|
| `interface.panes.enabled` | `off` | `auto`, `embedded`, `off` | restart |
|
|
704
798
|
| `interface.panes.notifications` | `failures` | `failures`, `all`, `off` | immediately |
|
|
@@ -779,10 +873,11 @@ Review and connect detected agents with:
|
|
|
779
873
|
clio-coder configure --interop
|
|
780
874
|
```
|
|
781
875
|
|
|
782
|
-
On a terminal this
|
|
783
|
-
|
|
876
|
+
On a terminal this shows one list of pending proposals with their launch
|
|
877
|
+
commands. Space selects peers and Enter confirms the selection. Without a
|
|
784
878
|
TTY it prints the proposals and exits 0 with `settings.yaml` byte-identical.
|
|
785
|
-
The
|
|
879
|
+
The full target wizard in Settings offers the same review after saving
|
|
880
|
+
the first primary target; Quick Connect skips it. Also,
|
|
786
881
|
`/agents connect` in the TUI opens the same flow.
|
|
787
882
|
|
|
788
883
|
No code path writes `integrations.externalAgents.entries` without an operator
|
|
@@ -20,7 +20,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
20
20
|
| `chat.modelPicker.cycleSet` | `[]` | Exact `target` or `target/model` refs Alt+J/Alt+K cycle through (refs with an empty target part are dropped); session-owned routing state, immediate this session, saved default next session. | session routing (Alt+J/K, `/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
21
21
|
| `chat.modelPicker.favorites` | `[]` | Exact `target/model` refs pinned in the focused model picker; refs naming an unconfigured target are dropped at validation; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
22
22
|
| `chat.modelPicker.recentLimit` | `12` | How many recently selected `target/model` refs `recent-models.json` keeps (integer >= 1); applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
23
|
-
| `chat.prewarm` | `
|
|
23
|
+
| `chat.prewarm` | `false` | Whether the known prompt prefix is sent to a `local-native` server at session start, after resume, and after compaction to fill its prefix cache (boolean; no effect on other tiers, workers, headless); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
24
24
|
| `chat.retry.baseDelayMs` | `2000` | First backoff delay in ms for chat-loop retries, doubled per attempt up to `maxDelayMs` (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
25
25
|
| `chat.retry.enabled` | `true` | Master switch for transient-provider retries in the interactive chat loop (boolean); dispatched workers use `fleet.retry.maxRetries` instead; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
26
26
|
| `chat.retry.maxDelayMs` | `60000` | Ceiling in ms on the exponential backoff between chat-loop retries (integer >= 0); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
@@ -52,7 +52,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
52
52
|
| `fleet.adaptiveRouting.roles` | `[]` | Execution roles (`researcher`, `verifier`, `reviewer`, `judge`) for which measured joint routing may change execution; unlisted roles only record a shadow recommendation; applies next dispatch. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
53
53
|
| `fleet.agentProfiles` | `{}` | Map of native agent id to a `fleet.profiles` name so that agent's dispatches use that route (`auto` is reserved; ACP agents cannot be bound); applies next dispatch. | `run --target` > `run --agent-profile` > session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
54
54
|
| `fleet.agentProfiles.<key>` | | One binding: the key is the native agent id, the value the `fleet.profiles` name used when that agent is dispatched without an explicit profile; applies next dispatch. | |
|
|
55
|
-
| `fleet.concurrency` | `
|
|
55
|
+
| `fleet.concurrency` | `1` | Maximum concurrently running local workers: `auto` currently resolves to the compiled default of 4, or set an integer >= 1; applies at restart. | |
|
|
56
56
|
| `fleet.default.model` | `null` | Saved default model id for workers (string or null; null rebases to the target's `defaultModel`); applies next session. | `run --model` > selected `fleet.profiles` route model > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
57
57
|
| `fleet.default.target` | `null` | Saved default target id for dispatched workers and `/run` (configured id or null; dangling ids become null); seeds session routing, so applies next session. | `run --target` > `run --agent-profile`/`--agent-runtime` > `fleet.agentProfiles` binding to a `fleet.profiles` route > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
58
58
|
| `fleet.default.thinkingLevel` | `off` | Saved default thinking level for workers (`off` through `max`); applies next session. | `run --thinking` > selected `fleet.profiles` route thinkingLevel > session routing (`/settings`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
@@ -115,7 +115,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
115
115
|
| `interface.keybindings` | `{}` | Map of binding id (`clio-coder.*`; legacy `clio.*` ids are renamed) to a key string or list of key strings; invalid bindings are reported at boot; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
116
116
|
| `interface.keybindings.<key>` | | One rebinding: the key is a binding id such as `clio-coder.notifications.dismiss`, the value a key string or a list of alternatives; applies immediately. | |
|
|
117
117
|
| `interface.mode` | `regular` | Renderer: `regular` keeps scrollback, `fullscreen` uses the alternate screen with a sticky layout; applies at restart. | |
|
|
118
|
-
| `interface.outputDetail` | `
|
|
118
|
+
| `interface.outputDetail` | `standard` | Output style: `compact`, `standard`, `detailed`; applies immediately. Legacy `minimal`/`default`/`verbose` values are accepted. | session override (Alt+O, `/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
119
119
|
| `interface.panes.enabled` | `off` | Pane-host rung: `auto` detects a guest pane host, `embedded` asks Clio to own a session (behaves as `auto` until implemented), `off` skips detection; applies at restart. | `--no-panes` / `--with-panes` (`--with-panes` keeps a saved `embedded`, otherwise `auto`) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
120
120
|
| `interface.panes.files.enabled` | `false` | Whether the files pane (yazi) may open (boolean); applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
121
121
|
| `interface.panes.files.followCwd` | `true` | Whether the files pane follows the conversation's working directory (boolean); applies on the next files-pane open. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
@@ -125,7 +125,7 @@ Precedence, where several surfaces set the same value: a one-run CLI flag beats
|
|
|
125
125
|
| `interface.panes.layout` | `off` | Docks composed at interactive boot in guest mode: `off` opens nothing, `workers` opens the workers dock, `cockpit` opens workers and files; applies at restart. | |
|
|
126
126
|
| `interface.panes.notifications` | `failures` | Which terminal run states raise a pane-host toast: `failures`, `all`, `off`; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
127
127
|
| `interface.panes.workers.ratio` | `0.34` | Share of terminal width the workers dock takes (number 0.05 through 0.5); applies at restart. | |
|
|
128
|
-
| `interface.smoothStreaming` | `
|
|
128
|
+
| `interface.smoothStreaming` | `auto` | Presentation-only pacing of streamed assistant text and thinking: `off`, `auto` (TTY heuristics), `on`; applies immediately. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
129
129
|
| `interface.terminalProgress` | `false` | Whether terminal progress (OSC progress) is emitted while a turn runs (boolean); applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
130
130
|
| `safety.autonomy` | `auto-edit` | Baseline autonomy for tool admission: `read-only`, `suggest`, `auto-edit`, `full-auto`; applies immediately (an ACP session's own autonomy wins inside that session). | `run --autonomy` (stored as the session override `safety.autonomy`) > session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
131
131
|
| `safety.limits.chatToolCallsPerTurn` | `60` | Soft per-turn tool-call budget for the chat agent (integer >= 1); crossing it blocks further calls with a stop-and-summarize directive, the hard ceiling sits 15 above; applies next turn. | session override (`/settings` apply-this-session) > `.clio-coder/settings.local.yaml` > `.clio-coder/settings.yaml` > user settings.yaml > default |
|
|
@@ -359,6 +359,11 @@ Grouped by command. Global flags appear under `global`.
|
|
|
359
359
|
| `--api-key-env` | Name of the environment variable read for the target's API key at call time, instead of storing a literal. |
|
|
360
360
|
| `--background-model` | Model id to use when this target is set as the proactive task-memory (background) target. |
|
|
361
361
|
| `--context-window` | Capability override: positive integer context window in tokens recorded on the target instead of the probed or catalog value. |
|
|
362
|
+
| `--quick` | Open Quick Connect directly: endpoint, key if needed, model, and Connect. Requires a terminal. |
|
|
363
|
+
| `--settings` | Open the full settings menu directly. |
|
|
364
|
+
| `--edit` | Open all user settings in VISUAL/EDITOR as a draft; validate and confirm before saving, retain settings.yaml.bak, and allow repair of malformed YAML. Requires a terminal. |
|
|
365
|
+
| `--json` | Print effective user settings as JSON without initializing the installation. |
|
|
366
|
+
| `--section` | Open targets, models, chat, fleet, permissions, panes, skills, diagnostics, or advanced (All Settings); without a terminal, print the section values and exit. |
|
|
362
367
|
| `--fleet-model` | Model id stored as the fleet default model when this target becomes the fleet default target (mutually exclusive with `--agent-profile`). |
|
|
363
368
|
| `--force` | Save a model outside the runtime catalog, or one the target does not advertise, without refusing. |
|
|
364
369
|
| `--gateway` | Mark the registered target as a gateway. |
|
|
@@ -841,12 +841,7 @@ hard block.
|
|
|
841
841
|
and a one-line receipt footer showing the outcome glyph, token count, duration,
|
|
842
842
|
and contract status (such as `└ ✓ ok · 8.4k tok · 18s · contract unmeasured`),
|
|
843
843
|
with the failure reason printed on the rail above the footer when a run fails.
|
|
844
|
-
-
|
|
845
|
-
parentToolCallId) render as folded `◆` cards under the spawning tool segment;
|
|
846
|
-
operator-typed runs are `◇` and open. The fold chord uses the `clio-coder.tool.expand`
|
|
847
|
-
keybinding (`Alt+O`), which toggles the newest foldable item of either kind
|
|
848
|
-
(tool call or worker block). `Ctrl+Alt+O` or `Alt+Shift+O` toggles every tool
|
|
849
|
-
call and worker block at once.
|
|
844
|
+
- Model-launched workers use `◆`; operator-launched workers use `◇`. Both follow the current Output style: Compact identity/outcome, Standard short summary, Detailed bounded activity and a larger summary. `Alt+O` cycles styles for the session. `/view transcript` and `/view dispatch:<runId>` expose full available details. Execution success and validation quality remain separate facts.
|
|
850
845
|
- Sharing: nothing a worker produced enters the main model's context unless
|
|
851
846
|
`--share` was passed or the operator runs `/share [runId]`. What enters is a
|
|
852
847
|
bounded note of the shape `[worker result] <agent> · run <id> · <outcome> · shared by the operator`
|
package/docs/guide/glossary.md
CHANGED
|
@@ -90,7 +90,7 @@ This document defines the 50 core architectural concepts and terminology used th
|
|
|
90
90
|
- **Owning Type**: `WorkerShareFacts` in `src/interactive/worker-share.ts`.
|
|
91
91
|
|
|
92
92
|
### 21. Fold
|
|
93
|
-
- **Definition**:
|
|
93
|
+
- **Definition**: Presenting an action as a short summary in the current Output style. `Alt+O` cycles Compact, Standard, and Detailed. Use `/view transcript` for full available details.
|
|
94
94
|
- **Owning Type**: `WorkerEntryRenderOptions` in `src/interactive/renderers/worker-entry.ts`.
|
|
95
95
|
|
|
96
96
|
### 22. Interop
|