@agi-fans/dsh-tui 0.22.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +26 -0
- package/lib/CHANGELOG.md +219 -1
- package/lib/chrome/box.d.ts +1 -18
- package/lib/chrome/box.js +2 -45
- package/lib/chrome/box.js.map +1 -1
- package/lib/chrome/code-highlight.js +4 -4
- package/lib/chrome/code-highlight.js.map +1 -1
- package/lib/chrome/command-output.d.ts +0 -1
- package/lib/chrome/command-output.js +11 -5
- 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.js +4 -3
- package/lib/chrome/main-screen-renderer.js.map +1 -1
- package/lib/chrome/markdown.d.ts +3 -3
- package/lib/chrome/markdown.js +85 -36
- 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/renderer.d.ts +37 -1
- package/lib/chrome/renderer.js.map +1 -1
- package/lib/chrome/status-line.d.ts +3 -3
- package/lib/chrome/status-line.js +5 -5
- package/lib/chrome/status-line.js.map +1 -1
- package/lib/chrome/theme.d.ts +8 -3
- package/lib/chrome/theme.js +51 -153
- package/lib/chrome/theme.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.js +238 -414
- package/lib/commands/auth.js.map +1 -1
- package/lib/commands/diff.js +22 -16
- package/lib/commands/diff.js.map +1 -1
- package/lib/commands/export.d.ts +0 -1
- package/lib/commands/export.js +99 -32
- package/lib/commands/export.js.map +1 -1
- package/lib/commands/files.js +11 -9
- 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 +3 -14
- package/lib/commands/jobs.js +26 -18
- package/lib/commands/jobs.js.map +1 -1
- package/lib/commands/model.d.ts +3 -0
- package/lib/commands/model.js +212 -128
- 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 +65 -54
- package/lib/commands/permission.js.map +1 -1
- package/lib/commands/plugins.js +381 -139
- 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 +12 -15
- package/lib/commands/schedule.js +220 -187
- package/lib/commands/schedule.js.map +1 -1
- package/lib/commands/session-configuration.d.ts +3 -0
- package/lib/commands/session-configuration.js +62 -28
- package/lib/commands/session-configuration.js.map +1 -1
- package/lib/commands/session.js +116 -66
- package/lib/commands/session.js.map +1 -1
- package/lib/commands/terminal.js +14 -8
- package/lib/commands/terminal.js.map +1 -1
- package/lib/definition.d.ts +115 -15
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/input/actions.d.ts +1 -1
- package/lib/input/actions.js +5 -2
- package/lib/input/actions.js.map +1 -1
- 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/image-paste.d.ts +5 -12
- package/lib/input/image-paste.js +32 -28
- 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/keys.d.ts +2 -0
- package/lib/input/keys.js +4 -1
- package/lib/input/keys.js.map +1 -1
- 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 +4 -0
- package/lib/prompt-intents.js +4 -0
- package/lib/prompt-intents.js.map +1 -1
- 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/composer-images.d.ts +2 -2
- package/lib/runtime/composer-images.js +4 -4
- package/lib/runtime/composer-images.js.map +1 -1
- package/lib/runtime/composer-shell.js +27 -1
- 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-review.d.ts +6 -9
- package/lib/runtime/file-review.js +91 -7
- 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/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/plugin-settings.d.ts +4 -1
- package/lib/runtime/plugin-settings.js +164 -88
- 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 +27 -27
- package/lib/runtime/provider-local.js +1288 -308
- 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 +38 -29
- 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 -6
- 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-notifications.d.ts +3 -0
- package/lib/runtime/terminal-notifications.js +13 -8
- package/lib/runtime/terminal-notifications.js.map +1 -1
- package/lib/runtime/terminal-probe.d.ts +2 -0
- package/lib/runtime/terminal-probe.js +9 -0
- package/lib/runtime/terminal-probe.js.map +1 -1
- 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 +121 -49
- 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/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 +33 -20
- package/lib/session/session-controller.js +500 -129
- package/lib/session/session-controller.js.map +1 -1
- package/lib/session/session-library.d.ts +3 -1
- package/lib/session/session-library.js +15 -0
- package/lib/session/session-library.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 +9 -5
- package/lib/session/tui-settings.js +3 -1
- 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 +12 -12
- package/lib/views/autocomplete.js +54 -45
- 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 +6 -2
- package/lib/views/copy-targets.js +19 -14
- package/lib/views/copy-targets.js.map +1 -1
- package/lib/views/document-reader.d.ts +10 -1
- package/lib/views/document-reader.js +63 -6
- package/lib/views/document-reader.js.map +1 -1
- package/lib/views/event-views.js +29 -11
- 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 +4 -4
- 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.js +10 -12
- package/lib/views/hotkeys.js.map +1 -1
- package/lib/views/list-view.js +16 -11
- package/lib/views/list-view.js.map +1 -1
- package/lib/views/prompt-selector.d.ts +23 -1
- package/lib/views/prompt-selector.js +123 -60
- package/lib/views/prompt-selector.js.map +1 -1
- package/lib/views/settings-list.d.ts +6 -1
- package/lib/views/settings-list.js +69 -46
- 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 +5 -6
- package/lib/views/trajectory-timeline.js +25 -15
- package/lib/views/trajectory-timeline.js.map +1 -1
- package/lib/views/trajectory.d.ts +23 -2
- package/lib/views/trajectory.js +404 -186
- package/lib/views/trajectory.js.map +1 -1
- package/lib/views/transcript-render.d.ts +39 -15
- package/lib/views/transcript-render.js +406 -208
- package/lib/views/transcript-render.js.map +1 -1
- package/lib/views/transcript-types.d.ts +3 -2
- 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 +61 -58
- package/lib/chrome/welcome-tips.d.ts +0 -23
- package/lib/chrome/welcome-tips.js +0 -24
- package/lib/chrome/welcome-tips.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-notices.js","sourceRoot":"","sources":["../../src/runtime/startup-notices.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"startup-notices.js","sourceRoot":"","sources":["../../src/runtime/startup-notices.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@ export function apply(ctx) {
|
|
|
9
9
|
throw new Error('Subagent model selection requires the product tool-subagent entry.');
|
|
10
10
|
// The global tool stays available for deployment restrictions. The Harness
|
|
11
11
|
// installs the sampled variant in each Agent's scope and owns its teardown.
|
|
12
|
+
// Discovery is its own opt-in since 0.2.2 and does not follow model selection.
|
|
12
13
|
const inherited = Config(interpolate(ctx, entry.options.config));
|
|
13
|
-
applyDelegation(ctx, { ...inherited,
|
|
14
|
+
applyDelegation(ctx, { ...inherited, modelSelection: true, modelDiscovery: true });
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=subagent-model-selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-model-selection.js","sourceRoot":"","sources":["../../src/runtime/subagent-model-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAG7G,MAAM,CAAC,MAAM,IAAI,GAAG,gCAAgC,CAAA;AACpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,gBAAgB,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAA;AAE/E,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,eAAe;WACjF,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,gCAAgC,CAAC,CAAA;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IAC9G,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAChE,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"subagent-model-selection.js","sourceRoot":"","sources":["../../src/runtime/subagent-model-selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAG7G,MAAM,CAAC,MAAM,IAAI,GAAG,gCAAgC,CAAA;AACpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,gBAAgB,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAA;AAE/E,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,eAAe;WACjF,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,gCAAgC,CAAC,CAAA;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IAC9G,2EAA2E;IAC3E,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAChE,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;AACpF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Delegation preferences remain Harness-owned; this editor only stages their fields. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
export declare const SUBAGENT_SETTINGS_FIELDS: Record<string, readonly string[]>;
|
|
4
|
+
export declare function subagentSettingsEntry(ctx: Context): {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
section: "agent";
|
|
8
|
+
fields: never[];
|
|
9
|
+
summary: string;
|
|
10
|
+
behavior: string;
|
|
11
|
+
keywords: string[];
|
|
12
|
+
description: string;
|
|
13
|
+
}[];
|
|
14
|
+
export declare function openSubagentSettings(ctx: Context, signal: AbortSignal, resetOnly?: boolean): Promise<void>;
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { settingsDraftSummary } from "./settings-draft.js";
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
import { askPrompt } from "../prompt-intents.js";
|
|
4
|
+
import { resolveUiLanguage, uiText } from "../locale/index.js";
|
|
5
|
+
const LIMITS = 'subagent', MODELS = 'subagent-model-selection-settings';
|
|
6
|
+
export const SUBAGENT_SETTINGS_FIELDS = {
|
|
7
|
+
[LIMITS]: ['maxDepth', 'maxActiveSubagents'], [MODELS]: ['enabled', 'allowedModels'],
|
|
8
|
+
};
|
|
9
|
+
const labels = { maxDepth: 'Delegation depth', maxActiveSubagents: 'Concurrent subagents', enabled: 'Model selection', allowedModels: 'Allowed models' };
|
|
10
|
+
const help = {
|
|
11
|
+
maxDepth: 'Main agent: depth 0; its children: depth 1; their children: depth 2. A tool’s own depth limit takes precedence. Applies to future delegations.',
|
|
12
|
+
maxActiveSubagents: 'Counts live subagents at every depth under one main agent, excluding the main agent. Lowering this limit does not stop existing children.',
|
|
13
|
+
enabled: 'Applies to new sessions only. Existing sessions keep their model policy; forked children inherit the parent route. Disabling keeps the model list.',
|
|
14
|
+
allowedModels: 'Choose exact provider and model routes for new sessions. Enabling model selection requires at least one route.',
|
|
15
|
+
};
|
|
16
|
+
const list = { allowCustom: false, notify: false, localize: ['title', 'question', 'actions'] };
|
|
17
|
+
const object = (value) => typeof value === 'object' && value !== null && !Array.isArray(value) ? value : {};
|
|
18
|
+
const text = (ctx, source) => uiText(resolveUiLanguage(ctx.tui.prefs().uiLanguage), source);
|
|
19
|
+
const describe = (ctx, ns) => ctx.settings.describe({ redactSecrets: true }).find(section => section.ns === ns);
|
|
20
|
+
const routes = (value) => Array.isArray(value) ? value.filter((row) => typeof row?.provider === 'string' && typeof row?.model === 'string') : [];
|
|
21
|
+
const routeKey = (route) => encodeURIComponent(JSON.stringify([route.provider, route.model]));
|
|
22
|
+
export function subagentSettingsEntry(ctx) {
|
|
23
|
+
if (![LIMITS, MODELS].some(ns => describe(ctx, ns) !== undefined))
|
|
24
|
+
return [];
|
|
25
|
+
return [{ id: 'subagents:settings', label: 'Subagents', section: 'agent', fields: [], summary: 'Configure', behavior: ctx.settings.writable ? 'Profile · Apply to save' : 'Profile · Read only',
|
|
26
|
+
keywords: ['Subagent models', ...Object.values(labels)], description: 'Edit delegation limits and model choices together, then Apply to save.' }];
|
|
27
|
+
}
|
|
28
|
+
export async function openSubagentSettings(ctx, signal, resetOnly = false) {
|
|
29
|
+
const drafts = new Map();
|
|
30
|
+
const sync = () => {
|
|
31
|
+
for (const ns of [LIMITS, MODELS]) {
|
|
32
|
+
const section = describe(ctx, ns), draft = drafts.get(ns);
|
|
33
|
+
if (draft?.changes.size)
|
|
34
|
+
continue;
|
|
35
|
+
if (section === undefined)
|
|
36
|
+
drafts.delete(ns);
|
|
37
|
+
else
|
|
38
|
+
drafts.set(ns, { section, changes: new Map(), error: '' });
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
sync();
|
|
42
|
+
if (!drafts.size || signal.aborted)
|
|
43
|
+
return;
|
|
44
|
+
const schema = (draft, field) => new z(draft.section.schema).dict?.[field];
|
|
45
|
+
const fields = () => [...drafts].flatMap(([ns, draft]) => (SUBAGENT_SETTINGS_FIELDS[ns] ?? [])
|
|
46
|
+
.filter(field => { const item = schema(draft, field); return item !== undefined && !item.meta.hidden && !item.meta.disabled; })
|
|
47
|
+
.map(field => ({ ns, field, draft })));
|
|
48
|
+
const inherited = (draft, field) => object(draft.section.base)[field] ?? schema(draft, field)?.meta.default;
|
|
49
|
+
const value = (ns, field) => {
|
|
50
|
+
const draft = drafts.get(ns);
|
|
51
|
+
if (draft === undefined)
|
|
52
|
+
return undefined;
|
|
53
|
+
return draft.changes.has(field) ? draft.changes.get(field) ?? inherited(draft, field) : object(draft.section.value)[field] ?? schema(draft, field)?.meta.default;
|
|
54
|
+
};
|
|
55
|
+
const summary = (ns, field, draft) => {
|
|
56
|
+
const current = value(ns, field);
|
|
57
|
+
const shown = field === 'enabled' ? text(ctx, current ? 'Enabled' : 'Disabled') : field === 'allowedModels' ? String(routes(current).length) : String(current ?? '');
|
|
58
|
+
return shown + ' · ' + text(ctx, draft.changes.has(field) ? 'Draft' : Object.hasOwn(object(draft.section.user), field) ? 'Profile override' : 'Inherited');
|
|
59
|
+
};
|
|
60
|
+
// Generation fences prevent late catalog responses from replacing a newer refresh
|
|
61
|
+
// or retaining this editor after dismissal. Providers settle independently.
|
|
62
|
+
let active = true, generation = 0, catalogRevision = 0, loaded = false, pending = 0;
|
|
63
|
+
let catalogError = '';
|
|
64
|
+
const catalogs = new Map(), failures = new Set();
|
|
65
|
+
const reload = () => {
|
|
66
|
+
const epoch = ++generation;
|
|
67
|
+
if (!active || signal.aborted)
|
|
68
|
+
return;
|
|
69
|
+
loaded = true;
|
|
70
|
+
pending = 0;
|
|
71
|
+
catalogError = '';
|
|
72
|
+
failures.clear();
|
|
73
|
+
catalogRevision++;
|
|
74
|
+
try {
|
|
75
|
+
const llm = ctx.get('llm');
|
|
76
|
+
if (llm === undefined)
|
|
77
|
+
throw new Error('Model catalog unavailable');
|
|
78
|
+
const providers = llm.listProviders();
|
|
79
|
+
for (const id of catalogs.keys())
|
|
80
|
+
if (!providers.some(provider => provider.id === id))
|
|
81
|
+
catalogs.delete(id);
|
|
82
|
+
pending = providers.length;
|
|
83
|
+
for (const provider of providers) {
|
|
84
|
+
void Promise.resolve().then(() => llm.listModels(provider.id)).then(models => {
|
|
85
|
+
if (!active || signal.aborted || epoch !== generation)
|
|
86
|
+
return;
|
|
87
|
+
catalogs.set(provider.id, models.map(model => ({ route: { provider: provider.id, model: model.id }, label: `${model.name ?? model.id} · ${provider.id}` })));
|
|
88
|
+
}, () => {
|
|
89
|
+
if (active && !signal.aborted && epoch === generation)
|
|
90
|
+
failures.add(provider.id);
|
|
91
|
+
}).finally(() => {
|
|
92
|
+
if (active && !signal.aborted && epoch === generation) {
|
|
93
|
+
pending--;
|
|
94
|
+
catalogRevision++;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
catalogError = 'Model catalog could not be loaded. Use Refresh models to retry.';
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const catalogChanged = () => { if (loaded)
|
|
104
|
+
reload(); };
|
|
105
|
+
const off = [ctx.on('llm/adapters-updated', catalogChanged), ctx.on('settings/document-updated', catalogChanged)];
|
|
106
|
+
const catalogStatus = () => [
|
|
107
|
+
...(pending ? [text(ctx, 'Loading models…')] : []), ...(catalogError ? [text(ctx, catalogError)] : []),
|
|
108
|
+
...(failures.size ? [text(ctx, 'Some model providers could not be loaded. Use Refresh models to retry.') + ' ' + [...failures].join(', ')] : []),
|
|
109
|
+
].join('\n');
|
|
110
|
+
const pickModels = async () => {
|
|
111
|
+
if (!loaded)
|
|
112
|
+
reload();
|
|
113
|
+
const seen = new Map();
|
|
114
|
+
const current = routes(value(MODELS, 'allowedModels'));
|
|
115
|
+
for (const route of current)
|
|
116
|
+
seen.set(routeKey(route), { route, label: `${route.model} · ${route.provider}` });
|
|
117
|
+
let revision = -1, rows = [];
|
|
118
|
+
const options = () => {
|
|
119
|
+
if (revision === catalogRevision)
|
|
120
|
+
return rows;
|
|
121
|
+
revision = catalogRevision;
|
|
122
|
+
const available = new Set();
|
|
123
|
+
for (const [provider, entries] of catalogs)
|
|
124
|
+
for (const entry of entries) {
|
|
125
|
+
const key = routeKey(entry.route);
|
|
126
|
+
seen.set(key, entry);
|
|
127
|
+
if (!catalogError && !failures.has(provider))
|
|
128
|
+
available.add(key);
|
|
129
|
+
}
|
|
130
|
+
// Keep every displayed route until this picker closes, so a refresh cannot
|
|
131
|
+
// silently drop a checkbox that the user has already toggled.
|
|
132
|
+
rows = [...seen].map(([key, entry]) => ({ label: entry.label, value: key, description: entry.route.model,
|
|
133
|
+
...(!available.has(key) ? { badge: { label: text(ctx, 'Currently unavailable'), tone: 'muted' } } : {}) }));
|
|
134
|
+
const status = catalogStatus();
|
|
135
|
+
if (status)
|
|
136
|
+
rows = [...rows, { label: status, value: '@catalog-status', disabled: true }];
|
|
137
|
+
return rows;
|
|
138
|
+
};
|
|
139
|
+
const answer = await ctx.tui.prompt({ ...list, title: 'Allowed subagent models', question: 'Choose models for the draft',
|
|
140
|
+
detail: text(ctx, 'Space toggles a model; Enter keeps the selection in the draft. Return to Subagents and use Refresh models to retry a failed catalog.'),
|
|
141
|
+
filterable: true, multiSelect: true, allowEmptySelection: true, initialValues: current.map(routeKey),
|
|
142
|
+
emptyText: text(ctx, 'No models are available. Configure a provider or use Refresh models.'), options: options(), refreshOptions: options, signal });
|
|
143
|
+
if (answer === null || signal.aborted)
|
|
144
|
+
return;
|
|
145
|
+
const selected = answer === '' ? [] : answer.split(', ').map(key => {
|
|
146
|
+
const entry = seen.get(key);
|
|
147
|
+
if (entry === undefined)
|
|
148
|
+
throw new Error('Model selection changed. Refresh and retry.');
|
|
149
|
+
return { ...entry.route };
|
|
150
|
+
});
|
|
151
|
+
drafts.get(MODELS).changes.set('allowedModels', selected);
|
|
152
|
+
};
|
|
153
|
+
const editNumber = async (ns, field) => {
|
|
154
|
+
const draft = drafts.get(ns);
|
|
155
|
+
let input = String(value(ns, field) ?? ''), error = '';
|
|
156
|
+
while (!signal.aborted) {
|
|
157
|
+
const raw = await ctx.tui.prompt(askPrompt({ ...list, title: 'Subagents', question: labels[field],
|
|
158
|
+
detail: [text(ctx, help[field]), text(ctx, error || 'Leave empty to restore inheritance.')].join('\n'), initialInput: input, signal }));
|
|
159
|
+
if (raw === null)
|
|
160
|
+
return;
|
|
161
|
+
input = raw;
|
|
162
|
+
try {
|
|
163
|
+
let parsed;
|
|
164
|
+
if (raw.trim()) {
|
|
165
|
+
parsed = Number(raw.trim());
|
|
166
|
+
if (!/^\d+$/u.test(raw.trim()) || !Number.isSafeInteger(parsed) || parsed < (field === 'maxDepth' ? 0 : 1))
|
|
167
|
+
throw new Error(field === 'maxDepth' ? 'Enter a non-negative whole number.' : 'Enter a positive whole number.');
|
|
168
|
+
schema(draft, field)?.(parsed);
|
|
169
|
+
}
|
|
170
|
+
draft.changes.set(field, parsed);
|
|
171
|
+
draft.error = '';
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
catch (cause) {
|
|
175
|
+
error = cause instanceof Error ? cause.message : String(cause);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const restore = async () => {
|
|
180
|
+
const entries = fields();
|
|
181
|
+
const selected = await ctx.tui.prompt({ ...list, title: 'Subagents', question: 'Choose a setting to restore',
|
|
182
|
+
detail: text(ctx, 'Restoring inheritance changes the draft. Apply saves it.'),
|
|
183
|
+
options: entries.map(({ ns, field, draft }) => ({ label: text(ctx, labels[field]), value: field, description: summary(ns, field, draft) })), signal });
|
|
184
|
+
const entry = entries.find(entry => entry.field === selected);
|
|
185
|
+
if (entry !== undefined && !signal.aborted) {
|
|
186
|
+
entry.draft.changes.set(entry.field, undefined);
|
|
187
|
+
entry.draft.error = '';
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
const save = async () => {
|
|
191
|
+
// Validate the combined model policy before writing either section.
|
|
192
|
+
const modelDraft = drafts.get(MODELS);
|
|
193
|
+
if (modelDraft?.changes.size && value(MODELS, 'enabled') === true && !routes(value(MODELS, 'allowedModels')).length) {
|
|
194
|
+
modelDraft.error = 'Choose at least one allowed model before enabling subagent model selection.';
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
let ok = true;
|
|
198
|
+
for (const [ns, draft] of drafts) {
|
|
199
|
+
if (!draft.changes.size)
|
|
200
|
+
continue;
|
|
201
|
+
try {
|
|
202
|
+
signal.throwIfAborted();
|
|
203
|
+
if (!ctx.settings.writable)
|
|
204
|
+
throw new Error('This profile is read-only.');
|
|
205
|
+
if (describe(ctx, ns)?.revision !== draft.section.revision)
|
|
206
|
+
throw new Error('Configuration changed. Your draft is kept. Cancel and reopen to load the latest settings.');
|
|
207
|
+
for (const field of draft.changes.keys())
|
|
208
|
+
schema(draft, field)?.(value(ns, field));
|
|
209
|
+
const ops = [...draft.changes].map(([field, next]) => next === undefined ? { op: 'unset', path: [field] } : { op: 'set', path: [field], value: next });
|
|
210
|
+
await ctx.settings.mutate(ns, ops, draft.section.revision);
|
|
211
|
+
draft.changes.clear();
|
|
212
|
+
draft.error = '';
|
|
213
|
+
const next = describe(ctx, ns);
|
|
214
|
+
if (next === undefined)
|
|
215
|
+
drafts.delete(ns);
|
|
216
|
+
else
|
|
217
|
+
draft.section = next;
|
|
218
|
+
}
|
|
219
|
+
catch (cause) {
|
|
220
|
+
if (signal.aborted)
|
|
221
|
+
return false;
|
|
222
|
+
ok = false;
|
|
223
|
+
draft.error = cause instanceof Error ? cause.message : String(cause);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return ok;
|
|
227
|
+
};
|
|
228
|
+
const detail = () => [settingsDraftSummary(ctx, [...drafts.values()].reduce((count, draft) => count + draft.changes.size, 0)), ...[...drafts.values()].filter(draft => draft.error)
|
|
229
|
+
.map(draft => text(ctx, draft.section.ns === LIMITS ? 'Delegation limits' : 'Subagent models') + ': ' + text(ctx, draft.error))
|
|
230
|
+
.concat(catalogStatus())].filter(Boolean).join('\n');
|
|
231
|
+
try {
|
|
232
|
+
if (resetOnly && ctx.settings.writable)
|
|
233
|
+
await restore();
|
|
234
|
+
while (!signal.aborted) {
|
|
235
|
+
sync();
|
|
236
|
+
const writable = ctx.settings.writable;
|
|
237
|
+
const answer = await ctx.tui.prompt({ ...list, title: 'Subagents', question: 'Edit the draft, then Apply to save',
|
|
238
|
+
detail: detail(), refreshDocument: detail,
|
|
239
|
+
options: [...fields().map(({ ns, field, draft }) => ({ label: text(ctx, labels[field]), value: field, description: summary(ns, field, draft), preview: text(ctx, help[field]), disabled: !writable })),
|
|
240
|
+
{ label: text(ctx, 'Restore inherited setting…'), value: 'restore', disabled: !writable },
|
|
241
|
+
...(drafts.has(MODELS) ? [{ label: text(ctx, 'Refresh models'), value: 'refresh' }] : []),
|
|
242
|
+
{ label: text(ctx, 'Apply'), value: 'apply', disabled: !writable || !drafts.size }, { label: text(ctx, 'Cancel'), value: 'cancel' }], signal });
|
|
243
|
+
if (answer === null || answer === 'cancel' || signal.aborted)
|
|
244
|
+
return;
|
|
245
|
+
if (answer === 'refresh') {
|
|
246
|
+
reload();
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (!ctx.settings.writable)
|
|
250
|
+
continue;
|
|
251
|
+
try {
|
|
252
|
+
const entry = fields().find(entry => entry.field === answer);
|
|
253
|
+
if (answer === 'restore')
|
|
254
|
+
await restore();
|
|
255
|
+
else if (answer === 'apply') {
|
|
256
|
+
if (await save()) {
|
|
257
|
+
ctx.tui.notice('Subagent settings saved.');
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else if (entry !== undefined) {
|
|
262
|
+
if (answer === 'allowedModels')
|
|
263
|
+
await pickModels();
|
|
264
|
+
else if (answer === 'enabled') {
|
|
265
|
+
const choice = await ctx.tui.prompt({ ...list, title: 'Subagents', question: 'Model selection', detail: text(ctx, help.enabled),
|
|
266
|
+
initialValue: value(MODELS, 'enabled') ? 'on' : 'off', options: [{ label: text(ctx, 'Enabled'), value: 'on' }, { label: text(ctx, 'Disabled'), value: 'off' }], signal });
|
|
267
|
+
if (choice !== null && !signal.aborted)
|
|
268
|
+
entry.draft.changes.set('enabled', choice === 'on');
|
|
269
|
+
}
|
|
270
|
+
else
|
|
271
|
+
await editNumber(entry.ns, answer);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (cause) {
|
|
275
|
+
if (signal.aborted)
|
|
276
|
+
return;
|
|
277
|
+
ctx.tui.notice(cause instanceof Error ? text(ctx, cause.message) : String(cause), { level: 'error' });
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
finally {
|
|
282
|
+
active = false;
|
|
283
|
+
generation++;
|
|
284
|
+
for (const dispose of off)
|
|
285
|
+
dispose();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=subagent-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-settings.js","sourceRoot":"","sources":["../../src/runtime/subagent-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { type UiLanguage } from '../locale/index.ts';
|
|
1
2
|
/** Opt-in terminal notifications kept outside the transcript renderer. */
|
|
2
3
|
export type TerminalNotificationPolicy = 'off' | 'unfocused' | 'always';
|
|
3
4
|
export interface TerminalNotificationOptions {
|
|
5
|
+
readonly language?: UiLanguage;
|
|
4
6
|
readonly policy: TerminalNotificationPolicy;
|
|
5
7
|
readonly thresholdMs: number;
|
|
6
8
|
}
|
|
7
9
|
export interface TerminalNotification {
|
|
10
|
+
readonly attention?: boolean;
|
|
8
11
|
readonly title: string;
|
|
9
12
|
readonly body: string;
|
|
10
13
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { uiText } from "../locale/index.js";
|
|
2
2
|
const DEFAULT_OPTIONS = {
|
|
3
3
|
policy: 'off',
|
|
4
4
|
thresholdMs: 30_000,
|
|
@@ -13,18 +13,20 @@ const END_REASON_COPY = {
|
|
|
13
13
|
function eventTime(event, fallback) {
|
|
14
14
|
return typeof event.time === 'number' && Number.isFinite(event.time) ? event.time : fallback;
|
|
15
15
|
}
|
|
16
|
-
function notificationBody(reason, elapsedMs) {
|
|
16
|
+
function notificationBody(reason, elapsedMs, language) {
|
|
17
|
+
const t = (source, values) => uiText(language, source, values);
|
|
17
18
|
const seconds = Math.max(0, Math.round(elapsedMs / 1_000));
|
|
18
19
|
if (reason && reason !== 'complete' && reason !== 'completed') {
|
|
19
|
-
return
|
|
20
|
+
return t('{reason} after {seconds}s', { reason: END_REASON_COPY[reason] === undefined ? t('Turn ended ({reason})', { reason }) : t(END_REASON_COPY[reason]), seconds });
|
|
20
21
|
}
|
|
21
|
-
return
|
|
22
|
+
return t('Turn completed in {seconds}s', { seconds });
|
|
22
23
|
}
|
|
23
24
|
export class TerminalNotificationController {
|
|
24
25
|
#options = DEFAULT_OPTIONS;
|
|
25
26
|
#turnStartedAt;
|
|
26
27
|
configure(options) {
|
|
27
28
|
this.#options = {
|
|
29
|
+
language: options.language ?? 'en',
|
|
28
30
|
policy: options.policy,
|
|
29
31
|
thresholdMs: Math.max(0, options.thresholdMs),
|
|
30
32
|
};
|
|
@@ -47,22 +49,25 @@ export class TerminalNotificationController {
|
|
|
47
49
|
const elapsedMs = Math.max(0, endedAt - startedAt);
|
|
48
50
|
if (this.#options.policy === 'unfocused' && elapsedMs < this.#options.thresholdMs)
|
|
49
51
|
return undefined;
|
|
52
|
+
const language = this.#options.language ?? 'en';
|
|
53
|
+
const attention = !!event.reason && !['complete', 'completed'].includes(event.reason);
|
|
50
54
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
attention,
|
|
56
|
+
title: uiText(language, event.reason && event.reason !== 'complete' && event.reason !== 'completed' ? 'omdsh needs attention' : 'omdsh finished'),
|
|
57
|
+
body: notificationBody(event.reason, elapsedMs, language),
|
|
53
58
|
};
|
|
54
59
|
}
|
|
55
60
|
humanPrompt(label = 'Input required') {
|
|
56
61
|
if (this.#options.policy === 'off')
|
|
57
62
|
return undefined;
|
|
58
|
-
return { title: 'omdsh needs attention', body: label };
|
|
63
|
+
return { attention: true, title: uiText(this.#options.language ?? 'en', 'omdsh needs attention'), body: uiText(this.#options.language ?? 'en', label) };
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
/** Keep one notification per event burst, with input requests and failures first. */
|
|
62
67
|
export class TerminalNotificationQueue {
|
|
63
68
|
#pending;
|
|
64
69
|
offer(notification) {
|
|
65
|
-
if (this.#pending?.title === 'omdsh needs attention' && notification.title
|
|
70
|
+
if ((this.#pending?.attention ?? (this.#pending?.title === 'omdsh needs attention')) && !(notification.attention ?? (notification.title === 'omdsh needs attention')))
|
|
66
71
|
return;
|
|
67
72
|
this.#pending = notification;
|
|
68
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-notifications.js","sourceRoot":"","sources":["../../src/runtime/terminal-notifications.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"terminal-notifications.js","sourceRoot":"","sources":["../../src/runtime/terminal-notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,3 +34,5 @@ export interface NegotiationStep {
|
|
|
34
34
|
* @returns the next protocol, any sequence to write, and whether the choice is final.
|
|
35
35
|
*/
|
|
36
36
|
export declare function negotiateKeyboard(protocol: KeyboardProtocol | undefined, event: KeyEvent): NegotiationStep;
|
|
37
|
+
/** Conservative OSC 8 detection; unknown hosts keep full visible link targets. */
|
|
38
|
+
export declare function supportsHyperlinks(env: NodeJS.ProcessEnv): boolean;
|
|
@@ -34,4 +34,13 @@ export function negotiateKeyboard(protocol, event) {
|
|
|
34
34
|
return { settled: true };
|
|
35
35
|
return { settled: false };
|
|
36
36
|
}
|
|
37
|
+
/** Conservative OSC 8 detection; unknown hosts keep full visible link targets. */
|
|
38
|
+
export function supportsHyperlinks(env) {
|
|
39
|
+
if (env.TMUX || env.STY || env.ZELLIJ || /^(?:tmux|screen)/u.test(env.TERM ?? ''))
|
|
40
|
+
return false;
|
|
41
|
+
const program = (env.TERM_PROGRAM ?? '').toLowerCase();
|
|
42
|
+
return ['wezterm', 'kaku', 'kitty', 'ghostty', 'iterm.app', 'vscode'].includes(program)
|
|
43
|
+
|| Boolean(env.WT_SESSION || env.KITTY_WINDOW_ID || env.WEZTERM_PANE)
|
|
44
|
+
|| Number(env.VTE_VERSION ?? 0) >= 5000;
|
|
45
|
+
}
|
|
37
46
|
//# sourceMappingURL=terminal-probe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-probe.js","sourceRoot":"","sources":["../../src/runtime/terminal-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAA;AAChD,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAC3C,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAc3C;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAsC,EAAE,KAAe;IACvF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC9D,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACxG,yEAAyE;IACzE,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"terminal-probe.js","sourceRoot":"","sources":["../../src/runtime/terminal-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAA;AAChD,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAC3C,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAc3C;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAsC,EAAE,KAAe;IACvF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC9D,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACxG,yEAAyE;IACzE,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC3B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,GAAsB;IACvD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/F,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACtD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;WAClF,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,CAAC;WAClE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAA;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-presentation.js","sourceRoot":"","sources":["../../src/runtime/tool-presentation.ts"],"names":[],"mappings":"AAAA,6EAA6E;
|
|
1
|
+
{"version":3,"file":"tool-presentation.js","sourceRoot":"","sources":["../../src/runtime/tool-presentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TuiService } from '../definition.ts';
|
|
2
|
+
import type { ToolInfo } from '../chrome/tools-list.ts';
|
|
3
|
+
import { type UiLanguage } from '../locale/index.ts';
|
|
4
|
+
/** Search the visible tool catalog and read each complete description. */
|
|
5
|
+
export declare function browseTools(tui: Pick<TuiService, 'prompt' | 'copyText'>, tools: readonly ToolInfo[], language: UiLanguage, signal: AbortSignal, title?: string): Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { choosePrompt } from "../prompt-intents.js";
|
|
2
|
+
import { uiText } from "../locale/index.js";
|
|
3
|
+
import { readReference } from "./reference-reader.js";
|
|
4
|
+
import { createPromptBrowser } from "./prompt-browser.js";
|
|
5
|
+
/** Search the visible tool catalog and read each complete description. */
|
|
6
|
+
export async function browseTools(tui, tools, language, signal, title = 'Tools') {
|
|
7
|
+
const t = (source) => uiText(language, source);
|
|
8
|
+
const prompt = createPromptBrowser(request => tui.prompt(request));
|
|
9
|
+
let selected;
|
|
10
|
+
const sorted = [...tools].sort((a, b) => a.name.localeCompare(b.name));
|
|
11
|
+
while (!signal.aborted) {
|
|
12
|
+
const answer = await prompt(choosePrompt({ title: t(title), question: t('Search tools · Enter reads the full description'),
|
|
13
|
+
filterable: true, submitLabel: t('read'), emptyText: t(tools.length === 0 ? 'No tools are available to this session.' : 'No tools match this search.'),
|
|
14
|
+
...(selected === undefined ? {} : { initialValue: selected }), signal,
|
|
15
|
+
options: sorted.map(tool => ({ label: tool.name, value: tool.name,
|
|
16
|
+
description: tool.description.split('\n').find(line => line.trim() !== '') ?? t('No description provided.'),
|
|
17
|
+
preview: tool.description, submitLabel: t('read') })) }));
|
|
18
|
+
if (answer === null || signal.aborted)
|
|
19
|
+
return;
|
|
20
|
+
const tool = sorted.find(item => item.name === answer);
|
|
21
|
+
if (tool === undefined)
|
|
22
|
+
continue;
|
|
23
|
+
selected = answer;
|
|
24
|
+
await readReference(tui, tool.name, tool.description || t('No description provided.'), signal);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=tool-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-reader.js","sourceRoot":"","sources":["../../src/runtime/tool-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAmB,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAA4C,EAAE,KAA0B,EAAE,QAAoB,EAAE,MAAmB,EAAE,KAAK,GAAG,OAAO;IACpK,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAClE,IAAI,QAA4B,CAAA;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACtE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,iDAAiD,CAAC;YACxH,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACtJ,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;YACrE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI;gBAC/D,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC;gBAC3G,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7D,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO;YAAE,OAAM;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACtD,IAAI,IAAI,KAAK,SAAS;YAAE,SAAQ;QAChC,QAAQ,GAAG,MAAM,CAAA;QACjB,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,CAAA;IAChG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Staged search/fetch preferences over Harness namespaces and credentials. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
/** Only fields served by the combined editor leave their generic forms. */
|
|
4
|
+
export declare const WEB_SETTINGS_FIELDS: Record<string, readonly string[]>;
|
|
5
|
+
export declare function webSettingsEntry(ctx: Context): {
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
section: "integrations";
|
|
9
|
+
fields: never[];
|
|
10
|
+
behavior: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}[];
|
|
14
|
+
export declare function openWebSettings(ctx: Context, signal: AbortSignal): Promise<void>;
|