@agi-fans/dsh-tui 0.21.0 → 0.23.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 +26 -0
- package/lib/CHANGELOG.md +356 -1
- package/lib/chrome/box.d.ts +32 -18
- package/lib/chrome/box.js +131 -132
- package/lib/chrome/box.js.map +1 -1
- package/lib/chrome/code-highlight.d.ts +15 -0
- package/lib/chrome/code-highlight.js +61 -5
- package/lib/chrome/code-highlight.js.map +1 -1
- package/lib/chrome/command-output.d.ts +28 -2
- package/lib/chrome/command-output.js +106 -4
- package/lib/chrome/command-output.js.map +1 -1
- package/lib/chrome/goal-bar.js +1 -1
- package/lib/chrome/goal-bar.js.map +1 -1
- package/lib/chrome/main-screen-renderer.d.ts +16 -0
- package/lib/chrome/main-screen-renderer.js +57 -8
- package/lib/chrome/main-screen-renderer.js.map +1 -1
- package/lib/chrome/markdown.d.ts +3 -3
- package/lib/chrome/markdown.js +101 -32
- package/lib/chrome/markdown.js.map +1 -1
- package/lib/chrome/md-style.d.ts +5 -2
- package/lib/chrome/md-style.js +13 -4
- package/lib/chrome/md-style.js.map +1 -1
- package/lib/chrome/relative-time.d.ts +17 -0
- package/lib/chrome/relative-time.js +36 -0
- package/lib/chrome/relative-time.js.map +1 -1
- package/lib/chrome/renderer.d.ts +37 -1
- package/lib/chrome/renderer.js.map +1 -1
- package/lib/chrome/secret-mask.d.ts +35 -0
- package/lib/chrome/secret-mask.js +180 -0
- package/lib/chrome/secret-mask.js.map +1 -0
- package/lib/chrome/status-config.d.ts +161 -51
- package/lib/chrome/status-config.js +237 -126
- package/lib/chrome/status-config.js.map +1 -1
- package/lib/chrome/status-line.d.ts +6 -5
- package/lib/chrome/status-line.js +110 -68
- package/lib/chrome/status-line.js.map +1 -1
- package/lib/chrome/terminal-colors.d.ts +85 -0
- package/lib/chrome/terminal-colors.js +230 -0
- package/lib/chrome/terminal-colors.js.map +1 -0
- package/lib/chrome/terminal-images.d.ts +9 -1
- package/lib/chrome/terminal-images.js +27 -4
- package/lib/chrome/terminal-images.js.map +1 -1
- package/lib/chrome/theme.d.ts +38 -10
- package/lib/chrome/theme.js +537 -542
- package/lib/chrome/theme.js.map +1 -1
- package/lib/chrome/tool-renderers.js +69 -13
- package/lib/chrome/tool-renderers.js.map +1 -1
- package/lib/chrome/tools-list.d.ts +1 -4
- package/lib/chrome/tools-list.js +1 -41
- package/lib/chrome/tools-list.js.map +1 -1
- package/lib/commands/auth-account.d.ts +9 -0
- package/lib/commands/auth-account.js +202 -0
- package/lib/commands/auth-account.js.map +1 -0
- package/lib/commands/auth-ids.d.ts +25 -0
- package/lib/commands/auth-ids.js +27 -0
- package/lib/commands/auth-ids.js.map +1 -0
- package/lib/commands/auth-input.d.ts +34 -0
- package/lib/commands/auth-input.js +96 -0
- package/lib/commands/auth-input.js.map +1 -0
- package/lib/commands/auth-providers.d.ts +39 -0
- package/lib/commands/auth-providers.js +125 -0
- package/lib/commands/auth-providers.js.map +1 -0
- package/lib/commands/auth.d.ts +12 -20
- package/lib/commands/auth.js +264 -627
- package/lib/commands/auth.js.map +1 -1
- package/lib/commands/btw.d.ts +13 -1
- package/lib/commands/btw.js +37 -104
- package/lib/commands/btw.js.map +1 -1
- package/lib/commands/diff.js +23 -112
- package/lib/commands/diff.js.map +1 -1
- package/lib/commands/export.d.ts +0 -1
- package/lib/commands/export.js +98 -57
- package/lib/commands/export.js.map +1 -1
- package/lib/commands/files.d.ts +17 -1
- package/lib/commands/files.js +68 -114
- package/lib/commands/files.js.map +1 -1
- package/lib/commands/integrations.d.ts +12 -1
- package/lib/commands/integrations.js +120 -23
- package/lib/commands/integrations.js.map +1 -1
- package/lib/commands/jobs-browser.d.ts +3 -0
- package/lib/commands/jobs-browser.js +152 -0
- package/lib/commands/jobs-browser.js.map +1 -0
- package/lib/commands/jobs.d.ts +12 -8
- package/lib/commands/jobs.js +65 -14
- package/lib/commands/jobs.js.map +1 -1
- package/lib/commands/model.d.ts +3 -0
- package/lib/commands/model.js +223 -114
- package/lib/commands/model.js.map +1 -1
- package/lib/commands/open-external.d.ts +2 -0
- package/lib/commands/open-external.js +19 -0
- package/lib/commands/open-external.js.map +1 -0
- package/lib/commands/permission.js +70 -60
- package/lib/commands/permission.js.map +1 -1
- package/lib/commands/plugins.js +427 -68
- package/lib/commands/plugins.js.map +1 -1
- package/lib/commands/schedule-catalog.d.ts +12 -0
- package/lib/commands/schedule-catalog.js +41 -0
- package/lib/commands/schedule-catalog.js.map +1 -0
- package/lib/commands/schedule-history.d.ts +4 -0
- package/lib/commands/schedule-history.js +62 -0
- package/lib/commands/schedule-history.js.map +1 -0
- package/lib/commands/schedule.d.ts +16 -9
- package/lib/commands/schedule.js +226 -162
- package/lib/commands/schedule.js.map +1 -1
- package/lib/commands/session-configuration.d.ts +3 -0
- package/lib/commands/session-configuration.js +58 -32
- package/lib/commands/session-configuration.js.map +1 -1
- package/lib/commands/session.js +118 -97
- package/lib/commands/session.js.map +1 -1
- package/lib/commands/terminal.d.ts +14 -8
- package/lib/commands/terminal.js +32 -185
- package/lib/commands/terminal.js.map +1 -1
- package/lib/commands/trajectory.js +4 -1
- package/lib/commands/trajectory.js.map +1 -1
- package/lib/definition.d.ts +226 -29
- package/lib/definition.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/input/actions.d.ts +51 -0
- package/lib/input/actions.js +123 -0
- package/lib/input/actions.js.map +1 -0
- package/lib/input/composer-files.d.ts +2 -0
- package/lib/input/composer-files.js +13 -3
- package/lib/input/composer-files.js.map +1 -1
- package/lib/input/editor.d.ts +0 -10
- package/lib/input/editor.js +11 -9
- package/lib/input/editor.js.map +1 -1
- package/lib/input/image-paste.d.ts +12 -1
- package/lib/input/image-paste.js +86 -1
- package/lib/input/image-paste.js.map +1 -1
- package/lib/input/key-test.d.ts +5 -0
- package/lib/input/key-test.js +19 -0
- package/lib/input/key-test.js.map +1 -0
- package/lib/input/keybindings-config.d.ts +12 -5
- package/lib/input/keybindings-config.js +30 -57
- package/lib/input/keybindings-config.js.map +1 -1
- package/lib/input/keys.d.ts +18 -0
- package/lib/input/keys.js +42 -4
- package/lib/input/keys.js.map +1 -1
- package/lib/input/wheel-scroll.d.ts +46 -0
- package/lib/input/wheel-scroll.js +69 -0
- package/lib/input/wheel-scroll.js.map +1 -0
- package/lib/locale/index.d.ts +6 -0
- package/lib/locale/index.js +32 -0
- package/lib/locale/index.js.map +1 -0
- package/lib/locale/prompt.d.ts +4 -0
- package/lib/locale/prompt.js +24 -0
- package/lib/locale/prompt.js.map +1 -0
- package/lib/locale/zh.d.ts +1114 -0
- package/lib/locale/zh.js +1115 -0
- package/lib/locale/zh.js.map +1 -0
- package/lib/prompt-intents.d.ts +186 -0
- package/lib/prompt-intents.js +131 -0
- package/lib/prompt-intents.js.map +1 -0
- package/lib/runtime/account-settings.d.ts +18 -0
- package/lib/runtime/account-settings.js +241 -0
- package/lib/runtime/account-settings.js.map +1 -0
- package/lib/runtime/agent-profile.d.ts +3 -3
- package/lib/runtime/agent-profile.js +4 -4
- package/lib/runtime/agent-profile.js.map +1 -1
- package/lib/runtime/btw-policy.js +2 -1
- package/lib/runtime/btw-policy.js.map +1 -1
- package/lib/runtime/btw.js +1 -2
- package/lib/runtime/btw.js.map +1 -1
- package/lib/runtime/cancellable.d.ts +75 -0
- package/lib/runtime/cancellable.js +76 -0
- package/lib/runtime/cancellable.js.map +1 -0
- package/lib/runtime/composer-images.d.ts +2 -2
- package/lib/runtime/composer-images.js +7 -6
- package/lib/runtime/composer-images.js.map +1 -1
- package/lib/runtime/composer-shell.d.ts +17 -2
- package/lib/runtime/composer-shell.js +133 -41
- package/lib/runtime/composer-shell.js.map +1 -1
- package/lib/runtime/file-browser.d.ts +19 -0
- package/lib/runtime/file-browser.js +291 -0
- package/lib/runtime/file-browser.js.map +1 -0
- package/lib/runtime/file-recovery-review.d.ts +0 -1
- package/lib/runtime/file-recovery-review.js +29 -30
- package/lib/runtime/file-recovery-review.js.map +1 -1
- package/lib/runtime/file-recovery-store.js +5 -1
- package/lib/runtime/file-recovery-store.js.map +1 -1
- package/lib/runtime/file-review.d.ts +6 -9
- package/lib/runtime/file-review.js +92 -8
- package/lib/runtime/file-review.js.map +1 -1
- package/lib/runtime/help-reader.d.ts +12 -0
- package/lib/runtime/help-reader.js +50 -0
- package/lib/runtime/help-reader.js.map +1 -0
- package/lib/runtime/hook-settings.d.ts +2 -2
- package/lib/runtime/human-interaction.js +1 -1
- package/lib/runtime/human-interaction.js.map +1 -1
- package/lib/runtime/model-catalog-editor.d.ts +12 -0
- package/lib/runtime/model-catalog-editor.js +215 -0
- package/lib/runtime/model-catalog-editor.js.map +1 -0
- package/lib/runtime/model-settings.d.ts +11 -0
- package/lib/runtime/model-settings.js +404 -0
- package/lib/runtime/model-settings.js.map +1 -0
- package/lib/runtime/plain-tui.d.ts +2 -0
- package/lib/runtime/plain-tui.js +7 -1
- package/lib/runtime/plain-tui.js.map +1 -1
- package/lib/runtime/plugin-settings.d.ts +4 -1
- package/lib/runtime/plugin-settings.js +170 -92
- package/lib/runtime/plugin-settings.js.map +1 -1
- package/lib/runtime/prompt-browser.d.ts +9 -0
- package/lib/runtime/prompt-browser.js +19 -0
- package/lib/runtime/prompt-browser.js.map +1 -0
- package/lib/runtime/provider-local.d.ts +80 -38
- package/lib/runtime/provider-local.js +2280 -683
- package/lib/runtime/provider-local.js.map +1 -1
- package/lib/runtime/reference-reader.d.ts +15 -0
- package/lib/runtime/reference-reader.js +78 -0
- package/lib/runtime/reference-reader.js.map +1 -0
- package/lib/runtime/runner.js +42 -39
- package/lib/runtime/runner.js.map +1 -1
- package/lib/runtime/session-runtime.js +1 -1
- package/lib/runtime/session-runtime.js.map +1 -1
- package/lib/runtime/settings-draft.d.ts +21 -0
- package/lib/runtime/settings-draft.js +166 -0
- package/lib/runtime/settings-draft.js.map +1 -0
- package/lib/runtime/settings-preferences.js +1 -1
- package/lib/runtime/settings-preferences.js.map +1 -1
- package/lib/runtime/startup-notices.d.ts +0 -1
- package/lib/runtime/startup-notices.js +35 -4
- package/lib/runtime/startup-notices.js.map +1 -1
- package/lib/runtime/subagent-model-selection.js +2 -1
- package/lib/runtime/subagent-model-selection.js.map +1 -1
- package/lib/runtime/subagent-settings.d.ts +14 -0
- package/lib/runtime/subagent-settings.js +288 -0
- package/lib/runtime/subagent-settings.js.map +1 -0
- package/lib/runtime/terminal-modes.d.ts +47 -0
- package/lib/runtime/terminal-modes.js +86 -0
- package/lib/runtime/terminal-modes.js.map +1 -0
- package/lib/runtime/terminal-notifications.d.ts +6 -5
- package/lib/runtime/terminal-notifications.js +17 -16
- package/lib/runtime/terminal-notifications.js.map +1 -1
- package/lib/runtime/terminal-probe.d.ts +38 -0
- package/lib/runtime/terminal-probe.js +46 -0
- package/lib/runtime/terminal-probe.js.map +1 -0
- package/lib/runtime/terminal-session.d.ts +57 -0
- package/lib/runtime/terminal-session.js +164 -0
- package/lib/runtime/terminal-session.js.map +1 -0
- package/lib/runtime/tool-presentation.js.map +1 -1
- package/lib/runtime/tool-reader.d.ts +5 -0
- package/lib/runtime/tool-reader.js +27 -0
- package/lib/runtime/tool-reader.js.map +1 -0
- package/lib/runtime/web-settings.d.ts +14 -0
- package/lib/runtime/web-settings.js +339 -0
- package/lib/runtime/web-settings.js.map +1 -0
- package/lib/session/command-attachments.d.ts +17 -0
- package/lib/session/command-attachments.js +50 -0
- package/lib/session/command-attachments.js.map +1 -0
- package/lib/session/context-diagnostics.d.ts +16 -0
- package/lib/session/context-diagnostics.js +15 -0
- package/lib/session/context-diagnostics.js.map +1 -1
- package/lib/session/external-agents.d.ts +3 -1
- package/lib/session/external-agents.js +35 -10
- package/lib/session/external-agents.js.map +1 -1
- package/lib/session/generation-continuation.d.ts +11 -0
- package/lib/session/generation-continuation.js +34 -0
- package/lib/session/generation-continuation.js.map +1 -0
- package/lib/session/goal-controls.d.ts +5 -0
- package/lib/session/goal-controls.js +81 -0
- package/lib/session/goal-controls.js.map +1 -0
- package/lib/session/interaction-adapter.d.ts +7 -3
- package/lib/session/interaction-adapter.js +125 -54
- package/lib/session/interaction-adapter.js.map +1 -1
- package/lib/session/message-queue.d.ts +2 -0
- package/lib/session/message-queue.js +102 -17
- package/lib/session/message-queue.js.map +1 -1
- package/lib/session/package-metadata.d.ts +8 -0
- package/lib/session/package-metadata.js +8 -0
- package/lib/session/package-metadata.js.map +1 -1
- package/lib/session/pending-inputs.d.ts +30 -0
- package/lib/session/pending-inputs.js +183 -0
- package/lib/session/pending-inputs.js.map +1 -0
- package/lib/session/session-configuration.js +1 -1
- package/lib/session/session-configuration.js.map +1 -1
- package/lib/session/session-controller.d.ts +42 -24
- package/lib/session/session-controller.js +534 -106
- package/lib/session/session-controller.js.map +1 -1
- package/lib/session/session-tree.d.ts +2 -0
- package/lib/session/session-tree.js +2 -0
- package/lib/session/session-tree.js.map +1 -1
- package/lib/session/subagent-roster.d.ts +1 -0
- package/lib/session/subagent-roster.js +16 -5
- package/lib/session/subagent-roster.js.map +1 -1
- package/lib/session/subagent-tracker.d.ts +2 -0
- package/lib/session/subagent-tracker.js +18 -0
- package/lib/session/subagent-tracker.js.map +1 -1
- package/lib/session/tui-settings.d.ts +48 -15
- package/lib/session/tui-settings.js +75 -34
- package/lib/session/tui-settings.js.map +1 -1
- package/lib/session/workflow-projection.d.ts +2 -1
- package/lib/session/workflow-projection.js +34 -4
- package/lib/session/workflow-projection.js.map +1 -1
- package/lib/views/autocomplete.d.ts +28 -9
- package/lib/views/autocomplete.js +90 -70
- package/lib/views/autocomplete.js.map +1 -1
- package/lib/views/context-overview.d.ts +4 -0
- package/lib/views/context-overview.js +43 -0
- package/lib/views/context-overview.js.map +1 -0
- package/lib/views/copy-targets.d.ts +18 -15
- package/lib/views/copy-targets.js +35 -60
- package/lib/views/copy-targets.js.map +1 -1
- package/lib/views/document-reader.d.ts +10 -1
- package/lib/views/document-reader.js +76 -9
- package/lib/views/document-reader.js.map +1 -1
- package/lib/views/event-views.js +71 -17
- package/lib/views/event-views.js.map +1 -1
- package/lib/views/file-actions.js +21 -0
- package/lib/views/file-actions.js.map +1 -1
- package/lib/views/file-browser.d.ts +98 -0
- package/lib/views/file-browser.js +120 -0
- package/lib/views/file-browser.js.map +1 -0
- package/lib/views/history-search.js +19 -25
- package/lib/views/history-search.js.map +1 -1
- package/lib/views/hotkey-format.d.ts +3 -2
- package/lib/views/hotkey-format.js +4 -3
- package/lib/views/hotkey-format.js.map +1 -1
- package/lib/views/hotkeys.d.ts +7 -1
- package/lib/views/hotkeys.js +59 -37
- package/lib/views/hotkeys.js.map +1 -1
- package/lib/views/list-navigation.d.ts +62 -0
- package/lib/views/list-navigation.js +73 -0
- package/lib/views/list-navigation.js.map +1 -0
- package/lib/views/list-view.d.ts +99 -0
- package/lib/views/list-view.js +170 -0
- package/lib/views/list-view.js.map +1 -0
- package/lib/views/prompt-selector.d.ts +54 -4
- package/lib/views/prompt-selector.js +349 -162
- package/lib/views/prompt-selector.js.map +1 -1
- package/lib/views/session-files.d.ts +1 -2
- package/lib/views/session-files.js +1 -11
- package/lib/views/session-files.js.map +1 -1
- package/lib/views/settings-list.d.ts +16 -9
- package/lib/views/settings-list.js +171 -315
- package/lib/views/settings-list.js.map +1 -1
- package/lib/views/tool-actions.d.ts +16 -0
- package/lib/views/tool-actions.js +29 -0
- package/lib/views/tool-actions.js.map +1 -0
- package/lib/views/trajectory-timeline.d.ts +71 -0
- package/lib/views/trajectory-timeline.js +143 -0
- package/lib/views/trajectory-timeline.js.map +1 -0
- package/lib/views/trajectory.d.ts +36 -4
- package/lib/views/trajectory.js +842 -190
- package/lib/views/trajectory.js.map +1 -1
- package/lib/views/transcript-render.d.ts +132 -38
- package/lib/views/transcript-render.js +792 -260
- package/lib/views/transcript-render.js.map +1 -1
- package/lib/views/transcript-search.d.ts +39 -6
- package/lib/views/transcript-search.js +46 -11
- package/lib/views/transcript-search.js.map +1 -1
- package/lib/views/transcript-types.d.ts +64 -5
- package/lib/views/transcript-types.js +23 -11
- package/lib/views/transcript-types.js.map +1 -1
- package/lib/views/workflow.d.ts +16 -0
- package/lib/views/workflow.js +42 -0
- package/lib/views/workflow.js.map +1 -0
- package/package.json +74 -90
- package/lib/chrome/welcome-tips.d.ts +0 -11
- package/lib/chrome/welcome-tips.js +0 -44
- package/lib/chrome/welcome-tips.js.map +0 -1
- package/lib/commands/advisor.d.ts +0 -15
- package/lib/commands/advisor.js +0 -200
- package/lib/commands/advisor.js.map +0 -1
- package/lib/commands/loop.d.ts +0 -52
- package/lib/commands/loop.js +0 -307
- package/lib/commands/loop.js.map +0 -1
- package/lib/commands/rate.d.ts +0 -33
- package/lib/commands/rate.js +0 -212
- package/lib/commands/rate.js.map +0 -1
- package/lib/commands/steer.d.ts +0 -5
- package/lib/commands/steer.js +0 -24
- package/lib/commands/steer.js.map +0 -1
- package/lib/commands/worktree.d.ts +0 -5
- package/lib/commands/worktree.js +0 -103
- package/lib/commands/worktree.js.map +0 -1
- package/lib/runtime/terminal-reader.d.ts +0 -11
- package/lib/runtime/terminal-reader.js +0 -87
- package/lib/runtime/terminal-reader.js.map +0 -1
- package/lib/session/steering.d.ts +0 -3
- package/lib/session/steering.js +0 -9
- package/lib/session/steering.js.map +0 -1
- package/lib/views/agent-hub.d.ts +0 -32
- package/lib/views/agent-hub.js +0 -209
- package/lib/views/agent-hub.js.map +0 -1
- package/lib/views/copy-selector.d.ts +0 -54
- package/lib/views/copy-selector.js +0 -170
- package/lib/views/copy-selector.js.map +0 -1
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/** Staged provider configuration over Harness settings, catalogs and write-only credentials. */
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
import { credentialRef } from '@deepseek-ai/dsh-credentials';
|
|
4
|
+
import { resolveUiLanguage, uiText } from "../locale/index.js";
|
|
5
|
+
import { askPrompt } from "../prompt-intents.js";
|
|
6
|
+
import { managedProviderCredentialRef, parseBaseURL, parseModelIds, parseProviderId } from "../commands/auth-input.js";
|
|
7
|
+
import { walkPath } from "../commands/auth-providers.js";
|
|
8
|
+
import { rebaseSettingsDraft, settingsDraftSummary } from "./settings-draft.js";
|
|
9
|
+
import { openAccountSettings } from "./account-settings.js";
|
|
10
|
+
import { editModelCatalog, modelReasoningLevels } from "./model-catalog-editor.js";
|
|
11
|
+
const NAMESPACES = ['llm-deepseek', 'llm-pi-ai'];
|
|
12
|
+
const MODEL_SETTINGS = 'models:providers';
|
|
13
|
+
const text = (ctx, source, values) => uiText(resolveUiLanguage(ctx.tui.prefs().uiLanguage), source, values);
|
|
14
|
+
const list = { localize: true, allowCustom: false, notify: false };
|
|
15
|
+
const object = (value) => typeof value === 'object' && value !== null && !Array.isArray(value) ? value : {};
|
|
16
|
+
const string = (value) => typeof value === 'string' ? value : '';
|
|
17
|
+
const models = (value) => Array.isArray(value) ? value.map(object) : [];
|
|
18
|
+
const describe = (ctx, ns) => ctx.settings.describe({ redactSecrets: true }).find(section => section.ns === ns);
|
|
19
|
+
const profile = (section, entry) => object(walkPath(section.value, entry.settingsPath));
|
|
20
|
+
const custom = (entry) => entry.settingsNs === 'llm-pi-ai' && entry.declared === true;
|
|
21
|
+
function llm(ctx) {
|
|
22
|
+
const service = ctx.get('llm');
|
|
23
|
+
if (service === undefined)
|
|
24
|
+
throw new Error('Model providers are no longer available.');
|
|
25
|
+
return service;
|
|
26
|
+
}
|
|
27
|
+
const errorText = (error) => error instanceof Error ? error.message : String(error);
|
|
28
|
+
export function modelSettingsEntry(ctx) {
|
|
29
|
+
if (ctx.get('llm') === undefined || !ctx.settings.describe({ redactSecrets: true }).some(section => NAMESPACES.includes(section.ns)))
|
|
30
|
+
return [];
|
|
31
|
+
return [{ id: MODEL_SETTINGS, label: 'Model providers', section: 'models', fields: [], behavior: ctx.settings.writable ? 'Profile · Apply to save' : 'Profile · Read only',
|
|
32
|
+
description: 'Manage provider credentials, endpoints and model lists. Keeps the selected model.', summary: 'Configure' }];
|
|
33
|
+
}
|
|
34
|
+
/** Choices come from the mounted adapter schema, including protocols added by later releases. */
|
|
35
|
+
function protocols(section) {
|
|
36
|
+
const root = new z(section.schema);
|
|
37
|
+
return (root.dict?.providers?.inner?.dict?.api?.list ?? []).flatMap(item => typeof item.value === 'string' ? [item.value] : []);
|
|
38
|
+
}
|
|
39
|
+
function deletable(section, entry) {
|
|
40
|
+
return entry.settingsPath.length > 0 && walkPath(section.user, entry.settingsPath) !== undefined && walkPath(section.base, entry.settingsPath) === undefined;
|
|
41
|
+
}
|
|
42
|
+
function assertRevision(ctx, section) {
|
|
43
|
+
if (!ctx.settings.writable)
|
|
44
|
+
throw new Error('This profile is read-only.');
|
|
45
|
+
if (describe(ctx, section.ns)?.revision !== section.revision)
|
|
46
|
+
throw new Error('Configuration changed. Load the latest settings to continue with your draft.');
|
|
47
|
+
}
|
|
48
|
+
/** Never materialize redacted secret slots when replacing a compound catalog value. */
|
|
49
|
+
function assertCatalogWritable(section, path) {
|
|
50
|
+
if (section.secrets?.some(secret => secret.path.slice(0, path.length).join('.') === path.join('.'))) {
|
|
51
|
+
throw new Error('This model list contains protected fields. Edit it in the profile configuration.');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function normalizeKey(raw) {
|
|
55
|
+
const value = raw.trim();
|
|
56
|
+
if (!/^[\x21-\x7e]+$/u.test(value) || /^\w+=/u.test(value) || /^(".*"|'.*')$/u.test(value))
|
|
57
|
+
throw new Error('Paste only the API key, without quotes or an environment assignment.');
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
async function authentication(ctx, entry, value) {
|
|
61
|
+
const refs = [...new Set([...(string(value.apiKeyEnv) ? [string(value.apiKeyEnv)] : []), ...(entry.settingsNs === 'llm-deepseek' ? ['DEEPSEEK_API_KEY'] : entry.nativeAuth?.env ?? [])])];
|
|
62
|
+
for (const ref of refs) {
|
|
63
|
+
const info = await ctx.credentials.describe(credentialRef(ref));
|
|
64
|
+
if (info.configured)
|
|
65
|
+
return info.source === 'file' ? 'Key stored locally' : 'Environment credential';
|
|
66
|
+
}
|
|
67
|
+
return refs.length > 0 ? 'Key not configured' : 'Provider-managed authentication';
|
|
68
|
+
}
|
|
69
|
+
async function providerRows(ctx) {
|
|
70
|
+
const active = new Set(llm(ctx).listProviders().map(entry => entry.id));
|
|
71
|
+
const sections = new Map(ctx.settings.describe({ redactSecrets: true }).map(section => [String(section.ns), section]));
|
|
72
|
+
const entries = llm(ctx).listConfigurableProviders().filter(entry => NAMESPACES.includes(entry.settingsNs) && sections.has(entry.settingsNs));
|
|
73
|
+
const rows = await Promise.all(entries.filter(entry => entry.settingsPath.length === 0 || walkPath(sections.get(entry.settingsNs)?.value, entry.settingsPath) !== undefined).map(async (entry) => {
|
|
74
|
+
const section = sections.get(entry.settingsNs);
|
|
75
|
+
let detail = '', error = entry.error;
|
|
76
|
+
try {
|
|
77
|
+
detail = text(ctx, await authentication(ctx, entry, profile(section, entry)));
|
|
78
|
+
const count = active.has(entry.provider) ? (await llm(ctx).listModels(entry.provider)).length : models(profile(section, entry).models).length;
|
|
79
|
+
detail += ' · ' + text(ctx, '{count} models', { count });
|
|
80
|
+
}
|
|
81
|
+
catch (cause) {
|
|
82
|
+
error = errorText(cause);
|
|
83
|
+
}
|
|
84
|
+
return { label: entry.displayName, value: entry.provider, description: entry.provider,
|
|
85
|
+
preview: error ?? detail, badge: { label: error === undefined ? detail : 'Load error', tone: error === undefined ? 'muted' : 'warning' } };
|
|
86
|
+
}));
|
|
87
|
+
rows.sort((a, b) => Number(b.value === 'deepseek-official') - Number(a.value === 'deepseek-official'));
|
|
88
|
+
if (active.has('deepseek-account')) {
|
|
89
|
+
try {
|
|
90
|
+
const count = (await llm(ctx).listModels('deepseek-account')).length;
|
|
91
|
+
if (count > 0)
|
|
92
|
+
rows.unshift({ label: text(ctx, 'DeepSeek Account'), value: 'deepseek-account', description: 'deepseek-account', preview: text(ctx, 'Manage account sign-in, profile and balances.'), badge: { label: text(ctx, '{count} models', { count }), tone: 'muted' } });
|
|
93
|
+
}
|
|
94
|
+
catch { /* The account owns its unavailable catalog and sign-in diagnostics. */ }
|
|
95
|
+
}
|
|
96
|
+
return rows;
|
|
97
|
+
}
|
|
98
|
+
export async function openModelSettings(ctx, signal) {
|
|
99
|
+
let rows = [], dirty = true, loading = false, closed = false, generation = 0;
|
|
100
|
+
const invalidate = () => { dirty = true; };
|
|
101
|
+
const off = [ctx.on('settings/document-updated', invalidate), ctx.on('credentials/reference-updated', invalidate), ctx.on('llm/adapters-updated', invalidate)];
|
|
102
|
+
const reload = async () => {
|
|
103
|
+
const version = ++generation;
|
|
104
|
+
dirty = false;
|
|
105
|
+
loading = true;
|
|
106
|
+
try {
|
|
107
|
+
const next = await providerRows(ctx);
|
|
108
|
+
if (version === generation && !closed && !signal.aborted) {
|
|
109
|
+
const adapter = describe(ctx, 'llm-pi-ai');
|
|
110
|
+
const add = ctx.settings.writable && adapter !== undefined && (protocols(adapter).length > 0 || llm(ctx).listConfigurableProviders().some(entry => entry.settingsNs === adapter.ns && entry.declared !== true && walkPath(adapter.value, entry.settingsPath) === undefined));
|
|
111
|
+
rows = [...next, ...(add ? [{ label: text(ctx, 'Add model provider'), value: '@add' }] : []), { label: text(ctx, 'Refresh'), value: '@refresh' }];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
if (version === generation && !closed && !signal.aborted)
|
|
116
|
+
rows = [
|
|
117
|
+
{ label: text(ctx, 'Load error'), value: '@error', description: errorText(error), disabled: true },
|
|
118
|
+
{ label: text(ctx, 'Refresh'), value: '@refresh' },
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
if (version === generation)
|
|
123
|
+
loading = false;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const options = () => {
|
|
127
|
+
if (dirty && !loading)
|
|
128
|
+
void reload();
|
|
129
|
+
return rows;
|
|
130
|
+
};
|
|
131
|
+
try {
|
|
132
|
+
while (!signal.aborted) {
|
|
133
|
+
await reload();
|
|
134
|
+
if (signal.aborted)
|
|
135
|
+
return;
|
|
136
|
+
const answer = await ctx.tui.prompt({ ...list, localize: ['title', 'question', 'actions'], title: 'Model providers', question: 'Choose a provider to configure', filterable: true,
|
|
137
|
+
options: options(), refreshOptions: options, signal });
|
|
138
|
+
if (answer === null)
|
|
139
|
+
return;
|
|
140
|
+
if (answer === '@refresh')
|
|
141
|
+
continue;
|
|
142
|
+
if (answer === 'deepseek-account') {
|
|
143
|
+
await openAccountSettings(ctx, signal);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (answer === '@add') {
|
|
147
|
+
await addProvider(ctx, signal);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const entry = llm(ctx).listConfigurableProviders().find(entry => entry.provider === answer);
|
|
151
|
+
if (entry !== undefined)
|
|
152
|
+
await editProvider(ctx, entry, signal);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
closed = true;
|
|
157
|
+
for (const dispose of off)
|
|
158
|
+
dispose();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async function addProvider(ctx, signal) {
|
|
162
|
+
const section = describe(ctx, 'llm-pi-ai');
|
|
163
|
+
if (section === undefined || !ctx.settings.writable)
|
|
164
|
+
return;
|
|
165
|
+
const dormant = llm(ctx).listConfigurableProviders().filter(entry => entry.settingsNs === section.ns && entry.declared !== true && walkPath(section.value, entry.settingsPath) === undefined);
|
|
166
|
+
const choice = await ctx.tui.prompt({ ...list, localize: ['title', 'question', 'actions'], title: 'Add model provider', question: 'Choose a catalog provider or a custom API', filterable: true,
|
|
167
|
+
options: [...dormant.map(entry => ({ label: entry.displayName, value: entry.provider })), ...(protocols(section).length === 0 ? [] : [{ label: text(ctx, 'Custom model API'), value: '@custom' }])], signal });
|
|
168
|
+
if (choice === null)
|
|
169
|
+
return;
|
|
170
|
+
const entry = dormant.find(entry => entry.provider === choice);
|
|
171
|
+
if (entry !== undefined) {
|
|
172
|
+
await editProvider(ctx, entry, signal, true);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (choice !== '@custom')
|
|
176
|
+
return;
|
|
177
|
+
let id = '';
|
|
178
|
+
while (!signal.aborted) {
|
|
179
|
+
const raw = await ctx.tui.prompt(askPrompt({ localize: true, title: 'Custom model API', question: 'Provider id', initialInput: id, signal }));
|
|
180
|
+
if (raw === null)
|
|
181
|
+
return;
|
|
182
|
+
id = raw;
|
|
183
|
+
try {
|
|
184
|
+
id = parseProviderId(raw);
|
|
185
|
+
if (llm(ctx).listConfigurableProviders().some(entry => entry.provider === id) || llm(ctx).listProviders().some(entry => entry.id === id) || walkPath(describe(ctx, section.ns)?.value, ['providers', id]) !== undefined)
|
|
186
|
+
throw new Error('This provider id already exists.');
|
|
187
|
+
await editProvider(ctx, { provider: id, displayName: id, settingsNs: section.ns, settingsPath: ['providers', id], declared: true }, signal, true);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
if (!signal.aborted)
|
|
192
|
+
ctx.tui.notice(errorText(error), { level: 'error' });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async function editProvider(ctx, entry, signal, creating = false) {
|
|
197
|
+
const initial = describe(ctx, entry.settingsNs);
|
|
198
|
+
if (initial === undefined)
|
|
199
|
+
return;
|
|
200
|
+
let section = initial;
|
|
201
|
+
let saved = profile(section, entry);
|
|
202
|
+
const changes = new Map();
|
|
203
|
+
let key = '', diagnostic = entry.error ?? '';
|
|
204
|
+
const value = (field) => changes.has(field) ? changes.get(field) : saved[field];
|
|
205
|
+
while (!signal.aborted) {
|
|
206
|
+
const canWrite = ctx.settings.writable;
|
|
207
|
+
const auth = text(ctx, await authentication(ctx, entry, saved).catch(errorText));
|
|
208
|
+
if (signal.aborted)
|
|
209
|
+
return;
|
|
210
|
+
const choice = await ctx.tui.prompt({ ...list, localize: ['title', 'question', 'actions'], title: 'Provider settings', question: 'Edit the draft, then Apply to save', detail: [settingsDraftSummary(ctx, changes.size + (key ? 1 : 0) + (creating ? 1 : 0)), entry.displayName, entry.provider, text(ctx, diagnostic)].filter(Boolean).join('\n'),
|
|
211
|
+
options: [
|
|
212
|
+
{ label: 'API key', value: 'key', description: key === '' ? auth : text(ctx, 'New key ready to save'), disabled: !canWrite },
|
|
213
|
+
{ label: 'Base URL', value: 'baseURL', description: string(value('baseURL')) || entry.defaultBaseURL || text(ctx, 'Inherited'), disabled: !canWrite },
|
|
214
|
+
...(custom(entry) ? [{ label: 'Display name', value: 'displayName', description: string(value('displayName')) || entry.provider, disabled: !canWrite },
|
|
215
|
+
{ label: 'API protocol', value: 'api', description: string(value('api')) || text(ctx, 'Choose'), disabled: !canWrite }] : []),
|
|
216
|
+
{ label: 'Model list', value: 'models', description: models(value('models')).map(model => string(model.id)).join(', ') || text(ctx, 'Inherited'), disabled: !canWrite },
|
|
217
|
+
{ label: 'Fetch available models', value: 'fetch', disabled: !canWrite },
|
|
218
|
+
...(!custom(entry) ? [{ label: 'Restore default models', value: 'reset', disabled: !canWrite }] : []),
|
|
219
|
+
...(describe(ctx, section.ns)?.revision !== section.revision ? [{ label: 'Load latest and keep draft', value: 'reload' }] : []),
|
|
220
|
+
{ label: 'Apply', value: 'apply', disabled: !canWrite },
|
|
221
|
+
...(deletable(section, entry) && !creating ? [{ label: 'Delete provider', value: 'delete', disabled: !canWrite }] : []),
|
|
222
|
+
{ label: 'Cancel', value: 'cancel' },
|
|
223
|
+
].map(option => ({ ...option, label: text(ctx, option.label) })), signal });
|
|
224
|
+
if (choice === null || choice === 'cancel')
|
|
225
|
+
return;
|
|
226
|
+
if (!canWrite)
|
|
227
|
+
continue;
|
|
228
|
+
try {
|
|
229
|
+
if (choice === 'reload') {
|
|
230
|
+
const latest = describe(ctx, section.ns);
|
|
231
|
+
if (latest === undefined)
|
|
232
|
+
throw new Error('Provider configuration is no longer available.');
|
|
233
|
+
const result = await rebaseSettingsDraft(ctx, section, latest, changes, [...changes.keys()].map(field => ({
|
|
234
|
+
key: field, label: { baseURL: 'Base URL', api: 'API protocol', displayName: 'Display name', models: 'Model list' }[field] ?? field,
|
|
235
|
+
defaultValue: undefined, format: (value) => typeof value === 'string' ? value : JSON.stringify(value) ?? text(ctx, 'Inherited'),
|
|
236
|
+
})), signal, entry.settingsPath);
|
|
237
|
+
if (result === undefined)
|
|
238
|
+
continue;
|
|
239
|
+
const nextSaved = profile(result.section, entry);
|
|
240
|
+
const credentialChanged = saved.apiKeyEnv !== nextSaved.apiKeyEnv;
|
|
241
|
+
section = result.section;
|
|
242
|
+
saved = nextSaved;
|
|
243
|
+
changes.clear();
|
|
244
|
+
for (const [field, value] of result.changes)
|
|
245
|
+
changes.set(field, value);
|
|
246
|
+
diagnostic = 'Latest settings loaded. Your remaining changes are ready to apply.';
|
|
247
|
+
if (key && credentialChanged) {
|
|
248
|
+
key = '';
|
|
249
|
+
diagnostic = 'The credential reference changed. Enter the key again for the current reference.';
|
|
250
|
+
}
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
if (choice === 'apply') {
|
|
254
|
+
signal.throwIfAborted();
|
|
255
|
+
assertRevision(ctx, section);
|
|
256
|
+
if (custom(entry) && (!string(value('api')) || !string(value('baseURL')) || models(value('models')).length === 0))
|
|
257
|
+
throw new Error('Custom APIs require a URL, a protocol and at least one model.');
|
|
258
|
+
const ref = string(saved.apiKeyEnv) || (entry.settingsNs === 'llm-deepseek' ? 'DEEPSEEK_API_KEY' : String(managedProviderCredentialRef(entry.provider)));
|
|
259
|
+
if (key !== '') {
|
|
260
|
+
const info = await ctx.credentials.describe(credentialRef(ref));
|
|
261
|
+
if (!info.writable)
|
|
262
|
+
throw new Error('This credential is managed externally. Update its source before replacing it.');
|
|
263
|
+
}
|
|
264
|
+
signal.throwIfAborted();
|
|
265
|
+
const ops = [...changes].map(([field, fieldValue]) => fieldValue === undefined ? { op: 'unset', path: [...entry.settingsPath, field] } : { op: 'set', path: [...entry.settingsPath, field], value: fieldValue });
|
|
266
|
+
if (key !== '' && saved.apiKeyEnv !== ref)
|
|
267
|
+
ops.push({ op: 'set', path: [...entry.settingsPath, 'apiKeyEnv'], value: ref });
|
|
268
|
+
if (creating && ops.length === 0)
|
|
269
|
+
ops.push({ op: 'set', path: [...entry.settingsPath], value: {} });
|
|
270
|
+
if (ops.length > 0) {
|
|
271
|
+
await ctx.settings.mutate(section.ns, ops, section.revision);
|
|
272
|
+
const next = describe(ctx, entry.settingsNs);
|
|
273
|
+
if (next === undefined)
|
|
274
|
+
throw new Error('Provider configuration is no longer available.');
|
|
275
|
+
section = next;
|
|
276
|
+
saved = profile(section, entry);
|
|
277
|
+
changes.clear();
|
|
278
|
+
creating = false;
|
|
279
|
+
}
|
|
280
|
+
if (key !== '') {
|
|
281
|
+
signal.throwIfAborted();
|
|
282
|
+
assertRevision(ctx, section);
|
|
283
|
+
try {
|
|
284
|
+
await ctx.credentials.set(credentialRef(ref), key);
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
throw new Error('Configuration saved, but the key could not be stored. Your key draft is kept; Apply retries saving it.');
|
|
288
|
+
}
|
|
289
|
+
key = '';
|
|
290
|
+
}
|
|
291
|
+
ctx.tui.notice('Provider saved. The selected model is unchanged.');
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (choice === 'delete') {
|
|
295
|
+
const confirm = await ctx.tui.prompt({ ...list, title: 'Delete provider', question: 'Remove this provider from the profile?', detail: entry.displayName + '\n' + entry.provider,
|
|
296
|
+
options: [{ label: 'Cancel', value: 'cancel' }, { label: 'Delete provider', value: 'delete' }], initialValue: 'cancel', signal });
|
|
297
|
+
if (confirm !== 'delete')
|
|
298
|
+
continue;
|
|
299
|
+
signal.throwIfAborted();
|
|
300
|
+
assertRevision(ctx, section);
|
|
301
|
+
if (!deletable(section, entry))
|
|
302
|
+
throw new Error('This provider is supplied by the deployment and cannot be deleted here.');
|
|
303
|
+
const ref = string(saved.apiKeyEnv);
|
|
304
|
+
if (ref === String(managedProviderCredentialRef(entry.provider))) {
|
|
305
|
+
const info = await ctx.credentials.describe(credentialRef(ref));
|
|
306
|
+
signal.throwIfAborted();
|
|
307
|
+
assertRevision(ctx, section);
|
|
308
|
+
if (info.configured && info.writable && info.source === 'file')
|
|
309
|
+
await ctx.credentials.unset(credentialRef(ref));
|
|
310
|
+
}
|
|
311
|
+
signal.throwIfAborted();
|
|
312
|
+
await ctx.settings.mutate(section.ns, [{ op: 'unset', path: entry.settingsPath }], section.revision);
|
|
313
|
+
ctx.tui.notice('Provider removed. The selected model is unchanged.');
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (choice === 'reset') {
|
|
317
|
+
changes.set('models', undefined);
|
|
318
|
+
diagnostic = '';
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (choice === 'fetch') {
|
|
322
|
+
const found = await llm(ctx).discoverModels(entry.settingsNs, { ...(creating && custom(entry) ? {} : { provider: entry.provider }),
|
|
323
|
+
...(string(value('baseURL')) ? { baseURL: parseBaseURL(string(value('baseURL'))) } : {}), ...(string(value('api')) ? { api: string(value('api')) } : {}), ...(key === '' ? {} : { apiKey: key }) }, signal);
|
|
324
|
+
if (signal.aborted)
|
|
325
|
+
return;
|
|
326
|
+
const candidates = [...new Map(found.filter(row => row.id).map(row => [row.id, row])).values()];
|
|
327
|
+
if (candidates.length === 0)
|
|
328
|
+
throw new Error('No models were returned. Enter model ids manually.');
|
|
329
|
+
const current = models(value('models'));
|
|
330
|
+
const picked = await ctx.tui.prompt({ ...list, localize: ['title', 'question', 'actions'], title: 'Model list', question: 'Choose models to enable', multiSelect: true, filterable: true,
|
|
331
|
+
initialValues: current.length === 0 ? candidates.map(row => row.id) : current.map(row => string(row.id)),
|
|
332
|
+
options: candidates.map(row => ({ label: row.id, value: row.id, description: row.name ?? row.id })), signal });
|
|
333
|
+
if (picked === null)
|
|
334
|
+
continue;
|
|
335
|
+
const selected = new Set(parseModelIds(picked));
|
|
336
|
+
assertCatalogWritable(section, [...entry.settingsPath, 'models']);
|
|
337
|
+
const keep = current.filter(row => !candidates.some(candidate => candidate.id === row.id) || selected.has(string(row.id)));
|
|
338
|
+
changes.set('models', [...keep, ...candidates.filter(row => selected.has(row.id) && !keep.some(existing => existing.id === row.id)).map(row => discoveredModel(entry, row))]);
|
|
339
|
+
diagnostic = '';
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
if (choice === 'models') {
|
|
343
|
+
assertCatalogWritable(section, [...entry.settingsPath, 'models']);
|
|
344
|
+
if (changes.has('models') && value('models') === undefined)
|
|
345
|
+
throw new Error('Apply the restored catalog before editing its models.');
|
|
346
|
+
const inherited = !creating && value('models') === undefined;
|
|
347
|
+
const overrides = object(value('modelOverrides'));
|
|
348
|
+
if (inherited && Object.keys(overrides).length)
|
|
349
|
+
assertCatalogWritable(section, [...entry.settingsPath, 'modelOverrides']);
|
|
350
|
+
const current = inherited
|
|
351
|
+
? (await llm(ctx).listModels(entry.provider)).map(row => ({ id: row.id, ...object(overrides[row.id]) }))
|
|
352
|
+
: models(value('models'));
|
|
353
|
+
const edited = await editModelCatalog(ctx, { models: current, inputField: entry.settingsNs === 'llm-deepseek' ? 'inputModalities' : 'input',
|
|
354
|
+
reasoningLevels: custom(entry) ? modelReasoningLevels(section.schema) : [] }, signal);
|
|
355
|
+
if (edited !== null && edited !== undefined) {
|
|
356
|
+
changes.set('models', edited);
|
|
357
|
+
if (inherited && Object.keys(overrides).length)
|
|
358
|
+
changes.set('modelOverrides', undefined);
|
|
359
|
+
}
|
|
360
|
+
diagnostic = '';
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
if (choice === 'api') {
|
|
364
|
+
const api = await ctx.tui.prompt({ ...list, title: 'API protocol', question: 'Choose a protocol', initialValue: string(value('api')), options: protocols(section).map(api => ({ label: { 'openai-completions': 'OpenAI Chat Completions', 'openai-responses': 'OpenAI Responses', 'anthropic-messages': 'Anthropic Messages' }[api] ?? api, value: api })), signal });
|
|
365
|
+
if (api !== null)
|
|
366
|
+
changes.set('api', api);
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
if (!['key', 'baseURL', 'displayName'].includes(choice))
|
|
370
|
+
continue;
|
|
371
|
+
let draft = choice === 'key' ? key : string(value(choice));
|
|
372
|
+
let fieldError = '';
|
|
373
|
+
while (!signal.aborted) {
|
|
374
|
+
const raw = await ctx.tui.prompt(askPrompt({ localize: ['title', 'question', 'actions', 'detail'], title: 'Provider settings', question: { key: 'API key', baseURL: 'Base URL', displayName: 'Display name' }[choice],
|
|
375
|
+
detail: fieldError || (choice === 'key' ? 'Leave empty to keep the saved credential. Stored keys are never displayed.' : 'Leave empty to restore inheritance.'), initialInput: draft, secret: choice === 'key', signal }));
|
|
376
|
+
if (raw === null)
|
|
377
|
+
break;
|
|
378
|
+
draft = raw;
|
|
379
|
+
try {
|
|
380
|
+
if (choice === 'key')
|
|
381
|
+
key = raw.trim() === '' ? '' : normalizeKey(raw);
|
|
382
|
+
else
|
|
383
|
+
changes.set(choice, raw.trim() === '' ? undefined : choice === 'baseURL' ? parseBaseURL(raw) : raw.trim());
|
|
384
|
+
diagnostic = '';
|
|
385
|
+
break;
|
|
386
|
+
}
|
|
387
|
+
catch (error) {
|
|
388
|
+
fieldError = errorText(error);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
if (signal.aborted)
|
|
394
|
+
return;
|
|
395
|
+
diagnostic = errorText(error);
|
|
396
|
+
ctx.tui.notice(diagnostic, { level: 'error' });
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
function discoveredModel(entry, model) {
|
|
401
|
+
const { inputModalities, ...rest } = model;
|
|
402
|
+
return { ...rest, ...(inputModalities === undefined ? {} : { [entry.settingsNs === 'llm-deepseek' ? 'inputModalities' : 'input']: inputModalities }) };
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=model-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-settings.js","sourceRoot":"","sources":["../../src/runtime/model-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ export interface PlainTuiDeps {
|
|
|
14
14
|
blocks(): readonly Block[];
|
|
15
15
|
mathMode?(): import('../chrome/math.ts').MathMode;
|
|
16
16
|
mermaidMode?(): import('../chrome/mermaid.ts').MermaidMode;
|
|
17
|
+
/** Pipe output prints every thought in full; a reader cannot fold it later. */
|
|
18
|
+
hideThinking?(): boolean;
|
|
17
19
|
/** The in-flight human prompt's request, if one is waiting on an answer. */
|
|
18
20
|
promptRequest(): TuiPrompt | undefined;
|
|
19
21
|
/** Resolve the in-flight prompt; the provider owns prompt bookkeeping. */
|
package/lib/runtime/plain-tui.js
CHANGED
|
@@ -101,7 +101,13 @@ export class PlainTui {
|
|
|
101
101
|
let out = '';
|
|
102
102
|
for (const block of blocks.slice(this.#printed)) {
|
|
103
103
|
// Pipe / CI output is not a viewport: print the full tool body.
|
|
104
|
-
for (const line of blockLines(block, theme, width, {
|
|
104
|
+
for (const line of blockLines(block, theme, width, {
|
|
105
|
+
toolsExpanded: true,
|
|
106
|
+
mathMode: this.#deps.mathMode?.() ?? 'auto',
|
|
107
|
+
mermaidMode: this.#deps.mermaidMode?.() ?? 'auto',
|
|
108
|
+
hideThinking: this.#deps.hideThinking?.() === true,
|
|
109
|
+
thinkingOpen: this.#deps.hideThinking?.() !== true,
|
|
110
|
+
}))
|
|
105
111
|
out += line + '\n';
|
|
106
112
|
}
|
|
107
113
|
this.#printed = blocks.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-tui.js","sourceRoot":"","sources":["../../src/runtime/plain-tui.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,eAAe,EAAkB,MAAM,eAAe,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"plain-tui.js","sourceRoot":"","sources":["../../src/runtime/plain-tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,14 @@ interface ProductForm {
|
|
|
10
10
|
fields: Record<string, string>;
|
|
11
11
|
inline?: string;
|
|
12
12
|
effect?: string;
|
|
13
|
+
staged?: boolean;
|
|
14
|
+
behavior?: string;
|
|
15
|
+
help?: Record<string, string>;
|
|
13
16
|
}
|
|
14
17
|
export declare function nativeIntegrationId(bundle: string): string | undefined;
|
|
15
18
|
/** A failed user action needs acknowledgement before its covering form reopens. */
|
|
16
19
|
export declare function showSettingsError(tui: Pick<TuiService, 'notice' | 'prompt'>, detail: string, signal?: AbortSignal): Promise<void>;
|
|
17
|
-
/**
|
|
20
|
+
/** Inspect registration in place and retain the last complete snapshot on refresh failure. */
|
|
18
21
|
export declare function showIntegrationStatus(ctx: Context, bundle: string, signal: AbortSignal): Promise<void>;
|
|
19
22
|
export interface ConfigField {
|
|
20
23
|
path: string[];
|