@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
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { AsyncJobManager } from "../async/job-manager.js";
|
|
2
|
+
import type { SessionEntry } from "../session/session-entries.js";
|
|
3
|
+
import { SessionManager } from "../session/session-manager.js";
|
|
2
4
|
import type { ToolSession } from "../tools/index.js";
|
|
3
5
|
/** The two worker CLI flavors the director drives. */
|
|
4
6
|
export type VibeCli = "fast" | "good";
|
|
@@ -12,6 +14,21 @@ export type VibeCli = "fast" | "good";
|
|
|
12
14
|
export declare const VIBE_CLI_AGENT: Record<VibeCli, string>;
|
|
13
15
|
/** Worker session lifecycle as shown to the director. */
|
|
14
16
|
export type VibeSessionState = "starting" | "running" | "idle" | "dead";
|
|
17
|
+
export interface VibeOwnerScope {
|
|
18
|
+
ownerId: string;
|
|
19
|
+
parentSessionId: string;
|
|
20
|
+
parentSessionFile: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface VibeParentSession {
|
|
23
|
+
getAgentId?: () => string | null;
|
|
24
|
+
getSessionId?: () => string | null;
|
|
25
|
+
getSessionFile: () => string | null;
|
|
26
|
+
sessionManager?: ToolSession["sessionManager"] & Partial<Pick<SessionManager, "appendModeChange" | "appendEntriesAtomically" | "recoverPersistenceFromCurrentState">>;
|
|
27
|
+
asyncJobManager?: AsyncJobManager;
|
|
28
|
+
settings: ToolSession["settings"];
|
|
29
|
+
getActiveModelString?: () => string | undefined;
|
|
30
|
+
getModelString?: () => string | undefined;
|
|
31
|
+
}
|
|
15
32
|
/**
|
|
16
33
|
* Live per-session "screen" for rich rendering: what the worker is doing right
|
|
17
34
|
* now (tool trace, current tool, streamed text tail) plus roster metadata.
|
|
@@ -70,13 +87,15 @@ export interface VibeWaitOutcome {
|
|
|
70
87
|
stillRunning: string[];
|
|
71
88
|
timedOut: boolean;
|
|
72
89
|
}
|
|
90
|
+
/** Child ids claimed by any valid Vibe spawn event, independent of current parent scope. */
|
|
91
|
+
export declare function persistedVibeChildIds(entries: Iterable<SessionEntry>): Set<string>;
|
|
73
92
|
/** Thrown from a turn job body so the job manager marks the job failed while carrying the formatted result. */
|
|
74
93
|
export declare class VibeTurnError extends Error {
|
|
75
94
|
}
|
|
76
95
|
/**
|
|
77
|
-
* Process-global registry of vibe worker sessions, scoped
|
|
78
|
-
*
|
|
79
|
-
*
|
|
96
|
+
* Process-global registry of vibe worker sessions, scoped by both owner agent
|
|
97
|
+
* id and stable parent session id. Persisted lifecycle events rebuild idle
|
|
98
|
+
* records after a process restart; live turn jobs remain process-local.
|
|
80
99
|
*/
|
|
81
100
|
export declare class VibeSessionRegistry {
|
|
82
101
|
#private;
|
|
@@ -94,14 +113,21 @@ export declare class VibeSessionRegistry {
|
|
|
94
113
|
ownerId: string;
|
|
95
114
|
state?: VibeSessionState;
|
|
96
115
|
}): void;
|
|
97
|
-
|
|
116
|
+
ownerScope(session: VibeParentSession): VibeOwnerScope;
|
|
117
|
+
/** Re-open spawn admission after an explicit Vibe-mode entry. */
|
|
118
|
+
activateScope(scope: VibeOwnerScope): void;
|
|
119
|
+
listIds(session: ToolSession): string[];
|
|
120
|
+
/** Ids of every live worker owned by `ownerId`, across all parent scopes (status-line tok/s aggregation). */
|
|
121
|
+
listIdsByOwner(ownerId: string): string[];
|
|
98
122
|
/**
|
|
99
123
|
* Live screen snapshots for rich rendering (the "TV wall"): one entry per
|
|
100
124
|
* session in creation order, carrying the in-flight turn's trace, current
|
|
101
125
|
* tool, and streamed text tail. All strings are one-line sanitized here so
|
|
102
126
|
* renderers can print them verbatim.
|
|
103
127
|
*/
|
|
104
|
-
screens(
|
|
128
|
+
screens(session: ToolSession, ids?: string[]): VibeScreenSnapshot[];
|
|
129
|
+
/** Reconcile resumable and terminal workers from the persisted parent journal. */
|
|
130
|
+
rehydrate(session: VibeParentSession): Promise<number>;
|
|
105
131
|
/** Spawn a persistent worker session and start its first turn in the background. */
|
|
106
132
|
spawn(session: ToolSession, args: {
|
|
107
133
|
cli: VibeCli;
|
|
@@ -128,10 +154,12 @@ export declare class VibeSessionRegistry {
|
|
|
128
154
|
timeoutMs?: number;
|
|
129
155
|
signal?: AbortSignal;
|
|
130
156
|
}): Promise<VibeWaitOutcome>;
|
|
131
|
-
/**
|
|
157
|
+
/** Detach one parent's process-local workers without tombstoning their persisted conversations. */
|
|
158
|
+
suspendScope(scope: VibeOwnerScope, manager?: AsyncJobManager): Promise<number>;
|
|
159
|
+
/** Terminate one worker; a tombstone failure still tears it down before reconciliation and error delivery. */
|
|
132
160
|
kill(session: ToolSession, id: string): Promise<VibeKillOutcome>;
|
|
133
|
-
/** Kill every session
|
|
134
|
-
killAll(
|
|
161
|
+
/** Kill every live session in one parent scope after durably recording the complete mode-exit intent. */
|
|
162
|
+
killAll(session: VibeParentSession, ownerScope?: VibeOwnerScope): Promise<number>;
|
|
135
163
|
}
|
|
136
164
|
/**
|
|
137
165
|
* Aggregate tok/s across every live vibe worker session owned by `ownerId`.
|
|
@@ -71,6 +71,6 @@ export declare class WebSearchTool implements AgentTool<typeof webSearchSchema,
|
|
|
71
71
|
/** Web search tool as CustomTool (for TUI rendering support) */
|
|
72
72
|
export declare const webSearchCustomTool: CustomTool<typeof webSearchSchema, SearchRenderDetails>;
|
|
73
73
|
export declare function getSearchTools(): CustomTool<any, any>[];
|
|
74
|
-
export { getSearchProvider, setExcludedSearchProviders,
|
|
74
|
+
export { getSearchProvider, setExcludedSearchProviders, setSearchProviderOrder } from "./provider.js";
|
|
75
75
|
export type { SearchProviderId as SearchProvider, SearchResponse } from "./types.js";
|
|
76
76
|
export { isSearchProviderId, isSearchProviderPreference } from "./types.js";
|
|
@@ -18,8 +18,14 @@ export declare function formatSearchProviderFailures(failures: readonly {
|
|
|
18
18
|
* underlying module; subsequent calls return the cached singleton.
|
|
19
19
|
*/
|
|
20
20
|
export declare function getSearchProvider(id: SearchProviderId): Promise<SearchProvider>;
|
|
21
|
-
/**
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Prioritize configured providers while retaining every unlisted provider in
|
|
23
|
+
* its built-in relative order. Invalid IDs are ignored defensively. Listed
|
|
24
|
+
* providers are treated as explicit selections: they resolve through
|
|
25
|
+
* `isExplicitlyAvailable`, so e.g. a hand-listed Perplexity may fall back to
|
|
26
|
+
* anonymous search exactly like the retired single-preference setting did.
|
|
27
|
+
*/
|
|
28
|
+
export declare function setSearchProviderOrder(providers: readonly SearchProviderId[]): void;
|
|
23
29
|
/** Set providers that web search should never use, including fallbacks. */
|
|
24
30
|
export declare function setExcludedSearchProviders(providers: readonly SearchProviderId[]): void;
|
|
25
31
|
/** `true` when settings exclude `id` from web search (auto chain and the Public Web fan-out). */
|
|
@@ -28,12 +34,16 @@ export interface SearchProviderCandidate {
|
|
|
28
34
|
id: SearchProviderId;
|
|
29
35
|
explicit: boolean;
|
|
30
36
|
}
|
|
31
|
-
/**
|
|
32
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Return provider candidates in fallback order without loading their modules.
|
|
39
|
+
* `forcedProvider` (a per-request `provider` argument) is terminal-first and
|
|
40
|
+
* bypasses exclusion; configured-order entries carry `explicit: true`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveProviderCandidates(forcedProvider?: SearchProviderId): SearchProviderCandidate[];
|
|
33
43
|
/**
|
|
34
44
|
* Resolve the complete available provider chain.
|
|
35
45
|
*
|
|
36
46
|
* This compatibility helper loads every candidate. Search execution should use
|
|
37
47
|
* {@link resolveProviderCandidates} so fallback modules load only when reached.
|
|
38
48
|
*/
|
|
39
|
-
export declare function resolveProviderChain(authStorage: AuthStorage,
|
|
49
|
+
export declare function resolveProviderChain(authStorage: AuthStorage, forcedProvider?: SearchProviderId): Promise<SearchProvider[]>;
|
|
@@ -108,6 +108,100 @@ export type SearchProviderId = Exclude<(typeof SEARCH_PROVIDER_OPTIONS)[number][
|
|
|
108
108
|
* share one source of truth and never drift apart.
|
|
109
109
|
*/
|
|
110
110
|
export declare const SEARCH_PROVIDER_ORDER: readonly SearchProviderId[];
|
|
111
|
+
/** Concrete provider choices (no `auto` sentinel) — for list-valued settings like order/exclude. */
|
|
112
|
+
export declare const SEARCH_PROVIDER_CHOICES: ({
|
|
113
|
+
readonly value: "perplexity";
|
|
114
|
+
readonly label: "Perplexity";
|
|
115
|
+
readonly description: "Uses auth when configured; explicit selection falls back to anonymous search";
|
|
116
|
+
} | {
|
|
117
|
+
readonly value: "gemini";
|
|
118
|
+
readonly label: "Gemini";
|
|
119
|
+
readonly description: "Google Search grounding via Gemini (uses google-gemini-cli or google-antigravity OAuth)";
|
|
120
|
+
} | {
|
|
121
|
+
readonly value: "anthropic";
|
|
122
|
+
readonly label: "Anthropic";
|
|
123
|
+
readonly description: "Claude's native web_search tool (uses Anthropic OAuth or ANTHROPIC_API_KEY)";
|
|
124
|
+
} | {
|
|
125
|
+
readonly value: "codex";
|
|
126
|
+
readonly label: "OpenAI";
|
|
127
|
+
readonly description: "OpenAI's native web_search (uses ChatGPT OAuth via /login openai-codex)";
|
|
128
|
+
} | {
|
|
129
|
+
readonly value: "xai";
|
|
130
|
+
readonly label: "xAI";
|
|
131
|
+
readonly description: "Grok web search via xAI Responses API (requires XAI_API_KEY)";
|
|
132
|
+
} | {
|
|
133
|
+
readonly value: "zai";
|
|
134
|
+
readonly label: "Z.AI";
|
|
135
|
+
readonly description: "Calls Z.AI webSearchPrime MCP";
|
|
136
|
+
} | {
|
|
137
|
+
readonly value: "exa";
|
|
138
|
+
readonly label: "Exa";
|
|
139
|
+
readonly description: "Uses Exa API when EXA_API_KEY is set; falls back to Exa MCP";
|
|
140
|
+
} | {
|
|
141
|
+
readonly value: "tinyfish";
|
|
142
|
+
readonly label: "TinyFish";
|
|
143
|
+
readonly description: "Requires TINYFISH_API_KEY";
|
|
144
|
+
} | {
|
|
145
|
+
readonly value: "jina";
|
|
146
|
+
readonly label: "Jina";
|
|
147
|
+
readonly description: "Requires JINA_API_KEY";
|
|
148
|
+
} | {
|
|
149
|
+
readonly value: "kagi";
|
|
150
|
+
readonly label: "Kagi";
|
|
151
|
+
readonly description: "Requires KAGI_API_KEY and Kagi Search API beta access";
|
|
152
|
+
} | {
|
|
153
|
+
readonly value: "tavily";
|
|
154
|
+
readonly label: "Tavily";
|
|
155
|
+
readonly description: "Requires TAVILY_API_KEY";
|
|
156
|
+
} | {
|
|
157
|
+
readonly value: "firecrawl";
|
|
158
|
+
readonly label: "Firecrawl";
|
|
159
|
+
readonly description: "Uses Firecrawl API when FIRECRAWL_API_KEY is set; falls back to keyless mode";
|
|
160
|
+
} | {
|
|
161
|
+
readonly value: "brave";
|
|
162
|
+
readonly label: "Brave";
|
|
163
|
+
readonly description: "Requires BRAVE_API_KEY";
|
|
164
|
+
} | {
|
|
165
|
+
readonly value: "kimi";
|
|
166
|
+
readonly label: "Kimi";
|
|
167
|
+
readonly description: "Kimi Code search (requires a Kimi Code Console key via KIMI_SEARCH_API_KEY/MOONSHOT_SEARCH_API_KEY or /login kimi-code; not MOONSHOT_API_KEY)";
|
|
168
|
+
} | {
|
|
169
|
+
readonly value: "parallel";
|
|
170
|
+
readonly label: "Parallel";
|
|
171
|
+
readonly description: "Requires PARALLEL_API_KEY";
|
|
172
|
+
} | {
|
|
173
|
+
readonly value: "synthetic";
|
|
174
|
+
readonly label: "Synthetic";
|
|
175
|
+
readonly description: "Requires SYNTHETIC_API_KEY";
|
|
176
|
+
} | {
|
|
177
|
+
readonly value: "searxng";
|
|
178
|
+
readonly label: "SearXNG";
|
|
179
|
+
readonly description: "Requires SEARXNG_ENDPOINT or searxng.endpoint";
|
|
180
|
+
} | {
|
|
181
|
+
readonly value: "startpage";
|
|
182
|
+
readonly label: "Startpage";
|
|
183
|
+
readonly description: "Credential-free scrape of Startpage (Google-backed) results; may be bot-challenged";
|
|
184
|
+
} | {
|
|
185
|
+
readonly value: "duckduckgo";
|
|
186
|
+
readonly label: "DuckDuckGo";
|
|
187
|
+
readonly description: "Credential-free best-effort fallback; may be bot-challenged on datacenter/shared-egress IPs";
|
|
188
|
+
} | {
|
|
189
|
+
readonly value: "ecosia";
|
|
190
|
+
readonly label: "Ecosia";
|
|
191
|
+
readonly description: "Credential-free browser-backed scrape of Ecosia (Google-backed) results";
|
|
192
|
+
} | {
|
|
193
|
+
readonly value: "google";
|
|
194
|
+
readonly label: "Google";
|
|
195
|
+
readonly description: "Credential-free browser-backed fallback; slower and may be bot-challenged";
|
|
196
|
+
} | {
|
|
197
|
+
readonly value: "mojeek";
|
|
198
|
+
readonly label: "Mojeek";
|
|
199
|
+
readonly description: "Credential-free browser-backed scrape of Mojeek's independent index";
|
|
200
|
+
} | {
|
|
201
|
+
readonly value: "public";
|
|
202
|
+
readonly label: "Public Web";
|
|
203
|
+
readonly description: "Queries every credential-free engine in parallel and consolidates deduplicated results";
|
|
204
|
+
})[];
|
|
111
205
|
export declare const SEARCH_PROVIDER_PREFERENCES: readonly ["auto", ...SearchProviderId[]];
|
|
112
206
|
/** Display labels, derived from {@link SEARCH_PROVIDER_OPTIONS}. */
|
|
113
207
|
export declare const SEARCH_PROVIDER_LABELS: Record<SearchProviderId, string>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
4
|
-
"version": "17.0
|
|
4
|
+
"version": "17.1.0",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -53,17 +53,17 @@
|
|
|
53
53
|
"@babel/parser": "^7.29.7",
|
|
54
54
|
"@babel/traverse": "^7.29.7",
|
|
55
55
|
"@mozilla/readability": "^0.6.0",
|
|
56
|
-
"@oh-my-pi/hashline": "17.0
|
|
57
|
-
"@oh-my-pi/omp-stats": "17.0
|
|
58
|
-
"@oh-my-pi/pi-agent-core": "17.0
|
|
59
|
-
"@oh-my-pi/pi-ai": "17.0
|
|
60
|
-
"@oh-my-pi/pi-catalog": "17.0
|
|
61
|
-
"@oh-my-pi/pi-mnemopi": "17.0
|
|
62
|
-
"@oh-my-pi/pi-natives": "17.0
|
|
63
|
-
"@oh-my-pi/pi-tui": "17.0
|
|
64
|
-
"@oh-my-pi/pi-utils": "17.0
|
|
65
|
-
"@oh-my-pi/pi-wire": "17.0
|
|
66
|
-
"@oh-my-pi/snapcompact": "17.0
|
|
56
|
+
"@oh-my-pi/hashline": "17.1.0",
|
|
57
|
+
"@oh-my-pi/omp-stats": "17.1.0",
|
|
58
|
+
"@oh-my-pi/pi-agent-core": "17.1.0",
|
|
59
|
+
"@oh-my-pi/pi-ai": "17.1.0",
|
|
60
|
+
"@oh-my-pi/pi-catalog": "17.1.0",
|
|
61
|
+
"@oh-my-pi/pi-mnemopi": "17.1.0",
|
|
62
|
+
"@oh-my-pi/pi-natives": "17.1.0",
|
|
63
|
+
"@oh-my-pi/pi-tui": "17.1.0",
|
|
64
|
+
"@oh-my-pi/pi-utils": "17.1.0",
|
|
65
|
+
"@oh-my-pi/pi-wire": "17.1.0",
|
|
66
|
+
"@oh-my-pi/snapcompact": "17.1.0",
|
|
67
67
|
"@opentelemetry/api": "^1.9.1",
|
|
68
68
|
"@opentelemetry/api-logs": "^0.220.0",
|
|
69
69
|
"@opentelemetry/context-async-hooks": "^2.9.0",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* The relay repo's build script runs this and embeds the output via go:embed.
|
|
11
11
|
*/
|
|
12
12
|
import * as path from "node:path";
|
|
13
|
-
import {
|
|
13
|
+
import { generateThemeStyles, getTemplate } from "../src/export/html";
|
|
14
14
|
|
|
15
15
|
const outPath = process.argv[2];
|
|
16
16
|
if (!outPath) {
|
|
@@ -19,13 +19,11 @@ if (!outPath) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const loaderJs = await Bun.file(new URL("../src/export/html/share-loader.js", import.meta.url).pathname).text();
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
// that should mirror the host's terminal theme.
|
|
25
|
-
const themeVars = await generateThemeVars("web");
|
|
22
|
+
// Public artifacts use the bundled omp web themes rather than TUI themes.
|
|
23
|
+
const themeStyles = await generateThemeStyles("web");
|
|
26
24
|
|
|
27
25
|
const html = getTemplate()
|
|
28
|
-
.replace("<theme-vars/>", () => `<style
|
|
26
|
+
.replace("<theme-vars/>", () => `<style>${themeStyles}</style>`)
|
|
29
27
|
.replace("<title>Session Export</title>", () => "<title>omp session</title>")
|
|
30
28
|
.replace("{{SESSION_DATA}}</script>", () => `</script>\n <script>${loaderJs}</script>`);
|
|
31
29
|
|