@oh-my-pi/pi-coding-agent 17.0.9 → 17.1.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/CHANGELOG.md +54 -0
- package/README.md +1 -1
- package/dist/cli.js +4659 -4261
- package/dist/types/async/job-manager.d.ts +37 -1
- package/dist/types/cli/args.d.ts +2 -0
- package/dist/types/cli/bench-cli.d.ts +41 -0
- package/dist/types/commands/bench.d.ts +15 -3
- package/dist/types/commands/launch.d.ts +4 -0
- package/dist/types/config/model-registry.d.ts +3 -1
- package/dist/types/config/models-config-schema.d.ts +18 -6
- package/dist/types/config/models-config.d.ts +14 -5
- package/dist/types/config/provider-globals.d.ts +2 -2
- package/dist/types/config/service-tier.d.ts +5 -1
- package/dist/types/config/settings-schema.d.ts +316 -47
- package/dist/types/config/settings.d.ts +7 -0
- package/dist/types/dap/client.d.ts +20 -0
- package/dist/types/exec/bash-executor.d.ts +38 -0
- package/dist/types/exec/direnv.d.ts +33 -0
- package/dist/types/export/html/args.d.ts +15 -0
- package/dist/types/export/html/index.d.ts +11 -26
- package/dist/types/export/html/web-palette.d.ts +55 -116
- package/dist/types/extensibility/extensions/loader.d.ts +3 -0
- package/dist/types/extensibility/extensions/types.d.ts +17 -2
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +13 -0
- package/dist/types/live/controller.d.ts +40 -0
- package/dist/types/live/protocol.d.ts +85 -0
- package/dist/types/live/protocol.test.d.ts +1 -0
- package/dist/types/live/transport.d.ts +48 -0
- package/dist/types/live/visualizer.d.ts +33 -0
- package/dist/types/lsp/client.d.ts +16 -1
- package/dist/types/mcp/config-writer.test.d.ts +1 -0
- package/dist/types/mcp/oauth-discovery.d.ts +2 -0
- package/dist/types/mcp/smithery-auth.d.ts +1 -1
- package/dist/types/mcp/smithery-auth.test.d.ts +1 -0
- package/dist/types/memory-backend/tool-names.d.ts +2 -0
- package/dist/types/modes/components/login-dialog.d.ts +2 -2
- package/dist/types/modes/components/plan-review-overlay.d.ts +26 -0
- package/dist/types/modes/components/settings-defs.d.ts +7 -1
- package/dist/types/modes/components/status-line/component.jj-cache.test.d.ts +1 -0
- package/dist/types/modes/components/tool-execution.d.ts +9 -1
- package/dist/types/modes/controllers/command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/event-controller.d.ts +6 -1
- package/dist/types/modes/controllers/live-command-controller.d.ts +14 -0
- package/dist/types/modes/interactive-mode.d.ts +5 -0
- package/dist/types/modes/theme/theme.d.ts +1 -1
- package/dist/types/modes/types.d.ts +3 -1
- package/dist/types/modes/utils/context-usage.d.ts +12 -2
- package/dist/types/plan-mode/plan-files.d.ts +10 -0
- package/dist/types/registry/agent-lifecycle.d.ts +21 -9
- package/dist/types/registry/agent-registry.d.ts +11 -4
- package/dist/types/sdk.d.ts +15 -1
- package/dist/types/secrets/index.d.ts +15 -2
- package/dist/types/secrets/obfuscator.d.ts +113 -15
- package/dist/types/session/acp-permission-gate.d.ts +19 -0
- package/dist/types/session/agent-session-events.d.ts +84 -0
- package/dist/types/session/agent-session-types.d.ts +314 -0
- package/dist/types/session/agent-session.d.ts +118 -755
- package/dist/types/session/async-job-delivery.d.ts +28 -0
- package/dist/types/session/bash-runner.d.ts +75 -0
- package/dist/types/session/blob-store.d.ts +11 -1
- package/dist/types/session/blob-store.test.d.ts +1 -0
- package/dist/types/session/checkpoint-entries.d.ts +28 -0
- package/dist/types/session/eval-runner.d.ts +49 -0
- package/dist/types/session/irc-bridge.d.ts +46 -0
- package/dist/types/session/messages.d.ts +22 -0
- package/dist/types/session/model-controls.d.ts +180 -0
- package/dist/types/session/prewalk.d.ts +46 -0
- package/dist/types/session/queued-messages.d.ts +22 -0
- package/dist/types/session/redis-session-storage.d.ts +1 -0
- package/dist/types/session/retry-fallback-chains.d.ts +74 -0
- package/dist/types/session/role-models.d.ts +15 -0
- package/dist/types/session/session-advisors.d.ts +228 -0
- package/dist/types/session/session-entries.d.ts +8 -0
- package/dist/types/session/session-handoff.d.ts +70 -0
- package/dist/types/session/session-history-format.d.ts +6 -1
- package/dist/types/session/session-maintenance.d.ts +246 -0
- package/dist/types/session/session-manager.d.ts +41 -0
- package/dist/types/session/session-memory.d.ts +56 -0
- package/dist/types/session/session-provider-boundary.d.ts +62 -0
- package/dist/types/session/session-stats.d.ts +48 -0
- package/dist/types/session/session-tools.d.ts +143 -0
- package/dist/types/session/session-workspace.d.ts +32 -0
- package/dist/types/session/stream-guards.d.ts +44 -0
- package/dist/types/session/todo-tracker.d.ts +56 -0
- package/dist/types/session/ttsr-coordinator.d.ts +51 -0
- package/dist/types/session/turn-recovery.d.ts +225 -0
- package/dist/types/system-prompt.d.ts +2 -0
- package/dist/types/task/executor.d.ts +4 -1
- package/dist/types/task/output-manager.d.ts +3 -1
- package/dist/types/tools/approval.d.ts +1 -0
- package/dist/types/tools/browser/launch.d.ts +5 -0
- package/dist/types/tools/image-gen.d.ts +4 -4
- package/dist/types/tools/image-providers.d.ts +38 -0
- package/dist/types/tools/index.d.ts +5 -0
- package/dist/types/tools/path-utils.d.ts +8 -0
- package/dist/types/tools/todo.d.ts +10 -4
- package/dist/types/tools/xdev.d.ts +5 -1
- package/dist/types/tts/streaming-player.d.ts +14 -0
- package/dist/types/tts/vocalizer.d.ts +5 -0
- package/dist/types/utils/jj.d.ts +29 -0
- package/dist/types/utils/lang-from-path.d.ts +1 -0
- package/dist/types/utils/title-generator.d.ts +30 -0
- package/dist/types/vibe/runtime.d.ts +36 -8
- package/dist/types/web/search/index.d.ts +1 -1
- package/dist/types/web/search/provider.d.ts +15 -5
- package/dist/types/web/search/types.d.ts +94 -0
- package/package.json +12 -12
- package/scripts/generate-share-viewer.ts +4 -6
- package/src/advisor/__tests__/advisor.test.ts +643 -0
- package/src/advisor/runtime.ts +144 -43
- package/src/async/job-manager.ts +90 -2
- package/src/cli/args.ts +2 -0
- package/src/cli/auth-gateway-cli.ts +18 -3
- package/src/cli/bench-cli.ts +395 -29
- package/src/cli/flag-tables.ts +3 -0
- package/src/cli/gc-cli.ts +2 -2
- package/src/cli/usage-cli.ts +10 -1
- package/src/collab/host.ts +3 -2
- package/src/commands/bench.ts +18 -4
- package/src/commands/launch.ts +4 -0
- package/src/config/model-registry.ts +10 -2
- package/src/config/models-config-schema.ts +15 -4
- package/src/config/provider-globals.ts +9 -9
- package/src/config/service-tier.ts +26 -1
- package/src/config/settings-schema.ts +209 -51
- package/src/config/settings.ts +81 -2
- package/src/dap/client.ts +37 -4
- package/src/edit/index.ts +49 -12
- package/src/eval/py/executor.ts +103 -33
- package/src/exec/bash-executor.ts +89 -6
- package/src/exec/direnv.ts +145 -0
- package/src/export/html/args.ts +20 -0
- package/src/export/html/index.ts +45 -47
- package/src/export/html/template.css +19 -1
- package/src/export/html/template.html +6 -0
- package/src/export/html/template.js +21 -0
- package/src/export/html/tool-views.generated.js +31 -31
- package/src/export/html/web-palette.ts +116 -132
- package/src/export/share.ts +249 -49
- package/src/extensibility/extensions/loader.ts +29 -1
- package/src/extensibility/extensions/runner.ts +6 -0
- package/src/extensibility/extensions/types.ts +33 -2
- package/src/extensibility/plugins/legacy-pi-compat.ts +19 -1
- package/src/hindsight/state.ts +64 -6
- package/src/internal-urls/local-protocol.ts +2 -1
- package/src/internal-urls/memory-protocol.ts +2 -2
- package/src/internal-urls/skill-protocol.ts +2 -2
- package/src/internal-urls/ssh-protocol.ts +2 -1
- package/src/internal-urls/vault-protocol.ts +2 -1
- package/src/live/audio-worklet.txt +59 -0
- package/src/live/browser-runtime.txt +221 -0
- package/src/live/controller.ts +464 -0
- package/src/live/prompts/agent-final-message.md +3 -0
- package/src/live/prompts/live-instructions.md +23 -0
- package/src/live/protocol.test.ts +140 -0
- package/src/live/protocol.ts +233 -0
- package/src/live/transport.ts +490 -0
- package/src/live/visualizer.ts +234 -0
- package/src/lsp/client.ts +29 -9
- package/src/lsp/index.ts +19 -4
- package/src/main.ts +8 -1
- package/src/mcp/config-writer.test.ts +43 -0
- package/src/mcp/config-writer.ts +109 -82
- package/src/mcp/oauth-discovery.ts +10 -2
- package/src/mcp/smithery-auth.test.ts +29 -0
- package/src/mcp/smithery-auth.ts +3 -2
- package/src/memories/index.ts +40 -20
- package/src/memory-backend/tool-names.ts +2 -0
- package/src/mnemopi/backend.ts +24 -7
- package/src/modes/acp/acp-agent.ts +56 -10
- package/src/modes/acp/acp-event-mapper.ts +8 -1
- package/src/modes/components/agent-hub.ts +1 -1
- package/src/modes/components/login-dialog.ts +14 -4
- package/src/modes/components/plan-review-overlay.ts +350 -35
- package/src/modes/components/settings-defs.ts +23 -1
- package/src/modes/components/settings-selector.ts +169 -1
- package/src/modes/components/status-line/component.jj-cache.test.ts +229 -0
- package/src/modes/components/status-line/component.ts +123 -2
- package/src/modes/components/tool-execution.ts +11 -2
- package/src/modes/controllers/command-controller.ts +56 -15
- package/src/modes/controllers/event-controller.ts +111 -16
- package/src/modes/controllers/extension-ui-controller.test.ts +1 -0
- package/src/modes/controllers/extension-ui-controller.ts +20 -4
- package/src/modes/controllers/live-command-controller.ts +178 -0
- package/src/modes/controllers/mcp-command-controller.ts +10 -1
- package/src/modes/controllers/omfg-controller.ts +44 -40
- package/src/modes/controllers/selector-controller.ts +18 -10
- package/src/modes/controllers/session-focus-controller.ts +6 -1
- package/src/modes/interactive-mode.ts +157 -38
- package/src/modes/runtime-init.ts +2 -0
- package/src/modes/setup-wizard/scenes/web-search.ts +17 -9
- package/src/modes/theme/theme.ts +1 -1
- package/src/modes/types.ts +3 -1
- package/src/modes/utils/context-usage.ts +23 -7
- package/src/modes/utils/ui-helpers.ts +10 -5
- package/src/plan-mode/plan-files.ts +40 -0
- package/src/prompts/bench/cache-prefix-chunk.md +1 -0
- package/src/prompts/bench/cache-prefix.md +3 -0
- package/src/prompts/bench/cache-suffix.md +1 -0
- package/src/prompts/system/custom-system-prompt.md +1 -1
- package/src/prompts/system/project-prompt.md +8 -1
- package/src/prompts/system/subagent-async-pending.md +6 -0
- package/src/prompts/system/system-prompt.md +1 -1
- package/src/prompts/system/workflow-notice.md +48 -40
- package/src/prompts/system/xdev-mount-notice.md +4 -0
- package/src/prompts/tools/todo.md +3 -1
- package/src/registry/agent-lifecycle.ts +116 -46
- package/src/registry/agent-registry.ts +35 -8
- package/src/registry/persisted-agents.ts +26 -2
- package/src/sdk.ts +210 -136
- package/src/secrets/index.ts +127 -4
- package/src/secrets/obfuscator.ts +2328 -105
- package/src/session/acp-permission-gate.ts +165 -0
- package/src/session/agent-session-error-log.test.ts +1 -1
- package/src/session/agent-session-events.ts +66 -0
- package/src/session/agent-session-types.ts +334 -0
- package/src/session/agent-session.ts +1892 -12226
- package/src/session/artifacts.ts +6 -5
- package/src/session/async-job-delivery.ts +74 -0
- package/src/session/bash-runner.ts +326 -0
- package/src/session/blob-store.test.ts +56 -0
- package/src/session/blob-store.ts +18 -2
- package/src/session/checkpoint-entries.ts +81 -0
- package/src/session/eval-runner.ts +212 -0
- package/src/session/indexed-session-storage.ts +9 -2
- package/src/session/irc-bridge.ts +203 -0
- package/src/session/messages.ts +263 -1
- package/src/session/model-controls.ts +714 -0
- package/src/session/prewalk.ts +252 -0
- package/src/session/queued-messages.ts +93 -0
- package/src/session/redis-session-storage.ts +51 -11
- package/src/session/retry-fallback-chains.ts +455 -0
- package/src/session/role-models.ts +85 -0
- package/src/session/session-advisors.ts +1679 -0
- package/src/session/session-context.ts +6 -3
- package/src/session/session-entries.ts +8 -0
- package/src/session/session-handoff.ts +308 -0
- package/src/session/session-history-format.ts +20 -9
- package/src/session/session-loader.ts +0 -46
- package/src/session/session-maintenance.ts +2983 -0
- package/src/session/session-manager.ts +390 -30
- package/src/session/session-memory.ts +222 -0
- package/src/session/session-provider-boundary.ts +307 -0
- package/src/session/session-stats.ts +293 -0
- package/src/session/session-tools.ts +943 -0
- package/src/session/session-workspace.ts +53 -0
- package/src/session/stream-guards.ts +417 -0
- package/src/session/todo-tracker.ts +380 -0
- package/src/session/ttsr-coordinator.ts +496 -0
- package/src/session/turn-recovery.ts +1629 -0
- package/src/slash-commands/builtin-registry.ts +92 -11
- package/src/slash-commands/helpers/usage-report.ts +22 -3
- package/src/system-prompt.ts +41 -17
- package/src/task/executor.ts +285 -70
- package/src/task/index.ts +98 -105
- package/src/task/output-manager.ts +25 -3
- package/src/task/persisted-revive.ts +4 -3
- package/src/task/structured-subagent.ts +1 -0
- package/src/tools/approval.ts +55 -10
- package/src/tools/bash-interactive.ts +26 -0
- package/src/tools/bash-skill-urls.ts +28 -2
- package/src/tools/bash.ts +339 -123
- package/src/tools/browser/launch.ts +9 -1
- package/src/tools/browser/tab-supervisor.ts +8 -5
- package/src/tools/browser.ts +94 -47
- package/src/tools/image-gen.ts +20 -28
- package/src/tools/image-providers.ts +50 -0
- package/src/tools/index.ts +9 -0
- package/src/tools/path-utils.ts +49 -2
- package/src/tools/read.ts +156 -88
- package/src/tools/renderers.ts +7 -1
- package/src/tools/todo.ts +101 -11
- package/src/tools/vibe.ts +1 -2
- package/src/tools/write.ts +51 -1
- package/src/tools/xdev.ts +67 -3
- package/src/tts/streaming-player.ts +62 -4
- package/src/tts/vocalizer.ts +18 -1
- package/src/utils/jj.ts +125 -4
- package/src/utils/lang-from-path.ts +7 -0
- package/src/utils/title-generator.ts +137 -1
- package/src/vibe/runtime.ts +852 -72
- package/src/web/search/index.ts +3 -6
- package/src/web/search/provider.ts +31 -16
- package/src/web/search/providers/xai.ts +7 -1
- package/src/web/search/types.ts +3 -0
package/src/web/search/index.ts
CHANGED
|
@@ -135,11 +135,9 @@ async function executeSearch(
|
|
|
135
135
|
let candidates: SearchProviderCandidate[];
|
|
136
136
|
if (explicitProvider && explicitProvider !== "auto") {
|
|
137
137
|
candidates = [{ id: explicitProvider, explicit: true }];
|
|
138
|
-
} else if (explicitProvider === "auto") {
|
|
139
|
-
// Explicit `--provider auto` bypasses the configured preferred provider
|
|
140
|
-
// for this invocation; exclusions still apply.
|
|
141
|
-
candidates = resolveProviderCandidates("auto");
|
|
142
138
|
} else {
|
|
139
|
+
// `--provider auto` and the default both walk the configured chain;
|
|
140
|
+
// exclusions still apply.
|
|
143
141
|
candidates = resolveProviderCandidates();
|
|
144
142
|
}
|
|
145
143
|
|
|
@@ -216,7 +214,6 @@ async function executeSearch(
|
|
|
216
214
|
// summary error), masking the cancellation.
|
|
217
215
|
throwIfAborted(signal);
|
|
218
216
|
failures.push({ provider: provider ?? providerMeta, error });
|
|
219
|
-
if (candidate.explicit) break;
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
219
|
|
|
@@ -351,6 +348,6 @@ export function getSearchTools(): CustomTool<any, any>[] {
|
|
|
351
348
|
return [webSearchCustomTool];
|
|
352
349
|
}
|
|
353
350
|
|
|
354
|
-
export { getSearchProvider, setExcludedSearchProviders,
|
|
351
|
+
export { getSearchProvider, setExcludedSearchProviders, setSearchProviderOrder } from "./provider";
|
|
355
352
|
export type { SearchProviderId as SearchProvider, SearchResponse } from "./types";
|
|
356
353
|
export { isSearchProviderId, isSearchProviderPreference } from "./types";
|
|
@@ -189,12 +189,25 @@ export async function getSearchProvider(id: SearchProviderId): Promise<SearchPro
|
|
|
189
189
|
return provider;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
/**
|
|
193
|
-
let
|
|
192
|
+
/** Provider fallback order set via settings (default: built-in order). */
|
|
193
|
+
let orderedProvIds: readonly SearchProviderId[] = SEARCH_PROVIDER_ORDER;
|
|
194
|
+
/** Providers the user explicitly listed in `providers.webSearchOrder`. */
|
|
195
|
+
let explicitProvIds = new Set<SearchProviderId>();
|
|
194
196
|
|
|
195
|
-
/**
|
|
196
|
-
|
|
197
|
-
|
|
197
|
+
/**
|
|
198
|
+
* Prioritize configured providers while retaining every unlisted provider in
|
|
199
|
+
* its built-in relative order. Invalid IDs are ignored defensively. Listed
|
|
200
|
+
* providers are treated as explicit selections: they resolve through
|
|
201
|
+
* `isExplicitlyAvailable`, so e.g. a hand-listed Perplexity may fall back to
|
|
202
|
+
* anonymous search exactly like the retired single-preference setting did.
|
|
203
|
+
*/
|
|
204
|
+
export function setSearchProviderOrder(providers: readonly SearchProviderId[]): void {
|
|
205
|
+
const prioritized = new Set(providers.filter(id => SEARCH_PROVIDER_ORDER.includes(id)));
|
|
206
|
+
explicitProvIds = prioritized;
|
|
207
|
+
orderedProvIds =
|
|
208
|
+
prioritized.size === 0
|
|
209
|
+
? SEARCH_PROVIDER_ORDER
|
|
210
|
+
: [...prioritized, ...SEARCH_PROVIDER_ORDER.filter(id => !prioritized.has(id))];
|
|
198
211
|
}
|
|
199
212
|
|
|
200
213
|
/** Providers excluded from web search resolution via settings. */
|
|
@@ -215,19 +228,21 @@ export interface SearchProviderCandidate {
|
|
|
215
228
|
explicit: boolean;
|
|
216
229
|
}
|
|
217
230
|
|
|
218
|
-
/**
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
231
|
+
/**
|
|
232
|
+
* Return provider candidates in fallback order without loading their modules.
|
|
233
|
+
* `forcedProvider` (a per-request `provider` argument) is terminal-first and
|
|
234
|
+
* bypasses exclusion; configured-order entries carry `explicit: true`.
|
|
235
|
+
*/
|
|
236
|
+
export function resolveProviderCandidates(forcedProvider?: SearchProviderId): SearchProviderCandidate[] {
|
|
222
237
|
const candidates: SearchProviderCandidate[] = [];
|
|
223
238
|
|
|
224
|
-
if (
|
|
225
|
-
candidates.push({ id:
|
|
239
|
+
if (forcedProvider !== undefined && !isSearchProviderExcluded(forcedProvider)) {
|
|
240
|
+
candidates.push({ id: forcedProvider, explicit: true });
|
|
226
241
|
}
|
|
227
242
|
|
|
228
|
-
for (const id of
|
|
229
|
-
if (id ===
|
|
230
|
-
candidates.push({ id, explicit:
|
|
243
|
+
for (const id of orderedProvIds) {
|
|
244
|
+
if (id === forcedProvider || isSearchProviderExcluded(id)) continue;
|
|
245
|
+
candidates.push({ id, explicit: explicitProvIds.has(id) });
|
|
231
246
|
}
|
|
232
247
|
|
|
233
248
|
return candidates;
|
|
@@ -241,11 +256,11 @@ export function resolveProviderCandidates(
|
|
|
241
256
|
*/
|
|
242
257
|
export async function resolveProviderChain(
|
|
243
258
|
authStorage: AuthStorage,
|
|
244
|
-
|
|
259
|
+
forcedProvider?: SearchProviderId,
|
|
245
260
|
): Promise<SearchProvider[]> {
|
|
246
261
|
const providers: SearchProvider[] = [];
|
|
247
262
|
|
|
248
|
-
for (const candidate of resolveProviderCandidates(
|
|
263
|
+
for (const candidate of resolveProviderCandidates(forcedProvider)) {
|
|
249
264
|
const provider = await getSearchProvider(candidate.id);
|
|
250
265
|
const available = candidate.explicit
|
|
251
266
|
? await provider.isExplicitlyAvailable(authStorage)
|
|
@@ -9,7 +9,12 @@ import { SearchProvider } from "./base";
|
|
|
9
9
|
import { classifyProviderHttpError, withHardTimeout } from "./utils";
|
|
10
10
|
|
|
11
11
|
const XAI_DEFAULT_BASE_URL = "https://api.x.ai/v1";
|
|
12
|
-
const XAI_WEB_SEARCH_MODEL = "grok-4.
|
|
12
|
+
const XAI_WEB_SEARCH_MODEL = "grok-4.5";
|
|
13
|
+
// grok-4.5 defaults reasoning.effort to "high"; xAI documents "low" for
|
|
14
|
+
// latency-sensitive agentic use and simple tool calling
|
|
15
|
+
// (docs.x.ai/developers/model-capabilities/text/reasoning). Web search is
|
|
16
|
+
// exactly that and runs under a 60s hard timeout, so pin the search calls low.
|
|
17
|
+
const XAI_WEB_SEARCH_REASONING_EFFORT = "low";
|
|
13
18
|
const DEFAULT_NUM_RESULTS = 10;
|
|
14
19
|
const MAX_NUM_RESULTS = 30;
|
|
15
20
|
|
|
@@ -60,6 +65,7 @@ function buildRequestBody(params: SearchParams): Record<string, unknown> {
|
|
|
60
65
|
{ role: "user", content: params.query },
|
|
61
66
|
],
|
|
62
67
|
tools: [{ type: "web_search" }],
|
|
68
|
+
reasoning: { effort: XAI_WEB_SEARCH_REASONING_EFFORT },
|
|
63
69
|
};
|
|
64
70
|
|
|
65
71
|
if (params.maxOutputTokens !== undefined) {
|
package/src/web/search/types.ts
CHANGED
|
@@ -96,6 +96,9 @@ export const SEARCH_PROVIDER_ORDER: readonly SearchProviderId[] = SEARCH_PROVIDE
|
|
|
96
96
|
option.value === "auto" ? [] : [option.value],
|
|
97
97
|
);
|
|
98
98
|
|
|
99
|
+
/** Concrete provider choices (no `auto` sentinel) — for list-valued settings like order/exclude. */
|
|
100
|
+
export const SEARCH_PROVIDER_CHOICES = SEARCH_PROVIDER_OPTIONS.filter(option => option.value !== "auto");
|
|
101
|
+
|
|
99
102
|
export const SEARCH_PROVIDER_PREFERENCES = ["auto", ...SEARCH_PROVIDER_ORDER] as const;
|
|
100
103
|
|
|
101
104
|
/** Display labels, derived from {@link SEARCH_PROVIDER_OPTIONS}. */
|