@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.
Files changed (188) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/CONTRIBUTING.md +14 -9
  3. package/NOTICE +16 -0
  4. package/README.md +312 -685
  5. package/dist/{acp-H3CU2HBQ.js → acp-UVEVWSDL.js} +6 -6
  6. package/dist/{agents-IXQQZ7BD.js → agents-VWY37DTK.js} +31 -30
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-R7KYF7N3.js → auth-PCV2XQDV.js} +6 -6
  9. package/dist/{builtins-CRFDQUVP.js → builtins-PD652MTK.js} +3 -3
  10. package/dist/{chunk-SDWNDICN.js → chunk-24T2YZ7A.js} +58 -56
  11. package/dist/{chunk-FSTIBAGM.js → chunk-2AKYFREM.js} +7 -7
  12. package/dist/{chunk-SE4ZKILO.js → chunk-3BJGMT2D.js} +30 -9
  13. package/dist/{chunk-GVYWZNRK.js → chunk-3HQVBIKD.js} +2 -2
  14. package/dist/{chunk-EWD5P3GK.js → chunk-3JLFK5MW.js} +4 -4
  15. package/dist/{chunk-O2RQ7LCK.js → chunk-3O2ZAUGQ.js} +2 -2
  16. package/dist/{chunk-GXCCHKN6.js → chunk-3QKXHCGS.js} +4 -4
  17. package/dist/{chunk-YEJIG7LN.js → chunk-3WBALRQH.js} +7 -7
  18. package/dist/{chunk-I7VLWRK2.js → chunk-4DU2TVI4.js} +5 -5
  19. package/dist/{chunk-TEG3RYVZ.js → chunk-4U4TKZFR.js} +3 -3
  20. package/dist/{chunk-EHCPSZJF.js → chunk-4VMV6OS6.js} +2 -2
  21. package/dist/{chunk-T7FDXNRU.js → chunk-536HXRFE.js} +4 -4
  22. package/dist/{chunk-ZMZQEBKI.js → chunk-5QRX7SLS.js} +8 -8
  23. package/dist/{chunk-RXIOCVBZ.js → chunk-6HAO6X5B.js} +4 -4
  24. package/dist/{chunk-HGSLRG33.js → chunk-6OII3LOK.js} +2 -2
  25. package/dist/{chunk-U2JOLB7O.js → chunk-6RYDAVQT.js} +32 -32
  26. package/dist/{chunk-T53XI6I7.js → chunk-6VRRJT7L.js} +2 -2
  27. package/dist/{chunk-RLTT5GVY.js → chunk-7JSSKXG2.js} +4 -4
  28. package/dist/{chunk-633EXGZA.js → chunk-ACCKVSHU.js} +3 -3
  29. package/dist/{chunk-6SYEGZI3.js → chunk-B3MOMLJ4.js} +2 -2
  30. package/dist/{chunk-UXAC2FX4.js → chunk-BLTEAUCB.js} +3 -3
  31. package/dist/{chunk-DRD2A54W.js → chunk-BT7HGDOX.js} +15 -15
  32. package/dist/{chunk-F34AR6O3.js → chunk-DXLUVUD4.js} +5 -5
  33. package/dist/{chunk-HR3HPQ76.js → chunk-E7RF4KBO.js} +2 -2
  34. package/dist/chunk-EM2WNQS2.js +93 -0
  35. package/dist/{chunk-KYKNBD4Y.js → chunk-F5Z7EWMN.js} +953 -233
  36. package/dist/{chunk-VLPTKCKT.js → chunk-GLYBJ4RQ.js} +3 -3
  37. package/dist/{chunk-KDWLXVMN.js → chunk-HPTJF6DG.js} +16 -39
  38. package/dist/{chunk-6CDNRHWH.js → chunk-HZ2T2YED.js} +2 -2
  39. package/dist/{chunk-UTUNT5QL.js → chunk-HZFBVU5X.js} +7 -7
  40. package/dist/{chunk-KF6GFW6O.js → chunk-I2K2NCZQ.js} +7 -7
  41. package/dist/{chunk-5DDOTTG4.js → chunk-IGLVVNEG.js} +2 -2
  42. package/dist/{chunk-4SVIVOMC.js → chunk-IKRWLEDA.js} +5 -5
  43. package/dist/{chunk-R6MAYTMS.js → chunk-JMPL7NUB.js} +3 -3
  44. package/dist/{chunk-5ZMXGW7P.js → chunk-KAFMW7WM.js} +4 -85
  45. package/dist/{chunk-R6MICQYU.js → chunk-LIN2K3EL.js} +4 -4
  46. package/dist/{chunk-QEQISF75.js → chunk-LK2FN5JY.js} +1 -1
  47. package/dist/{chunk-YYB3MC65.js → chunk-N2OKBREN.js} +2 -2
  48. package/dist/{chunk-XXBQKW32.js → chunk-NNWJYUNO.js} +4 -4
  49. package/dist/{chunk-TZ7MFRG4.js → chunk-P5JMBPDJ.js} +22 -20
  50. package/dist/{chunk-WFKDPU7U.js → chunk-P6M7RKMI.js} +2 -2
  51. package/dist/{chunk-MDU3C27C.js → chunk-PZN2LQY6.js} +5 -5
  52. package/dist/{chunk-S32UQ5GL.js → chunk-Q7NNUHQV.js} +15 -15
  53. package/dist/{chunk-U7VQ4NI4.js → chunk-QCOV5DFY.js} +5 -5
  54. package/dist/{chunk-MC3JSVR6.js → chunk-QJMRYTCX.js} +7 -7
  55. package/dist/{chunk-DIMRLNIC.js → chunk-QNWRHOMF.js} +3 -3
  56. package/dist/{chunk-ILJ7DWGE.js → chunk-QXFBABFJ.js} +4 -4
  57. package/dist/chunk-R2CT5YDO.js +66 -0
  58. package/dist/{chunk-E3BQTQUP.js → chunk-RGZNQ5CT.js} +3 -3
  59. package/dist/{chunk-SBZX6ARC.js → chunk-SXQKNKRA.js} +7 -7
  60. package/dist/{chunk-WLMSOT73.js → chunk-TJFDL26W.js} +3 -3
  61. package/dist/{chunk-EQEJJ53P.js → chunk-VAHLPXPY.js} +2 -2
  62. package/dist/{chunk-7TKWWPD7.js → chunk-VANN3GDP.js} +3 -23
  63. package/dist/{chunk-GNQRWTMY.js → chunk-VHMX7SXF.js} +2 -2
  64. package/dist/{chunk-UL36QJX6.js → chunk-WKUYQBCG.js} +6 -6
  65. package/dist/{chunk-FKIOX6DS.js → chunk-WNGF5AJX.js} +9 -4
  66. package/dist/{chunk-ICO4TQ2F.js → chunk-WV6TDAPN.js} +36 -20
  67. package/dist/{chunk-K6RDB7IA.js → chunk-X3BI7HTV.js} +9 -9
  68. package/dist/{chunk-NY6IWDVU.js → chunk-XWMSPJYN.js} +2 -2
  69. package/dist/{chunk-7HBHHVCK.js → chunk-YPRSNUTC.js} +2 -2
  70. package/dist/{chunk-ONRTXOZY.js → chunk-ZS43Y2FT.js} +2 -2
  71. package/dist/cli/index.js +27 -27
  72. package/dist/{clio-5I2IBFYL.js → clio-QQCMTUZE.js} +6 -6
  73. package/dist/{code-nav-YXIAEZVS.js → code-nav-GUPM6766.js} +8 -8
  74. package/dist/{config-Y2JDJ3JJ.js → config-IIM7YOD3.js} +42 -41
  75. package/dist/{configure-SML6UBZ5.js → configure-4ZM5HWJX.js} +28 -10
  76. package/dist/{context-S2EEC3EJ.js → context-44BZLJ3J.js} +12 -12
  77. package/dist/{context-P5YSEO55.js → context-AIDVQKMW.js} +34 -33
  78. package/dist/{context-QQ53HSGJ.js → context-OL5P3HEP.js} +25 -24
  79. package/dist/{context-clear-TMEQCOTH.js → context-clear-OQV76MYP.js} +34 -33
  80. package/dist/{context-working-set-CNLSQN5K.js → context-working-set-ZUW3EGLS.js} +10 -9
  81. package/dist/{detail-5572VLBO.js → detail-UXPWRANG.js} +35 -34
  82. package/dist/{dispatch-runner-FRHD6P2O.js → dispatch-runner-P3ZW6G77.js} +38 -37
  83. package/dist/{doctor-N3LCM2LG.js → doctor-JJVGPZWT.js} +18 -17
  84. package/dist/{eval-BUU3ZOUZ.js → eval-V2RTN3UH.js} +26 -25
  85. package/dist/{evidence-DTGEN456.js → evidence-35PYWGSO.js} +34 -33
  86. package/dist/{evidence-SQ5DNFEN.js → evidence-CIGGKI6J.js} +36 -35
  87. package/dist/{evolve-IJNUFZDS.js → evolve-33SM3NJP.js} +34 -33
  88. package/dist/{fleet-ZNNVSYFO.js → fleet-LFO7SIPC.js} +62 -61
  89. package/dist/{fleet-commands-5YE7NPJL.js → fleet-commands-RLK72GU3.js} +9 -9
  90. package/dist/fleet-decisions-3SBSCTCW.js +1 -1
  91. package/dist/{fleet-graph-6HHPWF5T.js → fleet-graph-JZIBCGMW.js} +11 -11
  92. package/dist/{fleet-inspect-JEYMGCGC.js → fleet-inspect-2L5YGGZJ.js} +35 -34
  93. package/dist/{fleet-validate-4PM4GDDL.js → fleet-validate-LIAVKDUU.js} +12 -12
  94. package/dist/{fleet-verify-NJDTHTO3.js → fleet-verify-JIK3OQZR.js} +34 -33
  95. package/dist/{fleet-view-UP2BWQQY.js → fleet-view-IWHYGQKK.js} +35 -34
  96. package/dist/{init-S3GZQ5ZF.js → init-NJEDOTQW.js} +46 -45
  97. package/dist/{interop-YOTGXFJM.js → interop-RVCAYECG.js} +4 -4
  98. package/dist/{inventory-K2OZ36YJ.js → inventory-74UL7UHU.js} +35 -34
  99. package/dist/{library-GJI6W6OK.js → library-CTKZA7K3.js} +10 -10
  100. package/dist/{memory-OQOXQGYD.js → memory-I76I5VUH.js} +34 -33
  101. package/dist/{models-3IK2Y5WE.js → models-D4YDIQZQ.js} +19 -18
  102. package/dist/{monitor-FTJLTKCQ.js → monitor-NKVD55HX.js} +40 -39
  103. package/dist/{orchestrator-N47O7SFD.js → orchestrator-I6OATVPK.js} +658 -1092
  104. package/dist/{preload-65U34NG6.js → preload-EJAWJEIO.js} +34 -33
  105. package/dist/{reset-MUVQDLNL.js → reset-4XMQKDNZ.js} +5 -3
  106. package/dist/{resources-LM76COAO.js → resources-TVYVXK3Q.js} +10 -10
  107. package/dist/{run-3VFZQ33N.js → run-OWQNNSJU.js} +61 -60
  108. package/dist/{share-4JUB4BL7.js → share-NPZZMUXG.js} +11 -11
  109. package/dist/{skills-S36AAJHU.js → skills-OXFEAWMT.js} +12 -12
  110. package/dist/{skills-eval-G6T57L7M.js → skills-eval-J5TCKSJA.js} +38 -37
  111. package/dist/{skills-inventory-WLM46PJH.js → skills-inventory-7II4DM57.js} +10 -10
  112. package/dist/{slash-commands-GBARG3Y7.js → slash-commands-MDSDSWYF.js} +26 -25
  113. package/dist/{targets-N5REUETU.js → targets-KILZEOCE.js} +36 -20
  114. package/dist/{tasks-6BVY5YZF.js → tasks-R6P6OV22.js} +7 -7
  115. package/dist/{terminal-lease-57UEOJKS.js → terminal-lease-LZCG2KN3.js} +2 -2
  116. package/dist/{upgrade-4HD5HAIV.js → upgrade-D2OZH6IQ.js} +9 -9
  117. package/dist/{usage-4GWM2WWP.js → usage-PIASNUS4.js} +40 -39
  118. package/dist/{verifiers-GSKWKWVG.js → verifiers-LTHUY2PX.js} +9 -9
  119. package/dist/{verify-3AS3ULCY.js → verify-HYF7KBVE.js} +7 -7
  120. package/dist/{wiki-generate-7BV7XWIY.js → wiki-generate-RK7JQ5NP.js} +51 -50
  121. package/dist/worker/entry.js +41 -39
  122. package/docs/architecture/context-engine.md +1 -1
  123. package/docs/architecture/tui-design.md +45 -30
  124. package/docs/guide/commands-and-modes.md +26 -25
  125. package/docs/guide/configuration-and-targets.md +122 -27
  126. package/docs/guide/configuration-reference.md +9 -4
  127. package/docs/guide/fleet-dispatch.md +1 -6
  128. package/docs/guide/glossary.md +1 -1
  129. package/docs/guide/installation-and-lifecycle.md +44 -11
  130. package/docs/process/development-pipeline.md +1 -1
  131. package/docs/process/documentation-coverage.md +1 -1
  132. package/docs/process/release-cut-checklist.md +18 -6
  133. package/package.json +1 -1
  134. package/src/cli/ask.ts +10 -10
  135. package/src/cli/configure-editor.ts +51 -0
  136. package/src/cli/configure-interop.ts +1 -1
  137. package/src/cli/configure-oauth.ts +1 -1
  138. package/src/cli/configure-onboarding.ts +232 -96
  139. package/src/cli/configure-prompts.ts +76 -0
  140. package/src/cli/configure-quick.ts +274 -0
  141. package/src/cli/configure-target.ts +14 -2
  142. package/src/cli/configure.ts +413 -174
  143. package/src/cli/oauth-manual-input.ts +1 -1
  144. package/src/cli/reset.ts +2 -0
  145. package/src/cli/select.ts +35 -4
  146. package/src/cli/upgrade.ts +2 -2
  147. package/src/core/config.ts +6 -1
  148. package/src/core/defaults.ts +33 -11
  149. package/src/{interactive → core}/external-editor.ts +4 -4
  150. package/src/domains/config/classify.ts +1 -1
  151. package/src/domains/config/keybindings.ts +3 -31
  152. package/src/domains/providers/probe/fingerprint.ts +13 -6
  153. package/src/domains/providers/probe/reasoning.ts +2 -0
  154. package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
  155. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
  156. package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
  157. package/src/interactive/application-controller.ts +1 -31
  158. package/src/interactive/chat-panel.ts +163 -637
  159. package/src/interactive/chat-renderer.ts +13 -30
  160. package/src/interactive/dispatch-board.ts +1 -3
  161. package/src/interactive/editor-submit.ts +8 -31
  162. package/src/interactive/footer/dashboard.ts +8 -3
  163. package/src/interactive/footer/widgets.ts +50 -91
  164. package/src/interactive/interactive-application.ts +16 -42
  165. package/src/interactive/interactive-event-projection.ts +2 -44
  166. package/src/interactive/interactive-input-runtime.ts +3 -28
  167. package/src/interactive/interactive-presentation.ts +30 -9
  168. package/src/interactive/interactive-slash-runtime.ts +3 -40
  169. package/src/interactive/layout.ts +29 -4
  170. package/src/interactive/overlay-general-openers.ts +2 -0
  171. package/src/interactive/overlay-lifecycle.ts +1 -0
  172. package/src/interactive/overlay-session-lifecycle.ts +1 -1
  173. package/src/interactive/overlays/settings.ts +9 -8
  174. package/src/interactive/renderers/preview.ts +16 -0
  175. package/src/interactive/renderers/tool-execution.ts +67 -160
  176. package/src/interactive/renderers/worker-entry.ts +57 -41
  177. package/src/interactive/slash-autocomplete.ts +1 -6
  178. package/src/interactive/slash-commands.ts +7 -39
  179. package/src/interactive/status/controller.ts +0 -5
  180. package/src/interactive/status/state-machine.ts +44 -26
  181. package/src/interactive/status/types.ts +3 -0
  182. package/src/interactive/status/verbs.ts +13 -12
  183. package/src/interactive/transcript-detail.ts +50 -112
  184. package/src/interactive/view/artifacts.ts +4 -0
  185. package/src/interactive/view/view-overlay.ts +44 -34
  186. package/src/tools/presentation.ts +1 -1
  187. package/src/tools/registry.ts +1 -1
  188. package/src/tools/verify/numeric.ts +4 -4
@@ -2,40 +2,40 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  SchedulingDomainModule,
4
4
  createPromptsDomainModule
5
- } from "./chunk-DIMRLNIC.js";
5
+ } from "./chunk-QNWRHOMF.js";
6
6
  import {
7
7
  ConfigDomainModule,
8
8
  loadDomains
9
- } from "./chunk-ILJ7DWGE.js";
9
+ } from "./chunk-QXFBABFJ.js";
10
10
  import {
11
11
  createObservabilityDomainModule
12
- } from "./chunk-FSTIBAGM.js";
12
+ } from "./chunk-2AKYFREM.js";
13
13
  import {
14
14
  ResourcesDomainModule
15
- } from "./chunk-U7VQ4NI4.js";
15
+ } from "./chunk-QCOV5DFY.js";
16
16
  import {
17
17
  AgentsDomainModule
18
- } from "./chunk-NY6IWDVU.js";
18
+ } from "./chunk-XWMSPJYN.js";
19
19
  import {
20
20
  DispatchDomainModule,
21
21
  fallbackBootstrapOutput
22
- } from "./chunk-SDWNDICN.js";
23
- import {
24
- SafetyDomainModule
25
- } from "./chunk-WLMSOT73.js";
22
+ } from "./chunk-24T2YZ7A.js";
26
23
  import {
27
24
  renderCodewikiDigest
28
- } from "./chunk-6CDNRHWH.js";
25
+ } from "./chunk-HZ2T2YED.js";
29
26
  import {
30
27
  SessionDomainModule
31
- } from "./chunk-F34AR6O3.js";
28
+ } from "./chunk-DXLUVUD4.js";
29
+ import {
30
+ SafetyDomainModule
31
+ } from "./chunk-TJFDL26W.js";
32
32
  import {
33
33
  MiddlewareDomainModule
34
- } from "./chunk-DRD2A54W.js";
34
+ } from "./chunk-BT7HGDOX.js";
35
35
  import {
36
36
  UnsupportedResponseSchemaError,
37
37
  isResponseSchemaRejection
38
- } from "./chunk-TZ7MFRG4.js";
38
+ } from "./chunk-P5JMBPDJ.js";
39
39
  import {
40
40
  parseJsonObjectPayload
41
41
  } from "./chunk-OQM5IVJY.js";
@@ -44,7 +44,7 @@ import {
44
44
  } from "./chunk-L4N3DWNW.js";
45
45
  import {
46
46
  ProvidersDomainModule
47
- } from "./chunk-TEG3RYVZ.js";
47
+ } from "./chunk-4U4TKZFR.js";
48
48
  import {
49
49
  resolveGuardrail
50
50
  } from "./chunk-C27U2TYG.js";
@@ -702,4 +702,4 @@ export {
702
702
  validateInitOptions,
703
703
  bootstrapInputFromInitOptions
704
704
  };
705
- //# sourceMappingURL=chunk-S32UQ5GL.js.map
705
+ //# sourceMappingURL=chunk-Q7NNUHQV.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
  parseAgentRecipeSchema
4
- } from "./chunk-EQEJJ53P.js";
4
+ } from "./chunk-VAHLPXPY.js";
5
5
  import {
6
6
  discoverMarketplaceSkills,
7
7
  expandSkillInvocationInput,
@@ -9,7 +9,7 @@ import {
9
9
  loadSkills,
10
10
  parsePendingSkillRequests,
11
11
  projectCompatTrusted
12
- } from "./chunk-T7FDXNRU.js";
12
+ } from "./chunk-536HXRFE.js";
13
13
  import {
14
14
  normalizedSkillHash
15
15
  } from "./chunk-DNCE23JJ.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-U7H5WRG5.js";
23
23
  import {
24
24
  parseFleetContract
25
- } from "./chunk-YEJIG7LN.js";
25
+ } from "./chunk-3WBALRQH.js";
26
26
  import {
27
27
  parseFrontmatter
28
28
  } from "./chunk-CXQ37WJH.js";
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  readSettings,
35
35
  updateSettings
36
- } from "./chunk-FKIOX6DS.js";
36
+ } from "./chunk-WNGF5AJX.js";
37
37
  import {
38
38
  INTEROP_AGENT_KINDS
39
39
  } from "./chunk-5CY4Q6QI.js";
@@ -908,4 +908,4 @@ export {
908
908
  ResourcesDomainModule,
909
909
  createResourcesDomainModule
910
910
  };
911
- //# sourceMappingURL=chunk-U7VQ4NI4.js.map
911
+ //# sourceMappingURL=chunk-QCOV5DFY.js.map
@@ -5,21 +5,21 @@ import {
5
5
 
6
6
  // src/domains/providers/probe/fingerprint.ts
7
7
  init_esm_shims();
8
- async function fetchWithTimeout(url, timeoutMs) {
8
+ async function fetchWithTimeout(url, timeoutMs, headers) {
9
9
  const controller = new AbortController();
10
10
  const timer = setTimeout(() => controller.abort(), timeoutMs);
11
11
  try {
12
- return await fetch(url, { signal: controller.signal });
12
+ return await fetch(url, { signal: controller.signal, headers });
13
13
  } catch {
14
14
  return null;
15
15
  } finally {
16
16
  clearTimeout(timer);
17
17
  }
18
18
  }
19
- async function fingerprintNativeRuntime(baseUrl) {
19
+ async function fingerprintNativeRuntime(baseUrl, headers = {}) {
20
20
  const normalized = baseUrl.replace(/^ws:/u, "http:").replace(/^wss:/u, "https:");
21
21
  const trimmed = normalized.endsWith("/") ? normalized.slice(0, -1) : normalized;
22
- const greeting = await fetchWithTimeout(`${trimmed}/lmstudio-greeting`, 750);
22
+ const greeting = await fetchWithTimeout(`${trimmed}/lmstudio-greeting`, 750, headers);
23
23
  if (greeting?.ok) {
24
24
  try {
25
25
  const data = await greeting.json();
@@ -27,7 +27,7 @@ async function fingerprintNativeRuntime(baseUrl) {
27
27
  } catch {
28
28
  }
29
29
  }
30
- const lmStudioV0 = await fetchWithTimeout(`${trimmed}/api/v0/models`, 750);
30
+ const lmStudioV0 = await fetchWithTimeout(`${trimmed}/api/v0/models`, 750, headers);
31
31
  if (lmStudioV0?.ok) {
32
32
  try {
33
33
  const data = await lmStudioV0.json();
@@ -37,7 +37,7 @@ async function fingerprintNativeRuntime(baseUrl) {
37
37
  } catch {
38
38
  }
39
39
  }
40
- const ollama = await fetchWithTimeout(`${trimmed}/api/version`, 750);
40
+ const ollama = await fetchWithTimeout(`${trimmed}/api/version`, 750, headers);
41
41
  if (ollama?.ok) {
42
42
  try {
43
43
  const data = await ollama.json();
@@ -53,4 +53,4 @@ async function fingerprintNativeRuntime(baseUrl) {
53
53
  export {
54
54
  fingerprintNativeRuntime
55
55
  };
56
- //# sourceMappingURL=chunk-MC3JSVR6.js.map
56
+ //# sourceMappingURL=chunk-QJMRYTCX.js.map
@@ -7,11 +7,11 @@ import {
7
7
  renderOperatorProfile,
8
8
  selectActiveRules,
9
9
  selectProjectPreload
10
- } from "./chunk-SDWNDICN.js";
10
+ } from "./chunk-24T2YZ7A.js";
11
11
  import {
12
12
  loadFragments,
13
13
  sha256
14
- } from "./chunk-6CDNRHWH.js";
14
+ } from "./chunk-HZ2T2YED.js";
15
15
  import {
16
16
  isUserVisibleAgent
17
17
  } from "./chunk-OQM5IVJY.js";
@@ -689,4 +689,4 @@ export {
689
689
  createPromptsDomainModule,
690
690
  SchedulingDomainModule
691
691
  };
692
- //# sourceMappingURL=chunk-DIMRLNIC.js.map
692
+ //# sourceMappingURL=chunk-QNWRHOMF.js.map
@@ -2,7 +2,7 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  readStrictLayeredSettings,
4
4
  updateLayeredSettings
5
- } from "./chunk-YYB3MC65.js";
5
+ } from "./chunk-N2OKBREN.js";
6
6
  import {
7
7
  assertAgentIdNamespace
8
8
  } from "./chunk-3UW3KU4A.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  formatSettingsFailure,
16
16
  settingsPath
17
- } from "./chunk-FKIOX6DS.js";
17
+ } from "./chunk-WNGF5AJX.js";
18
18
  import {
19
19
  getSharedBus
20
20
  } from "./chunk-B5ZTR6KZ.js";
@@ -149,6 +149,7 @@ var HOT_RELOAD_FIELDS = /* @__PURE__ */ new Set([
149
149
  "interface.keybindings",
150
150
  "safety.autonomy",
151
151
  "chat.modelPicker",
152
+ "interface.outputDetail",
152
153
  "interface.smoothStreaming",
153
154
  "interface.panes.notifications",
154
155
  "integrations.git.commitAttribution",
@@ -175,7 +176,6 @@ var NEXT_TURN_FIELDS = /* @__PURE__ */ new Set([
175
176
  "fleet.history",
176
177
  "context",
177
178
  "safety.limits",
178
- "interface.outputDetail",
179
179
  "interface.terminalProgress",
180
180
  "interface.desktopNotifications",
181
181
  "integrations.projectResources",
@@ -377,4 +377,4 @@ export {
377
377
  ConfigDomainModule,
378
378
  createConfigDomainModule
379
379
  };
380
- //# sourceMappingURL=chunk-ILJ7DWGE.js.map
380
+ //# sourceMappingURL=chunk-QXFBABFJ.js.map
@@ -0,0 +1,66 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ shellQuote
4
+ } from "./chunk-SD7SHNDW.js";
5
+ import {
6
+ init_esm_shims
7
+ } from "./chunk-ECBHH7LU.js";
8
+
9
+ // src/core/external-editor.ts
10
+ init_esm_shims();
11
+ import { spawnSync } from "node:child_process";
12
+ import { randomUUID } from "node:crypto";
13
+ import { readFileSync, unlinkSync, writeFileSync } from "node:fs";
14
+ import { tmpdir } from "node:os";
15
+ import { join } from "node:path";
16
+ function defaultProbe(candidates) {
17
+ for (const candidate of candidates) {
18
+ const result = spawnSync("sh", ["-lc", `command -v ${candidate}`], {
19
+ encoding: "utf8",
20
+ stdio: ["ignore", "pipe", "ignore"]
21
+ });
22
+ const resolved = typeof result.stdout === "string" ? result.stdout.trim() : "";
23
+ if (result.status === 0 && resolved.length > 0) return resolved;
24
+ }
25
+ return null;
26
+ }
27
+ function runEditor(command, filePath) {
28
+ if (process.platform === "win32") {
29
+ return spawnSync(command, [filePath], {
30
+ stdio: "inherit",
31
+ shell: true
32
+ });
33
+ }
34
+ return spawnSync(process.env.SHELL || "/bin/sh", ["-lc", `${command} ${shellQuote(filePath)}`], {
35
+ stdio: "inherit"
36
+ });
37
+ }
38
+ function resolveExternalEditor(env = process.env, probe = defaultProbe) {
39
+ const visual = env.VISUAL?.trim();
40
+ if (visual) return visual;
41
+ const editor = env.EDITOR?.trim();
42
+ if (editor) return editor;
43
+ return probe(["nano", "vi"]);
44
+ }
45
+ function editTextExternally(initialText, command, extension = ".md") {
46
+ if (!command) return { ok: false, error: "no external editor configured; set VISUAL or EDITOR" };
47
+ const tmpFile = join(tmpdir(), `clio-coder-editor-${process.pid}-${randomUUID()}${extension}`);
48
+ try {
49
+ writeFileSync(tmpFile, initialText, { encoding: "utf8", mode: 384, flag: "wx" });
50
+ const result = runEditor(command, tmpFile);
51
+ if (result.error) return { ok: false, error: result.error.message };
52
+ if (result.status !== 0) return { ok: false, error: `external editor exited with code ${result.status ?? "?"}` };
53
+ return { ok: true, text: readFileSync(tmpFile, "utf8").replace(/\n$/, "") };
54
+ } finally {
55
+ try {
56
+ unlinkSync(tmpFile);
57
+ } catch {
58
+ }
59
+ }
60
+ }
61
+
62
+ export {
63
+ resolveExternalEditor,
64
+ editTextExternally
65
+ };
66
+ //# sourceMappingURL=chunk-R2CT5YDO.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-DNCE23JJ.js";
11
11
  import {
12
12
  initializeClioHome
13
- } from "./chunk-T53XI6I7.js";
13
+ } from "./chunk-6VRRJT7L.js";
14
14
  import {
15
15
  resolveToolBinary
16
16
  } from "./chunk-XCUDZQLX.js";
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  settingsPath,
22
22
  withSettingsLock
23
- } from "./chunk-FKIOX6DS.js";
23
+ } from "./chunk-WNGF5AJX.js";
24
24
  import {
25
25
  INTEROP_AGENT_KINDS
26
26
  } from "./chunk-5CY4Q6QI.js";
@@ -654,4 +654,4 @@ export {
654
654
  migrateNamingSettingsFile,
655
655
  clio_coder_naming_default
656
656
  };
657
- //# sourceMappingURL=chunk-E3BQTQUP.js.map
657
+ //# sourceMappingURL=chunk-RGZNQ5CT.js.map
@@ -2,16 +2,16 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  readLayeredSettings,
4
4
  readStrictLayeredSettings
5
- } from "./chunk-YYB3MC65.js";
5
+ } from "./chunk-N2OKBREN.js";
6
6
  import {
7
7
  initializeClioHome
8
- } from "./chunk-T53XI6I7.js";
8
+ } from "./chunk-6VRRJT7L.js";
9
9
  import {
10
10
  formatBootTrace
11
11
  } from "./chunk-FXFVDPWY.js";
12
12
  import {
13
13
  readSettings
14
- } from "./chunk-FKIOX6DS.js";
14
+ } from "./chunk-WNGF5AJX.js";
15
15
  import {
16
16
  require_dist
17
17
  } from "./chunk-B5GGDIHT.js";
@@ -159,7 +159,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
159
159
  } else if (verdict.kind !== "usable") {
160
160
  process.stdout.write(`${describeVerdict(verdict)} Starting \`clio-coder configure\`.
161
161
  `);
162
- const { runConfigureCommand } = await import("./configure-SML6UBZ5.js");
162
+ const { runConfigureCommand } = await import("./configure-4ZM5HWJX.js");
163
163
  const configured = await runConfigureCommand([]);
164
164
  if (configured !== 0) return configured;
165
165
  startupSettings = readStrictLayeredSettings(process.cwd()).settings;
@@ -174,7 +174,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
174
174
  let terminalLease;
175
175
  try {
176
176
  if (terminalLeaseEligible(options)) {
177
- const { createProcessTerminalLease, instantShellEnabled } = await import("./terminal-lease-57UEOJKS.js");
177
+ const { createProcessTerminalLease, instantShellEnabled } = await import("./terminal-lease-LZCG2KN3.js");
178
178
  if (instantShellEnabled()) {
179
179
  let stage0FrameId = null;
180
180
  terminalLease = createProcessTerminalLease({
@@ -197,7 +197,7 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
197
197
  throw new Error("injected Stage 1 hydration failure");
198
198
  }
199
199
  }
200
- const { bootOrchestrator } = await import("./orchestrator-N47O7SFD.js");
200
+ const { bootOrchestrator } = await import("./orchestrator-I6OATVPK.js");
201
201
  const result = await bootOrchestrator({
202
202
  ...options,
203
203
  ...startupSettings ? { startupSettings } : {},
@@ -220,4 +220,4 @@ Run \`clio-coder auth login ${verdict.store}\` if the endpoint requires one; loc
220
220
  export {
221
221
  runClioCommand
222
222
  };
223
- //# sourceMappingURL=chunk-SBZX6ARC.js.map
223
+ //# sourceMappingURL=chunk-SXQKNKRA.js.map
@@ -10,10 +10,10 @@ import {
10
10
  createLoopState,
11
11
  isSubset,
12
12
  observe
13
- } from "./chunk-KF6GFW6O.js";
13
+ } from "./chunk-I2K2NCZQ.js";
14
14
  import {
15
15
  createSafetyPolicyEngine
16
- } from "./chunk-4SVIVOMC.js";
16
+ } from "./chunk-IKRWLEDA.js";
17
17
  import {
18
18
  classify
19
19
  } from "./chunk-LUL5Z66S.js";
@@ -655,4 +655,4 @@ export {
655
655
  parseRigorOverride,
656
656
  SafetyDomainModule
657
657
  };
658
- //# sourceMappingURL=chunk-WLMSOT73.js.map
658
+ //# sourceMappingURL=chunk-TJFDL26W.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
  loadSkills
4
- } from "./chunk-T7FDXNRU.js";
4
+ } from "./chunk-536HXRFE.js";
5
5
  import {
6
6
  parseFrontmatter
7
7
  } from "./chunk-CXQ37WJH.js";
@@ -396,4 +396,4 @@ export {
396
396
  parseAgentRecipeSchema,
397
397
  discoverAgentRecipes
398
398
  };
399
- //# sourceMappingURL=chunk-EQEJJ53P.js.map
399
+ //# sourceMappingURL=chunk-VAHLPXPY.js.map
@@ -2026,29 +2026,9 @@ var CLIO_APP_KEYBINDINGS = {
2026
2026
  defaultKeys: "alt+k",
2027
2027
  description: "Cycle to previous scoped model"
2028
2028
  },
2029
- "clio-coder.tool.expand": {
2029
+ "clio-coder.output.cycle": {
2030
2030
  defaultKeys: "alt+o",
2031
- description: "Fold or unfold the newest tool call or worker block between its one-line summary and full details, overriding the /output level for that block"
2032
- },
2033
- "clio-coder.tool.expandAll": {
2034
- // Alt+Shift+letter is commonly consumed by OS keyboard-layout switching.
2035
- // Keep it discoverable, but pair it with the legacy-safe Ctrl+Alt form.
2036
- defaultKeys: ["ctrl+alt+o", "alt+shift+o"],
2037
- description: "Fold or unfold every tool call and worker block at once, overriding the /output level; changing /output clears the overrides"
2038
- },
2039
- "clio-coder.tool.liveOutput": {
2040
- defaultKeys: "alt+p",
2041
- description: "Toggle streaming partial tool output in expanded tool bodies"
2042
- },
2043
- "clio-coder.thinking.expand": {
2044
- defaultKeys: "alt+r",
2045
- description: "Toggle the latest thinking block between hidden marker and full body (no effect while /output verbose pins it open)"
2046
- },
2047
- "clio-coder.thinking.expandAll": {
2048
- // Ctrl+Alt+R is the fallback for terminals/OSes that do not forward
2049
- // Alt+Shift+R as a distinct key event.
2050
- defaultKeys: ["ctrl+alt+r", "alt+shift+r"],
2051
- description: "Toggle all thinking blocks between hidden markers and full bodies, overriding the /output level; changing /output clears the overrides"
2031
+ description: "Cycle output style: Compact, Standard, Detailed"
2052
2032
  },
2053
2033
  "clio-coder.editor.external": {
2054
2034
  defaultKeys: "alt+g",
@@ -2505,4 +2485,4 @@ export {
2505
2485
  formatPlatformKeybindingNotice,
2506
2486
  createKeybindingManager
2507
2487
  };
2508
- //# sourceMappingURL=chunk-7TKWWPD7.js.map
2488
+ //# sourceMappingURL=chunk-VANN3GDP.js.map
@@ -4,7 +4,7 @@ import {
4
4
  normalizeWriteBoundary,
5
5
  normalizeWriteBoundaryEntry,
6
6
  writeBoundaryCovers
7
- } from "./chunk-YEJIG7LN.js";
7
+ } from "./chunk-3WBALRQH.js";
8
8
  import {
9
9
  asDirectoryPathBoundary,
10
10
  pathBoundaryEntryCovers
@@ -1286,4 +1286,4 @@ export {
1286
1286
  preflightWriteBoundaries,
1287
1287
  createWriteBoundaryEnforcer
1288
1288
  };
1289
- //# sourceMappingURL=chunk-GNQRWTMY.js.map
1289
+ //# sourceMappingURL=chunk-VHMX7SXF.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  migrateSettingsV1Document
4
- } from "./chunk-GVYWZNRK.js";
4
+ } from "./chunk-3HQVBIKD.js";
5
5
  import {
6
6
  parseAgentRecipeSchema
7
- } from "./chunk-EQEJJ53P.js";
7
+ } from "./chunk-VAHLPXPY.js";
8
8
  import {
9
9
  parseFleetContract
10
- } from "./chunk-YEJIG7LN.js";
10
+ } from "./chunk-3WBALRQH.js";
11
11
  import {
12
12
  parseFrontmatter
13
13
  } from "./chunk-CXQ37WJH.js";
@@ -27,13 +27,13 @@ import {
27
27
  settingsPath,
28
28
  updateSettings,
29
29
  validateSettings
30
- } from "./chunk-FKIOX6DS.js";
30
+ } from "./chunk-WNGF5AJX.js";
31
31
  import {
32
32
  readClioVersion
33
33
  } from "./chunk-E3LEPLQ2.js";
34
34
  import {
35
35
  DEFAULT_SETTINGS
36
- } from "./chunk-SE4ZKILO.js";
36
+ } from "./chunk-3BJGMT2D.js";
37
37
  import {
38
38
  require_dist
39
39
  } from "./chunk-B5GGDIHT.js";
@@ -792,4 +792,4 @@ export {
792
792
  importShareArchive,
793
793
  ShareDomainModule
794
794
  };
795
- //# sourceMappingURL=chunk-UL36QJX6.js.map
795
+ //# sourceMappingURL=chunk-WKUYQBCG.js.map
@@ -9,8 +9,9 @@ import {
9
9
  COUNCIL_MEMBER_LABEL_PATTERN,
10
10
  DEFAULT_SETTINGS,
11
11
  THEME_NAMED_COLORS,
12
- THINKING_LEVELS
13
- } from "./chunk-SE4ZKILO.js";
12
+ THINKING_LEVELS,
13
+ normalizeOutputStyle
14
+ } from "./chunk-3BJGMT2D.js";
14
15
  import {
15
16
  MAX_TIMER_DELAY_MS
16
17
  } from "./chunk-6EXUUOSN.js";
@@ -1529,8 +1530,12 @@ function validateSettings(raw) {
1529
1530
  const parsed = expectBoolean(issues, `interface.${key}`, ui[key]);
1530
1531
  if (parsed !== void 0) settings.interface[key] = parsed;
1531
1532
  }
1533
+ if ("outputDetail" in ui) {
1534
+ const style = normalizeOutputStyle(ui.outputDetail);
1535
+ if (style) settings.interface.outputDetail = style;
1536
+ else issues.add("interface.outputDetail", "expected compact, standard, or detailed");
1537
+ }
1532
1538
  for (const [key, allowed] of [
1533
- ["outputDetail", ["minimal", "default", "verbose"]],
1534
1539
  ["smoothStreaming", ["off", "auto", "on"]],
1535
1540
  ["mode", ["regular", "fullscreen"]],
1536
1541
  ["fullscreenScrollbar", ["hidden", "auto", "always"]]
@@ -1903,4 +1908,4 @@ export {
1903
1908
  removeFleetProfileFromSettings,
1904
1909
  bindAgentProfileInSettings
1905
1910
  };
1906
- //# sourceMappingURL=chunk-FKIOX6DS.js.map
1911
+ //# sourceMappingURL=chunk-WNGF5AJX.js.map