@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.
- package/LICENSE +201 -0
- package/README.md +144 -0
- package/lib/bash-history.d.ts +31 -0
- package/lib/bash-history.d.ts.map +1 -0
- package/lib/bash-history.js +94 -0
- package/lib/bash-history.js.map +1 -0
- package/lib/compact-fold.d.ts +35 -0
- package/lib/compact-fold.d.ts.map +1 -0
- package/lib/compact-fold.js +60 -0
- package/lib/compact-fold.js.map +1 -0
- package/lib/components/arg-completers.d.ts +22 -0
- package/lib/components/arg-completers.d.ts.map +1 -0
- package/lib/components/arg-completers.js +75 -0
- package/lib/components/arg-completers.js.map +1 -0
- package/lib/components/code-theme.d.ts +25 -0
- package/lib/components/code-theme.d.ts.map +1 -0
- package/lib/components/code-theme.js +137 -0
- package/lib/components/code-theme.js.map +1 -0
- package/lib/components/completion.d.ts +50 -0
- package/lib/components/completion.d.ts.map +1 -0
- package/lib/components/completion.js +279 -0
- package/lib/components/completion.js.map +1 -0
- package/lib/components/diff-card.d.ts +29 -0
- package/lib/components/diff-card.d.ts.map +1 -0
- package/lib/components/diff-card.js +175 -0
- package/lib/components/diff-card.js.map +1 -0
- package/lib/components/diff-hunks.d.ts +44 -0
- package/lib/components/diff-hunks.d.ts.map +1 -0
- package/lib/components/diff-hunks.js +188 -0
- package/lib/components/diff-hunks.js.map +1 -0
- package/lib/components/editor-history.d.ts +23 -0
- package/lib/components/editor-history.d.ts.map +1 -0
- package/lib/components/editor-history.js +29 -0
- package/lib/components/editor-history.js.map +1 -0
- package/lib/components/markdown-theme.d.ts +11 -0
- package/lib/components/markdown-theme.d.ts.map +1 -0
- package/lib/components/markdown-theme.js +29 -0
- package/lib/components/markdown-theme.js.map +1 -0
- package/lib/components/masked-input.d.ts +24 -0
- package/lib/components/masked-input.d.ts.map +1 -0
- package/lib/components/masked-input.js +168 -0
- package/lib/components/masked-input.js.map +1 -0
- package/lib/components/overlay-host.d.ts +31 -0
- package/lib/components/overlay-host.d.ts.map +1 -0
- package/lib/components/overlay-host.js +128 -0
- package/lib/components/overlay-host.js.map +1 -0
- package/lib/components/overlays.d.ts +94 -0
- package/lib/components/overlays.d.ts.map +1 -0
- package/lib/components/overlays.js +450 -0
- package/lib/components/overlays.js.map +1 -0
- package/lib/components/provider-box.d.ts +23 -0
- package/lib/components/provider-box.d.ts.map +1 -0
- package/lib/components/provider-box.js +164 -0
- package/lib/components/provider-box.js.map +1 -0
- package/lib/components/read-group.d.ts +51 -0
- package/lib/components/read-group.d.ts.map +1 -0
- package/lib/components/read-group.js +105 -0
- package/lib/components/read-group.js.map +1 -0
- package/lib/components/root-bash.d.ts +36 -0
- package/lib/components/root-bash.d.ts.map +1 -0
- package/lib/components/root-bash.js +112 -0
- package/lib/components/root-bash.js.map +1 -0
- package/lib/components/root-types.d.ts +42 -0
- package/lib/components/root-types.d.ts.map +1 -0
- package/lib/components/root-types.js +8 -0
- package/lib/components/root-types.js.map +1 -0
- package/lib/components/root-utils.d.ts +22 -0
- package/lib/components/root-utils.d.ts.map +1 -0
- package/lib/components/root-utils.js +45 -0
- package/lib/components/root-utils.js.map +1 -0
- package/lib/components/root.d.ts +25 -0
- package/lib/components/root.d.ts.map +1 -0
- package/lib/components/root.js +357 -0
- package/lib/components/root.js.map +1 -0
- package/lib/components/theme.d.ts +61 -0
- package/lib/components/theme.d.ts.map +1 -0
- package/lib/components/theme.js +99 -0
- package/lib/components/theme.js.map +1 -0
- package/lib/components/transcript.d.ts +43 -0
- package/lib/components/transcript.d.ts.map +1 -0
- package/lib/components/transcript.js +203 -0
- package/lib/components/transcript.js.map +1 -0
- package/lib/components/working-line.d.ts +35 -0
- package/lib/components/working-line.d.ts.map +1 -0
- package/lib/components/working-line.js +66 -0
- package/lib/components/working-line.js.map +1 -0
- package/lib/effort-catalog.d.ts +27 -0
- package/lib/effort-catalog.d.ts.map +1 -0
- package/lib/effort-catalog.js +36 -0
- package/lib/effort-catalog.js.map +1 -0
- package/lib/export-markdown.d.ts +18 -0
- package/lib/export-markdown.d.ts.map +1 -0
- package/lib/export-markdown.js +124 -0
- package/lib/export-markdown.js.map +1 -0
- package/lib/harness/approval-preview.d.ts +33 -0
- package/lib/harness/approval-preview.d.ts.map +1 -0
- package/lib/harness/approval-preview.js +179 -0
- package/lib/harness/approval-preview.js.map +1 -0
- package/lib/harness/boot-banner.d.ts +14 -0
- package/lib/harness/boot-banner.d.ts.map +1 -0
- package/lib/harness/boot-banner.js +89 -0
- package/lib/harness/boot-banner.js.map +1 -0
- package/lib/harness/driver-agent.d.ts +78 -0
- package/lib/harness/driver-agent.d.ts.map +1 -0
- package/lib/harness/driver-agent.js +314 -0
- package/lib/harness/driver-agent.js.map +1 -0
- package/lib/harness/driver-agents.d.ts +20 -0
- package/lib/harness/driver-agents.d.ts.map +1 -0
- package/lib/harness/driver-agents.js +123 -0
- package/lib/harness/driver-agents.js.map +1 -0
- package/lib/harness/driver-approvals.d.ts +38 -0
- package/lib/harness/driver-approvals.d.ts.map +1 -0
- package/lib/harness/driver-approvals.js +277 -0
- package/lib/harness/driver-approvals.js.map +1 -0
- package/lib/harness/driver-bash.d.ts +15 -0
- package/lib/harness/driver-bash.d.ts.map +1 -0
- package/lib/harness/driver-bash.js +73 -0
- package/lib/harness/driver-bash.js.map +1 -0
- package/lib/harness/driver-catalog.d.ts +84 -0
- package/lib/harness/driver-catalog.d.ts.map +1 -0
- package/lib/harness/driver-catalog.js +256 -0
- package/lib/harness/driver-catalog.js.map +1 -0
- package/lib/harness/driver-ctx.d.ts +462 -0
- package/lib/harness/driver-ctx.d.ts.map +1 -0
- package/lib/harness/driver-ctx.js +11 -0
- package/lib/harness/driver-ctx.js.map +1 -0
- package/lib/harness/driver-hud.d.ts +31 -0
- package/lib/harness/driver-hud.d.ts.map +1 -0
- package/lib/harness/driver-hud.js +204 -0
- package/lib/harness/driver-hud.js.map +1 -0
- package/lib/harness/driver-live.d.ts +36 -0
- package/lib/harness/driver-live.d.ts.map +1 -0
- package/lib/harness/driver-live.js +44 -0
- package/lib/harness/driver-live.js.map +1 -0
- package/lib/harness/driver-modal.d.ts +52 -0
- package/lib/harness/driver-modal.d.ts.map +1 -0
- package/lib/harness/driver-modal.js +78 -0
- package/lib/harness/driver-modal.js.map +1 -0
- package/lib/harness/driver-mode.d.ts +35 -0
- package/lib/harness/driver-mode.d.ts.map +1 -0
- package/lib/harness/driver-mode.js +84 -0
- package/lib/harness/driver-mode.js.map +1 -0
- package/lib/harness/driver-pickers.d.ts +48 -0
- package/lib/harness/driver-pickers.d.ts.map +1 -0
- package/lib/harness/driver-pickers.js +249 -0
- package/lib/harness/driver-pickers.js.map +1 -0
- package/lib/harness/driver-promote.d.ts +29 -0
- package/lib/harness/driver-promote.d.ts.map +1 -0
- package/lib/harness/driver-promote.js +36 -0
- package/lib/harness/driver-promote.js.map +1 -0
- package/lib/harness/driver-queue.d.ts +19 -0
- package/lib/harness/driver-queue.d.ts.map +1 -0
- package/lib/harness/driver-queue.js +281 -0
- package/lib/harness/driver-queue.js.map +1 -0
- package/lib/harness/driver-run-local.d.ts +32 -0
- package/lib/harness/driver-run-local.d.ts.map +1 -0
- package/lib/harness/driver-run-local.js +366 -0
- package/lib/harness/driver-run-local.js.map +1 -0
- package/lib/harness/driver-sessions.d.ts +28 -0
- package/lib/harness/driver-sessions.d.ts.map +1 -0
- package/lib/harness/driver-sessions.js +386 -0
- package/lib/harness/driver-sessions.js.map +1 -0
- package/lib/harness/driver.d.ts +22 -0
- package/lib/harness/driver.d.ts.map +1 -0
- package/lib/harness/driver.js +459 -0
- package/lib/harness/driver.js.map +1 -0
- package/lib/harness/preset.d.ts +32 -0
- package/lib/harness/preset.d.ts.map +1 -0
- package/lib/harness/preset.js +34 -0
- package/lib/harness/preset.js.map +1 -0
- package/lib/harness/session-list.d.ts +65 -0
- package/lib/harness/session-list.d.ts.map +1 -0
- package/lib/harness/session-list.js +91 -0
- package/lib/harness/session-list.js.map +1 -0
- package/lib/harness/shell-output.d.ts +44 -0
- package/lib/harness/shell-output.d.ts.map +1 -0
- package/lib/harness/shell-output.js +90 -0
- package/lib/harness/shell-output.js.map +1 -0
- package/lib/harness/statusline-cc-transcript.d.ts +51 -0
- package/lib/harness/statusline-cc-transcript.d.ts.map +1 -0
- package/lib/harness/statusline-cc-transcript.js +191 -0
- package/lib/harness/statusline-cc-transcript.js.map +1 -0
- package/lib/harness/statusline-command.d.ts +54 -0
- package/lib/harness/statusline-command.d.ts.map +1 -0
- package/lib/harness/statusline-command.js +161 -0
- package/lib/harness/statusline-command.js.map +1 -0
- package/lib/harness/statusline-payload.d.ts +79 -0
- package/lib/harness/statusline-payload.d.ts.map +1 -0
- package/lib/harness/statusline-payload.js +93 -0
- package/lib/harness/statusline-payload.js.map +1 -0
- package/lib/harness/statusline-settings.d.ts +47 -0
- package/lib/harness/statusline-settings.d.ts.map +1 -0
- package/lib/harness/statusline-settings.js +57 -0
- package/lib/harness/statusline-settings.js.map +1 -0
- package/lib/harness/statusline-wiring.d.ts +45 -0
- package/lib/harness/statusline-wiring.d.ts.map +1 -0
- package/lib/harness/statusline-wiring.js +247 -0
- package/lib/harness/statusline-wiring.js.map +1 -0
- package/lib/harness/usage-view.d.ts +84 -0
- package/lib/harness/usage-view.d.ts.map +1 -0
- package/lib/harness/usage-view.js +199 -0
- package/lib/harness/usage-view.js.map +1 -0
- package/lib/harness/worktree-exit.d.ts +105 -0
- package/lib/harness/worktree-exit.d.ts.map +1 -0
- package/lib/harness/worktree-exit.js +168 -0
- package/lib/harness/worktree-exit.js.map +1 -0
- package/lib/history.d.ts +50 -0
- package/lib/history.d.ts.map +1 -0
- package/lib/history.js +139 -0
- package/lib/history.js.map +1 -0
- package/lib/index.d.ts +63 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +54 -0
- package/lib/index.js.map +1 -0
- package/lib/input.d.ts +158 -0
- package/lib/input.d.ts.map +1 -0
- package/lib/input.js +400 -0
- package/lib/input.js.map +1 -0
- package/lib/invariant.d.ts +14 -0
- package/lib/invariant.d.ts.map +1 -0
- package/lib/invariant.js +20 -0
- package/lib/invariant.js.map +1 -0
- package/lib/mode-cycle.d.ts +22 -0
- package/lib/mode-cycle.d.ts.map +1 -0
- package/lib/mode-cycle.js +32 -0
- package/lib/mode-cycle.js.map +1 -0
- package/lib/model-catalog.d.ts +22 -0
- package/lib/model-catalog.d.ts.map +1 -0
- package/lib/model-catalog.js +45 -0
- package/lib/model-catalog.js.map +1 -0
- package/lib/packaged-preset.d.ts +32 -0
- package/lib/packaged-preset.d.ts.map +1 -0
- package/lib/packaged-preset.js +94 -0
- package/lib/packaged-preset.js.map +1 -0
- package/lib/plugin.d.ts +11 -0
- package/lib/plugin.d.ts.map +1 -0
- package/lib/plugin.js +88 -0
- package/lib/plugin.js.map +1 -0
- package/lib/profile.d.ts +4 -0
- package/lib/profile.d.ts.map +1 -0
- package/lib/profile.js +7 -0
- package/lib/profile.js.map +1 -0
- package/lib/project-sessions.d.ts +29 -0
- package/lib/project-sessions.d.ts.map +1 -0
- package/lib/project-sessions.js +60 -0
- package/lib/project-sessions.js.map +1 -0
- package/lib/project.d.ts +75 -0
- package/lib/project.d.ts.map +1 -0
- package/lib/project.js +196 -0
- package/lib/project.js.map +1 -0
- package/lib/provider-actions.d.ts +37 -0
- package/lib/provider-actions.d.ts.map +1 -0
- package/lib/provider-actions.js +417 -0
- package/lib/provider-actions.js.map +1 -0
- package/lib/provider-command.d.ts +109 -0
- package/lib/provider-command.d.ts.map +1 -0
- package/lib/provider-command.js +220 -0
- package/lib/provider-command.js.map +1 -0
- package/lib/provider-detail.d.ts +15 -0
- package/lib/provider-detail.d.ts.map +1 -0
- package/lib/provider-detail.js +201 -0
- package/lib/provider-detail.js.map +1 -0
- package/lib/provider-flow.d.ts +191 -0
- package/lib/provider-flow.d.ts.map +1 -0
- package/lib/provider-flow.js +192 -0
- package/lib/provider-flow.js.map +1 -0
- package/lib/provider-presets.d.ts +32 -0
- package/lib/provider-presets.d.ts.map +1 -0
- package/lib/provider-presets.js +105 -0
- package/lib/provider-presets.js.map +1 -0
- package/lib/provider-read.d.ts +63 -0
- package/lib/provider-read.d.ts.map +1 -0
- package/lib/provider-read.js +115 -0
- package/lib/provider-read.js.map +1 -0
- package/lib/provider-settings.d.ts +30 -0
- package/lib/provider-settings.d.ts.map +1 -0
- package/lib/provider-settings.js +65 -0
- package/lib/provider-settings.js.map +1 -0
- package/lib/resume-target.d.ts +59 -0
- package/lib/resume-target.d.ts.map +1 -0
- package/lib/resume-target.js +143 -0
- package/lib/resume-target.js.map +1 -0
- package/lib/slash.d.ts +44 -0
- package/lib/slash.d.ts.map +1 -0
- package/lib/slash.js +81 -0
- package/lib/slash.js.map +1 -0
- package/lib/state/driver-types.d.ts +505 -0
- package/lib/state/driver-types.d.ts.map +1 -0
- package/lib/state/driver-types.js +8 -0
- package/lib/state/driver-types.js.map +1 -0
- package/lib/state/driver-usage-types.d.ts +59 -0
- package/lib/state/driver-usage-types.d.ts.map +1 -0
- package/lib/state/driver-usage-types.js +8 -0
- package/lib/state/driver-usage-types.js.map +1 -0
- package/lib/statusline.d.ts +63 -0
- package/lib/statusline.d.ts.map +1 -0
- package/lib/statusline.js +97 -0
- package/lib/statusline.js.map +1 -0
- package/lib/store/pickers.d.ts +34 -0
- package/lib/store/pickers.d.ts.map +1 -0
- package/lib/store/pickers.js +111 -0
- package/lib/store/pickers.js.map +1 -0
- package/lib/store/provider-panel.d.ts +107 -0
- package/lib/store/provider-panel.d.ts.map +1 -0
- package/lib/store/provider-panel.js +151 -0
- package/lib/store/provider-panel.js.map +1 -0
- package/lib/store/question.d.ts +21 -0
- package/lib/store/question.d.ts.map +1 -0
- package/lib/store/question.js +59 -0
- package/lib/store/question.js.map +1 -0
- package/lib/store/queue.d.ts +27 -0
- package/lib/store/queue.d.ts.map +1 -0
- package/lib/store/queue.js +34 -0
- package/lib/store/queue.js.map +1 -0
- package/lib/store/session.d.ts +73 -0
- package/lib/store/session.d.ts.map +1 -0
- package/lib/store/session.js +172 -0
- package/lib/store/session.js.map +1 -0
- package/lib/store/subagents.d.ts +16 -0
- package/lib/store/subagents.d.ts.map +1 -0
- package/lib/store/subagents.js +44 -0
- package/lib/store/subagents.js.map +1 -0
- package/lib/store/todos.d.ts +35 -0
- package/lib/store/todos.d.ts.map +1 -0
- package/lib/store/todos.js +68 -0
- package/lib/store/todos.js.map +1 -0
- package/lib/store/usage.d.ts +15 -0
- package/lib/store/usage.d.ts.map +1 -0
- package/lib/store/usage.js +27 -0
- package/lib/store/usage.js.map +1 -0
- package/lib/store/views.d.ts +419 -0
- package/lib/store/views.d.ts.map +1 -0
- package/lib/store/views.js +3 -0
- package/lib/store/views.js.map +1 -0
- package/lib/store.d.ts +19 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +10 -0
- package/lib/store.js.map +1 -0
- package/lib/terminal/lease.d.ts +33 -0
- package/lib/terminal/lease.d.ts.map +1 -0
- package/lib/terminal/lease.js +99 -0
- package/lib/terminal/lease.js.map +1 -0
- package/lib/tool-card.d.ts +75 -0
- package/lib/tool-card.d.ts.map +1 -0
- package/lib/tool-card.js +109 -0
- package/lib/tool-card.js.map +1 -0
- package/lib/tool-verbs.d.ts +12 -0
- package/lib/tool-verbs.d.ts.map +1 -0
- package/lib/tool-verbs.js +29 -0
- package/lib/tool-verbs.js.map +1 -0
- package/lib/transcript.d.ts +40 -0
- package/lib/transcript.d.ts.map +1 -0
- package/lib/transcript.js +413 -0
- package/lib/transcript.js.map +1 -0
- package/lib/working-line.d.ts +44 -0
- package/lib/working-line.d.ts.map +1 -0
- package/lib/working-line.js +56 -0
- package/lib/working-line.js.map +1 -0
- package/package.json +72 -0
- package/presets/cc/.dsh-cc-managed.json +5 -0
- package/presets/cc/agent.cordis.yml +524 -0
- package/presets/cc/preset.yml +3 -0
- 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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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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"}
|