@qduc/term2 0.25.0 → 0.26.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/dist/acp-v2/agent.d.ts +37 -0
- package/dist/acp-v2/agent.d.ts.map +1 -0
- package/dist/acp-v2/agent.js +171 -0
- package/dist/acp-v2/agent.js.map +1 -0
- package/dist/acp-v2/serve-args.d.ts +26 -0
- package/dist/acp-v2/serve-args.d.ts.map +1 -0
- package/dist/acp-v2/serve-args.js +29 -0
- package/dist/acp-v2/serve-args.js.map +1 -0
- package/dist/acp-v2/serve.d.ts +32 -0
- package/dist/acp-v2/serve.d.ts.map +1 -0
- package/dist/acp-v2/serve.js +232 -0
- package/dist/acp-v2/serve.js.map +1 -0
- package/dist/acp-v2/session-backend.d.ts +58 -0
- package/dist/acp-v2/session-backend.d.ts.map +1 -0
- package/dist/acp-v2/session-backend.js +554 -0
- package/dist/acp-v2/session-backend.js.map +1 -0
- package/dist/agent.d.ts +1 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +1 -0
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +12 -6
- package/dist/app.js.map +1 -1
- package/dist/cli.js +24 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/retry-failed-turn-command.d.ts +1 -0
- package/dist/commands/retry-failed-turn-command.d.ts.map +1 -1
- package/dist/commands/retry-failed-turn-command.js +3 -0
- package/dist/commands/retry-failed-turn-command.js.map +1 -1
- package/dist/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/components/MarkdownRenderer.js +111 -19
- package/dist/components/MarkdownRenderer.js.map +1 -1
- package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
- package/dist/components/input/ModelMenuSession.js +5 -2
- package/dist/components/input/ModelMenuSession.js.map +1 -1
- package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
- package/dist/components/input/SettingsValueMenuSession.js +55 -35
- package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
- package/dist/components/input/SubagentPoolMenuSession.d.ts.map +1 -1
- package/dist/components/input/SubagentPoolMenuSession.js +3 -3
- package/dist/components/input/SubagentPoolMenuSession.js.map +1 -1
- package/dist/components/input/menu-bindings.d.ts +8 -4
- package/dist/components/input/menu-bindings.d.ts.map +1 -1
- package/dist/components/input/menu-bindings.js +14 -2
- package/dist/components/input/menu-bindings.js.map +1 -1
- package/dist/components/input/settings-intent-host.d.ts.map +1 -1
- package/dist/components/input/settings-intent-host.js +2 -1
- package/dist/components/input/settings-intent-host.js.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.d.ts +2 -1
- package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.js +19 -19
- package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsSelectionMenu.js +32 -10
- package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.d.ts +8 -1
- package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/SettingsValueSelectionMenu.js +52 -34
- package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
- package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
- package/dist/components/menu/StandaloneModelPickerApp.js +5 -2
- package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
- package/dist/components/menu/settings-value-formatter.d.ts +11 -0
- package/dist/components/menu/settings-value-formatter.d.ts.map +1 -1
- package/dist/components/menu/settings-value-formatter.js +37 -2
- package/dist/components/menu/settings-value-formatter.js.map +1 -1
- package/dist/components/message/ChatMessage.js +2 -2
- package/dist/components/message/ChatMessage.js.map +1 -1
- package/dist/components/message/command-message-helpers.d.ts +7 -7
- package/dist/components/message/command-message-helpers.d.ts.map +1 -1
- package/dist/gateway/interaction-protocol.d.ts +2 -1
- package/dist/gateway/interaction-protocol.d.ts.map +1 -1
- package/dist/gateway/interaction-protocol.js +15 -14
- package/dist/gateway/interaction-protocol.js.map +1 -1
- package/dist/gateway/runtime-factory.d.ts.map +1 -1
- package/dist/gateway/runtime-factory.js +6 -2
- package/dist/gateway/runtime-factory.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts +4 -0
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +1 -1
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +3 -1
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +2 -2
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-conversation-messages.d.ts +1 -0
- package/dist/hooks/use-conversation-messages.d.ts.map +1 -1
- package/dist/hooks/use-conversation-messages.js +11 -0
- package/dist/hooks/use-conversation-messages.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +1 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +2 -1
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +25 -6
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +37 -18
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/hooks/use-profile-selection.d.ts.map +1 -1
- package/dist/hooks/use-profile-selection.js +1 -0
- package/dist/hooks/use-profile-selection.js.map +1 -1
- package/dist/hooks/use-provider-selection.js +4 -4
- package/dist/hooks/use-provider-selection.js.map +1 -1
- package/dist/hooks/use-settings-completion.d.ts +7 -1
- package/dist/hooks/use-settings-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-completion.js +21 -1
- package/dist/hooks/use-settings-completion.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +7 -2
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-standalone-model-picker.d.ts +9 -4
- package/dist/hooks/use-standalone-model-picker.d.ts.map +1 -1
- package/dist/hooks/use-standalone-model-picker.js +44 -18
- package/dist/hooks/use-standalone-model-picker.js.map +1 -1
- package/dist/hooks/use-subagent-pool-selection.d.ts +3 -2
- package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -1
- package/dist/hooks/use-subagent-pool-selection.js +11 -7
- package/dist/hooks/use-subagent-pool-selection.js.map +1 -1
- package/dist/lib/agent-client.d.ts +1 -0
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +17 -0
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts +1 -0
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +3 -0
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +1 -0
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +13 -5
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/prompts/fragments/{gpt-6-astra.md → gpt-6.md} +0 -6
- package/dist/prompts/fragments/skill-instruction-conflicts.md +5 -0
- package/dist/prompts/gpt-5.6.md +1 -1
- package/dist/prompts/orchestrator-prompt.test.ts +5 -2
- package/dist/prompts/orchestrator.md +1 -1
- package/dist/prompts/pair-mode-stub.md +3 -0
- package/dist/prompts/pair-mode.md +29 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -1
- package/dist/prompts/prompt-constructor.js +1 -0
- package/dist/prompts/prompt-constructor.js.map +1 -1
- package/dist/prompts/prompt-constructor.test.ts +28 -18
- package/dist/prompts/prompt-constructor.ts +1 -0
- package/dist/prompts/prompt-profiles.js +3 -3
- package/dist/prompts/prompt-profiles.js.map +1 -1
- package/dist/prompts/prompt-profiles.ts +3 -3
- package/dist/prompts/steering-notice.d.ts +3 -3
- package/dist/prompts/steering-notice.d.ts.map +1 -1
- package/dist/prompts/steering-notice.js +13 -5
- package/dist/prompts/steering-notice.js.map +1 -1
- package/dist/prompts/steering-notice.test.ts +36 -0
- package/dist/prompts/steering-notice.ts +17 -4
- package/dist/prompts/subagents/base-gpt-5-modern.md +1 -1
- package/dist/prompts/subagents/worker-prompt.test.ts +13 -1
- package/dist/prompts/subagents/worker.md +4 -2
- package/dist/providers/model-catalog/catalog.generated.d.ts +505 -361
- package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
- package/dist/providers/model-catalog/catalog.generated.js +505 -361
- package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
- package/dist/providers/openrouter-decisions.d.ts +8 -0
- package/dist/providers/openrouter-decisions.d.ts.map +1 -1
- package/dist/providers/openrouter-decisions.js +59 -12
- package/dist/providers/openrouter-decisions.js.map +1 -1
- package/dist/scripts/eval-gpt6-prompts.d.ts +2 -0
- package/dist/scripts/eval-gpt6-prompts.d.ts.map +1 -0
- package/dist/scripts/eval-gpt6-prompts.js +214 -0
- package/dist/scripts/eval-gpt6-prompts.js.map +1 -0
- package/dist/services/agent-runtime/application-run-loop.d.ts +3 -0
- package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
- package/dist/services/agent-runtime/application-run-loop.js +39 -3
- package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +8 -3
- package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
- package/dist/services/approval/decision-shadow.d.ts +14 -3
- package/dist/services/approval/decision-shadow.d.ts.map +1 -1
- package/dist/services/approval/decision-shadow.js +11 -12
- package/dist/services/approval/decision-shadow.js.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.d.ts +0 -2
- package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
- package/dist/services/approval/non-interactive-approval-policy.js +0 -2
- package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts +1 -3
- package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
- package/dist/services/approval/shell-auto-approval-evaluator.js +99 -77
- package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
- package/dist/services/conversation/conversation-events.d.ts +6 -1
- package/dist/services/conversation/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation/conversation-events.js.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +10 -0
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/decision-shadow/decision-client.d.ts +42 -0
- package/dist/services/decision-shadow/decision-client.d.ts.map +1 -0
- package/dist/services/decision-shadow/decision-client.js +94 -0
- package/dist/services/decision-shadow/decision-client.js.map +1 -0
- package/dist/services/decision-shadow/decision-shadow-observer.d.ts +16 -0
- package/dist/services/decision-shadow/decision-shadow-observer.d.ts.map +1 -0
- package/dist/services/decision-shadow/decision-shadow-observer.js +2 -0
- package/dist/services/decision-shadow/decision-shadow-observer.js.map +1 -0
- package/dist/services/decision-shadow/decision-shadow-pilot.d.ts +14 -0
- package/dist/services/decision-shadow/decision-shadow-pilot.d.ts.map +1 -0
- package/dist/services/decision-shadow/decision-shadow-pilot.js +166 -0
- package/dist/services/decision-shadow/decision-shadow-pilot.js.map +1 -0
- package/dist/services/decision-shadow/failure-observation.d.ts +10 -0
- package/dist/services/decision-shadow/failure-observation.d.ts.map +1 -0
- package/dist/services/decision-shadow/failure-observation.js +26 -0
- package/dist/services/decision-shadow/failure-observation.js.map +1 -0
- package/dist/services/decision-shadow/failure-triage.d.ts +33 -0
- package/dist/services/decision-shadow/failure-triage.d.ts.map +1 -0
- package/dist/services/decision-shadow/failure-triage.js +60 -0
- package/dist/services/decision-shadow/failure-triage.js.map +1 -0
- package/dist/services/decision-shadow/replay-evaluator.d.ts +44 -0
- package/dist/services/decision-shadow/replay-evaluator.d.ts.map +1 -0
- package/dist/services/decision-shadow/replay-evaluator.js +65 -0
- package/dist/services/decision-shadow/replay-evaluator.js.map +1 -0
- package/dist/services/decision-shadow/replay-fixtures.d.ts +8 -0
- package/dist/services/decision-shadow/replay-fixtures.d.ts.map +1 -0
- package/dist/services/decision-shadow/replay-fixtures.js +14 -0
- package/dist/services/decision-shadow/replay-fixtures.js.map +1 -0
- package/dist/services/mode-notices.d.ts.map +1 -1
- package/dist/services/mode-notices.js +5 -1
- package/dist/services/mode-notices.js.map +1 -1
- package/dist/services/models/decision-model-listing.d.ts +3 -3
- package/dist/services/models/decision-model-listing.d.ts.map +1 -1
- package/dist/services/models/decision-model-listing.js +3 -3
- package/dist/services/models/decision-model-listing.js.map +1 -1
- package/dist/services/models/model-nicknames.d.ts +38 -2
- package/dist/services/models/model-nicknames.d.ts.map +1 -1
- package/dist/services/models/model-nicknames.js +64 -8
- package/dist/services/models/model-nicknames.js.map +1 -1
- package/dist/services/models/model-tabs.d.ts +22 -0
- package/dist/services/models/model-tabs.d.ts.map +1 -0
- package/dist/services/models/model-tabs.js +38 -0
- package/dist/services/models/model-tabs.js.map +1 -0
- package/dist/services/profiles/labels.d.ts.map +1 -1
- package/dist/services/profiles/labels.js +2 -0
- package/dist/services/profiles/labels.js.map +1 -1
- package/dist/services/profiles/legacy-adapter.d.ts.map +1 -1
- package/dist/services/profiles/legacy-adapter.js +1 -0
- package/dist/services/profiles/legacy-adapter.js.map +1 -1
- package/dist/services/profiles/profile-transition.d.ts.map +1 -1
- package/dist/services/profiles/profile-transition.js +3 -0
- package/dist/services/profiles/profile-transition.js.map +1 -1
- package/dist/services/profiles/registry.d.ts.map +1 -1
- package/dist/services/profiles/registry.js +8 -0
- package/dist/services/profiles/registry.js.map +1 -1
- package/dist/services/session/continuation-recovery-handler.d.ts +4 -2
- package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
- package/dist/services/session/continuation-recovery-handler.js +1 -1
- package/dist/services/session/continuation-recovery-handler.js.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.d.ts +4 -2
- package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
- package/dist/services/session/initial-turn-recovery-handler.js +1 -1
- package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
- package/dist/services/session/pending-interaction-state.d.ts +2 -0
- package/dist/services/session/pending-interaction-state.d.ts.map +1 -1
- package/dist/services/session/pending-interaction-state.js +12 -0
- package/dist/services/session/pending-interaction-state.js.map +1 -1
- package/dist/services/session/session-composition.d.ts +18 -2
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +74 -46
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/settings/ancillary-settings-migration.d.ts.map +1 -1
- package/dist/services/settings/ancillary-settings-migration.js +4 -0
- package/dist/services/settings/ancillary-settings-migration.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +4 -4
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +17 -17
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-service.d.ts +4 -1
- package/dist/services/settings/settings-service.d.ts.map +1 -1
- package/dist/services/settings/settings-service.js +19 -24
- package/dist/services/settings/settings-service.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts +1 -1
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +1 -1
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/settings/settings-ui-metadata.d.ts +4 -0
- package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
- package/dist/services/settings/settings-ui-metadata.js +22 -13
- package/dist/services/settings/settings-ui-metadata.js.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js +1 -1
- package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
- package/dist/services/subagents/role-loader.d.ts.map +1 -1
- package/dist/services/subagents/role-loader.js +1 -0
- package/dist/services/subagents/role-loader.js.map +1 -1
- package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
- package/dist/services/subagents/subagent-async-registry.js +1 -0
- package/dist/services/subagents/subagent-async-registry.js.map +1 -1
- package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
- package/dist/tools/system/run-code/run-code.js +1 -0
- package/dist/tools/system/run-code/run-code.js.map +1 -1
- package/dist/tools/system/shell.d.ts +2 -0
- package/dist/tools/system/shell.d.ts.map +1 -1
- package/dist/tools/system/shell.js +9 -4
- package/dist/tools/system/shell.js.map +1 -1
- package/dist/types/message.d.ts +2 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/clear-input-before-reset.d.ts +19 -0
- package/dist/utils/clear-input-before-reset.d.ts.map +1 -0
- package/dist/utils/clear-input-before-reset.js +20 -0
- package/dist/utils/clear-input-before-reset.js.map +1 -0
- package/dist/utils/settings-command.d.ts +2 -0
- package/dist/utils/settings-command.d.ts.map +1 -1
- package/dist/utils/settings-command.js +30 -1
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/shell/sandbox/denied-read-detector.d.ts.map +1 -1
- package/dist/utils/shell/sandbox/denied-read-detector.js +10 -6
- package/dist/utils/shell/sandbox/denied-read-detector.js.map +1 -1
- package/dist/utils/value-suggestions.js +3 -3
- package/dist/utils/value-suggestions.js.map +1 -1
- package/package.json +2 -1
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
* recorded decision rather than silently reverting it.
|
|
21
21
|
*/
|
|
22
22
|
/** Every event/command id a menu interaction may advertise a key for. */
|
|
23
|
-
export declare const MENU_COMMAND_VOCABULARY: readonly ['move', 'accept', 'escape', 'input', 'tab', 'left', 'right', 'backspace', 'refresh', 'favorite', 'nickname'];
|
|
24
|
-
export type MenuCommandId = 'move' | 'accept' | 'escape' | 'input' | 'tab' | 'left' | 'right' | 'backspace' | 'refresh' | 'favorite' | 'nickname';
|
|
23
|
+
export declare const MENU_COMMAND_VOCABULARY: readonly ['move', 'accept', 'escape', 'input', 'tab', 'left', 'right', 'backspace', 'delete', 'refresh', 'favorite', 'nickname'];
|
|
24
|
+
export type MenuCommandId = 'move' | 'accept' | 'escape' | 'input' | 'tab' | 'left' | 'right' | 'backspace' | 'delete' | 'refresh' | 'favorite' | 'nickname';
|
|
25
25
|
export type MenuBinding = Readonly<{
|
|
26
26
|
/** Footer key label, e.g. '↑↓' or 'Tab/←→'. */
|
|
27
27
|
key: string;
|
|
@@ -50,6 +50,10 @@ export declare const MODEL_MENU_PROVIDER_TAB_BINDINGS: MenuBindingTable;
|
|
|
50
50
|
* bindings are advertised.
|
|
51
51
|
*/
|
|
52
52
|
export declare const MODEL_MENU_NICKNAME_DRAFT_BINDINGS: MenuBindingTable;
|
|
53
|
+
/** Existing nickname draft: Delete removes it without clearing the text. */
|
|
54
|
+
export declare const MODEL_MENU_NICKNAME_EDIT_BINDINGS: MenuBindingTable;
|
|
55
|
+
/** Same editor once Enter has offered to move a name off another model. */
|
|
56
|
+
export declare const MODEL_MENU_NICKNAME_REPLACE_BINDINGS: MenuBindingTable;
|
|
53
57
|
/** Model picker error/empty fallback under a legacy per-provider tab. */
|
|
54
58
|
export declare const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS: MenuBindingTable;
|
|
55
59
|
/**
|
|
@@ -59,11 +63,11 @@ export declare const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS: MenuBindingTable;
|
|
|
59
63
|
* MODEL_MENU_NICKNAME_DRAFT_BINDINGS instead and does not call this.
|
|
60
64
|
*/
|
|
61
65
|
export declare const modelMenuFooterBindings: (dims: {
|
|
62
|
-
/** The frame renders the Favorites/All tab switcher (unified mode). */
|
|
66
|
+
/** The frame renders the Favorites/Nicknames/All tab switcher (unified mode). */
|
|
63
67
|
tabDimension: boolean;
|
|
64
68
|
/** The frame renders a legacy per-provider tab bar. */
|
|
65
69
|
providerDimension: boolean;
|
|
66
|
-
/** The highlighted row can be nicknamed (Favorites or unified view). */
|
|
70
|
+
/** The highlighted row can be nicknamed (Favorites, Nicknames, or unified view). */
|
|
67
71
|
nicknameAvailable: boolean;
|
|
68
72
|
}) => MenuBindingTable;
|
|
69
73
|
//# sourceMappingURL=menu-bindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-bindings.d.ts","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,YAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,GACN,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,WAAW,EAAE,CAAC;AAEtD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,aAAc,gBAAgB,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC;AAEnD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,gBAWjC,CAAC;AA8BF,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,gCAAgC,EAAE,gBAE9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,gBAGhD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qCAAqC,EAAE,gBAGnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,SAAU;IAC5C,
|
|
1
|
+
{"version":3,"file":"menu-bindings.d.ts","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,YAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,GACN,OAAO,GACP,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,WAAW,EAAE,CAAC;AAEtD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,aAAc,gBAAgB,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC;AAEnD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,gBAWjC,CAAC;AA8BF,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,gCAAgC,EAAE,gBAE9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,gBAGhD,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,EAAE,gBAI/C,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,EAAE,gBAGlD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qCAAqC,EAAE,gBAGnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,SAAU;IAC5C,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,iBAAiB,EAAE,OAAO,CAAC;CAC5B,KAAG,gBAKH,CAAC"}
|
|
@@ -29,6 +29,7 @@ export const MENU_COMMAND_VOCABULARY = [
|
|
|
29
29
|
'left',
|
|
30
30
|
'right',
|
|
31
31
|
'backspace',
|
|
32
|
+
'delete',
|
|
32
33
|
'refresh',
|
|
33
34
|
'favorite',
|
|
34
35
|
'nickname',
|
|
@@ -50,7 +51,7 @@ export const SLASH_MENU_BINDINGS = [
|
|
|
50
51
|
/**
|
|
51
52
|
* Model picker list-footer segments, in advertised order. Owned by
|
|
52
53
|
* ModelMenuSession's interaction while no nickname draft is open;
|
|
53
|
-
* MODEL_MENU_BINDINGS is the unified (Favorites/All) composition.
|
|
54
|
+
* MODEL_MENU_BINDINGS is the unified (Favorites/Nicknames/All) composition.
|
|
54
55
|
*/
|
|
55
56
|
const MODEL_MENU_CORE_BINDINGS = [
|
|
56
57
|
{ key: '↑↓', action: 'navigate', commands: ['move'] },
|
|
@@ -61,7 +62,7 @@ const MODEL_MENU_TAB_BINDINGS = [
|
|
|
61
62
|
key: 'Tab/←→',
|
|
62
63
|
action: 'tab',
|
|
63
64
|
commands: ['tab', 'left', 'right'],
|
|
64
|
-
rationale: 'User decision f106ddd1 (2026-09-11): Tab switches
|
|
65
|
+
rationale: 'User decision f106ddd1 (2026-09-11): Tab switches model-picker tabs and never completes the highlighted model id into the composer; Enter is the only selection key. The tabs are Favorites, Nicknames, and All.',
|
|
65
66
|
},
|
|
66
67
|
];
|
|
67
68
|
const MODEL_MENU_NICKNAME_BINDINGS = [{ key: 'ctrl+n', action: 'nickname', commands: ['nickname'] }];
|
|
@@ -90,6 +91,17 @@ export const MODEL_MENU_NICKNAME_DRAFT_BINDINGS = [
|
|
|
90
91
|
{ key: '⏎', action: 'save nickname', commands: ['accept'] },
|
|
91
92
|
{ key: 'esc', action: 'cancel nickname', commands: ['escape'] },
|
|
92
93
|
];
|
|
94
|
+
/** Existing nickname draft: Delete removes it without clearing the text. */
|
|
95
|
+
export const MODEL_MENU_NICKNAME_EDIT_BINDINGS = [
|
|
96
|
+
{ key: '⏎', action: 'save nickname', commands: ['accept'] },
|
|
97
|
+
{ key: 'Delete', action: 'remove nickname', commands: ['delete'] },
|
|
98
|
+
{ key: 'esc', action: 'cancel nickname', commands: ['escape'] },
|
|
99
|
+
];
|
|
100
|
+
/** Same editor once Enter has offered to move a name off another model. */
|
|
101
|
+
export const MODEL_MENU_NICKNAME_REPLACE_BINDINGS = [
|
|
102
|
+
{ key: '⏎', action: 'replace nickname', commands: ['accept'] },
|
|
103
|
+
{ key: 'esc', action: 'cancel nickname', commands: ['escape'] },
|
|
104
|
+
];
|
|
93
105
|
/** Model picker error/empty fallback under a legacy per-provider tab. */
|
|
94
106
|
export const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS = [
|
|
95
107
|
{ key: '←→', action: 'switch provider', commands: ['left', 'right'] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-bindings.js","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,yEAAyE;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"menu-bindings.js","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-intent-host.d.ts","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-intent-host.d.ts","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;CACzD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,GAAG,YAAY,GAAG,SAAS,CAwDnH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatSettingValueDetail } from '../menu/settings-value-formatter.js';
|
|
1
2
|
/**
|
|
2
3
|
* Handles the `apply-settings` and `reset-setting` domain intents produced by
|
|
3
4
|
* the settings / settings-value / model controller graph. Returns `undefined`
|
|
@@ -29,7 +30,7 @@ export function handleSettingsIntent(request, deps) {
|
|
|
29
30
|
if (change.persistence === 'runtime')
|
|
30
31
|
onSettingChange?.(change.key, change.value);
|
|
31
32
|
else
|
|
32
|
-
onSystemMessage?.(`Saved ${change.key} = ${change.value}.
|
|
33
|
+
onSystemMessage?.(`Saved ${change.key} = ${formatSettingValueDetail(change.key, change.value)}. Restart term2 for it to take effect.`);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-intent-host.js","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings-intent-host.js","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@ import { FC } from 'react';
|
|
|
2
2
|
import type { ModelInfo } from '../../services/model-service.js';
|
|
3
3
|
import type { SettingsService } from '../../services/settings/settings-service.js';
|
|
4
4
|
import type { NicknameDraftState } from '../../hooks/use-model-selection.js';
|
|
5
|
+
import { type ModelTab } from '../../services/models/model-tabs.js';
|
|
5
6
|
type Props = {
|
|
6
7
|
items: ModelInfo[];
|
|
7
8
|
selectedIndex: number;
|
|
8
9
|
query: string;
|
|
9
10
|
provider?: string | null;
|
|
10
11
|
/** Top-level cross-provider view. Omit for legacy provider-tab callers. */
|
|
11
|
-
modelTab?:
|
|
12
|
+
modelTab?: ModelTab;
|
|
12
13
|
loading?: boolean;
|
|
13
14
|
error?: string | null;
|
|
14
15
|
warning?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAOjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAOjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAa7E,OAAO,EAAgC,KAAK,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAYlG,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,KAAK,CAsOjC,CAAC;eAEa,kBAAkB"}
|
|
@@ -7,22 +7,28 @@ import { MenuContainer, MenuFooter, SelectionMarker } from '../common/MenuContai
|
|
|
7
7
|
import { ScrollableTabBar } from '../common/ScrollableTabBar.js';
|
|
8
8
|
import { COLOR_ACCENT, COLOR_DANGER, COLOR_TEXT, COLOR_TEXT_SUBTLE, COLOR_WARNING, GLYPH_FAVORITE, GLYPH_WARNING, } from '../theme.js';
|
|
9
9
|
import { FAVORITES_TAB_ID, serializeFavorite } from '../../services/models/model-favorites.js';
|
|
10
|
-
import {
|
|
10
|
+
import { MODEL_TAB_LABELS, MODEL_TABS } from '../../services/models/model-tabs.js';
|
|
11
|
+
import { MODEL_MENU_NICKNAME_DRAFT_BINDINGS, MODEL_MENU_NICKNAME_EDIT_BINDINGS, MODEL_MENU_NICKNAME_REPLACE_BINDINGS, MODEL_MENU_PROVIDER_FALLBACK_BINDINGS, bindingHints, modelMenuFooterBindings, } from '../input/menu-bindings.js';
|
|
11
12
|
const EMPTY_FAVORITE_KEYS = new Set();
|
|
12
13
|
const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, loading = false, error = null, warning = null, scrollOffset = 0, maxHeight = 10, canSwitchProvider = true, providerSwitchDisabledMessage = 'Provider can only be changed at the start of a new conversation (/clear to reset)', credentialRevision = 0, settingsService, favoriteKeys = EMPTY_FAVORITE_KEYS, nicknameLabels, nicknameDraft = null, }) => {
|
|
13
14
|
const isFavoritesTab = modelTab === 'favorites' || provider === FAVORITES_TAB_ID;
|
|
15
|
+
const isNicknamesTab = modelTab === 'nicknames';
|
|
14
16
|
const isUnified = provider == null;
|
|
15
17
|
// The footer renders from declared binding tables (menu-bindings.ts), so a
|
|
16
18
|
// hint cannot drift from the behavior the owning session implements. While
|
|
17
19
|
// a nickname draft is open the draft editor owns the input row and only the
|
|
18
20
|
// draft bindings are advertised.
|
|
19
|
-
const footerBindings = nicknameDraft
|
|
20
|
-
?
|
|
21
|
-
:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
const footerBindings = nicknameDraft?.pendingReplace
|
|
22
|
+
? MODEL_MENU_NICKNAME_REPLACE_BINDINGS
|
|
23
|
+
: nicknameDraft?.existingNickname
|
|
24
|
+
? MODEL_MENU_NICKNAME_EDIT_BINDINGS
|
|
25
|
+
: nicknameDraft
|
|
26
|
+
? MODEL_MENU_NICKNAME_DRAFT_BINDINGS
|
|
27
|
+
: modelMenuFooterBindings({
|
|
28
|
+
tabDimension: modelTab != null,
|
|
29
|
+
providerDimension: !isUnified,
|
|
30
|
+
nicknameAvailable: isFavoritesTab || isNicknamesTab || isUnified,
|
|
31
|
+
});
|
|
26
32
|
const openAIApiKey = useSetting(settingsService, 'agent.openai.apiKey');
|
|
27
33
|
const openRouterApiKey = useSetting(settingsService, 'agent.openrouter.apiKey');
|
|
28
34
|
const tabItems = useMemo(() => {
|
|
@@ -63,10 +69,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
|
|
|
63
69
|
: '',
|
|
64
70
|
' '));
|
|
65
71
|
} }));
|
|
66
|
-
const modelTabBar = modelTab && (React.createElement(ScrollableTabBar, { items: [
|
|
67
|
-
{ id: 'favorites', label: 'Favorites' },
|
|
68
|
-
{ id: 'all', label: 'All' },
|
|
69
|
-
], activeItemId: modelTab, getItemWidth: (tab) => tab.label.length + 2, renderTab: (tab, isActive) => (React.createElement(Text, { inverse: isActive, color: isActive ? COLOR_ACCENT : COLOR_TEXT_SUBTLE, bold: isActive },
|
|
72
|
+
const modelTabBar = modelTab && (React.createElement(ScrollableTabBar, { items: MODEL_TABS.map((id) => ({ id, label: MODEL_TAB_LABELS[id] })), activeItemId: modelTab, getItemWidth: (tab) => tab.label.length + 2, renderTab: (tab, isActive) => (React.createElement(Text, { inverse: isActive, color: isActive ? COLOR_ACCENT : COLOR_TEXT_SUBTLE, bold: isActive },
|
|
70
73
|
' ',
|
|
71
74
|
tab.label,
|
|
72
75
|
' ')) }));
|
|
@@ -96,7 +99,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
|
|
|
96
99
|
GLYPH_WARNING,
|
|
97
100
|
" ",
|
|
98
101
|
providerSwitchDisabledMessage))),
|
|
99
|
-
React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, scrollOffset: scrollOffset, maxHeight: maxHeight, title: "Select model", loading: loading && items.length === 0, loadingText: loading ? `Loading models${provider ? ` from ${provider}` : ' from all providers'}…` : 'Loading...', error: error ? `Unable to load models: ${error}` : null, fallbackText: isFavoritesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No favorites yet \u2014 press ctrl+f on a model to add one.")) : (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
|
|
102
|
+
React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, scrollOffset: scrollOffset, maxHeight: maxHeight, title: "Select model", loading: loading && items.length === 0, loadingText: loading ? `Loading models${provider ? ` from ${provider}` : ' from all providers'}…` : 'Loading...', error: error ? `Unable to load models: ${error}` : null, fallbackText: isNicknamesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No nicknames yet \u2014 switch to All and press ctrl+n on a model to name it.")) : isFavoritesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No favorites yet \u2014 press ctrl+f on a model to add one.")) : (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
|
|
100
103
|
"No models match \"",
|
|
101
104
|
query || '*',
|
|
102
105
|
"\"")), footer: React.createElement(MenuFooter, { hints: bindingHints(footerBindings) }), footerOutsideBorder: true, renderItem: (item, _actualIndex, isSelected) => {
|
|
@@ -127,12 +130,9 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
|
|
|
127
130
|
' ',
|
|
128
131
|
"\u2014 unavailable: Not logged in on this host. Run `term2 --codex-login`.")) : item.unavailableReason === 'missing-grok-login' ? (React.createElement(Text, { color: COLOR_WARNING },
|
|
129
132
|
' ',
|
|
130
|
-
"\u2014 unavailable: Not logged in on this host. Run `term2 --grok-login`.")) : item.unavailableReason === 'missing-credentials' ? (React.createElement(Text, { color: COLOR_WARNING }, " \u2014 unavailable: API key not configured on this host")) : null
|
|
131
|
-
item.name && React.createElement(Text, { color: isSelected ? COLOR_TEXT : COLOR_TEXT_SUBTLE },
|
|
132
|
-
" \u2014 ",
|
|
133
|
-
item.name)))));
|
|
133
|
+
"\u2014 unavailable: Not logged in on this host. Run `term2 --grok-login`.")) : item.unavailableReason === 'missing-credentials' ? (React.createElement(Text, { color: COLOR_WARNING }, " \u2014 unavailable: API key not configured on this host")) : null))));
|
|
134
134
|
} }),
|
|
135
|
-
|
|
135
|
+
nicknameDraft && (React.createElement(Box, { flexDirection: "column" },
|
|
136
136
|
React.createElement(Box, null,
|
|
137
137
|
React.createElement(Text, { color: COLOR_ACCENT, bold: true },
|
|
138
138
|
"Nickname for ",
|
|
@@ -142,7 +142,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
|
|
|
142
142
|
" ",
|
|
143
143
|
nicknameDraft.text),
|
|
144
144
|
React.createElement(Text, { color: COLOR_ACCENT }, "\u258F")),
|
|
145
|
-
nicknameDraft.error && React.createElement(Text, { color: COLOR_DANGER }, nicknameDraft.error))),
|
|
145
|
+
nicknameDraft.error && (React.createElement(Text, { color: nicknameDraft.pendingReplace ? COLOR_WARNING : COLOR_DANGER }, nicknameDraft.error)))),
|
|
146
146
|
!isUnified && (error || (items.length === 0 && !loading)) && (React.createElement(MenuFooter, { hints: bindingHints(MODEL_MENU_PROVIDER_FALLBACK_BINDINGS) }))));
|
|
147
147
|
};
|
|
148
148
|
export default ModelSelectionMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EACL,kCAAkC,EAClC,qCAAqC,EACrC,YAAY,EACZ,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AA0B9C,MAAM,kBAAkB,GAAc,CAAC,EACrC,KAAK,EACL,aAAa,EACb,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,IAAI,EACZ,OAAO,GAAG,IAAI,EACd,YAAY,GAAG,CAAC,EAChB,SAAS,GAAG,EAAE,EACd,iBAAiB,GAAG,IAAI,EACxB,6BAA6B,GAAG,mFAAmF,EACnH,kBAAkB,GAAG,CAAC,EACtB,eAAe,EACf,YAAY,GAAG,mBAAmB,EAClC,cAAc,EACd,aAAa,GAAG,IAAI,GACrB,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,gBAAgB,CAAC;IACjF,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC;IACnC,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,iCAAiC;IACjC,MAAM,cAAc,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAMhD,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAMhD,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;AAmBF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CA2GpC,CAAC;eAEa,qBAAqB"}
|
|
@@ -3,9 +3,22 @@ import { Box, Text } from 'ink';
|
|
|
3
3
|
import { getSettingCategory, } from '../../hooks/use-settings-completion.js';
|
|
4
4
|
import { MenuContainer } from '../common/MenuContainer.js';
|
|
5
5
|
import { ScrollableTabBar } from '../common/ScrollableTabBar.js';
|
|
6
|
-
import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE } from '../theme.js';
|
|
7
|
-
import { formatSettingDisplayValue,
|
|
6
|
+
import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE, COLOR_WARNING } from '../theme.js';
|
|
7
|
+
import { formatSettingDisplayValue, truncateKeepingTail } from './settings-value-formatter.js';
|
|
8
8
|
const VISIBLE_COUNT = 10;
|
|
9
|
+
const SOURCE_LABELS = {
|
|
10
|
+
default: 'default value',
|
|
11
|
+
config: 'set in settings file',
|
|
12
|
+
env: 'set by environment variable',
|
|
13
|
+
cli: 'set by command-line flag',
|
|
14
|
+
};
|
|
15
|
+
function describeSettingState(item) {
|
|
16
|
+
const parts = [];
|
|
17
|
+
if (item.source)
|
|
18
|
+
parts.push(SOURCE_LABELS[item.source]);
|
|
19
|
+
parts.push(item.requiresRestart ? 'applies after restart' : 'applies immediately');
|
|
20
|
+
return parts.join(' · ');
|
|
21
|
+
}
|
|
9
22
|
const KEY_COL_WIDTH = 32;
|
|
10
23
|
const SettingsSelectionMenu = ({ items, selectedIndex, scrollOffset = 0, query, isSearchingAll = false, activeCategoryId, categories, }) => {
|
|
11
24
|
const activeCategory = categories.find((category) => category.id === activeCategoryId);
|
|
@@ -23,32 +36,41 @@ const SettingsSelectionMenu = ({ items, selectedIndex, scrollOffset = 0, query,
|
|
|
23
36
|
"\"",
|
|
24
37
|
' ',
|
|
25
38
|
isSearchingAll ? 'in any section' : `in ${activeCategory?.label ?? 'this section'}`)), footer: React.createElement(Box, { flexDirection: "column" },
|
|
39
|
+
selectedItem && (React.createElement(Text, { color: COLOR_TEXT, bold: true }, selectedItem.key)),
|
|
26
40
|
selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
|
|
27
41
|
React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description))),
|
|
42
|
+
selectedItem && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, describeSettingState(selectedItem)),
|
|
28
43
|
React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
|
|
29
|
-
"
|
|
44
|
+
"Type to search all sections \u00B7 ",
|
|
30
45
|
React.createElement(Text, { bold: true }, "\u2191\u2193"),
|
|
31
|
-
"
|
|
46
|
+
" move \u00B7 ",
|
|
32
47
|
React.createElement(Text, { bold: true }, "Enter"),
|
|
33
|
-
"
|
|
48
|
+
" edit \u00B7",
|
|
49
|
+
' ',
|
|
34
50
|
React.createElement(Text, { bold: true }, "Esc"),
|
|
35
|
-
"
|
|
51
|
+
" close \u00B7 ",
|
|
52
|
+
React.createElement(Text, { color: COLOR_WARNING }, "\u25CF"),
|
|
53
|
+
" changed \u00B7 ",
|
|
54
|
+
React.createElement(Text, { bold: true }, "\u21BB"),
|
|
55
|
+
" needs restart")), footerOutsideBorder: false, renderItem: (item, actualIndex, isSelected) => {
|
|
36
56
|
const category = getSettingCategory(item.key);
|
|
37
57
|
const prevCategory = actualIndex > 0 ? getSettingCategory(items[actualIndex - 1].key) : null;
|
|
38
58
|
// A filter query searches all sections and ranks by relevance, so the
|
|
39
59
|
// category boundaries carry no meaning there — render a flat list.
|
|
40
60
|
const showHeader = !isSearchingAll && (actualIndex === scrollOffset || category.id !== prevCategory?.id);
|
|
41
61
|
const valueObj = formatSettingDisplayValue(item.key, item.currentValue);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
62
|
+
// Keep the tail of long keys: the leaf name is what tells siblings apart.
|
|
63
|
+
const paddedKey = truncateKeepingTail(item.key, KEY_COL_WIDTH).padEnd(KEY_COL_WIDTH, ' ');
|
|
64
|
+
const isChanged = item.source !== undefined && item.source !== 'default';
|
|
45
65
|
return (React.createElement(Box, { key: item.key, flexDirection: "column" },
|
|
46
66
|
showHeader && (React.createElement(Box, { marginTop: actualIndex === scrollOffset ? 0 : 1, marginBottom: 0 },
|
|
47
67
|
React.createElement(Text, { color: COLOR_ACCENT, bold: true, underline: true }, category.label))),
|
|
48
68
|
React.createElement(Box, null,
|
|
49
69
|
React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT_SUBTLE }, isSelected ? '▶ ' : ' '),
|
|
50
70
|
React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT, bold: isSelected }, paddedKey),
|
|
51
|
-
|
|
71
|
+
React.createElement(Text, { color: COLOR_WARNING }, isChanged ? '● ' : ' '),
|
|
72
|
+
valueObj && (React.createElement(Text, { color: valueObj.color ?? COLOR_TEXT_SUBTLE, bold: isSelected }, valueObj.text)),
|
|
73
|
+
item.requiresRestart && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, " \u21BB"))));
|
|
52
74
|
} })));
|
|
53
75
|
};
|
|
54
76
|
export default SettingsSelectionMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EACL,kBAAkB,GAGnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,14 @@ type Props = {
|
|
|
6
6
|
selectedIndex: number;
|
|
7
7
|
query: string;
|
|
8
8
|
isNumericSettings?: boolean;
|
|
9
|
-
|
|
9
|
+
/** Current value, already formatted for display. */
|
|
10
|
+
currentText?: string;
|
|
11
|
+
/** Built-in default, already formatted for display. */
|
|
12
|
+
defaultText?: string;
|
|
13
|
+
/** What Enter would save right now, already formatted; omitted when nothing would be saved. */
|
|
14
|
+
previewText?: string;
|
|
15
|
+
/** Extra input shapes the setting accepts (e.g. `5m`, `$5`). */
|
|
16
|
+
unitHint?: string;
|
|
10
17
|
};
|
|
11
18
|
declare const SettingsValueSelectionMenu: FC<Props>;
|
|
12
19
|
export default SettingsValueSelectionMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAoC,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAIjH,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CA6GzC,CAAC;eAEa,0BAA0B"}
|
|
@@ -1,46 +1,64 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
|
-
import {
|
|
3
|
+
import { isSecretSetting, isStringSetting } from '../../utils/value-suggestions.js';
|
|
4
4
|
import { MenuContainer } from '../common/MenuContainer.js';
|
|
5
|
-
import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE
|
|
6
|
-
const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, isNumericSettings,
|
|
5
|
+
import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE } from '../theme.js';
|
|
6
|
+
const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, isNumericSettings, currentText, defaultText, previewText, unitHint, }) => {
|
|
7
7
|
const acceptsAnyString = isStringSetting(settingKey);
|
|
8
|
-
|
|
9
|
-
//
|
|
10
|
-
// expected, neutral state — never a red picker error. Choices (enums,
|
|
11
|
-
// booleans) keep the red "No matching values" because Enter cannot apply
|
|
8
|
+
// Strings and numbers are settable by typing, so an empty list is a
|
|
9
|
+
// neutral state. Choices (enums, booleans) stay red: Enter cannot apply
|
|
12
10
|
// text their schema does not accept.
|
|
13
|
-
const
|
|
11
|
+
const acceptsTypedValue = acceptsAnyString || Boolean(isNumericSettings);
|
|
12
|
+
const showNeutralEmpty = items.length === 0 && acceptsTypedValue;
|
|
14
13
|
const selectedItem = items[selectedIndex];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
14
|
+
const canCopySuggestion = items.length > 0 && !isSecretSetting(settingKey);
|
|
15
|
+
const header = (currentText !== undefined || defaultText !== undefined || unitHint) && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
|
|
16
|
+
React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
|
|
17
|
+
currentText !== undefined && (React.createElement(React.Fragment, null,
|
|
18
|
+
"Current: ",
|
|
19
|
+
React.createElement(Text, { color: COLOR_TEXT }, currentText))),
|
|
20
|
+
currentText !== undefined && defaultText !== undefined && ' · ',
|
|
21
|
+
defaultText !== undefined && (React.createElement(React.Fragment, null,
|
|
22
|
+
"Default: ",
|
|
23
|
+
React.createElement(Text, { color: COLOR_TEXT }, defaultText)))),
|
|
24
|
+
unitHint && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, unitHint)));
|
|
25
|
+
const typedHint = query ? 'Enter saves what you typed' : 'Type a value, then press Enter';
|
|
26
|
+
return (React.createElement(Box, { flexDirection: "column" },
|
|
27
|
+
header,
|
|
28
|
+
React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, borderColor: items.length === 0 && !showNeutralEmpty ? COLOR_DANGER : COLOR_ACCENT, fallbackText: showNeutralEmpty ? (React.createElement(Box, { flexDirection: "column" },
|
|
29
|
+
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, isNumericSettings ? 'Type a number' : 'Type a value'),
|
|
30
|
+
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, query ? `No suggestion matches — ${typedHint}` : typedHint))) : (React.createElement(Box, { flexDirection: "column" },
|
|
31
|
+
React.createElement(Text, { color: COLOR_DANGER, bold: true },
|
|
32
|
+
"No option matches \"",
|
|
33
|
+
query,
|
|
34
|
+
"\""),
|
|
35
|
+
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Backspace to see all options"))), footer: React.createElement(Box, { flexDirection: "column" }, selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
|
|
36
|
+
React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description)))), footerOutsideBorder: false, renderItem: (item, _index, isSelected) => (React.createElement(Box, { key: item.value },
|
|
37
|
+
React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT_SUBTLE }, isSelected ? '▶ ' : ' '),
|
|
38
|
+
React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT, bold: isSelected }, item.value))) }),
|
|
39
|
+
previewText !== undefined && (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
|
|
40
|
+
"Enter will set: ",
|
|
41
|
+
React.createElement(Text, { color: COLOR_SUCCESS }, previewText))),
|
|
42
|
+
React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
|
|
43
|
+
React.createElement(Text, { bold: true }, "Enter"),
|
|
44
|
+
" apply \u00B7 ",
|
|
45
|
+
React.createElement(Text, { bold: true }, "Esc"),
|
|
46
|
+
" back",
|
|
47
|
+
items.length > 0 && (React.createElement(React.Fragment, null,
|
|
20
48
|
' ',
|
|
21
|
-
|
|
22
|
-
? isFreeFormStringSetting
|
|
23
|
-
? 'No predefined values — type freely'
|
|
24
|
-
: `No value matches "${query || '*'}" — Enter applies the typed value`
|
|
25
|
-
: `No values match "${query || '*'}"`),
|
|
26
|
-
isNumericSettings && React.createElement(Text, { color: COLOR_WARNING }, "Note: This setting accepts numeric values."),
|
|
27
|
-
showNeutralEmpty && React.createElement(Text, { color: COLOR_WARNING }, "Note: This setting accepts any string value."),
|
|
28
|
-
React.createElement(Box, { marginTop: 1 },
|
|
29
|
-
React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Enter \u2192 apply typed value \u00B7 Esc \u2192 cancel"))), footer: React.createElement(Box, { flexDirection: "column" },
|
|
30
|
-
selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
|
|
31
|
-
React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description))),
|
|
32
|
-
React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
|
|
33
|
-
React.createElement(Text, { bold: true }, "Enter"),
|
|
34
|
-
" confirm \u00B7 ",
|
|
35
|
-
React.createElement(Text, { bold: true }, "Esc"),
|
|
36
|
-
" cancel \u00B7 ",
|
|
49
|
+
"\u00B7 ",
|
|
37
50
|
React.createElement(Text, { bold: true }, "\u2191\u2193"),
|
|
38
|
-
"
|
|
51
|
+
" choose")),
|
|
52
|
+
canCopySuggestion && (React.createElement(React.Fragment, null,
|
|
39
53
|
' ',
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
"\u00B7 ",
|
|
55
|
+
React.createElement(Text, { bold: true }, "Tab"),
|
|
56
|
+
" copy into field")),
|
|
57
|
+
' ',
|
|
58
|
+
"\u00B7 ",
|
|
59
|
+
React.createElement(Text, { bold: true }, "Ctrl+D"),
|
|
60
|
+
" reset",
|
|
61
|
+
defaultText !== undefined ? ` to ${defaultText}` : ' to default')));
|
|
44
62
|
};
|
|
45
63
|
export default SettingsValueSelectionMenu;
|
|
46
64
|
//# sourceMappingURL=SettingsValueSelectionMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandaloneModelPickerApp.d.ts","sourceRoot":"","sources":["../../../source/components/menu/StandaloneModelPickerApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAGnF,MAAM,MAAM,8BAA8B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,8BAA8B,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,MAAM,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,MAAM,GACP,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"StandaloneModelPickerApp.d.ts","sourceRoot":"","sources":["../../../source/components/menu/StandaloneModelPickerApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAGnF,MAAM,MAAM,8BAA8B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,8BAA8B,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,MAAM,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,MAAM,GACP,EAAE,6BAA6B,qBAuG/B;eAEc,wBAAwB"}
|
|
@@ -37,6 +37,9 @@ export function StandaloneModelPickerApp({ settingsService, loggingService, mode
|
|
|
37
37
|
else if (key.backspace) {
|
|
38
38
|
models.backspaceNicknameDraft();
|
|
39
39
|
}
|
|
40
|
+
else if (key.delete) {
|
|
41
|
+
models.removeNicknameDraft();
|
|
42
|
+
}
|
|
40
43
|
else if (key.ctrl && input.toLowerCase() === 'f') {
|
|
41
44
|
models.toggleFavorite();
|
|
42
45
|
}
|
|
@@ -68,9 +71,9 @@ export function StandaloneModelPickerApp({ settingsService, loggingService, mode
|
|
|
68
71
|
models.moveEnd();
|
|
69
72
|
}
|
|
70
73
|
else if (key.tab || key.leftArrow || key.rightArrow) {
|
|
71
|
-
// Tab and
|
|
74
|
+
// Tab and Right advance; Left moves backward through Favorites/Nicknames/All. Tab never
|
|
72
75
|
// completes a model id into a buffer here.
|
|
73
|
-
models.switchModelTab();
|
|
76
|
+
models.switchModelTab(key.leftArrow ? 'previous' : 'next');
|
|
74
77
|
}
|
|
75
78
|
else if (key.ctrl && input === 'r') {
|
|
76
79
|
models.refresh();
|