@oh-my-pi/pi-coding-agent 17.2.4 → 17.2.6
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 +69 -0
- package/dist/{CHANGELOG-bpmhv26t.md → CHANGELOG-gs76k6wc.md} +69 -0
- package/dist/cli.js +4438 -3962
- package/dist/{template-8vdv6xb4.js → template-c2hyaytt.js} +8 -26
- package/dist/types/cli/args.d.ts +4 -1
- package/dist/types/cli/browser-relay-cli.d.ts +15 -0
- package/dist/types/cli/command-help.d.ts +99 -0
- package/dist/types/cli/gc-cli.d.ts +1 -0
- package/dist/types/cli/help-extra.d.ts +2 -0
- package/dist/types/cli/thinking-levels.d.ts +5 -0
- package/dist/types/cli/update-cli.d.ts +13 -0
- package/dist/types/commands/browser-relay.d.ts +38 -0
- package/dist/types/commands/commit.d.ts +3 -0
- package/dist/types/commands/complete.d.ts +1 -1
- package/dist/types/commands/completions.d.ts +6 -0
- package/dist/types/commands/grep.d.ts +3 -0
- package/dist/types/commands/join.d.ts +4 -0
- package/dist/types/commands/launch-help.d.ts +171 -0
- package/dist/types/commands/launch.d.ts +5 -1
- package/dist/types/commands/models.d.ts +3 -0
- package/dist/types/commands/say.d.ts +10 -0
- package/dist/types/commands/worktree.d.ts +3 -0
- package/dist/types/config/keybindings.d.ts +5 -0
- package/dist/types/config/model-discovery.d.ts +2 -2
- package/dist/types/config/models-config-schema-bundle.d.ts +3 -0
- package/dist/types/config/models-config-schema.d.ts +2 -0
- package/dist/types/config/models-config.d.ts +1 -0
- package/dist/types/config/service-tier.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +69 -21
- package/dist/types/cursor-bridge-tools.d.ts +1 -1
- package/dist/types/cursor.d.ts +7 -4
- package/dist/types/edit/index.d.ts +3 -3
- package/dist/types/edit/modes/replace.d.ts +22 -15
- package/dist/types/edit/renderer.d.ts +1 -1
- package/dist/types/eval/py/kernel.d.ts +3 -1
- package/dist/types/eval/py/spawn-options.d.ts +12 -16
- package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +8 -1
- package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +1 -1
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
- package/dist/types/launch/broker.d.ts +1 -1
- package/dist/types/launch/client.d.ts +15 -4
- package/dist/types/launch/ensure.d.ts +8 -0
- package/dist/types/launch/paths.d.ts +1 -1
- package/dist/types/launch/protocol.d.ts +19 -2
- package/dist/types/lsp/client.d.ts +2 -0
- package/dist/types/lsp/mux/daemon.d.ts +15 -0
- package/dist/types/lsp/mux/protocol.d.ts +57 -0
- package/dist/types/lsp/mux/server.d.ts +18 -0
- package/dist/types/lsp/types.d.ts +22 -2
- package/dist/types/main.d.ts +2 -0
- package/dist/types/mnemopi/embed-client.d.ts +1 -1
- package/dist/types/mnemopi/state.d.ts +0 -23
- package/dist/types/modes/components/assistant-message.d.ts +2 -0
- package/dist/types/modes/components/btw-panel.d.ts +3 -0
- package/dist/types/modes/components/custom-editor.d.ts +2 -1
- package/dist/types/modes/components/read-tool-group.d.ts +2 -0
- package/dist/types/modes/components/stripped-tool-calls-placeholder.d.ts +12 -0
- package/dist/types/modes/components/tool-execution.d.ts +2 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +2 -0
- package/dist/types/modes/controllers/command-controller.d.ts +1 -0
- package/dist/types/modes/controllers/input-controller.d.ts +1 -0
- package/dist/types/modes/interactive-mode.d.ts +5 -1
- package/dist/types/modes/types.d.ts +4 -1
- package/dist/types/modes/workflow.d.ts +2 -1
- package/dist/types/sdk.d.ts +3 -1
- package/dist/types/secrets/index.d.ts +1 -1
- package/dist/types/security/contracts/schemas.d.ts +405 -403
- package/dist/types/session/agent-session-types.d.ts +8 -1
- package/dist/types/session/agent-session.d.ts +26 -2
- package/dist/types/session/indexed-session-storage.d.ts +1 -0
- package/dist/types/session/launch-completion.d.ts +10 -0
- package/dist/types/session/session-advisors.d.ts +1 -1
- package/dist/types/session/session-context.d.ts +2 -1
- package/dist/types/session/session-entries.d.ts +15 -1
- package/dist/types/session/session-maintenance.d.ts +1 -0
- package/dist/types/session/session-manager.d.ts +23 -11
- package/dist/types/session/session-stats.d.ts +10 -0
- package/dist/types/session/session-storage.d.ts +15 -3
- package/dist/types/session/yield-queue.d.ts +6 -1
- package/dist/types/system-prompt.d.ts +4 -1
- package/dist/types/task/index.d.ts +2 -1
- package/dist/types/task/spawn-policy.d.ts +5 -0
- package/dist/types/thinking.d.ts +1 -7
- package/dist/types/tools/ast-grep.d.ts +1 -1
- package/dist/types/tools/browser/registry.d.ts +2 -1
- package/dist/types/tools/browser/relay/bridge.d.ts +35 -0
- package/dist/types/tools/browser/relay/daemon.d.ts +16 -0
- package/dist/types/tools/browser/relay/kind.d.ts +19 -0
- package/dist/types/tools/browser/relay/protocol.d.ts +97 -0
- package/dist/types/tools/browser/relay/server.d.ts +35 -0
- package/dist/types/tools/browser/render.d.ts +1 -0
- package/dist/types/tools/browser.d.ts +3 -0
- package/dist/types/tools/computer/exposure.d.ts +9 -7
- package/dist/types/tools/computer/protocol.d.ts +70 -17
- package/dist/types/tools/computer/supervisor.d.ts +23 -10
- package/dist/types/tools/computer/worker-entry.d.ts +1 -0
- package/dist/types/tools/computer/worker.d.ts +42 -7
- package/dist/types/tools/computer-renderer.d.ts +7 -5
- package/dist/types/tools/computer.d.ts +25 -44
- package/dist/types/tools/context.d.ts +3 -0
- package/dist/types/tools/glob.d.ts +1 -1
- package/dist/types/tools/grep.d.ts +1 -1
- package/dist/types/tools/index.d.ts +9 -0
- package/dist/types/tools/render-utils.d.ts +2 -0
- package/dist/types/tools/{browser/run-cancellation.d.ts → run-scope.d.ts} +8 -8
- package/dist/types/tools/tool-timeouts.d.ts +5 -0
- package/dist/types/tools/xdev.d.ts +8 -0
- package/dist/types/utils/clipboard.d.ts +2 -2
- package/dist/types/web/kagi.d.ts +1 -0
- package/dist/types/web/search/index.d.ts +1 -1
- package/dist/types/web/search/providers/anthropic.d.ts +1 -0
- package/dist/types/web/search/providers/base.d.ts +2 -0
- package/dist/types/web/search/providers/brave.d.ts +1 -0
- package/dist/types/web/search/providers/browser-page.d.ts +1 -0
- package/dist/types/web/search/providers/codex.d.ts +1 -0
- package/dist/types/web/search/providers/exa.d.ts +1 -0
- package/dist/types/web/search/providers/firecrawl.d.ts +1 -0
- package/dist/types/web/search/providers/gemini.d.ts +1 -0
- package/dist/types/web/search/providers/jina.d.ts +1 -0
- package/dist/types/web/search/providers/kagi.d.ts +1 -0
- package/dist/types/web/search/providers/kimi.d.ts +1 -0
- package/dist/types/web/search/providers/parallel.d.ts +1 -0
- package/dist/types/web/search/providers/perplexity.d.ts +1 -0
- package/dist/types/web/search/providers/searxng.d.ts +1 -0
- package/dist/types/web/search/providers/tavily.d.ts +1 -0
- package/dist/types/web/search/providers/tinyfish.d.ts +1 -0
- package/dist/types/web/search/providers/utils.d.ts +6 -9
- package/dist/types/web/search/providers/zai.d.ts +1 -0
- package/dist/types/web/search/types.d.ts +4 -0
- package/package.json +12 -12
- package/src/cli/args.ts +7 -87
- package/src/cli/browser-relay-cli.ts +119 -0
- package/src/cli/command-help.ts +103 -0
- package/src/cli/completion-gen.ts +5 -5
- package/src/cli/flag-tables.ts +9 -0
- package/src/cli/gc-cli.ts +641 -21
- package/src/cli/help-extra.ts +89 -0
- package/src/cli/setup-cli.ts +13 -21
- package/src/cli/thinking-levels.ts +7 -0
- package/src/cli/update-cli.ts +26 -7
- package/src/cli-commands.ts +170 -33
- package/src/cli.ts +17 -5
- package/src/commands/acp.ts +3 -1
- package/src/commands/agents.ts +3 -2
- package/src/commands/auth-broker.ts +3 -2
- package/src/commands/auth-gateway.ts +3 -2
- package/src/commands/bench.ts +2 -3
- package/src/commands/browser-relay.ts +53 -0
- package/src/commands/cleanse.ts +2 -2
- package/src/commands/commit.ts +3 -2
- package/src/commands/complete.ts +2 -1
- package/src/commands/completions.ts +3 -2
- package/src/commands/config.ts +3 -2
- package/src/commands/dry-balance.ts +2 -2
- package/src/commands/gallery.ts +3 -2
- package/src/commands/gc.ts +3 -2
- package/src/commands/grep.ts +3 -2
- package/src/commands/grievances.ts +3 -2
- package/src/commands/install.ts +2 -2
- package/src/commands/join.ts +3 -2
- package/src/commands/launch-help.ts +116 -0
- package/src/commands/launch.ts +7 -191
- package/src/commands/models.ts +3 -2
- package/src/commands/plugin.ts +3 -2
- package/src/commands/read.ts +3 -2
- package/src/commands/say.ts +3 -2
- package/src/commands/setup.ts +3 -2
- package/src/commands/shell.ts +3 -2
- package/src/commands/ssh.ts +3 -2
- package/src/commands/stats.ts +3 -2
- package/src/commands/tiny-models.ts +2 -2
- package/src/commands/token.ts +2 -2
- package/src/commands/ttsr.ts +2 -2
- package/src/commands/update.ts +3 -2
- package/src/commands/usage.ts +3 -2
- package/src/commands/web-search.ts +3 -2
- package/src/commands/worktree.ts +3 -2
- package/src/config/keybindings.ts +5 -0
- package/src/config/model-discovery.ts +44 -27
- package/src/config/model-registry.ts +19 -13
- package/src/config/models-config-schema-bundle.ts +9 -0
- package/src/config/resolve-config-value.ts +2 -1
- package/src/config/service-tier.ts +5 -0
- package/src/config/settings-schema.ts +72 -20
- package/src/config/settings.ts +1 -1
- package/src/cursor-bridge-tools.ts +1 -1
- package/src/cursor.ts +10 -14
- package/src/edit/diff.ts +17 -8
- package/src/edit/index.ts +20 -7
- package/src/edit/modes/replace.ts +93 -40
- package/src/edit/renderer.ts +1 -1
- package/src/edit/streaming.ts +14 -17
- package/src/eval/py/kernel.ts +2 -1
- package/src/eval/py/spawn-options.ts +24 -29
- package/src/export/html/index.ts +10 -3
- package/src/export/html/template.js +8 -26
- package/src/export/share.ts +4 -0
- package/src/extensibility/extensions/wrapper.ts +1 -0
- package/src/extensibility/legacy-pi-ai-shim.ts +22 -1
- package/src/extensibility/legacy-pi-coding-agent-shim.ts +7 -6
- package/src/extensibility/plugins/legacy-pi-compat.ts +124 -57
- package/src/extensibility/skills.ts +11 -0
- package/src/extensibility/utils.ts +10 -2
- package/src/launch/broker.ts +223 -7
- package/src/launch/client.ts +192 -21
- package/src/launch/ensure.ts +73 -0
- package/src/launch/paths.ts +1 -1
- package/src/launch/protocol.ts +54 -2
- package/src/lsp/client.ts +23 -2
- package/src/lsp/index.ts +8 -0
- package/src/lsp/mux/daemon.ts +348 -0
- package/src/lsp/mux/protocol.ts +96 -0
- package/src/lsp/mux/server.ts +797 -0
- package/src/lsp/types.ts +28 -2
- package/src/main.ts +20 -8
- package/src/mcp/config-writer.ts +1 -1
- package/src/mcp/oauth-flow.ts +11 -1
- package/src/mnemopi/embed-client.ts +49 -2
- package/src/mnemopi/state.ts +57 -23
- package/src/modes/components/assistant-message.ts +11 -0
- package/src/modes/components/btw-panel.ts +41 -4
- package/src/modes/components/chat-transcript-builder.ts +4 -0
- package/src/modes/components/custom-editor.ts +9 -0
- package/src/modes/components/read-tool-group.ts +10 -0
- package/src/modes/components/status-line/component.ts +1 -1
- package/src/modes/components/stripped-tool-calls-placeholder.ts +35 -0
- package/src/modes/components/tool-execution.ts +8 -0
- package/src/modes/components/tree-selector.ts +46 -48
- package/src/modes/controllers/btw-controller.ts +55 -7
- package/src/modes/controllers/command-controller.ts +31 -0
- package/src/modes/controllers/event-controller.ts +17 -0
- package/src/modes/controllers/input-controller.ts +63 -8
- package/src/modes/controllers/mcp-command-controller.ts +11 -5
- package/src/modes/controllers/selector-controller.ts +20 -0
- package/src/modes/interactive-mode.ts +18 -2
- package/src/modes/types.ts +9 -1
- package/src/modes/utils/hotkeys-markdown.ts +1 -0
- package/src/modes/utils/interactive-context-helpers.ts +1 -0
- package/src/modes/utils/ui-helpers.ts +6 -10
- package/src/modes/workflow.ts +8 -2
- package/src/prompts/agents/init.md +1 -1
- package/src/prompts/session/launch-completion.md +1 -0
- package/src/prompts/system/plan-mode-active.md +2 -2
- package/src/prompts/system/system-prompt.md +26 -52
- package/src/prompts/system/workflow-notice.md +3 -3
- package/src/prompts/tools/ast-grep.md +1 -1
- package/src/prompts/tools/bash.md +1 -1
- package/src/prompts/tools/browser.md +1 -0
- package/src/prompts/tools/computer.md +21 -21
- package/src/prompts/tools/glob.md +1 -1
- package/src/prompts/tools/grep.md +1 -1
- package/src/prompts/tools/replace.md +5 -4
- package/src/prompts/tools/task.md +4 -4
- package/src/sdk.ts +49 -6
- package/src/secrets/index.ts +1 -1
- package/src/security/contracts/schemas.ts +205 -183
- package/src/security/contracts/validation.ts +5 -1
- package/src/security/store.ts +2 -2
- package/src/session/agent-session-types.ts +9 -1
- package/src/session/agent-session.ts +204 -15
- package/src/session/indexed-session-storage.ts +9 -0
- package/src/session/launch-completion.ts +37 -0
- package/src/session/prewalk.ts +24 -2
- package/src/session/session-advisors.ts +2 -2
- package/src/session/session-context.ts +42 -12
- package/src/session/session-dump-format.ts +1 -1
- package/src/session/session-entries.ts +17 -1
- package/src/session/session-maintenance.ts +38 -4
- package/src/session/session-manager.ts +123 -67
- package/src/session/session-paths.ts +118 -55
- package/src/session/session-stats.ts +48 -3
- package/src/session/session-storage.ts +30 -22
- package/src/session/stream-guards.ts +1 -1
- package/src/session/yield-queue.ts +121 -16
- package/src/slash-commands/builtin-registry.ts +37 -24
- package/src/system-prompt.ts +8 -3
- package/src/task/index.ts +23 -8
- package/src/task/spawn-policy.ts +14 -0
- package/src/thinking.ts +2 -8
- package/src/tools/ast-grep.ts +10 -4
- package/src/tools/browser/cmux/cmux-tab.ts +97 -14
- package/src/tools/browser/cmux/rpc.ts +2 -8
- package/src/tools/browser/registry.ts +53 -2
- package/src/tools/browser/relay/bridge.ts +945 -0
- package/src/tools/browser/relay/daemon.ts +117 -0
- package/src/tools/browser/relay/extension-assets/background.js.txt +242 -0
- package/src/tools/browser/relay/extension-assets/manifest.json.txt +14 -0
- package/src/tools/browser/relay/extension-assets/options.html.txt +53 -0
- package/src/tools/browser/relay/extension-assets/options.js.txt +23 -0
- package/src/tools/browser/relay/kind.ts +41 -0
- package/src/tools/browser/relay/protocol.ts +54 -0
- package/src/tools/browser/relay/server.ts +141 -0
- package/src/tools/browser/render.ts +4 -1
- package/src/tools/browser/shared-daemon.ts +7 -58
- package/src/tools/browser/tab-supervisor.ts +5 -4
- package/src/tools/browser/tab-worker.ts +33 -12
- package/src/tools/browser.ts +26 -1
- package/src/tools/computer/exposure.ts +11 -35
- package/src/tools/computer/protocol.ts +51 -10
- package/src/tools/computer/supervisor.ts +227 -124
- package/src/tools/computer/worker-entry.ts +11 -6
- package/src/tools/computer/worker.ts +695 -81
- package/src/tools/computer-renderer.ts +104 -65
- package/src/tools/computer.ts +134 -428
- package/src/tools/context.ts +3 -0
- package/src/tools/glob.ts +9 -2
- package/src/tools/grep.ts +12 -6
- package/src/tools/hub/launch.ts +122 -6
- package/src/tools/index.ts +9 -0
- package/src/tools/inspect-image.ts +32 -6
- package/src/tools/render-utils.ts +2 -0
- package/src/tools/{browser/run-cancellation.ts → run-scope.ts} +11 -11
- package/src/tools/tool-timeouts.ts +1 -0
- package/src/tools/xdev.ts +29 -2
- package/src/utils/clipboard.ts +40 -14
- package/src/utils/command-args.ts +26 -28
- package/src/utils/tool-choice.ts +0 -13
- package/src/web/kagi.ts +2 -1
- package/src/web/search/index.ts +18 -2
- package/src/web/search/providers/anthropic.ts +4 -1
- package/src/web/search/providers/base.ts +2 -0
- package/src/web/search/providers/brave.ts +3 -1
- package/src/web/search/providers/browser-page.ts +6 -4
- package/src/web/search/providers/codex.ts +4 -1
- package/src/web/search/providers/duckduckgo.ts +2 -1
- package/src/web/search/providers/ecosia.ts +2 -1
- package/src/web/search/providers/exa.ts +4 -2
- package/src/web/search/providers/firecrawl.ts +3 -1
- package/src/web/search/providers/gemini.ts +8 -2
- package/src/web/search/providers/google.ts +2 -1
- package/src/web/search/providers/jina.ts +12 -2
- package/src/web/search/providers/kagi.ts +3 -0
- package/src/web/search/providers/kimi.ts +5 -1
- package/src/web/search/providers/mojeek.ts +2 -1
- package/src/web/search/providers/parallel.ts +5 -1
- package/src/web/search/providers/perplexity.ts +6 -3
- package/src/web/search/providers/public.ts +1 -1
- package/src/web/search/providers/searxng.ts +11 -5
- package/src/web/search/providers/startpage.ts +10 -4
- package/src/web/search/providers/synthetic.ts +11 -5
- package/src/web/search/providers/tavily.ts +3 -1
- package/src/web/search/providers/tinyfish.ts +3 -1
- package/src/web/search/providers/utils.ts +12 -10
- package/src/web/search/providers/xai.ts +2 -2
- package/src/web/search/providers/zai.ts +18 -3
- package/src/web/search/types.ts +6 -0
- package/dist/types/config/file-lock.d.ts +0 -29
- package/src/config/file-lock.ts +0 -164
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ptree } from "@oh-my-pi/pi-utils";
|
|
2
1
|
export declare const lspSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
3
2
|
action: "capabilities" | "code_actions" | "definition" | "diagnostics" | "hover" | "implementation" | "references" | "reload" | "rename" | "rename_file" | "request" | "status" | "symbols" | "type_definition";
|
|
4
3
|
file?: string | undefined;
|
|
@@ -229,6 +228,27 @@ export interface ServerConfig {
|
|
|
229
228
|
*/
|
|
230
229
|
createClient?: LinterClientFactory;
|
|
231
230
|
}
|
|
231
|
+
/** Minimal write sink for the server-bound byte stream (satisfied by `Bun.FileSink` and the mux socket adapter). */
|
|
232
|
+
export interface LspWriteSink {
|
|
233
|
+
write(data: string | Uint8Array): number | Promise<number>;
|
|
234
|
+
flush(): number | void | Promise<number | void>;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Byte transport carrying one LSP JSON-RPC link. Structurally satisfied by
|
|
238
|
+
* `ptree.ChildProcess<"pipe">` (local server spawn) and by the socket adapter
|
|
239
|
+
* in `mux/daemon.ts` (broker-shared server). `exited` may reject (ptree kill).
|
|
240
|
+
*/
|
|
241
|
+
export interface LspTransport {
|
|
242
|
+
readonly stdin: LspWriteSink;
|
|
243
|
+
readonly stdout: ReadableStream<Uint8Array>;
|
|
244
|
+
readonly exited: Promise<number>;
|
|
245
|
+
readonly exitCode: number | null;
|
|
246
|
+
readonly pid?: number;
|
|
247
|
+
/** Present and true on broker-shared mux links; `lsp reload` uses it to request a shared-server restart. */
|
|
248
|
+
readonly sharedMux?: boolean;
|
|
249
|
+
kill(): void;
|
|
250
|
+
peekStderr(): string;
|
|
251
|
+
}
|
|
232
252
|
export interface OpenFile {
|
|
233
253
|
version: number;
|
|
234
254
|
languageId: string;
|
|
@@ -257,7 +277,7 @@ export interface LspClient {
|
|
|
257
277
|
name: string;
|
|
258
278
|
cwd: string;
|
|
259
279
|
config: ServerConfig;
|
|
260
|
-
proc:
|
|
280
|
+
proc: LspTransport;
|
|
261
281
|
requestId: number;
|
|
262
282
|
diagnostics: Map<string, PublishedDiagnostics>;
|
|
263
283
|
diagnosticsVersion: number;
|
package/dist/types/main.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { type SessionInfo } from "./session/session-listing.js";
|
|
|
13
13
|
import { SessionManager } from "./session/session-manager.js";
|
|
14
14
|
type RunAcpMode = (createSession: AcpSessionFactory) => Promise<never>;
|
|
15
15
|
export declare function writeStartupNotice(parsedArgs: Pick<Args, "mode">, text: string): void;
|
|
16
|
+
/** Reads a non-TTY stdin stream as prompt text. */
|
|
17
|
+
export declare function readPipedInput(): Promise<string | undefined>;
|
|
16
18
|
export interface InteractiveModeNotify {
|
|
17
19
|
kind: "warn" | "error" | "info";
|
|
18
20
|
message: string;
|
|
@@ -34,7 +34,7 @@ export interface MnemopiSubprocessEmbeddingModel {
|
|
|
34
34
|
}
|
|
35
35
|
export declare class MnemopiEmbedClient {
|
|
36
36
|
#private;
|
|
37
|
-
constructor(spawnWorker?: () => MnemopiEmbedWorkerHandle);
|
|
37
|
+
constructor(spawnWorker?: () => MnemopiEmbedWorkerHandle, requestTimeoutMs?: number);
|
|
38
38
|
/**
|
|
39
39
|
* Load the named fastembed model inside the subprocess. Resolves to a
|
|
40
40
|
* thin wrapper whose `embed()` round-trips through the same worker, or
|
|
@@ -162,29 +162,6 @@ export declare class MnemopiSessionState {
|
|
|
162
162
|
extract?: boolean;
|
|
163
163
|
sleep?: boolean;
|
|
164
164
|
}): Promise<void>;
|
|
165
|
-
/**
|
|
166
|
-
* Release the per-session resources. Defaults to running a lighter
|
|
167
|
-
* {@link consolidate} pass before closing handles: it retains the current
|
|
168
|
-
* transcript and flushes in-flight extractions, but skips the synchronous
|
|
169
|
-
* bank sleep so normal session shutdown returns promptly. Full promotion of
|
|
170
|
-
* working memory into long-term storage is still performed by the explicit
|
|
171
|
-
* `/memory enqueue` and backend enqueue paths. Callers that are about to
|
|
172
|
-
* delete the DB files — e.g. `mnemopiBackend.clear` — pass
|
|
173
|
-
* `{ consolidate: false }` to skip the retain/flush pass, since spending
|
|
174
|
-
* tokens on memories that will be wiped on the next line is wasted work
|
|
175
|
-
* (PR #2327 review).
|
|
176
|
-
*
|
|
177
|
-
* `timeoutMs` caps how long the consolidate await blocks the caller
|
|
178
|
-
* (the user-visible `/quit` / `/exit` shutdown path passes this so
|
|
179
|
-
* dispose returns within a UX budget — issue #3641). When the cap is
|
|
180
|
-
* hit, dispose returns immediately and detaches the still-in-flight
|
|
181
|
-
* consolidate; the SQLite handles are closed in the background once
|
|
182
|
-
* the consolidate settles so writes never race a closed handle, and
|
|
183
|
-
* any pending embeddings are SIGKILL'd along with the embed worker
|
|
184
|
-
* (a tolerable loss — working memory rows are durable; only the
|
|
185
|
-
* episodic promotion / embedding for the LAST few turns is skipped,
|
|
186
|
-
* and `maybeRetainOnAgentEnd` has already retained earlier turns).
|
|
187
|
-
*/
|
|
188
165
|
dispose(options?: {
|
|
189
166
|
consolidate?: boolean;
|
|
190
167
|
timeoutMs?: number;
|
|
@@ -63,6 +63,8 @@ export declare class AssistantMessageComponent extends Container {
|
|
|
63
63
|
messagePersistenceKey(): string | undefined;
|
|
64
64
|
/** Toggle rendering for assistant-native and tool-result images. */
|
|
65
65
|
setImagesVisible(visible: boolean): void;
|
|
66
|
+
/** Toggle only images produced by tool results; assistant-native images remain governed by setImagesVisible. */
|
|
67
|
+
setToolResultImagesVisible(visible: boolean): void;
|
|
66
68
|
setToolResultImages(toolCallId: string, images: ImageContent[]): void;
|
|
67
69
|
updateContent(message: AssistantMessage, opts?: {
|
|
68
70
|
transient?: boolean;
|
|
@@ -2,6 +2,7 @@ import { Container, type TUI } from "@oh-my-pi/pi-tui";
|
|
|
2
2
|
interface BtwPanelComponentOptions {
|
|
3
3
|
question: string;
|
|
4
4
|
tui: TUI;
|
|
5
|
+
canBranch?: () => boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare class BtwPanelComponent extends Container {
|
|
7
8
|
#private;
|
|
@@ -9,6 +10,8 @@ export declare class BtwPanelComponent extends Container {
|
|
|
9
10
|
appendText(delta: string): void;
|
|
10
11
|
setAnswer(text: string): void;
|
|
11
12
|
markComplete(): void;
|
|
13
|
+
/** Shows that the completed answer is being promoted into the chat session. */
|
|
14
|
+
markBranching(): void;
|
|
12
15
|
markAborted(): void;
|
|
13
16
|
markError(message: string): void;
|
|
14
17
|
isBranchable(): boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ImageContent } from "@oh-my-pi/pi-ai";
|
|
2
2
|
import { Editor, type KeyId, TUI } from "@oh-my-pi/pi-tui";
|
|
3
3
|
import type { AppKeybinding } from "../../config/keybindings.js";
|
|
4
|
-
type ConfigurableEditorAction = Extract<AppKeybinding, "app.interrupt" | "app.clear" | "app.exit" | "app.suspend" | "app.display.reset" | "app.thinking.cycle" | "app.model.cycleForward" | "app.model.cycleBackward" | "app.model.select" | "app.model.selectTemporary" | "app.tools.expand" | "app.thinking.toggle" | "app.editor.external" | "app.history.search" | "app.message.dequeue" | "app.retry" | "app.clipboard.pasteImage" | "app.clipboard.pasteTextRaw" | "app.clipboard.copyPrompt">;
|
|
4
|
+
type ConfigurableEditorAction = Extract<AppKeybinding, "app.interrupt" | "app.clear" | "app.exit" | "app.suspend" | "app.display.reset" | "app.thinking.cycle" | "app.model.cycleForward" | "app.model.cycleBackward" | "app.model.select" | "app.model.selectTemporary" | "app.tools.expand" | "app.tools.toggleVisibility" | "app.thinking.toggle" | "app.editor.external" | "app.history.search" | "app.message.dequeue" | "app.retry" | "app.clipboard.pasteImage" | "app.clipboard.pasteTextRaw" | "app.clipboard.copyPrompt">;
|
|
5
5
|
/** Max gap (ms) between two spaces for the later one to count as OS key auto-repeat rather than a
|
|
6
6
|
* deliberate press. OS auto-repeat is fast; a deliberate tap (even a fast one) is slower. */
|
|
7
7
|
export declare const SPACE_REPEAT_MAX_GAP_MS = 120;
|
|
@@ -141,6 +141,7 @@ export declare class CustomEditor extends Editor {
|
|
|
141
141
|
onCycleModelBackward?: () => void;
|
|
142
142
|
onSelectModel?: () => void;
|
|
143
143
|
onExpandTools?: () => void;
|
|
144
|
+
onToggleToolActivity?: () => void;
|
|
144
145
|
onToggleThinking?: () => void;
|
|
145
146
|
onExternalEditor?: () => void;
|
|
146
147
|
onHistorySearch?: () => void;
|
|
@@ -27,6 +27,7 @@ type ReadToolGroupOptions = {
|
|
|
27
27
|
export declare class ReadToolGroupComponent extends Container implements ToolExecutionHandle {
|
|
28
28
|
#private;
|
|
29
29
|
constructor(options?: ReadToolGroupOptions);
|
|
30
|
+
render(width: number): readonly string[];
|
|
30
31
|
isTranscriptBlockFinalized(): boolean;
|
|
31
32
|
finalize(): void;
|
|
32
33
|
/**
|
|
@@ -60,6 +61,7 @@ export declare class ReadToolGroupComponent extends Container implements ToolExe
|
|
|
60
61
|
attachUsage(toolCallIds: readonly string[], usage: Usage, durationMs?: number, ttftMs?: number, timestamp?: number): boolean;
|
|
61
62
|
setArgsComplete(_toolCallId?: string): void;
|
|
62
63
|
setExpanded(expanded: boolean): void;
|
|
64
|
+
setToolActivityVisible(visible: boolean): void;
|
|
63
65
|
getComponent(): Component;
|
|
64
66
|
}
|
|
65
67
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Text } from "@oh-my-pi/pi-tui";
|
|
2
|
+
/**
|
|
3
|
+
* Dim transcript marker for tool calls stripped from the resolved branch
|
|
4
|
+
* (failed/retried turns, results on sibling branches). It is tool activity,
|
|
5
|
+
* so it hides and reappears with the `display.hideToolActivity` toggle.
|
|
6
|
+
*/
|
|
7
|
+
export declare class StrippedToolCallsPlaceholder extends Text {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(strippedToolCalls: number, toolActivityVisible: boolean);
|
|
10
|
+
setToolActivityVisible(visible: boolean): void;
|
|
11
|
+
render(width: number): readonly string[];
|
|
12
|
+
}
|
|
@@ -48,6 +48,7 @@ export interface ToolExecutionHandle extends Component {
|
|
|
48
48
|
}, isPartial?: boolean, toolCallId?: string): void;
|
|
49
49
|
setArgsComplete(toolCallId?: string): void;
|
|
50
50
|
setExpanded(expanded: boolean): void;
|
|
51
|
+
setToolActivityVisible(visible: boolean): void;
|
|
51
52
|
/** Freeze the block as final history: stop spinners and let it commit to scrollback. */
|
|
52
53
|
seal(): void;
|
|
53
54
|
}
|
|
@@ -139,6 +140,7 @@ export declare class ToolExecutionComponent extends Container implements NativeS
|
|
|
139
140
|
*/
|
|
140
141
|
stopAnimation(): void;
|
|
141
142
|
setExpanded(expanded: boolean): void;
|
|
143
|
+
setToolActivityVisible(visible: boolean): void;
|
|
142
144
|
setShowImages(show: boolean): void;
|
|
143
145
|
invalidate(): void;
|
|
144
146
|
render(width: number): readonly string[];
|
|
@@ -5,6 +5,8 @@ export declare class BtwController {
|
|
|
5
5
|
constructor(ctx: InteractiveModeContext);
|
|
6
6
|
hasActiveRequest(): boolean;
|
|
7
7
|
canBranch(): boolean;
|
|
8
|
+
/** Whether plain `b` is currently reserved for a completed or pending branch action. */
|
|
9
|
+
handlesBranchKey(): boolean;
|
|
8
10
|
canCopy(): boolean;
|
|
9
11
|
handleCopy(): Promise<boolean>;
|
|
10
12
|
handleBranch(): Promise<boolean>;
|
|
@@ -27,6 +27,7 @@ export declare class CommandController {
|
|
|
27
27
|
handleMemoryCommand(text: string): Promise<void>;
|
|
28
28
|
handleClearCommand(): Promise<void>;
|
|
29
29
|
handleFreshCommand(): Promise<void>;
|
|
30
|
+
handleResetContextCommand(): Promise<void>;
|
|
30
31
|
handleDropCommand(): Promise<void>;
|
|
31
32
|
handleForkCommand(): Promise<void>;
|
|
32
33
|
/**
|
|
@@ -66,6 +66,7 @@ export declare class InputController {
|
|
|
66
66
|
cycleThinkingLevel(): void;
|
|
67
67
|
cycleRoleModel(direction?: "forward" | "backward"): Promise<void>;
|
|
68
68
|
toggleToolOutputExpansion(): void;
|
|
69
|
+
toggleToolActivityVisibility(): void;
|
|
69
70
|
setToolsExpanded(expanded: boolean): void;
|
|
70
71
|
toggleThinkingBlockVisibility(): void;
|
|
71
72
|
openExternalEditor(): Promise<void>;
|
|
@@ -103,6 +103,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
103
103
|
initialChatRendered: boolean;
|
|
104
104
|
isBashMode: boolean;
|
|
105
105
|
toolOutputExpanded: boolean;
|
|
106
|
+
hideToolActivity: boolean;
|
|
106
107
|
todoExpanded: boolean;
|
|
107
108
|
planModeEnabled: boolean;
|
|
108
109
|
planModePaused: boolean;
|
|
@@ -336,6 +337,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
336
337
|
handleContextCommand(): void;
|
|
337
338
|
handleClearCommand(): Promise<void>;
|
|
338
339
|
handleFreshCommand(): Promise<void>;
|
|
340
|
+
handleResetContextCommand(): Promise<void>;
|
|
339
341
|
handleDropCommand(): Promise<void>;
|
|
340
342
|
handleForkCommand(): Promise<void>;
|
|
341
343
|
handleMoveCommand(targetPath?: string): Promise<void>;
|
|
@@ -392,10 +394,12 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
392
394
|
hasActiveBtw(): boolean;
|
|
393
395
|
handleBtwEscape(): boolean;
|
|
394
396
|
canBranchBtw(): boolean;
|
|
397
|
+
/** Reserves plain `b` only after /btw has a completed branch action to handle. */
|
|
398
|
+
handlesBtwBranchKey(): boolean;
|
|
395
399
|
handleBtwBranchKey(): Promise<boolean>;
|
|
396
400
|
canCopyBtw(): boolean;
|
|
397
401
|
handleBtwCopyKey(): Promise<boolean>;
|
|
398
|
-
handleBtwBranch(question: string, assistantMessage: AssistantMessage): Promise<void>;
|
|
402
|
+
handleBtwBranch(question: string, assistantMessage: AssistantMessage, leafId: string, sessionId: string): Promise<void>;
|
|
399
403
|
handleOmfgCommand(complaint: string): Promise<void>;
|
|
400
404
|
hasActiveOmfg(): boolean;
|
|
401
405
|
handleOmfgEscape(): boolean;
|
|
@@ -141,6 +141,7 @@ export interface InteractiveModeContext {
|
|
|
141
141
|
initialChatRendered: boolean;
|
|
142
142
|
isBashMode: boolean;
|
|
143
143
|
toolOutputExpanded: boolean;
|
|
144
|
+
hideToolActivity: boolean;
|
|
144
145
|
todoExpanded: boolean;
|
|
145
146
|
planModeEnabled: boolean;
|
|
146
147
|
vibeModeEnabled: boolean;
|
|
@@ -325,6 +326,7 @@ export interface InteractiveModeContext {
|
|
|
325
326
|
handleDebugTranscriptCommand(): Promise<void>;
|
|
326
327
|
handleClearCommand(): Promise<void>;
|
|
327
328
|
handleFreshCommand(): Promise<void>;
|
|
329
|
+
handleResetContextCommand(): Promise<void>;
|
|
328
330
|
handleDropCommand(): Promise<void>;
|
|
329
331
|
handleForkCommand(): Promise<void>;
|
|
330
332
|
handleBashCommand(command: string, excludeFromContext?: boolean): Promise<void>;
|
|
@@ -387,9 +389,10 @@ export interface InteractiveModeContext {
|
|
|
387
389
|
handleBtwEscape(): boolean;
|
|
388
390
|
handleBtwBranchKey(): Promise<boolean>;
|
|
389
391
|
canBranchBtw(): boolean;
|
|
392
|
+
handlesBtwBranchKey(): boolean;
|
|
390
393
|
canCopyBtw(): boolean;
|
|
391
394
|
handleBtwCopyKey(): Promise<boolean>;
|
|
392
|
-
handleBtwBranch(question: string, assistantMessage: AssistantMessage): Promise<void>;
|
|
395
|
+
handleBtwBranch(question: string, assistantMessage: AssistantMessage, leafId: string, sessionId: string): Promise<void>;
|
|
393
396
|
handleOmfgCommand(complaint: string): Promise<void>;
|
|
394
397
|
hasActiveOmfg(): boolean;
|
|
395
398
|
handleOmfgEscape(): boolean;
|
|
@@ -2,8 +2,9 @@ import { type KeywordHighlighter } from "./gradient-highlight.js";
|
|
|
2
2
|
/** WORKFLOW_NOTICE is the default hidden notice for sessions with batched task calls enabled. */
|
|
3
3
|
export declare const WORKFLOW_NOTICE: string;
|
|
4
4
|
/** renderWorkflowNotice renders the workflow notice for the active task schema. */
|
|
5
|
-
export declare function renderWorkflowNotice({ taskBatch }: {
|
|
5
|
+
export declare function renderWorkflowNotice({ taskBatch, scoutAvailable, }: {
|
|
6
6
|
taskBatch: boolean;
|
|
7
|
+
scoutAvailable?: boolean;
|
|
7
8
|
}): string;
|
|
8
9
|
/**
|
|
9
10
|
* Whether `text` contains the standalone keyword "workflowz"
|
package/dist/types/sdk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Agent, type AgentOptions, type AgentTelemetryConfig, type AgentTool, type ThinkingLevel } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import type { Effort, Model, SimpleStreamOptions } from "@oh-my-pi/pi-ai";
|
|
2
|
+
import type { Effort, Model, ServiceTier, SimpleStreamOptions } from "@oh-my-pi/pi-ai";
|
|
3
3
|
import type { Dialect } from "@oh-my-pi/pi-ai/dialect";
|
|
4
4
|
import { type Rule } from "./capability/rule.js";
|
|
5
5
|
import { ModelRegistry } from "./config/model-registry.js";
|
|
@@ -61,6 +61,8 @@ export interface CreateAgentSessionOptions {
|
|
|
61
61
|
thinkingLevel?: ConfiguredThinkingLevel;
|
|
62
62
|
/** Hard ceiling on the session's thinking effort (e.g. a task spawn's `task.maxEffort`-capped hint); retry-fallback recovery re-clamps to it. */
|
|
63
63
|
thinkingLevelCeiling?: Effort;
|
|
64
|
+
/** OpenAI service-tier override for this session. `null` omits `service_tier`. */
|
|
65
|
+
openAIServiceTier?: ServiceTier | null;
|
|
64
66
|
/** Models available for cycling (Ctrl+P in interactive mode) */
|
|
65
67
|
scopedModels?: Array<{
|
|
66
68
|
model: Model;
|
|
@@ -31,7 +31,7 @@ export declare function collectEnvSecrets(): SecretEntry[];
|
|
|
31
31
|
* API keys) that are NOT configured via secrets.yml or the environment. Without
|
|
32
32
|
* these, such a token in a tool result falls through to pi-ai's irreversible
|
|
33
33
|
* provider-boundary redaction (`[openai_token_redacted]`); the model then echoes
|
|
34
|
-
* that placeholder into edit-tool `
|
|
34
|
+
* that placeholder into edit-tool `old_string`, which can never match the real
|
|
35
35
|
* bytes on disk (issue #6968). Routing the same shapes through the obfuscator
|
|
36
36
|
* mints reversible keyed placeholders that `deobfuscateToolArguments` restores
|
|
37
37
|
* before tool execution, keeping exact-match edits working while the credential
|