@dsh-cc/tui 0.5.0

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 (363) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +144 -0
  3. package/lib/bash-history.d.ts +31 -0
  4. package/lib/bash-history.d.ts.map +1 -0
  5. package/lib/bash-history.js +94 -0
  6. package/lib/bash-history.js.map +1 -0
  7. package/lib/compact-fold.d.ts +35 -0
  8. package/lib/compact-fold.d.ts.map +1 -0
  9. package/lib/compact-fold.js +60 -0
  10. package/lib/compact-fold.js.map +1 -0
  11. package/lib/components/arg-completers.d.ts +22 -0
  12. package/lib/components/arg-completers.d.ts.map +1 -0
  13. package/lib/components/arg-completers.js +75 -0
  14. package/lib/components/arg-completers.js.map +1 -0
  15. package/lib/components/code-theme.d.ts +25 -0
  16. package/lib/components/code-theme.d.ts.map +1 -0
  17. package/lib/components/code-theme.js +137 -0
  18. package/lib/components/code-theme.js.map +1 -0
  19. package/lib/components/completion.d.ts +50 -0
  20. package/lib/components/completion.d.ts.map +1 -0
  21. package/lib/components/completion.js +279 -0
  22. package/lib/components/completion.js.map +1 -0
  23. package/lib/components/diff-card.d.ts +29 -0
  24. package/lib/components/diff-card.d.ts.map +1 -0
  25. package/lib/components/diff-card.js +175 -0
  26. package/lib/components/diff-card.js.map +1 -0
  27. package/lib/components/diff-hunks.d.ts +44 -0
  28. package/lib/components/diff-hunks.d.ts.map +1 -0
  29. package/lib/components/diff-hunks.js +188 -0
  30. package/lib/components/diff-hunks.js.map +1 -0
  31. package/lib/components/editor-history.d.ts +23 -0
  32. package/lib/components/editor-history.d.ts.map +1 -0
  33. package/lib/components/editor-history.js +29 -0
  34. package/lib/components/editor-history.js.map +1 -0
  35. package/lib/components/markdown-theme.d.ts +11 -0
  36. package/lib/components/markdown-theme.d.ts.map +1 -0
  37. package/lib/components/markdown-theme.js +29 -0
  38. package/lib/components/markdown-theme.js.map +1 -0
  39. package/lib/components/masked-input.d.ts +24 -0
  40. package/lib/components/masked-input.d.ts.map +1 -0
  41. package/lib/components/masked-input.js +168 -0
  42. package/lib/components/masked-input.js.map +1 -0
  43. package/lib/components/overlay-host.d.ts +31 -0
  44. package/lib/components/overlay-host.d.ts.map +1 -0
  45. package/lib/components/overlay-host.js +128 -0
  46. package/lib/components/overlay-host.js.map +1 -0
  47. package/lib/components/overlays.d.ts +94 -0
  48. package/lib/components/overlays.d.ts.map +1 -0
  49. package/lib/components/overlays.js +450 -0
  50. package/lib/components/overlays.js.map +1 -0
  51. package/lib/components/provider-box.d.ts +23 -0
  52. package/lib/components/provider-box.d.ts.map +1 -0
  53. package/lib/components/provider-box.js +164 -0
  54. package/lib/components/provider-box.js.map +1 -0
  55. package/lib/components/read-group.d.ts +51 -0
  56. package/lib/components/read-group.d.ts.map +1 -0
  57. package/lib/components/read-group.js +105 -0
  58. package/lib/components/read-group.js.map +1 -0
  59. package/lib/components/root-bash.d.ts +36 -0
  60. package/lib/components/root-bash.d.ts.map +1 -0
  61. package/lib/components/root-bash.js +112 -0
  62. package/lib/components/root-bash.js.map +1 -0
  63. package/lib/components/root-types.d.ts +42 -0
  64. package/lib/components/root-types.d.ts.map +1 -0
  65. package/lib/components/root-types.js +8 -0
  66. package/lib/components/root-types.js.map +1 -0
  67. package/lib/components/root-utils.d.ts +22 -0
  68. package/lib/components/root-utils.d.ts.map +1 -0
  69. package/lib/components/root-utils.js +45 -0
  70. package/lib/components/root-utils.js.map +1 -0
  71. package/lib/components/root.d.ts +25 -0
  72. package/lib/components/root.d.ts.map +1 -0
  73. package/lib/components/root.js +357 -0
  74. package/lib/components/root.js.map +1 -0
  75. package/lib/components/theme.d.ts +61 -0
  76. package/lib/components/theme.d.ts.map +1 -0
  77. package/lib/components/theme.js +99 -0
  78. package/lib/components/theme.js.map +1 -0
  79. package/lib/components/transcript.d.ts +43 -0
  80. package/lib/components/transcript.d.ts.map +1 -0
  81. package/lib/components/transcript.js +203 -0
  82. package/lib/components/transcript.js.map +1 -0
  83. package/lib/components/working-line.d.ts +35 -0
  84. package/lib/components/working-line.d.ts.map +1 -0
  85. package/lib/components/working-line.js +66 -0
  86. package/lib/components/working-line.js.map +1 -0
  87. package/lib/effort-catalog.d.ts +27 -0
  88. package/lib/effort-catalog.d.ts.map +1 -0
  89. package/lib/effort-catalog.js +36 -0
  90. package/lib/effort-catalog.js.map +1 -0
  91. package/lib/export-markdown.d.ts +18 -0
  92. package/lib/export-markdown.d.ts.map +1 -0
  93. package/lib/export-markdown.js +124 -0
  94. package/lib/export-markdown.js.map +1 -0
  95. package/lib/harness/approval-preview.d.ts +33 -0
  96. package/lib/harness/approval-preview.d.ts.map +1 -0
  97. package/lib/harness/approval-preview.js +179 -0
  98. package/lib/harness/approval-preview.js.map +1 -0
  99. package/lib/harness/boot-banner.d.ts +14 -0
  100. package/lib/harness/boot-banner.d.ts.map +1 -0
  101. package/lib/harness/boot-banner.js +89 -0
  102. package/lib/harness/boot-banner.js.map +1 -0
  103. package/lib/harness/driver-agent.d.ts +78 -0
  104. package/lib/harness/driver-agent.d.ts.map +1 -0
  105. package/lib/harness/driver-agent.js +314 -0
  106. package/lib/harness/driver-agent.js.map +1 -0
  107. package/lib/harness/driver-agents.d.ts +20 -0
  108. package/lib/harness/driver-agents.d.ts.map +1 -0
  109. package/lib/harness/driver-agents.js +123 -0
  110. package/lib/harness/driver-agents.js.map +1 -0
  111. package/lib/harness/driver-approvals.d.ts +38 -0
  112. package/lib/harness/driver-approvals.d.ts.map +1 -0
  113. package/lib/harness/driver-approvals.js +277 -0
  114. package/lib/harness/driver-approvals.js.map +1 -0
  115. package/lib/harness/driver-bash.d.ts +15 -0
  116. package/lib/harness/driver-bash.d.ts.map +1 -0
  117. package/lib/harness/driver-bash.js +73 -0
  118. package/lib/harness/driver-bash.js.map +1 -0
  119. package/lib/harness/driver-catalog.d.ts +84 -0
  120. package/lib/harness/driver-catalog.d.ts.map +1 -0
  121. package/lib/harness/driver-catalog.js +256 -0
  122. package/lib/harness/driver-catalog.js.map +1 -0
  123. package/lib/harness/driver-ctx.d.ts +462 -0
  124. package/lib/harness/driver-ctx.d.ts.map +1 -0
  125. package/lib/harness/driver-ctx.js +11 -0
  126. package/lib/harness/driver-ctx.js.map +1 -0
  127. package/lib/harness/driver-hud.d.ts +31 -0
  128. package/lib/harness/driver-hud.d.ts.map +1 -0
  129. package/lib/harness/driver-hud.js +204 -0
  130. package/lib/harness/driver-hud.js.map +1 -0
  131. package/lib/harness/driver-live.d.ts +36 -0
  132. package/lib/harness/driver-live.d.ts.map +1 -0
  133. package/lib/harness/driver-live.js +44 -0
  134. package/lib/harness/driver-live.js.map +1 -0
  135. package/lib/harness/driver-modal.d.ts +52 -0
  136. package/lib/harness/driver-modal.d.ts.map +1 -0
  137. package/lib/harness/driver-modal.js +78 -0
  138. package/lib/harness/driver-modal.js.map +1 -0
  139. package/lib/harness/driver-mode.d.ts +35 -0
  140. package/lib/harness/driver-mode.d.ts.map +1 -0
  141. package/lib/harness/driver-mode.js +84 -0
  142. package/lib/harness/driver-mode.js.map +1 -0
  143. package/lib/harness/driver-pickers.d.ts +48 -0
  144. package/lib/harness/driver-pickers.d.ts.map +1 -0
  145. package/lib/harness/driver-pickers.js +249 -0
  146. package/lib/harness/driver-pickers.js.map +1 -0
  147. package/lib/harness/driver-promote.d.ts +29 -0
  148. package/lib/harness/driver-promote.d.ts.map +1 -0
  149. package/lib/harness/driver-promote.js +36 -0
  150. package/lib/harness/driver-promote.js.map +1 -0
  151. package/lib/harness/driver-queue.d.ts +19 -0
  152. package/lib/harness/driver-queue.d.ts.map +1 -0
  153. package/lib/harness/driver-queue.js +281 -0
  154. package/lib/harness/driver-queue.js.map +1 -0
  155. package/lib/harness/driver-run-local.d.ts +32 -0
  156. package/lib/harness/driver-run-local.d.ts.map +1 -0
  157. package/lib/harness/driver-run-local.js +366 -0
  158. package/lib/harness/driver-run-local.js.map +1 -0
  159. package/lib/harness/driver-sessions.d.ts +28 -0
  160. package/lib/harness/driver-sessions.d.ts.map +1 -0
  161. package/lib/harness/driver-sessions.js +386 -0
  162. package/lib/harness/driver-sessions.js.map +1 -0
  163. package/lib/harness/driver.d.ts +22 -0
  164. package/lib/harness/driver.d.ts.map +1 -0
  165. package/lib/harness/driver.js +459 -0
  166. package/lib/harness/driver.js.map +1 -0
  167. package/lib/harness/preset.d.ts +32 -0
  168. package/lib/harness/preset.d.ts.map +1 -0
  169. package/lib/harness/preset.js +34 -0
  170. package/lib/harness/preset.js.map +1 -0
  171. package/lib/harness/session-list.d.ts +65 -0
  172. package/lib/harness/session-list.d.ts.map +1 -0
  173. package/lib/harness/session-list.js +91 -0
  174. package/lib/harness/session-list.js.map +1 -0
  175. package/lib/harness/shell-output.d.ts +44 -0
  176. package/lib/harness/shell-output.d.ts.map +1 -0
  177. package/lib/harness/shell-output.js +90 -0
  178. package/lib/harness/shell-output.js.map +1 -0
  179. package/lib/harness/statusline-cc-transcript.d.ts +51 -0
  180. package/lib/harness/statusline-cc-transcript.d.ts.map +1 -0
  181. package/lib/harness/statusline-cc-transcript.js +191 -0
  182. package/lib/harness/statusline-cc-transcript.js.map +1 -0
  183. package/lib/harness/statusline-command.d.ts +54 -0
  184. package/lib/harness/statusline-command.d.ts.map +1 -0
  185. package/lib/harness/statusline-command.js +161 -0
  186. package/lib/harness/statusline-command.js.map +1 -0
  187. package/lib/harness/statusline-payload.d.ts +79 -0
  188. package/lib/harness/statusline-payload.d.ts.map +1 -0
  189. package/lib/harness/statusline-payload.js +93 -0
  190. package/lib/harness/statusline-payload.js.map +1 -0
  191. package/lib/harness/statusline-settings.d.ts +47 -0
  192. package/lib/harness/statusline-settings.d.ts.map +1 -0
  193. package/lib/harness/statusline-settings.js +57 -0
  194. package/lib/harness/statusline-settings.js.map +1 -0
  195. package/lib/harness/statusline-wiring.d.ts +45 -0
  196. package/lib/harness/statusline-wiring.d.ts.map +1 -0
  197. package/lib/harness/statusline-wiring.js +247 -0
  198. package/lib/harness/statusline-wiring.js.map +1 -0
  199. package/lib/harness/usage-view.d.ts +84 -0
  200. package/lib/harness/usage-view.d.ts.map +1 -0
  201. package/lib/harness/usage-view.js +199 -0
  202. package/lib/harness/usage-view.js.map +1 -0
  203. package/lib/harness/worktree-exit.d.ts +105 -0
  204. package/lib/harness/worktree-exit.d.ts.map +1 -0
  205. package/lib/harness/worktree-exit.js +168 -0
  206. package/lib/harness/worktree-exit.js.map +1 -0
  207. package/lib/history.d.ts +50 -0
  208. package/lib/history.d.ts.map +1 -0
  209. package/lib/history.js +139 -0
  210. package/lib/history.js.map +1 -0
  211. package/lib/index.d.ts +63 -0
  212. package/lib/index.d.ts.map +1 -0
  213. package/lib/index.js +54 -0
  214. package/lib/index.js.map +1 -0
  215. package/lib/input.d.ts +158 -0
  216. package/lib/input.d.ts.map +1 -0
  217. package/lib/input.js +400 -0
  218. package/lib/input.js.map +1 -0
  219. package/lib/invariant.d.ts +14 -0
  220. package/lib/invariant.d.ts.map +1 -0
  221. package/lib/invariant.js +20 -0
  222. package/lib/invariant.js.map +1 -0
  223. package/lib/mode-cycle.d.ts +22 -0
  224. package/lib/mode-cycle.d.ts.map +1 -0
  225. package/lib/mode-cycle.js +32 -0
  226. package/lib/mode-cycle.js.map +1 -0
  227. package/lib/model-catalog.d.ts +22 -0
  228. package/lib/model-catalog.d.ts.map +1 -0
  229. package/lib/model-catalog.js +45 -0
  230. package/lib/model-catalog.js.map +1 -0
  231. package/lib/packaged-preset.d.ts +32 -0
  232. package/lib/packaged-preset.d.ts.map +1 -0
  233. package/lib/packaged-preset.js +94 -0
  234. package/lib/packaged-preset.js.map +1 -0
  235. package/lib/plugin.d.ts +11 -0
  236. package/lib/plugin.d.ts.map +1 -0
  237. package/lib/plugin.js +88 -0
  238. package/lib/plugin.js.map +1 -0
  239. package/lib/profile.d.ts +4 -0
  240. package/lib/profile.d.ts.map +1 -0
  241. package/lib/profile.js +7 -0
  242. package/lib/profile.js.map +1 -0
  243. package/lib/project-sessions.d.ts +29 -0
  244. package/lib/project-sessions.d.ts.map +1 -0
  245. package/lib/project-sessions.js +60 -0
  246. package/lib/project-sessions.js.map +1 -0
  247. package/lib/project.d.ts +75 -0
  248. package/lib/project.d.ts.map +1 -0
  249. package/lib/project.js +196 -0
  250. package/lib/project.js.map +1 -0
  251. package/lib/provider-actions.d.ts +37 -0
  252. package/lib/provider-actions.d.ts.map +1 -0
  253. package/lib/provider-actions.js +417 -0
  254. package/lib/provider-actions.js.map +1 -0
  255. package/lib/provider-command.d.ts +109 -0
  256. package/lib/provider-command.d.ts.map +1 -0
  257. package/lib/provider-command.js +220 -0
  258. package/lib/provider-command.js.map +1 -0
  259. package/lib/provider-detail.d.ts +15 -0
  260. package/lib/provider-detail.d.ts.map +1 -0
  261. package/lib/provider-detail.js +201 -0
  262. package/lib/provider-detail.js.map +1 -0
  263. package/lib/provider-flow.d.ts +191 -0
  264. package/lib/provider-flow.d.ts.map +1 -0
  265. package/lib/provider-flow.js +192 -0
  266. package/lib/provider-flow.js.map +1 -0
  267. package/lib/provider-presets.d.ts +32 -0
  268. package/lib/provider-presets.d.ts.map +1 -0
  269. package/lib/provider-presets.js +105 -0
  270. package/lib/provider-presets.js.map +1 -0
  271. package/lib/provider-read.d.ts +63 -0
  272. package/lib/provider-read.d.ts.map +1 -0
  273. package/lib/provider-read.js +115 -0
  274. package/lib/provider-read.js.map +1 -0
  275. package/lib/provider-settings.d.ts +30 -0
  276. package/lib/provider-settings.d.ts.map +1 -0
  277. package/lib/provider-settings.js +65 -0
  278. package/lib/provider-settings.js.map +1 -0
  279. package/lib/resume-target.d.ts +59 -0
  280. package/lib/resume-target.d.ts.map +1 -0
  281. package/lib/resume-target.js +143 -0
  282. package/lib/resume-target.js.map +1 -0
  283. package/lib/slash.d.ts +44 -0
  284. package/lib/slash.d.ts.map +1 -0
  285. package/lib/slash.js +81 -0
  286. package/lib/slash.js.map +1 -0
  287. package/lib/state/driver-types.d.ts +505 -0
  288. package/lib/state/driver-types.d.ts.map +1 -0
  289. package/lib/state/driver-types.js +8 -0
  290. package/lib/state/driver-types.js.map +1 -0
  291. package/lib/state/driver-usage-types.d.ts +59 -0
  292. package/lib/state/driver-usage-types.d.ts.map +1 -0
  293. package/lib/state/driver-usage-types.js +8 -0
  294. package/lib/state/driver-usage-types.js.map +1 -0
  295. package/lib/statusline.d.ts +63 -0
  296. package/lib/statusline.d.ts.map +1 -0
  297. package/lib/statusline.js +97 -0
  298. package/lib/statusline.js.map +1 -0
  299. package/lib/store/pickers.d.ts +34 -0
  300. package/lib/store/pickers.d.ts.map +1 -0
  301. package/lib/store/pickers.js +111 -0
  302. package/lib/store/pickers.js.map +1 -0
  303. package/lib/store/provider-panel.d.ts +107 -0
  304. package/lib/store/provider-panel.d.ts.map +1 -0
  305. package/lib/store/provider-panel.js +151 -0
  306. package/lib/store/provider-panel.js.map +1 -0
  307. package/lib/store/question.d.ts +21 -0
  308. package/lib/store/question.d.ts.map +1 -0
  309. package/lib/store/question.js +59 -0
  310. package/lib/store/question.js.map +1 -0
  311. package/lib/store/queue.d.ts +27 -0
  312. package/lib/store/queue.d.ts.map +1 -0
  313. package/lib/store/queue.js +34 -0
  314. package/lib/store/queue.js.map +1 -0
  315. package/lib/store/session.d.ts +73 -0
  316. package/lib/store/session.d.ts.map +1 -0
  317. package/lib/store/session.js +172 -0
  318. package/lib/store/session.js.map +1 -0
  319. package/lib/store/subagents.d.ts +16 -0
  320. package/lib/store/subagents.d.ts.map +1 -0
  321. package/lib/store/subagents.js +44 -0
  322. package/lib/store/subagents.js.map +1 -0
  323. package/lib/store/todos.d.ts +35 -0
  324. package/lib/store/todos.d.ts.map +1 -0
  325. package/lib/store/todos.js +68 -0
  326. package/lib/store/todos.js.map +1 -0
  327. package/lib/store/usage.d.ts +15 -0
  328. package/lib/store/usage.d.ts.map +1 -0
  329. package/lib/store/usage.js +27 -0
  330. package/lib/store/usage.js.map +1 -0
  331. package/lib/store/views.d.ts +419 -0
  332. package/lib/store/views.d.ts.map +1 -0
  333. package/lib/store/views.js +3 -0
  334. package/lib/store/views.js.map +1 -0
  335. package/lib/store.d.ts +19 -0
  336. package/lib/store.d.ts.map +1 -0
  337. package/lib/store.js +10 -0
  338. package/lib/store.js.map +1 -0
  339. package/lib/terminal/lease.d.ts +33 -0
  340. package/lib/terminal/lease.d.ts.map +1 -0
  341. package/lib/terminal/lease.js +99 -0
  342. package/lib/terminal/lease.js.map +1 -0
  343. package/lib/tool-card.d.ts +75 -0
  344. package/lib/tool-card.d.ts.map +1 -0
  345. package/lib/tool-card.js +109 -0
  346. package/lib/tool-card.js.map +1 -0
  347. package/lib/tool-verbs.d.ts +12 -0
  348. package/lib/tool-verbs.d.ts.map +1 -0
  349. package/lib/tool-verbs.js +29 -0
  350. package/lib/tool-verbs.js.map +1 -0
  351. package/lib/transcript.d.ts +40 -0
  352. package/lib/transcript.d.ts.map +1 -0
  353. package/lib/transcript.js +413 -0
  354. package/lib/transcript.js.map +1 -0
  355. package/lib/working-line.d.ts +44 -0
  356. package/lib/working-line.d.ts.map +1 -0
  357. package/lib/working-line.js +56 -0
  358. package/lib/working-line.js.map +1 -0
  359. package/package.json +72 -0
  360. package/presets/cc/.dsh-cc-managed.json +5 -0
  361. package/presets/cc/agent.cordis.yml +524 -0
  362. package/presets/cc/preset.yml +3 -0
  363. package/scripts/stage-preset.mjs +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-actions.js","sourceRoot":"","sources":["../src/provider-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * `/provider` command runtime (design doc docs/plans/2026-09-05-provider-
3
+ * management.md §4.1–§4.2, §5): the driver's provider panel section —
4
+ * open/close, the runtime dispatch surface, and live-refresh event wiring.
5
+ * Read paths live in provider-read.ts; the wizard engines in
6
+ * provider-actions.ts; detail/manage/remove in provider-detail.ts.
7
+ * @module @dsh-cc/tui/provider-command
8
+ */
9
+ import { Input } from '@dsh-cc/pi-tui';
10
+ import { MaskedInput } from './components/masked-input.ts';
11
+ import { type TuiState } from './store.ts';
12
+ import { type ProviderPanelState } from './store/provider-panel.ts';
13
+ import { type CredentialState, type CredentialsLike, type LlmManageLike } from './provider-flow.ts';
14
+ export { PROVIDER_SETTINGS_NAMESPACE, PROVIDER_USAGE, credentialStates, loadDirectory, parseProviderArgs, readConfiguredProviders, renderProviderList, } from './provider-read.ts';
15
+ export type { ParsedProviderArgs, SettingsDescribeLike } from './provider-read.ts';
16
+ export type { ProviderSettingsOp, SettingsWriteLike } from './provider-settings.ts';
17
+ /**
18
+ * The shared seam passed from the runtime (here) into the wizard engines
19
+ * (provider-actions.ts) and the detail/manage flows (provider-detail.ts):
20
+ * the driver section deps, the transient field/secret/pending buffers, and
21
+ * the emit/patch helpers.
22
+ */
23
+ export interface ProviderCore {
24
+ rt: ProviderSectionDeps;
25
+ /** Wizard text field + transient key buffer + in-flight action (§6). */
26
+ buf: {
27
+ field?: Input | MaskedInput | undefined;
28
+ secret?: string | undefined;
29
+ pendingAction?: Promise<void> | undefined;
30
+ };
31
+ /** The assembled runtime (late-bound sibling method calls). */
32
+ runtime(): ProviderRuntime;
33
+ /** Emit a provider-panel reducer result, if the panel is open. */
34
+ patch(fn: (panel: ProviderPanelState) => ProviderPanelState): void;
35
+ /** Track one in-flight action (Enter/Esc become no-ops while pending). */
36
+ begin(promise: Promise<void>): void;
37
+ /** Best-effort credential describe (unknown state → undefined). */
38
+ describeRef(ref: string): Promise<CredentialState | undefined>;
39
+ }
40
+ /** The driver section's duck-typed host surface (mirrors other sections' `rt`). */
41
+ export type ProviderSectionDeps = {
42
+ emit(next: TuiState): void;
43
+ state(): TuiState;
44
+ ctx: {
45
+ get(key: string): unknown;
46
+ on(event: unknown, handler: unknown): unknown;
47
+ };
48
+ /** Live model selection; `current.provider` backs the current marker. */
49
+ selection: {
50
+ current: {
51
+ provider?: string;
52
+ } | undefined;
53
+ };
54
+ };
55
+ /**
56
+ * The `/provider` runtime exposed on the driver. `panelMove/panelSubmit/
57
+ * panelCancel` back `routeProviderPanelInput`.
58
+ */
59
+ export interface ProviderRuntime {
60
+ openProviderPanel(arg?: string): Promise<void>;
61
+ closeProviderPanel(): void;
62
+ get llmManage(): LlmManageLike | undefined;
63
+ get credentials(): CredentialsLike | undefined;
64
+ refreshProviderRows(): Promise<void>;
65
+ panelMove(delta: -1 | 1): void;
66
+ panelSubmit(): void;
67
+ panelCancel(): void;
68
+ /** Phase of the open panel (input router's phase-dependent key map). */
69
+ panelPhase(): ProviderPanelState['phase'] | undefined;
70
+ /** Feed one printable keypress into the wizard's live text field. */
71
+ panelType(text: string): void;
72
+ /** Backspace in the wizard's live text field. */
73
+ panelBackspace(): void;
74
+ /** Esc semantics: back one wizard step; at the first step close with a note. */
75
+ panelEscape(): void;
76
+ /** Tab on the models step: run the draft-form probe and prefill the ids. */
77
+ panelToggleFetch(): void;
78
+ /** Secondary choice: keep/remove on a failed verify; keep-credential on the drop offer. */
79
+ panelSecondary(): void;
80
+ /** Detail-phase `r`: refresh the route's model list via a draft-form probe (§8-S2). */
81
+ panelRefreshModels(): void;
82
+ /** Begin the custom-provider wizard (§4.6) from the list phase. */
83
+ startCustomWizard(): void;
84
+ /** §4.3 add flow for a preset (custom wizard seeded for unknown ids). */
85
+ startPresetWizard(route: string): Promise<void>;
86
+ /** §4.4 removal jump for `/provider remove <route>`. */
87
+ jumpToRemove(route: string): void;
88
+ /** Enter on the focused list row: detail (configured) or add wizard (available). */
89
+ enterFromList(panel: ProviderPanelState): void;
90
+ /** Run the focused detail action (§4.4). */
91
+ runDetailAction(panel: ProviderPanelState): void;
92
+ /** Adjudicate the remove double-confirm / credential-drop stage. */
93
+ confirmRemove(panel: ProviderPanelState): void;
94
+ /** Advance the wizard from its current step. */
95
+ wizardSubmit(panel: ProviderPanelState): void;
96
+ /** Models-step fetch (tab): draft-form probe → prefill. */
97
+ fetchModels(panel: ProviderPanelState): void;
98
+ /** keep/remove choice on a failed verify — remove unsets the just-written route. */
99
+ removeJustAdded(panel: ProviderPanelState): void;
100
+ /** The live wizard text field, if a text step is active (test/render seam). */
101
+ wizardInput(): Input | MaskedInput | undefined;
102
+ }
103
+ /**
104
+ * Create the provider panel section: fetches configured + directory +
105
+ * credential states, seeds the store reducer, opens the overlay, and keeps
106
+ * the list live via cordis events while open (disposed on close).
107
+ */
108
+ export declare function createProviderSection(rt: ProviderSectionDeps): ProviderRuntime;
109
+ //# sourceMappingURL=provider-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-command.d.ts","sourceRoot":"","sources":["../src/provider-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAYL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAuB3B,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAClF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAEnF;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,mBAAmB,CAAA;IACvB,wEAAwE;IACxE,GAAG,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;KAAE,CAAA;IACxH,+DAA+D;IAC/D,OAAO,IAAI,eAAe,CAAA;IAC1B,kEAAkE;IAClE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,kBAAkB,GAAG,IAAI,CAAA;IAClE,0EAA0E;IAC1E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACnC,mEAAmE;IACnE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAA;CAC/D;AAED,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC1B,KAAK,IAAI,QAAQ,CAAA;IACjB,GAAG,EAAE;QACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;QACzB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAA;KAC9C,CAAA;IACD,yEAAyE;IACzE,SAAS,EAAE;QAAE,OAAO,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC1D,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,kBAAkB,IAAI,IAAI,CAAA;IAC1B,IAAI,SAAS,IAAI,aAAa,GAAG,SAAS,CAAA;IAC1C,IAAI,WAAW,IAAI,eAAe,GAAG,SAAS,CAAA;IAC9C,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9B,WAAW,IAAI,IAAI,CAAA;IACnB,WAAW,IAAI,IAAI,CAAA;IACnB,wEAAwE;IACxE,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACrD,qEAAqE;IACrE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,iDAAiD;IACjD,cAAc,IAAI,IAAI,CAAA;IACtB,gFAAgF;IAChF,WAAW,IAAI,IAAI,CAAA;IACnB,4EAA4E;IAC5E,gBAAgB,IAAI,IAAI,CAAA;IACxB,2FAA2F;IAC3F,cAAc,IAAI,IAAI,CAAA;IACtB,uFAAuF;IACvF,kBAAkB,IAAI,IAAI,CAAA;IAC1B,mEAAmE;IACnE,iBAAiB,IAAI,IAAI,CAAA;IACzB,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,wDAAwD;IACxD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oFAAoF;IACpF,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,4CAA4C;IAC5C,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAChD,oEAAoE;IACpE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,gDAAgD;IAChD,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC7C,2DAA2D;IAC3D,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC5C,oFAAoF;IACpF,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAChD,+EAA+E;IAC/E,WAAW,IAAI,KAAK,GAAG,WAAW,GAAG,SAAS,CAAA;CAC/C;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,mBAAmB,GAAG,eAAe,CAoM9E"}
@@ -0,0 +1,220 @@
1
+ import { upsertRow, setProviderOverlay } from "./store.js";
2
+ import { backFromWizard, backToList, cancelRemove, moveCursor, moveDetailCursor, setMessage, openProviderPanel as openPanelState, startWizardFor, wizardBack, wizardSetNote, wizardSetSelectIndex, } from "./store/provider-panel.js";
3
+ import { buildProviderRows, } from "./provider-flow.js";
4
+ import { PROVIDER_USAGE, credentialStates, loadDirectory, parseProviderArgs, readConfiguredProviders, renderProviderList, } from "./provider-read.js";
5
+ import { CUSTOM_PROTOCOLS, CUSTOM_STEPS, TEXT_STEPS, clearField, createActions, credentialRefFor, currentStep, openField, reopenField, } from "./provider-actions.js";
6
+ import { createDetail } from "./provider-detail.js";
7
+ export { PROVIDER_SETTINGS_NAMESPACE, PROVIDER_USAGE, credentialStates, loadDirectory, parseProviderArgs, readConfiguredProviders, renderProviderList, } from "./provider-read.js";
8
+ /** Cordis events that re-render the open overlay (doc §4.2 / C2 / C4). */
9
+ const REFRESH_EVENTS = ['llm/adapters-updated', 'credentials/reference-updated'];
10
+ /**
11
+ * Create the provider panel section: fetches configured + directory +
12
+ * credential states, seeds the store reducer, opens the overlay, and keeps
13
+ * the list live via cordis events while open (disposed on close).
14
+ */
15
+ export function createProviderSection(rt) {
16
+ let unsubs = [];
17
+ const subscribeWhileOpen = () => {
18
+ if (unsubs.length > 0)
19
+ return;
20
+ for (const event of REFRESH_EVENTS) {
21
+ const un = rt.ctx.on(event, () => {
22
+ void runtime.refreshProviderRows();
23
+ });
24
+ if (typeof un === 'function')
25
+ unsubs.push(un);
26
+ }
27
+ };
28
+ const unsubscribe = () => {
29
+ for (const un of unsubs)
30
+ un();
31
+ unsubs = [];
32
+ };
33
+ const patch = (fn) => {
34
+ const panel = rt.state().providerPanel;
35
+ if (panel === undefined)
36
+ return;
37
+ rt.emit(setProviderOverlay(rt.state(), fn(panel)));
38
+ };
39
+ const begin = (promise) => {
40
+ buf.pendingAction = promise.finally(() => { buf.pendingAction = undefined; });
41
+ };
42
+ const describeRef = async (ref) => {
43
+ const credentials = rt.ctx.get('credentials');
44
+ if (credentials === undefined || typeof credentials.describe !== 'function')
45
+ return undefined;
46
+ try {
47
+ return await credentials.describe(ref) ?? undefined;
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ };
53
+ // Wizard text field + transient key buffer. A typed key lives ONLY here —
54
+ // cleared on submit and on close — never in the store, view snapshots, the
55
+ // transcript, or the field's retained state after submit (§6).
56
+ const buf = { field: undefined, secret: undefined, pendingAction: undefined };
57
+ const core = { rt, buf, runtime: () => runtime, patch, begin, describeRef };
58
+ const runtime = {
59
+ get llmManage() {
60
+ return rt.ctx.get('llm');
61
+ },
62
+ get credentials() {
63
+ return rt.ctx.get('credentials');
64
+ },
65
+ async openProviderPanel(arg) {
66
+ const parsed = parseProviderArgs(arg ?? '');
67
+ if (parsed.kind === 'list') {
68
+ const text = renderProviderList(await fetchList());
69
+ rt.emit(upsertRow(rt.state(), { kind: 'status', text }));
70
+ return;
71
+ }
72
+ if (parsed.kind === 'invalid') {
73
+ rt.emit(upsertRow(rt.state(), { kind: 'status', text: PROVIDER_USAGE }));
74
+ return;
75
+ }
76
+ await runtime.refreshProviderRows();
77
+ subscribeWhileOpen();
78
+ if (parsed.kind === 'add')
79
+ await runtime.startPresetWizard(parsed.route);
80
+ if (parsed.kind === 'remove')
81
+ runtime.jumpToRemove(parsed.route);
82
+ },
83
+ closeProviderPanel() {
84
+ clearField(core);
85
+ unsubscribe();
86
+ rt.emit(setProviderOverlay(rt.state(), undefined));
87
+ },
88
+ async refreshProviderRows() {
89
+ const list = await fetchList();
90
+ rt.emit(setProviderOverlay(rt.state(), openPanelState([...list.configured, ...list.available], list.more)));
91
+ },
92
+ panelPhase() {
93
+ return rt.state().providerPanel?.phase;
94
+ },
95
+ panelMove(delta) {
96
+ const panel = rt.state().providerPanel;
97
+ if (panel === undefined)
98
+ return;
99
+ if (panel.phase === 'wizard' && panel.wizard?.steps[panel.wizard.stepIndex] === 'protocol') {
100
+ const next = Math.max(0, Math.min((panel.wizard.selectIndex ?? 0) + delta, CUSTOM_PROTOCOLS.length - 1));
101
+ rt.emit(setProviderOverlay(rt.state(), wizardSetSelectIndex(panel, next)));
102
+ return;
103
+ }
104
+ if (panel.phase === 'detail') {
105
+ rt.emit(setProviderOverlay(rt.state(), moveDetailCursor(panel, delta)));
106
+ return;
107
+ }
108
+ rt.emit(setProviderOverlay(rt.state(), moveCursor(panel, delta)));
109
+ },
110
+ panelSubmit() {
111
+ const panel = rt.state().providerPanel;
112
+ if (panel === undefined || buf.pendingAction !== undefined)
113
+ return;
114
+ if (panel.phase === 'list') {
115
+ runtime.enterFromList(panel);
116
+ return;
117
+ }
118
+ if (panel.phase === 'detail') {
119
+ runtime.runDetailAction(panel);
120
+ return;
121
+ }
122
+ if (panel.phase === 'confirm-remove') {
123
+ runtime.confirmRemove(panel);
124
+ return;
125
+ }
126
+ if (panel.phase === 'wizard') {
127
+ runtime.wizardSubmit(panel);
128
+ }
129
+ },
130
+ panelCancel() {
131
+ runtime.closeProviderPanel();
132
+ },
133
+ panelType(text) {
134
+ const active = currentStep(rt.state().providerPanel);
135
+ if (buf.field !== undefined && active !== undefined && TEXT_STEPS[active] !== undefined)
136
+ buf.field.handleInput(text);
137
+ },
138
+ panelBackspace() {
139
+ if (buf.field !== undefined)
140
+ buf.field.handleInput('\x7f');
141
+ },
142
+ panelEscape() {
143
+ const panel = rt.state().providerPanel;
144
+ if (panel === undefined || buf.pendingAction !== undefined)
145
+ return;
146
+ if (panel.phase === 'wizard') {
147
+ const wizard = panel.wizard;
148
+ clearField(core);
149
+ if (wizard !== undefined && wizard.stepIndex > 0 && wizard.steps[wizard.stepIndex] !== 'done') {
150
+ rt.emit(setProviderOverlay(rt.state(), wizardSetNote(wizardBack(panel), undefined)));
151
+ reopenField(core, rt.state().providerPanel);
152
+ }
153
+ else {
154
+ // First step (or the done step — the write already landed): close.
155
+ const wrote = wizard !== undefined && wizard.stepIndex === wizard.steps.length - 1;
156
+ rt.emit(setProviderOverlay(rt.state(), setMessage(backFromWizard(panel), wrote ? undefined : 'Wizard closed — nothing was written.')));
157
+ }
158
+ return;
159
+ }
160
+ if (panel.phase === 'detail') {
161
+ rt.emit(setProviderOverlay(rt.state(), backToList(panel)));
162
+ return;
163
+ }
164
+ if (panel.phase === 'confirm-remove') {
165
+ rt.emit(setProviderOverlay(rt.state(), cancelRemove(panel)));
166
+ return;
167
+ }
168
+ runtime.closeProviderPanel();
169
+ },
170
+ panelToggleFetch() {
171
+ const panel = rt.state().providerPanel;
172
+ if (panel === undefined || buf.pendingAction !== undefined)
173
+ return;
174
+ runtime.fetchModels(panel);
175
+ },
176
+ panelSecondary() {
177
+ const panel = rt.state().providerPanel;
178
+ if (panel === undefined || buf.pendingAction !== undefined)
179
+ return;
180
+ if (panel.phase === 'confirm-remove' && panel.stage === 'drop-credential') {
181
+ // Keep the stored credential.
182
+ rt.emit(setProviderOverlay(rt.state(), backToList(panel)));
183
+ return;
184
+ }
185
+ if (panel.phase === 'wizard' && panel.wizard?.verify?.status === 'failed') {
186
+ runtime.removeJustAdded(panel);
187
+ }
188
+ },
189
+ startCustomWizard() {
190
+ const panel = rt.state().providerPanel;
191
+ if (panel === undefined || panel.phase !== 'list')
192
+ return;
193
+ rt.emit(setProviderOverlay(rt.state(), startWizardFor(panel, '', [...CUSTOM_STEPS], { kind: 'custom' })));
194
+ openField(core, rt.state().providerPanel);
195
+ },
196
+ wizardInput() {
197
+ return buf.field;
198
+ },
199
+ ...createActions(core),
200
+ ...createDetail(core),
201
+ };
202
+ async function fetchList() {
203
+ const llm = rt.ctx.get('llm');
204
+ const credentials = rt.ctx.get('credentials');
205
+ const settings = rt.ctx.get('settings');
206
+ const configured = readConfiguredProviders(settings);
207
+ const directory = loadDirectory(llm);
208
+ const credentialRefs = [...new Set([...Object.keys(configured), ...directory.map(e => e.provider)])]
209
+ .map(route => credentialRefFor(route));
210
+ const states = await credentialStates(credentials, credentialRefs);
211
+ return buildProviderRows({
212
+ configured,
213
+ directory,
214
+ credentialStates: states,
215
+ ...(rt.selection.current?.provider !== undefined ? { currentProvider: rt.selection.current.provider } : {}),
216
+ });
217
+ }
218
+ return runtime;
219
+ }
220
+ //# sourceMappingURL=provider-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-command.js","sourceRoot":"","sources":["../src/provider-command.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAA;AACzE,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,IAAI,cAAc,EACnC,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,GAErB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,iBAAiB,GAKlB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GAEnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAqF3B,0EAA0E;AAC1E,MAAM,cAAc,GAAG,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,CAAA;AAEhF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAuB;IAC3D,IAAI,MAAM,GAAsB,EAAE,CAAA;IAElC,MAAM,kBAAkB,GAAG,GAAS,EAAE;QACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAC7B,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAwC,EAAE,GAAG,EAAE;gBAClE,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAA;YACpC,CAAC,CAAC,CAAA;YACF,IAAI,OAAO,EAAE,KAAK,UAAU;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAgB,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,KAAK,MAAM,EAAE,IAAI,MAAM;YAAE,EAAE,EAAE,CAAA;QAC7B,MAAM,GAAG,EAAE,CAAA;IACb,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,EAAqD,EAAQ,EAAE;QAC5E,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM;QAC/B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,OAAsB,EAAQ,EAAE;QAC7C,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,aAAa,GAAG,SAAS,CAAA,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAwC,EAAE;QAC9E,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAgC,CAAA;QAC5E,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,SAAS,CAAA;QAC7F,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,GAAG,GAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;IAClG,MAAM,IAAI,GAAiB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IAEzF,MAAM,OAAO,GAAoB;QAC/B,IAAI,SAAS;YACX,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAA;QACvD,CAAC;QACD,IAAI,WAAW;YACb,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAgC,CAAA;QACjE,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,GAAY;YAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;YAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,SAAS,EAAE,CAAC,CAAA;gBAClD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACxD,OAAM;YACR,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAA;gBACxE,OAAM;YACR,CAAC;YACD,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAA;YACnC,kBAAkB,EAAE,CAAA;YACpB,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;gBAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClE,CAAC;QACD,kBAAkB;YAChB,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,WAAW,EAAE,CAAA;YACb,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,mBAAmB;YACvB,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAA;YAC9B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7G,CAAC;QACD,UAAU;YACR,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,KAAK,CAAA;QACxC,CAAC;QACD,SAAS,CAAC,KAAa;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAM;YAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC1E,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;gBACvE,OAAM;YACR,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,WAAW;YACT,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAM;YAClE,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;gBAC9B,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBACrC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,WAAW;YACT,OAAO,CAAC,kBAAkB,EAAE,CAAA;QAC9B,CAAC;QACD,SAAS,CAAC,IAAY;YACpB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAA;YACpD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtH,CAAC;QACD,cAAc;YACZ,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC5D,CAAC;QACD,WAAW;YACT,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAM;YAClE,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;gBAC3B,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC9F,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;oBACpF,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAA;gBAC7C,CAAC;qBAAM,CAAC;oBACN,mEAAmE;oBACnE,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;oBAClF,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAA;gBACxI,CAAC;gBACD,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBACrC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5D,OAAM;YACR,CAAC;YACD,OAAO,CAAC,kBAAkB,EAAE,CAAA;QAC9B,CAAC;QACD,gBAAgB;YACd,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAM;YAClE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QACD,cAAc;YACZ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,OAAM;YAClE,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;gBAC1E,8BAA8B;gBAC9B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1E,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QACD,iBAAiB;YACf,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAA;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAM;YACzD,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;YACzG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAA;QAC3C,CAAC;QACD,WAAW;YACT,OAAO,GAAG,CAAC,KAAK,CAAA;QAClB,CAAC;QACD,GAAG,aAAa,CAAC,IAAI,CAAC;QACtB,GAAG,YAAY,CAAC,IAAI,CAAC;KACtB,CAAA;IAED,KAAK,UAAU,SAAS;QACtB,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAA;QAC1D,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAgC,CAAA;QAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAqC,CAAA;QAC3E,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACjG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;QACxC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QAClE,OAAO,iBAAiB,CAAC;YACvB,UAAU;YACV,SAAS;YACT,gBAAgB,EAAE,MAAM;YACxB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5G,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type ProviderPanelState } from './store/provider-panel.ts';
2
+ import type { ProviderCore } from './provider-command.ts';
3
+ /**
4
+ * The detail/manage/remove flows (§4.4, §8-S2): returns the runtime members
5
+ * that drive the detail phase, closing over the shared helpers on `core`.
6
+ */
7
+ export declare function createDetail(core: ProviderCore): {
8
+ enterFromList(panel: ProviderPanelState): void;
9
+ jumpToRemove(route: string): void;
10
+ refreshDetail(route: string): Promise<void>;
11
+ runDetailAction(panel: ProviderPanelState): void;
12
+ confirmRemove(panel: ProviderPanelState): void;
13
+ panelRefreshModels(): void;
14
+ };
15
+ //# sourceMappingURL=provider-detail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-detail.d.ts","sourceRoot":"","sources":["../src/provider-detail.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAA;AAWlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAMzD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;IAChD,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAChD,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC9C,kBAAkB,IAAI,IAAI,CAAA;CAC3B,CAgLA"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * `/provider` detail & manage flows (design doc docs/plans/2026-09-05-provider-
3
+ * management.md §4.4): detail facts, the detail action router, removal with
4
+ * double-confirm + credential-drop, and §8-S2 model-list refresh. Split out
5
+ * of provider-command.ts purely for line budget.
6
+ * @module @dsh-cc/tui/provider-command-detail
7
+ */
8
+ import { setProviderOverlay } from "./store.js";
9
+ import { backToList, enterDetail, setMessage, setDetail, setRemoveStage, startRemove, startWizardFor, } from "./store/provider-panel.js";
10
+ import { refreshProbeFor } from "./provider-flow.js";
11
+ import { presetByRoute } from "./provider-presets.js";
12
+ import { readConfiguredProviders, PROVIDER_SETTINGS_NAMESPACE } from "./provider-read.js";
13
+ import { ROTATE_STEPS, credentialRefFor, envShadowLine, openField, } from "./provider-actions.js";
14
+ import { setAsDefault, settingsWriteOf, writeRoute } from "./provider-settings.js";
15
+ /** §4.4 removal warning for the currently-selected route (doc D8d). */
16
+ const REMOVE_CURRENT_WARNING = 'This is the running session\'s current provider: the session keeps its current model until you pick again with /model; in-flight request behavior during route disposal is undefined.';
17
+ /**
18
+ * The detail/manage/remove flows (§4.4, §8-S2): returns the runtime members
19
+ * that drive the detail phase, closing over the shared helpers on `core`.
20
+ */
21
+ export function createDetail(core) {
22
+ const { rt } = core;
23
+ /**
24
+ * §8-S2 "refresh list": re-run the draft-form probe against the route's
25
+ * effective endpoint (profile, else preset probe) and write the discovered
26
+ * models. No `provider` field (C5/Blocker B1) and no apiKey — the stored
27
+ * credential is applied adapter-side. Failure renders the reason verbatim
28
+ * and changes no state; the probe aborts after 15 s.
29
+ */
30
+ const refreshModels = async (route) => {
31
+ const profile = (readConfiguredProviders(settingsWriteOf(core))[route] ?? {});
32
+ const probe = refreshProbeFor(profile, presetByRoute(route));
33
+ const llm = rt.ctx.get('llm');
34
+ if (!probe.ok) {
35
+ core.patch(p => setMessage(p, probe.reason));
36
+ return;
37
+ }
38
+ if (llm === undefined || typeof llm.discoverModels !== 'function') {
39
+ core.patch(p => setMessage(p, 'Model discovery is unavailable in this profile — the list was not refreshed.'));
40
+ return;
41
+ }
42
+ const controller = new AbortController();
43
+ const timer = setTimeout(() => controller.abort(), 15000);
44
+ try {
45
+ const models = await llm.discoverModels(PROVIDER_SETTINGS_NAMESPACE, {
46
+ baseURL: probe.baseURL,
47
+ api: probe.api,
48
+ signal: controller.signal,
49
+ });
50
+ const mapped = models.map(m => ({ id: m.id, name: m.name ?? m.id }));
51
+ const error = await writeRoute(core, { op: 'set', path: ['providers', route, 'models'], value: mapped });
52
+ if (error !== undefined) {
53
+ core.patch(p => setMessage(p, `Refresh failed: ${error}`));
54
+ return;
55
+ }
56
+ core.patch(p => setMessage(p, `Refreshed ${route}: ${models.length} models discovered from ${probe.baseURL}.`));
57
+ }
58
+ catch (error) {
59
+ const reason = error instanceof Error ? error.message : String(error);
60
+ core.patch(p => setMessage(p, `Model refresh failed: ${reason}`));
61
+ }
62
+ finally {
63
+ clearTimeout(timer);
64
+ }
65
+ };
66
+ return {
67
+ /** Enter on a list row: configured → detail (§4.4), available → add wizard (§4.3). */
68
+ enterFromList(panel) {
69
+ const row = panel.rows[panel.cursor];
70
+ if (row === undefined)
71
+ return;
72
+ if (row.section === 'available') {
73
+ void core.runtime().startPresetWizard(row.route);
74
+ return;
75
+ }
76
+ rt.emit(setProviderOverlay(rt.state(), enterDetail(panel)));
77
+ void this.refreshDetail(row.route);
78
+ },
79
+ /** §4.4 removal jump for `/provider remove <route>`. */
80
+ jumpToRemove(route) {
81
+ const panel = rt.state().providerPanel;
82
+ if (panel === undefined)
83
+ return;
84
+ if (!Object.hasOwn(readConfiguredProviders(settingsWriteOf(core)), route)) {
85
+ rt.emit(setProviderOverlay(rt.state(), setMessage(backToList(panel), `Route "${route}" is not configured — /provider list shows the configured routes.`)));
86
+ return;
87
+ }
88
+ const warning = rt.selection.current?.provider === route ? REMOVE_CURRENT_WARNING : undefined;
89
+ rt.emit(setProviderOverlay(rt.state(), setMessage(startRemove({ ...panel, phase: 'detail', selected: route }), warning)));
90
+ },
91
+ async refreshDetail(route) {
92
+ const profile = (readConfiguredProviders(settingsWriteOf(core))[route] ?? {});
93
+ const ref = credentialRefFor(route);
94
+ const state = await core.describeRef(ref);
95
+ const envLocked = state?.source === 'env' || state?.writable === false;
96
+ const badge = state === undefined || !state.configured ? 'missing' : state.source === 'env' ? 'env' : 'managed';
97
+ const models = Array.isArray(profile.models) ? profile.models.length : 0;
98
+ const detail = {
99
+ profileJson: JSON.stringify(profile, null, 2),
100
+ endpoint: typeof profile.baseURL === 'string' ? profile.baseURL : '(catalog default)',
101
+ api: typeof profile.api === 'string' ? profile.api : '(catalog default)',
102
+ modelCount: models,
103
+ credentialLine: badge === 'missing' ? 'key ✗ missing' : `key ✓ (${badge})${envLocked ? ' — read-only here' : ''}`,
104
+ };
105
+ const actions = [
106
+ envLocked
107
+ ? { id: 'rotate', label: 'Rotate key', disabled: true, reason: envShadowLine(ref) }
108
+ : { id: 'rotate', label: 'Rotate key' },
109
+ (() => {
110
+ const probe = refreshProbeFor(profile, presetByRoute(route));
111
+ return probe.ok
112
+ ? { id: 'refresh-models', label: 'Refresh models' }
113
+ : { id: 'refresh-models', label: 'Refresh models', disabled: true, reason: probe.reason };
114
+ })(),
115
+ { id: 'default', label: 'Set as default' },
116
+ { id: 'remove', label: 'Remove' },
117
+ ];
118
+ core.patch(p => setDetail(p, detail, actions));
119
+ },
120
+ /** Run the focused detail action (§4.4). */
121
+ runDetailAction(panel) {
122
+ const route = panel.selected;
123
+ if (route === undefined)
124
+ return;
125
+ const action = panel.actions?.[panel.actionCursor ?? 0];
126
+ if (action === undefined)
127
+ return;
128
+ if (action.disabled === true) {
129
+ rt.emit(setProviderOverlay(rt.state(), setMessage(panel, action.reason ?? 'This action is unavailable.')));
130
+ return;
131
+ }
132
+ if (action.id === 'rotate') {
133
+ rt.emit(setProviderOverlay(rt.state(), startWizardFor(panel, route, [...ROTATE_STEPS], { kind: 'rotate' })));
134
+ openField(core, rt.state().providerPanel);
135
+ return;
136
+ }
137
+ if (action.id === 'refresh-models') {
138
+ core.begin(refreshModels(route));
139
+ return;
140
+ }
141
+ if (action.id === 'default') {
142
+ core.begin(setAsDefault(core, route));
143
+ return;
144
+ }
145
+ if (action.id === 'remove') {
146
+ const warning = rt.selection.current?.provider === route ? REMOVE_CURRENT_WARNING : undefined;
147
+ rt.emit(setProviderOverlay(rt.state(), setMessage(startRemove(panel), warning)));
148
+ }
149
+ },
150
+ /** Adjudicate the remove double-confirm / credential-drop stage. */
151
+ confirmRemove(panel) {
152
+ const route = panel.selected;
153
+ if (route === undefined)
154
+ return;
155
+ if (panel.stage === 'drop-credential') {
156
+ const ref = credentialRefFor(route);
157
+ const credentials = rt.ctx.get('credentials');
158
+ core.begin((async () => {
159
+ try {
160
+ await credentials?.unset(ref);
161
+ }
162
+ catch {
163
+ // Failure keeps the stored credential; the route removal stands.
164
+ }
165
+ core.patch(p => setMessage(backToList(p), `Removed ${route} and dropped the stored credential.`));
166
+ })());
167
+ return;
168
+ }
169
+ core.begin((async () => {
170
+ const error = await writeRoute(core, { op: 'unset', path: ['providers', route] });
171
+ if (error !== undefined) {
172
+ core.patch(p => setMessage(p, `Removal failed: ${error}`));
173
+ return;
174
+ }
175
+ const state = await core.describeRef(credentialRefFor(route));
176
+ // Drop offer ONLY for a managed credential — env-supplied keys are
177
+ // never touched by the UI (§4.4, C4).
178
+ if (state?.configured === true && state.source !== 'env') {
179
+ core.patch(p => setRemoveStage(p, 'drop-credential'));
180
+ return;
181
+ }
182
+ core.patch(p => backToList(p));
183
+ })());
184
+ },
185
+ /** Detail-phase `r`: refresh the route's model list via a draft-form probe (§8-S2). */
186
+ panelRefreshModels() {
187
+ const panel = rt.state().providerPanel;
188
+ if (panel === undefined || core.buf.pendingAction !== undefined || panel.phase !== 'detail')
189
+ return;
190
+ const action = panel.actions?.find(a => a.id === 'refresh-models');
191
+ if (action === undefined)
192
+ return;
193
+ if (action.disabled === true) {
194
+ rt.emit(setProviderOverlay(rt.state(), setMessage(panel, action.reason ?? 'This action is unavailable.')));
195
+ return;
196
+ }
197
+ core.begin(refreshModels(panel.selected ?? ''));
198
+ }
199
+ };
200
+ }
201
+ //# sourceMappingURL=provider-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-detail.js","sourceRoot":"","sources":["../src/provider-detail.ts"],"names":[],"mappings":"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"}