@iowarp/clio-coder 0.5.0 → 0.5.1

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.
Files changed (132) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +12 -9
  3. package/dist/{acp-KS7ARGV6.js → acp-X3N7JDGS.js} +2 -2
  4. package/dist/{agents-YOGJ2YEJ.js → agents-UYGSMAWR.js} +3 -3
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{chunk-EOJPDNUP.js → chunk-3OODBJ45.js} +1 -1
  7. package/dist/{chunk-R7FGRZNF.js → chunk-4D7QM7S5.js} +2 -2
  8. package/dist/{chunk-X4CEFOSG.js → chunk-6B76U65H.js} +4 -4
  9. package/dist/{chunk-LTWH2ACR.js → chunk-7FHSA7VB.js} +5 -5
  10. package/dist/{chunk-GRHOXDKB.js → chunk-7KI4ZSEB.js} +2 -2
  11. package/dist/{chunk-LYJJ6546.js → chunk-7VNLPEUG.js} +6 -6
  12. package/dist/{chunk-D65E25JG.js → chunk-A7G7OUND.js} +2 -2
  13. package/dist/{chunk-3JLTRPN7.js → chunk-AKQ3N3L4.js} +2 -2
  14. package/dist/{chunk-AVSR2HKI.js → chunk-BIQLF3NZ.js} +3 -3
  15. package/dist/{chunk-D3KWFOUT.js → chunk-DGMY2DWE.js} +2 -2
  16. package/dist/{chunk-IN7DGBVS.js → chunk-FBXTHPNZ.js} +2 -2
  17. package/dist/{chunk-EX57VVWW.js → chunk-GGEEG7CD.js} +2 -2
  18. package/dist/{chunk-V35KZDUZ.js → chunk-GW2KVAVI.js} +2 -2
  19. package/dist/{chunk-SJGS3GDI.js → chunk-KIAUZGKF.js} +2 -2
  20. package/dist/{chunk-CBAQPTDU.js → chunk-LFYA3HYH.js} +2 -2
  21. package/dist/{chunk-4VDHLCF5.js → chunk-M5FPIZQW.js} +2 -2
  22. package/dist/{chunk-R2UUNSNQ.js → chunk-O3ZAF7UY.js} +18 -5
  23. package/dist/{chunk-QNUQ7K7D.js → chunk-OXWRE2QJ.js} +2 -2
  24. package/dist/{chunk-55RMDDFM.js → chunk-PGQG7ZMW.js} +2 -2
  25. package/dist/{chunk-HQVN7G4F.js → chunk-QM7HFPQQ.js} +4 -4
  26. package/dist/{chunk-ZR5YA6ZF.js → chunk-QTYRMBW6.js} +2 -2
  27. package/dist/{chunk-3LT34CAM.js → chunk-SAL2SBP4.js} +8 -8
  28. package/dist/{chunk-OJXOA6YU.js → chunk-TL6LNERH.js} +2 -2
  29. package/dist/{chunk-U6YTUVOX.js → chunk-VMTCZ2GR.js} +2 -2
  30. package/dist/{chunk-OQ2EOAHA.js → chunk-VWKR2NN5.js} +5 -5
  31. package/dist/{chunk-QDUUOZ3S.js → chunk-WAISUJNQ.js} +2 -2
  32. package/dist/{chunk-XDHUDE5K.js → chunk-XOH3SD7H.js} +3 -3
  33. package/dist/{chunk-62UK7AGW.js → chunk-ZNTGRDFA.js} +281 -14
  34. package/dist/cli/index.js +17 -17
  35. package/dist/{clio-K2PBVCEM.js → clio-Z3JTEL2I.js} +2 -2
  36. package/dist/{config-Q5J7UBAB.js → config-QYIRZHI7.js} +8 -8
  37. package/dist/{config-graph-P3555574.js → config-graph-TS3SGGQW.js} +8 -8
  38. package/dist/{configure-KIJ32ZO6.js → configure-OX7KVJTQ.js} +2 -2
  39. package/dist/{context-LFBQOSXT.js → context-2BNF6HTP.js} +12 -12
  40. package/dist/{context-WBH3KSVR.js → context-GTMUGAR4.js} +7 -7
  41. package/dist/{context-clear-YOHMQ6SQ.js → context-clear-FVJQBBL7.js} +7 -7
  42. package/dist/{context-working-set-MRAEVDNV.js → context-working-set-MOE72SD6.js} +2 -2
  43. package/dist/{detail-RHJOTGN4.js → detail-QZM3QAAU.js} +8 -8
  44. package/dist/{dispatch-runner-NC7PYNIO.js → dispatch-runner-2KSQO5FU.js} +8 -8
  45. package/dist/{doctor-S5KZ2GTN.js → doctor-2U6YR5NH.js} +3 -3
  46. package/dist/{eval-3D6M36N7.js → eval-ZKK77JWZ.js} +3 -3
  47. package/dist/{evidence-6IYN52ET.js → evidence-FMP7KZZ2.js} +7 -7
  48. package/dist/{evidence-JVECPI3F.js → evidence-PJTOE7JA.js} +7 -7
  49. package/dist/{evidence-XNVPPLVK.js → evidence-POSEQW4Q.js} +9 -9
  50. package/dist/{evolve-TLPUDJDM.js → evolve-JT6PAMZE.js} +7 -7
  51. package/dist/{fleet-WKVBF5SZ.js → fleet-4XR2ZEOF.js} +16 -16
  52. package/dist/{fleet-6RJWIOEO.js → fleet-6JJKNIMV.js} +8 -8
  53. package/dist/{fleet-inspect-236FZPRB.js → fleet-inspect-SWJMFVDP.js} +9 -9
  54. package/dist/{fleet-preflight-NZQHABWO.js → fleet-preflight-KSIHWQAU.js} +4 -4
  55. package/dist/{fleet-verify-E3RO6A5W.js → fleet-verify-QM6XU2KL.js} +7 -7
  56. package/dist/{fleet-view-KMZQY7YJ.js → fleet-view-RLKFHFCM.js} +8 -8
  57. package/dist/gui/reads-worker.js +4 -4
  58. package/dist/{init-DV5B6HQG.js → init-VBUPHABR.js} +11 -11
  59. package/dist/{interactive-OXGYZYAS.js → interactive-JCVBPVYT.js} +1597 -503
  60. package/dist/{inventory-OEGIL6PY.js → inventory-54G7FSVY.js} +8 -8
  61. package/dist/{mcp-2GSPYQ54.js → mcp-EFCWUPUR.js} +3 -3
  62. package/dist/{memory-J3STUUIK.js → memory-5BPQSSOP.js} +7 -7
  63. package/dist/{models-Y3GMFJ2V.js → models-R6HILX6X.js} +3 -3
  64. package/dist/{monitor-LHNH577J.js → monitor-HVRKSFEQ.js} +10 -10
  65. package/dist/{orchestrator-DTAPXULA.js → orchestrator-OR7V4YWK.js} +26 -26
  66. package/dist/{preload-OJBMAIXF.js → preload-KLXFOX2F.js} +7 -7
  67. package/dist/{run-H64MEVTA.js → run-UIDRUYAY.js} +16 -16
  68. package/dist/{skills-eval-CQ23MYQK.js → skills-eval-JDAXOPWC.js} +7 -7
  69. package/dist/{slash-commands-ROG3KIFJ.js → slash-commands-MNKQ5QP3.js} +4 -4
  70. package/dist/{startup-background-KDWCQMWT.js → startup-background-PJMWTKVO.js} +7 -7
  71. package/dist/{system-ZDW44ZGX.js → system-IVVZRKGI.js} +2 -2
  72. package/dist/{targets-AJWA6E7Z.js → targets-RFRUMCQ5.js} +4 -4
  73. package/dist/{terminal-lease-YFUSDPAD.js → terminal-lease-V2N2BIKQ.js} +2 -2
  74. package/dist/{usage-XSILDHKF.js → usage-LA33SG3R.js} +9 -9
  75. package/dist/{wiki-generate-RP22WP5K.js → wiki-generate-HL73TICA.js} +10 -10
  76. package/dist/worker/entry.js +4 -4
  77. package/docs/architecture/architecture.md +1 -0
  78. package/docs/architecture/context-engine.md +2 -2
  79. package/docs/architecture/observability.md +6 -4
  80. package/docs/architecture/prompt-envelope-and-tools.md +1 -1
  81. package/docs/architecture/session-lifecycle.md +1 -1
  82. package/docs/architecture/tui-design.md +12 -9
  83. package/docs/gui/parity/02-slash-and-surfaces.md +1 -1
  84. package/docs/guide/commands-and-modes.md +91 -5
  85. package/docs/guide/configuration-and-targets.md +2 -2
  86. package/docs/guide/proactive-memory.md +3 -3
  87. package/package.json +1 -1
  88. package/src/cli/usage.ts +2 -2
  89. package/src/domains/gateway/mcp/client.ts +1 -1
  90. package/src/domains/observability/background-memory-usage.ts +1 -1
  91. package/src/domains/observability/cost.ts +3 -3
  92. package/src/domains/observability/extension.ts +1 -1
  93. package/src/domains/observability/metrics.ts +1 -1
  94. package/src/domains/quota/anthropic-max-provider.ts +134 -0
  95. package/src/domains/quota/anthropic-usage.ts +220 -0
  96. package/src/domains/quota/antigravity-provider.ts +339 -0
  97. package/src/domains/quota/cache.ts +87 -0
  98. package/src/domains/quota/claude-code-provider.ts +169 -0
  99. package/src/domains/quota/codex-provider.ts +237 -0
  100. package/src/domains/quota/presentation.ts +240 -0
  101. package/src/domains/quota/registry.ts +23 -0
  102. package/src/domains/quota/service.ts +93 -0
  103. package/src/domains/quota/summary-feed.ts +86 -0
  104. package/src/domains/quota/types.ts +84 -0
  105. package/src/domains/session/usage.ts +2 -2
  106. package/src/engine/acp/commands.ts +1 -1
  107. package/src/entry/orchestrator.ts +2 -2
  108. package/src/interactive/chat-loop-messages.ts +2 -2
  109. package/src/interactive/chat-loop.ts +3 -3
  110. package/src/interactive/dispatch-board.ts +21 -3
  111. package/src/interactive/footer/dashboard.ts +13 -0
  112. package/src/interactive/footer/key-hints.ts +2 -2
  113. package/src/interactive/footer/pages.ts +55 -20
  114. package/src/interactive/footer-panel.ts +1 -1
  115. package/src/interactive/interactive-application.ts +5 -2
  116. package/src/interactive/interactive-input-runtime.ts +2 -2
  117. package/src/interactive/interactive-presentation.ts +15 -0
  118. package/src/interactive/interactive-slash-runtime.ts +2 -2
  119. package/src/interactive/interactive-tickers.ts +7 -1
  120. package/src/interactive/overlay-general-openers.ts +12 -8
  121. package/src/interactive/overlay-key-routing.ts +6 -9
  122. package/src/interactive/overlay-lifecycle.ts +10 -6
  123. package/src/interactive/overlay-session-lifecycle.ts +3 -3
  124. package/src/interactive/quota-view.ts +229 -0
  125. package/src/interactive/session-last-turn.ts +1 -1
  126. package/src/interactive/session-usage-reseed.ts +2 -2
  127. package/src/interactive/side-question.ts +2 -2
  128. package/src/interactive/slash-commands.ts +8 -8
  129. package/src/interactive/turn-context.ts +1 -1
  130. package/src/interactive/turn-prewarm.ts +1 -1
  131. package/src/interactive/{cost-overlay.ts → usage-overlay.ts} +121 -33
  132. package/src/interactive/welcome-dashboard.ts +26 -3
@@ -8,12 +8,12 @@ import {
8
8
  formatExtensionReloadNotice,
9
9
  handleRun,
10
10
  parseSlashCommand
11
- } from "./chunk-3LT34CAM.js";
11
+ } from "./chunk-SAL2SBP4.js";
12
12
  import "./chunk-DGC6X6XR.js";
13
13
  import "./chunk-RFCKPS2V.js";
14
14
  import "./chunk-QUIJZSDW.js";
15
15
  import "./chunk-UCINIRHW.js";
16
- import "./chunk-OJXOA6YU.js";
16
+ import "./chunk-TL6LNERH.js";
17
17
  import "./chunk-GGPF6LLE.js";
18
18
  import "./chunk-ISHUS7HC.js";
19
19
  import "./chunk-HOEDA42N.js";
@@ -35,7 +35,7 @@ import "./chunk-5LP5FNNR.js";
35
35
  import "./chunk-NVPXXW2H.js";
36
36
  import "./chunk-XZWSP67B.js";
37
37
  import "./chunk-BRCOSE7O.js";
38
- import "./chunk-55RMDDFM.js";
38
+ import "./chunk-PGQG7ZMW.js";
39
39
  import "./chunk-L4N3DWNW.js";
40
40
  import "./chunk-CRHPCPZP.js";
41
41
  import "./chunk-6CTHLZFB.js";
@@ -104,4 +104,4 @@ export {
104
104
  handleRun,
105
105
  parseSlashCommand
106
106
  };
107
- //# sourceMappingURL=slash-commands-ROG3KIFJ.js.map
107
+ //# sourceMappingURL=slash-commands-MNKQ5QP3.js.map
@@ -5,14 +5,14 @@ import {
5
5
  } from "./chunk-BFOSV5EZ.js";
6
6
  import {
7
7
  endpointCapacityUsage
8
- } from "./chunk-LTWH2ACR.js";
8
+ } from "./chunk-7FHSA7VB.js";
9
9
  import "./chunk-PECBKCDK.js";
10
10
  import "./chunk-OV62D6KO.js";
11
11
  import "./chunk-I4ELN5BX.js";
12
12
  import "./chunk-DXSETN72.js";
13
13
  import "./chunk-NFSK2VNU.js";
14
14
  import "./chunk-OZ76TLGU.js";
15
- import "./chunk-EOJPDNUP.js";
15
+ import "./chunk-3OODBJ45.js";
16
16
  import "./chunk-BOBCCDJ6.js";
17
17
  import "./chunk-E6IPKW2E.js";
18
18
  import "./chunk-XMDBTYCH.js";
@@ -24,7 +24,7 @@ import "./chunk-ZU4JPCPR.js";
24
24
  import "./chunk-U5QU5ZOD.js";
25
25
  import "./chunk-DNHVRBH4.js";
26
26
  import "./chunk-O5F25NIE.js";
27
- import "./chunk-U6YTUVOX.js";
27
+ import "./chunk-VMTCZ2GR.js";
28
28
  import "./chunk-SD7SHNDW.js";
29
29
  import "./chunk-7RET77VB.js";
30
30
  import "./chunk-YQ3GFEUY.js";
@@ -35,10 +35,10 @@ import "./chunk-SUTLW6ND.js";
35
35
  import "./chunk-RNDCROSG.js";
36
36
  import "./chunk-5LP5FNNR.js";
37
37
  import "./chunk-NVPXXW2H.js";
38
- import "./chunk-R7FGRZNF.js";
38
+ import "./chunk-4D7QM7S5.js";
39
39
  import "./chunk-DOUISWEE.js";
40
40
  import "./chunk-VKHLUZNO.js";
41
- import "./chunk-OQ2EOAHA.js";
41
+ import "./chunk-VWKR2NN5.js";
42
42
  import "./chunk-NDPF2N2L.js";
43
43
  import "./chunk-7QXCO3AF.js";
44
44
  import "./chunk-T33IYTZM.js";
@@ -48,7 +48,7 @@ import "./chunk-FD3IAHQM.js";
48
48
  import "./chunk-XNIZBOFV.js";
49
49
  import "./chunk-XZWSP67B.js";
50
50
  import "./chunk-BRCOSE7O.js";
51
- import "./chunk-55RMDDFM.js";
51
+ import "./chunk-PGQG7ZMW.js";
52
52
  import "./chunk-L4N3DWNW.js";
53
53
  import "./chunk-TDGYTWM6.js";
54
54
  import "./chunk-CTFPFW3H.js";
@@ -244,4 +244,4 @@ async function prepareWorkerTargets(input) {
244
244
  export {
245
245
  prepareWorkerTargets
246
246
  };
247
- //# sourceMappingURL=startup-background-KDWCQMWT.js.map
247
+ //# sourceMappingURL=startup-background-PJMWTKVO.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  runDoctor
4
- } from "./chunk-IN7DGBVS.js";
4
+ } from "./chunk-FBXTHPNZ.js";
5
5
  import "./chunk-NOCSM22Y.js";
6
6
  import "./chunk-KW5HXKLJ.js";
7
7
  import "./chunk-URCXX7WJ.js";
@@ -139,4 +139,4 @@ export {
139
139
  inspectInterop,
140
140
  inspectSystem
141
141
  };
142
- //# sourceMappingURL=system-ZDW44ZGX.js.map
142
+ //# sourceMappingURL=system-IVVZRKGI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  runConfigureCommand,
5
5
  runTargetRemove,
6
6
  runTargetRename
7
- } from "./chunk-EX57VVWW.js";
7
+ } from "./chunk-GGEEG7CD.js";
8
8
  import "./chunk-HSQQFDB3.js";
9
9
  import "./chunk-LK2FN5JY.js";
10
10
  import "./chunk-N24R6KWS.js";
@@ -15,11 +15,11 @@ import {
15
15
  wrapPlain
16
16
  } from "./chunk-ZIDFQJRB.js";
17
17
  import "./chunk-R2CT5YDO.js";
18
- import "./chunk-4VDHLCF5.js";
18
+ import "./chunk-M5FPIZQW.js";
19
19
  import "./chunk-HOYZUKG7.js";
20
20
  import "./chunk-QHSBROEW.js";
21
21
  import "./chunk-NASYVWDB.js";
22
- import "./chunk-IN7DGBVS.js";
22
+ import "./chunk-FBXTHPNZ.js";
23
23
  import {
24
24
  ensureClioState
25
25
  } from "./chunk-NOCSM22Y.js";
@@ -1204,4 +1204,4 @@ function serializeStatus(status, extras = {
1204
1204
  export {
1205
1205
  runTargetsCommand
1206
1206
  };
1207
- //# sourceMappingURL=targets-AJWA6E7Z.js.map
1207
+ //# sourceMappingURL=targets-RFRUMCQ5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  ClioEditor,
4
4
  createBootWelcome,
5
5
  createProcessInteractiveShell
6
- } from "./chunk-R2UUNSNQ.js";
6
+ } from "./chunk-O3ZAF7UY.js";
7
7
  import {
8
8
  GLYPH,
9
9
  clioTheme,
@@ -429,4 +429,4 @@ export {
429
429
  createProcessTerminalLease,
430
430
  instantShellEnabled
431
431
  };
432
- //# sourceMappingURL=terminal-lease-YFUSDPAD.js.map
432
+ //# sourceMappingURL=terminal-lease-V2N2BIKQ.js.map
@@ -1,16 +1,16 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  summarizeFailedCompactionUsage
4
- } from "./chunk-D3KWFOUT.js";
4
+ } from "./chunk-DGMY2DWE.js";
5
5
  import "./chunk-GGPF6LLE.js";
6
6
  import {
7
7
  readOutOfTurnUsageRows,
8
8
  summarizeEvidenceIndex
9
- } from "./chunk-V35KZDUZ.js";
9
+ } from "./chunk-GW2KVAVI.js";
10
10
  import "./chunk-4WOOTKFD.js";
11
11
  import {
12
12
  loadMemoryRecordsSync
13
- } from "./chunk-LTWH2ACR.js";
13
+ } from "./chunk-7FHSA7VB.js";
14
14
  import "./chunk-PECBKCDK.js";
15
15
  import "./chunk-OV62D6KO.js";
16
16
  import "./chunk-I4ELN5BX.js";
@@ -25,7 +25,7 @@ import {
25
25
  parseSessionEntries,
26
26
  readAuditRows,
27
27
  responseModelIdObservationCountsLabel
28
- } from "./chunk-EOJPDNUP.js";
28
+ } from "./chunk-3OODBJ45.js";
29
29
  import "./chunk-BOBCCDJ6.js";
30
30
  import "./chunk-E6IPKW2E.js";
31
31
  import "./chunk-XMDBTYCH.js";
@@ -40,7 +40,7 @@ import "./chunk-ZU4JPCPR.js";
40
40
  import "./chunk-U5QU5ZOD.js";
41
41
  import "./chunk-DNHVRBH4.js";
42
42
  import "./chunk-O5F25NIE.js";
43
- import "./chunk-U6YTUVOX.js";
43
+ import "./chunk-VMTCZ2GR.js";
44
44
  import "./chunk-SD7SHNDW.js";
45
45
  import "./chunk-7RET77VB.js";
46
46
  import "./chunk-YQ3GFEUY.js";
@@ -68,10 +68,10 @@ import "./chunk-DNCE23JJ.js";
68
68
  import "./chunk-CDQ2UC6W.js";
69
69
  import "./chunk-5LP5FNNR.js";
70
70
  import "./chunk-NVPXXW2H.js";
71
- import "./chunk-R7FGRZNF.js";
71
+ import "./chunk-4D7QM7S5.js";
72
72
  import "./chunk-DOUISWEE.js";
73
73
  import "./chunk-VKHLUZNO.js";
74
- import "./chunk-OQ2EOAHA.js";
74
+ import "./chunk-VWKR2NN5.js";
75
75
  import "./chunk-NDPF2N2L.js";
76
76
  import "./chunk-7QXCO3AF.js";
77
77
  import "./chunk-T33IYTZM.js";
@@ -81,7 +81,7 @@ import "./chunk-FD3IAHQM.js";
81
81
  import "./chunk-XNIZBOFV.js";
82
82
  import "./chunk-XZWSP67B.js";
83
83
  import "./chunk-BRCOSE7O.js";
84
- import "./chunk-55RMDDFM.js";
84
+ import "./chunk-PGQG7ZMW.js";
85
85
  import "./chunk-L4N3DWNW.js";
86
86
  import "./chunk-TDGYTWM6.js";
87
87
  import "./chunk-CTFPFW3H.js";
@@ -1080,4 +1080,4 @@ export {
1080
1080
  runUsageCommand,
1081
1081
  summarizePermissionDecisions
1082
1082
  };
1083
- //# sourceMappingURL=usage-XSILDHKF.js.map
1083
+ //# sourceMappingURL=usage-LA33SG3R.js.map
@@ -2,14 +2,14 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  SchedulingDomainModule,
4
4
  createPromptsDomainModule
5
- } from "./chunk-3JLTRPN7.js";
5
+ } from "./chunk-AKQ3N3L4.js";
6
6
  import {
7
7
  AgentsDomainModule
8
8
  } from "./chunk-UCINIRHW.js";
9
9
  import {
10
10
  createObservabilityDomainModule
11
- } from "./chunk-HQVN7G4F.js";
12
- import "./chunk-V35KZDUZ.js";
11
+ } from "./chunk-QM7HFPQQ.js";
12
+ import "./chunk-GW2KVAVI.js";
13
13
  import "./chunk-HOEDA42N.js";
14
14
  import {
15
15
  ResourcesDomainModule
@@ -27,7 +27,7 @@ import {
27
27
  buildWikiPagePrompt,
28
28
  buildWikiPlanPrompt,
29
29
  inspectWikiPageEvidence
30
- } from "./chunk-LTWH2ACR.js";
30
+ } from "./chunk-7FHSA7VB.js";
31
31
  import "./chunk-PECBKCDK.js";
32
32
  import "./chunk-OV62D6KO.js";
33
33
  import "./chunk-I4ELN5BX.js";
@@ -36,7 +36,7 @@ import "./chunk-NFSK2VNU.js";
36
36
  import "./chunk-OZ76TLGU.js";
37
37
  import {
38
38
  SessionDomainModule
39
- } from "./chunk-EOJPDNUP.js";
39
+ } from "./chunk-3OODBJ45.js";
40
40
  import "./chunk-BOBCCDJ6.js";
41
41
  import "./chunk-E6IPKW2E.js";
42
42
  import {
@@ -50,7 +50,7 @@ import "./chunk-ZU4JPCPR.js";
50
50
  import "./chunk-U5QU5ZOD.js";
51
51
  import "./chunk-DNHVRBH4.js";
52
52
  import "./chunk-O5F25NIE.js";
53
- import "./chunk-U6YTUVOX.js";
53
+ import "./chunk-VMTCZ2GR.js";
54
54
  import "./chunk-SD7SHNDW.js";
55
55
  import "./chunk-7RET77VB.js";
56
56
  import "./chunk-YQ3GFEUY.js";
@@ -77,12 +77,12 @@ import "./chunk-CDQ2UC6W.js";
77
77
  import "./chunk-5LP5FNNR.js";
78
78
  import "./chunk-NVPXXW2H.js";
79
79
  import "./chunk-ZNUZ3EXD.js";
80
- import "./chunk-R7FGRZNF.js";
80
+ import "./chunk-4D7QM7S5.js";
81
81
  import "./chunk-DOUISWEE.js";
82
82
  import "./chunk-VKHLUZNO.js";
83
83
  import {
84
84
  MiddlewareDomainModule
85
- } from "./chunk-OQ2EOAHA.js";
85
+ } from "./chunk-VWKR2NN5.js";
86
86
  import "./chunk-NDPF2N2L.js";
87
87
  import "./chunk-7QXCO3AF.js";
88
88
  import "./chunk-T33IYTZM.js";
@@ -92,7 +92,7 @@ import "./chunk-FD3IAHQM.js";
92
92
  import "./chunk-XNIZBOFV.js";
93
93
  import "./chunk-XZWSP67B.js";
94
94
  import "./chunk-BRCOSE7O.js";
95
- import "./chunk-55RMDDFM.js";
95
+ import "./chunk-PGQG7ZMW.js";
96
96
  import {
97
97
  declaredScopeIntent
98
98
  } from "./chunk-L4N3DWNW.js";
@@ -644,4 +644,4 @@ export {
644
644
  resolveDocumenterModelId,
645
645
  withWikiDispatchLifecycle
646
646
  };
647
- //# sourceMappingURL=wiki-generate-RP22WP5K.js.map
647
+ //# sourceMappingURL=wiki-generate-HL73TICA.js.map
@@ -15,7 +15,7 @@ import {
15
15
  sanitizeLockedSynthesisMessage,
16
16
  supportsNamedToolChoice,
17
17
  workerLoopBlockBudget
18
- } from "../chunk-GRHOXDKB.js";
18
+ } from "../chunk-7KI4ZSEB.js";
19
19
  import {
20
20
  readLayeredSettings
21
21
  } from "../chunk-ZNUZ3EXD.js";
@@ -33,7 +33,7 @@ import {
33
33
  startAntigravityWorkerRun,
34
34
  startClaudeCodeWorkerRun,
35
35
  validateRehydratedWorkerRuntime
36
- } from "../chunk-R7FGRZNF.js";
36
+ } from "../chunk-4D7QM7S5.js";
37
37
  import "../chunk-DOUISWEE.js";
38
38
  import "../chunk-VKHLUZNO.js";
39
39
  import {
@@ -45,7 +45,7 @@ import {
45
45
  resolveAgentTools,
46
46
  runtimeSpeaksResponseSchemaDialect,
47
47
  shouldRequestStalledTurnContinuation
48
- } from "../chunk-OQ2EOAHA.js";
48
+ } from "../chunk-VWKR2NN5.js";
49
49
  import "../chunk-NDPF2N2L.js";
50
50
  import "../chunk-7QXCO3AF.js";
51
51
  import {
@@ -61,7 +61,7 @@ import {
61
61
  } from "../chunk-XNIZBOFV.js";
62
62
  import "../chunk-XZWSP67B.js";
63
63
  import "../chunk-BRCOSE7O.js";
64
- import "../chunk-55RMDDFM.js";
64
+ import "../chunk-PGQG7ZMW.js";
65
65
  import "../chunk-L4N3DWNW.js";
66
66
  import "../chunk-TDGYTWM6.js";
67
67
  import "../chunk-CTFPFW3H.js";
@@ -47,6 +47,7 @@ or CLI-owned feature areas.
47
47
  | plugins | `src/domains/plugins/**` | Plugin discovery, catalog, and lifecycle. |
48
48
  | prompts | `src/domains/prompts/**` | Prompt fragments, system prompt envelope, template hashing. |
49
49
  | providers | `src/domains/providers/**` | Target-first runtime registry, model probing, credentials. |
50
+ | quota | `src/domains/quota/**` | Read-only subscription and credit readings from connected provider accounts, cached and normalized for the usage surfaces. |
50
51
  | resources | `src/domains/resources/**` | Package library, skills loader, prompts loader. |
51
52
  | safety | `src/domains/safety/**` | 10-step policy engine, path policy, zero-access rails, audit. |
52
53
  | scheduling | `src/domains/scheduling/**` | Budget ceilings, node cluster states, batch capacity checks. |
@@ -263,7 +263,7 @@ LM Studio 2.29.0 is that case today. Its OpenAI-compatible port returns `usage`,
263
263
 
264
264
  The verdict keeps its existing pi-ai path unless pi-ai reports `cacheRead === 0` while the backend reports a numeric `cachedTokens`. In that one case the same hot, partial, cold, and small thresholds are applied to the measured counts instead. No timing ratio or wall-clock heuristic participates in a verdict.
265
265
 
266
- `/context` renders the last call as `prefill: N uncached · M cached · X ms`, and falls back to `prefill: N prompt · X ms` when the server gave no cache figure. `/cost` folds every durable call in the session into a total uncached prefill plus the four verdict counts, `clio-coder usage report` carries the same two facts per session, and `clio-coder doctor` reports the latest session's verdict counts and its most frequent expected-cold reason without opening the TUI.
266
+ `/context` renders the last call as `prefill: N uncached · M cached · X ms`, and falls back to `prefill: N prompt · X ms` when the server gave no cache figure. `/usage` folds every durable call in the session into a total uncached prefill plus the four verdict counts, `clio-coder usage report` carries the same two facts per session, and `clio-coder doctor` reports the latest session's verdict counts and its most frequent expected-cold reason without opening the TUI.
267
267
 
268
268
  The `/context` overlay closes the loop. When the last settled run came back `cold` and Clio had recorded a reason for it, the overlay adds a line naming that reason, for example `last cache-affecting events: working-set eviction (reuse measured separately)`, and reports the cache line without the warning token. A reused prompt shell with a cold backend and no recorded reason stays a warning: Clio kept the bytes stable and the provider re-prefilled anyway, which is a disagreement worth surfacing.
269
269
 
@@ -304,7 +304,7 @@ Submitting a task detaches an in-flight warm-up so interactive admission does no
304
304
 
305
305
  Each round appends one `prewarm` custom ledger entry carrying its trigger, the backend prompt tokens, `timing`, and `promptCache`. The entry is never rendered and never becomes a model message, so it contributes zero tokens to the context estimate.
306
306
 
307
- `/context` shows `prewarmed: N tokens in X ms` until the next settled run answers the question it asked. `prewarm` is never an expected-cold reason: a pre-warm is the opposite of a disturbance. Its provider usage is real spend and is reported to `/cost` and `clio-coder usage report` under its own row, the way a `/btw` side question is.
307
+ `/context` shows `prewarmed: N tokens in X ms` until the next settled run answers the question it asked. `prewarm` is never an expected-cold reason: a pre-warm is the opposite of a disturbance. Its provider usage is real spend and is reported to `/usage` and `clio-coder usage report` under its own row, the way a `/btw` side question is.
308
308
 
309
309
  </details>
310
310
 
@@ -85,6 +85,8 @@ An `EvidenceIndexRow` has the following schema:
85
85
 
86
86
  ## Cross-Session Usage Facts
87
87
 
88
+ Everything in this section describes what Clio itself recorded. Subscription quota is a separate source with separate meaning: `src/domains/quota/**` reads what each connected provider account reports about its own windows and credits, account-wide and shared across your sessions and devices, and nothing in that domain enters the cost ledger, the evidence spine, or the trace store. The `/usage` overlay shows both and keeps them in separate views, because a session's recorded tokens cannot be converted into a percentage of a provider's plan. See [Subscription quota and session usage](../guide/commands-and-modes.md#subscription-quota-and-session-usage).
89
+
88
90
  `clio-coder usage report` folds the local archive into one window of facts. Its token and cost facts come from two inputs: the per-session ledgers, folded through the session domain's `ledgerUsageCalls`, and the out-of-turn usage store described below. Both the text report and `--json` carry the same fields.
89
91
 
90
92
  | Field | Where it appears | Meaning |
@@ -92,7 +94,7 @@ An `EvidenceIndexRow` has the following schema:
92
94
  | `apiCalls` | `tokens in window: <total> over <n> model calls` and the `tokens` JSON fact | Provider calls folded in the window, out-of-turn rounds included. |
93
95
  | `input`, `output`, `cacheRead`, `cacheWrite`, `reasoningTokens`, `totalTokens` | the same line and fact | Provider-reported token breakdown for those calls. |
94
96
  | `costUsd` | `provider-reported cost in window` and the `tokens` fact | Provider-reported cost. Never estimated. |
95
- | `turns` | `turns in window` and the `tokens` fact | Folded calls that were turns, so labelled calls are subtracted exactly as `/cost` subtracts them. |
97
+ | `turns` | `turns in window` and the `tokens` fact | Folded calls that were turns, so labelled calls are subtracted exactly as `/usage` subtracts them. |
96
98
  | `sideQuestions` | `side questions in window` and the `tokens` fact | `/btw` rounds in the window. |
97
99
  | `handoffs` | `handoffs in window` and the `tokens` fact | `/handoff` extraction rounds in the window. |
98
100
  | `prewarms` | `pre-warms in window` and the `tokens` fact | Prompt pre-warm rounds in the window. |
@@ -120,7 +122,7 @@ The row reads `top expected reason none` when the session recorded verdicts but
120
122
 
121
123
  ### The Out-of-Turn Usage Store
122
124
 
123
- A `/btw` side question and a `/handoff` extraction round are real provider calls that append nothing to the session JSONL, by design: a fleet run briefs its workers from the transcript, and a question the operator asked to orient themselves must not become context those workers inherit. The spend still has to be recorded somewhere durable, so it goes to `<stateDir>/usage/out-of-turn.jsonl`, one JSON line per priced call, written by the chat loop at the same moment it reports the call to `/cost`.
125
+ A `/btw` side question and a `/handoff` extraction round are real provider calls that append nothing to the session JSONL, by design: a fleet run briefs its workers from the transcript, and a question the operator asked to orient themselves must not become context those workers inherit. The spend still has to be recorded somewhere durable, so it goes to `<stateDir>/usage/out-of-turn.jsonl`, one JSON line per priced call, written by the chat loop at the same moment it reports the call to `/usage`.
124
126
 
125
127
  The file is append-only NDJSON kept as a bounded ring (capped at 1000 rows, rewritten atomically under the shared state-file lock when it grows past the cap). Reads are tolerant: a malformed line is reported as a diagnostic on stderr and skipped.
126
128
 
@@ -155,9 +157,9 @@ Failed compaction attempts record one `failed-compaction` row per invoked summar
155
157
 
156
158
  New failed-compaction rows preserve missing usage fields as `null`. Positive partial-response facts survive an error that resets missing fields to zero. Ambiguous failed zeros remain unknown, reasoning is separate from ordinary output/total tokens, and an absent total is not inferred. Positive adapter prices are labeled `estimated`; zero or missing pricing is `unknown`, not a free-call claim. Existing numeric rows and historical checkpoints remain readable without rewriting them.
157
159
 
158
- `clio-coder usage report` includes these calls in its known subtotals, labels the failed-attempt count, and exposes `failedCompaction.knownUsage`, `erroredKnownUsage`, and per-field `unobservedUsageCalls` in the token and model JSON facts. A field with missing coverage and no known positive amount is `null`, including cost-only or wholly unobserved failures. Text output identifies incomplete subtotals. The live `/cost` view records positive known contributions under a failed-compaction label; its numeric token counters remain known subtotals. These figures do not certify provider billing or complete spending. The existing session-cost ceiling checks the numeric known sum, so unreported cost does not become an enforced complete-cost bound.
160
+ `clio-coder usage report` includes these calls in its known subtotals, labels the failed-attempt count, and exposes `failedCompaction.knownUsage`, `erroredKnownUsage`, and per-field `unobservedUsageCalls` in the token and model JSON facts. A field with missing coverage and no known positive amount is `null`, including cost-only or wholly unobserved failures. Text output identifies incomplete subtotals. The live `/usage` view records positive known contributions under a failed-compaction label; its numeric token counters remain known subtotals. These figures do not certify provider billing or complete spending. The existing session-cost ceiling checks the numeric known sum, so unreported cost does not become an enforced complete-cost bound.
159
161
 
160
- In v0.5.0, eval tracked/stdout folds omit the failed-compaction sidecar, and live `/cost` reseeding reads the session ledger rather than this store. A later usage report can therefore include retained failed-compaction amounts that those views omit. These consumer projections remain separate; retained known amounts must not be presented as complete cross-surface billing.
162
+ In v0.5.1, eval tracked/stdout folds omit the failed-compaction sidecar, and live `/usage` reseeding reads the session ledger rather than this store. A later usage report can therefore include retained failed-compaction amounts that those views omit. These consumer projections remain separate; retained known amounts must not be presented as complete cross-surface billing.
161
163
 
162
164
  A failed or empty summary produces no checkpoint. Required failed-compaction usage appends are flushed and a write failure remains an explicit operation error; no model call is repeated to repair accounting. If checkpoint append throws, Clio checks that checkpoint's exact identity in the original ledger before choosing the sidecar: an already written checkpoint is not counted again, and proven absence permits the sidecar. An unreadable or malformed ledger that leaves persistence ambiguous fails visibly without a speculative duplicate write. This is the existing bounded usage store, not a new recovery store; its 1000-row retention and unknown telemetry limits still apply.
163
165
 
@@ -316,7 +316,7 @@ Timing and cache behavior are persisted per API call, so a finished session can
316
316
 
317
317
  Native session timing uses a monotonic clock from each stream invocation, before the provider's response-header wait, to its first observed output (`ttftMs`) and completion (`apiMs`). A tool-loop continuation starts a new clock; no output leaves TTFT null, and a genuine rounded zero remains zero. Historical values are not rewritten and may omit the pre-header wait. Eval prefers these durable native call records. Its stdout-only fallback starts at the provider's `message_start` event, which can arrive after headers, so fallback spans are not complete request latency and must not be compared as equivalent measurements.
318
318
 
319
- For aggregate cost and token facts across sessions, use `clio-coder usage report --days <n>`. Inside the TUI, `/cost` shows session totals and `/context` opens the context-window ledger overlay.
319
+ For aggregate cost and token facts across sessions, use `clio-coder usage report --days <n>`. Inside the TUI, `/usage` shows session totals and `/context` opens the context-window ledger overlay.
320
320
 
321
321
  ## Self-documentation retrieval
322
322
 
@@ -167,7 +167,7 @@ cancels the whole handoff with nothing written in either session.
167
167
  The extraction round itself runs on the out-of-turn seam `/btw` uses: one call
168
168
  against the session's live target and model, the compiled message history as
169
169
  read-only input, no tools, and no entry in the ledger. Its provider usage is
170
- reported to `/cost` under a handoffs row and excluded from the turn count.
170
+ reported to `/usage` under a handoffs row and excluded from the turn count.
171
171
 
172
172
  ### Streaming Turn Settlement During Session Transitions
173
173
 
@@ -203,7 +203,7 @@ Interactive startup uses one terminal lease across both boot stages. Stage 0 own
203
203
  The header has two operational modes: a framed launchpad dashboard on fresh start, and a single live session row after prompt admission. Source: `src/interactive/welcome-dashboard.ts`; contracts: `tests/extended/welcome-boot-header.test.ts`.
204
204
 
205
205
  - **Launchpad (before the first prompt): framed panel dashboard.** A boxed container (`buildWelcomeDashboardLines`) enclosed by `╭─ Clio Coder v<version> ─╮` and `╰─╯`:
206
- - **11 Detail Rows:** Subhead/title ("Built for the code behind science."), model route status (`routeRow`), workspace path, permissions/autonomy (`stats.autonomy`), guidance ("Ask Clio how to use or extend her."), target inventory (`stats.targets`), and fleet recipes inventory (`stats.fleet`).
206
+ - **11 Detail Rows:** Subhead/title ("Built for the code behind science."), model route status (`routeRow`), workspace path, permissions/autonomy (`stats.autonomy`), guidance ("Ask Clio how to use or extend her."), target inventory (`stats.targets`), and fleet recipes inventory (`stats.fleet`). A `Subscriptions` field (`stats.quota`) joins the list between Targets and Fleet once a cached quota reading exists, wrapping at the detail-column width rather than clipping, and is absent entirely when no account is connected.
207
207
  - **Responsive Layout:** Renders wordmark ASCII art on the left at ≥76 columns (`sideBySide`), and rotating hint cards on the right at ≥160 columns (`WELCOME_HINT_MIN_WIDTH`) cycling commands and shortcuts every 15 seconds.
208
208
  - **Action Row:** A horizontal rule (`├─┤`) separates details from the action row (`actionRow`), which prints the next step or work blocker: no route or model (`/model`), route unavailable or degraded (`/settings targets`), malformed handbook (`CLIO-CODER.md malformed · /context to inspect`), uninitialized handbook (`describe a task · /context init to index this repo`), stale handbook (`describe a task · /context refresh to update it`), or default `describe a task · <SubmitKey> to send · / for commands`.
209
209
 
@@ -211,7 +211,7 @@ The header has two operational modes: a framed launchpad dashboard on fresh star
211
211
 
212
212
  - **Session header (after the first prompt): exactly one row, and live.**
213
213
  ```
214
- >C_ Clio Coder v0.5.0 · dynamo · qwen3.8-27b · ~/iowarp/clio-coder · main*
214
+ >C_ Clio Coder v0.5.1 · dynamo · qwen3.8-27b · ~/iowarp/clio-coder · main*
215
215
  ```
216
216
  Collapsed via `sessionRow`, this line tracks mid-session model or branch mutations. It preserves identity (`>C_ Clio Coder v<version>`), active route, workspace tail, and git dirty state (`*`), dropping readiness and onboarding hints owned by the footer. Under extreme width pressure, the route is preserved longest, outliving workspace and version labels.
217
217
 
@@ -267,12 +267,12 @@ Starting Clio · you can type now
267
267
  Source: `src/interactive/footer/dashboard.ts`, `src/interactive/footer/pages.ts`.
268
268
 
269
269
  - **Compact Mode (Two-Line Ambient Strip)**:
270
- - **Line 1 (Workload & Identity)**: Active phase (`accent` e.g. `Ready`) and worker counts (`agent` e.g. `· 2 active`) · Target/model identity (`fitIdentityLabel`) · Thinking level (`reason`) on the left; Context meter bar (8–14 cells) and token occupancy (`used / contextWindow`) on the right.
271
- - **Line 2 (Status & Hints)**: Urgent input prompt (`Ctrl+C again to quit`, `Ctrl+G → choose key`), active notices (`• text`), demo tips, or rotating shortcut hints alternating with workspace path and git branch/dirty (`*`) on the left; Session throughput (`tok/s`) and dashboard toggle shortcut (`Alt+U`) on the right.
270
+ - **Line 1 (Workload & Identity)**: Active phase (`accent` e.g. `Ready`) and worker counts (`agent` e.g. `· 2 active`) · Target/model identity (`fitIdentityLabel`) · Selected model’s weekly quota (`weekly N% left`, when the local credential owner and model group are known) · Thinking level (`reason`) on the left; Context meter bar (8–14 cells) and token occupancy (`used / contextWindow`) on the right.
271
+ - **Line 2 (Status & Hints)**: Persistent workspace cwd and Git branch/dirty (`*`) on the left; rotating shortcut hints on the right. Urgent input prompts (`Ctrl+C again to quit`, `Ctrl+G → choose key`), active notices (`• text`), and demo tips borrow only the hint area. Quota never occupies this row.
272
272
  - **Expanded Mode (`Alt+U`)**: Renders across one-quarter of the viewport (minimum 8 rows), keeping the composer anchored below. Repeated presses cycle through three responsive pages (`DASHBOARD_PAGES`) and closed:
273
273
  1. `Activity`: Live agent phase, tool counts, session metrics, active worker cards (route, task, token usage, tool calls, timing, budget, `/view dispatch:<id>`), and finished worker history.
274
274
  2. `Context`: Context meter bar and category occupancy grid (system, tools, files, turns, memory), compaction/cache telemetry, headroom.
275
- 3. `Status`: Cost & Connections (session cost, MCP servers, plugins, extensions) and Local Machine metrics (CPU, memory, disk I/O sampled on 2s cadence), plus memory bank entries and free tokens.
275
+ 3. `Status`: A session line (recorded tokens and tracked cost) above one compact row per connected subscription account (`renderQuotaAccounts`, `src/interactive/quota-view.ts`), then Cost & Connections (session cost, MCP servers, plugins, extensions) and Local Machine metrics (CPU, memory, disk I/O sampled on 2s cadence), plus memory bank entries and free tokens.
276
276
 
277
277
  ### 5.4 State Choreography Table
278
278
 
@@ -418,17 +418,20 @@ Agents and Fleets label plugin provider packages as `[plugin]` and show only the
418
418
 
419
419
  ## 8. Shared Vocabulary
420
420
 
421
- One quantity gets one word, and every surface that shows it uses that word. A user comparing the transcript, the footer, and an overlay is checking whether Clio is telling a consistent story; a synonym reads as a discrepancy. The current vocabulary is owned by `src/interactive/chat-panel.ts`, `src/interactive/cost-overlay.ts`, `src/interactive/status/reasoning.ts`, and `src/interactive/thinking-level-policy.ts`; there is no standalone `usage-vocabulary` contract test in the current tree.
421
+ One quantity gets one word, and every surface that shows it uses that word. A user comparing the transcript, the footer, and an overlay is checking whether Clio is telling a consistent story; a synonym reads as a discrepancy. The current vocabulary is owned by `src/interactive/chat-panel.ts`, `src/interactive/usage-overlay.ts`, `src/interactive/status/reasoning.ts`, and `src/interactive/thinking-level-policy.ts`; there is no standalone `usage-vocabulary` contract test in the current tree.
422
422
 
423
423
  | Concept | Word | Surfaces |
424
424
  | --- | --- | --- |
425
- | One model API call | `call` | Chat panel `turn · in N over M calls`, `/cost` `model calls`, `/cost` `(avg/call …)` |
426
- | One user-to-assistant exchange | `turn` | Chat panel `turn · …`, `/cost` `turns` |
425
+ | One model API call | `call` | Chat panel `turn · in N over M calls`, `/usage` `model calls`, `/usage` `(avg/call …)` |
426
+ | One user-to-assistant exchange | `turn` | Chat panel `turn · …`, `/usage` `turns` |
427
427
  | Provider-reported reasoning tokens | `reasoning N provider` | Chat panel |
428
428
  | Reasoning tokens estimated from displayed text | `reasoning ≈N estimated` | Chat panel; the footer carries the same `≈` on `r≈N` |
429
- | Reasoning tokens in the cost tally | `reasoning N provider-reported only` | `/cost`. This tally never estimates, so it disagrees with the panel on a model that reports nothing, and the row says which one it is. |
429
+ | Reasoning tokens in the cost tally | `reasoning N provider-reported only` | `/usage`. This tally never estimates, so it disagrees with the panel on a model that reports nothing, and the row says which one it is. |
430
430
  | Thinking level a model cannot turn off | `forced` | Editor rail, model overlay, thinking cycle (`thinkingLevelDisplayWord`) |
431
431
  | Thinking level on a model with only on and off | `on` / `off` | Same surfaces |
432
+ | Consumed share of a subscription window | `N% used` | `/usage` Accounts, dashboard Status, welcome `Subscriptions`. A filled meter cell always means consumed capacity. |
433
+ | Unconsumed share of the same window | `N% remaining` in a detailed meter, `N% left` in a compact badge | `/usage` Accounts and Status print `remaining` beside `used`; the compact footer, worker cards, and fleet islands carry `weekly N% left`. |
434
+ | A limit belonging to the account rather than to this session | `Shared <account>` | Worker cards, fleet islands, `/usage` Workers. Never a measured per-worker share. |
432
435
 
433
436
  ### 8.1 Slash-Command Failures
434
437
 
@@ -24,7 +24,7 @@ Two rows in the source are **corrupt Markdown**: an unescaped `|` inside the ope
24
24
  | 12 | Oracle advisory | `/oracle <question>` | **Absent** | No read-only record-briefed advisory operation exists. |
25
25
  | 13 | Council | `/council <task>` | **Partial** | Runs reconstructs the roster, plan approval, rounds, and synthesis shape from the ledger. Member voices are **host-only-by-design**; starting and sharing a council are absent. |
26
26
  | 14 | Agent reference | `/agents` | **Present** | Capability atlas provides the graphical recipe reference. |
27
- | 15 | Cost record | `/cost` | **Partial** | Exact tokens and historical reported cost exist, but live session cost, budget provenance, and provider-normalized totals are incomplete. |
27
+ | 15 | Usage record | `/usage` | **Partial** | Exact tokens and historical reported cost exist, but live session cost, budget provenance, and provider-normalized totals are incomplete. |
28
28
  | 16 | Context family | `/context view \| compact \| recall \| init \| refresh \| reset` | **Partial** | `[RECONSTRUCTED]` — the source row is corrupt for the same reason. Verified against `src/interactive/slash-commands.ts:1695-1705`, whose `kinds` are `context-view, compact, context-recall, init, context-clear, context-refresh`. Reconstructed gap, consistent with the `Project context` row in part 1 and the `Context meter and overlay` row below: effective context sources and earlier replay are visible; live window pressure, working-set state, compaction, recall, and reset have no GUI surface. |
29
29
  | 17 | Fleet | `/fleet` settings and `/fleet run` preview/approval | **Partial** | Global dispatch status exists; fleet plan selection, variable binding, preview, approval, and run are absent. |
30
30
  | 18 | Decision ledger | `/decisions` | **Absent** | No typed decision-board projection reaches the GUI. |