import { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions } from "./bash.js"; import { type SupervisedCommandOwner } from "./bash-pty-native.js"; export declare const powershellToolSystemPromptContribution: Readonly<{ readonly snippet: "Execute PowerShell commands."; readonly guidelines: readonly ["You can inspect ATOMIC_* or PI_* environment variables for current model and session details.", "Use { action: \"wait\", id: taskId } to observe an existing shell task with the owner policy. Avoid repeated short polls; await completion notifications when no dependent work is blocked. Never relaunch a yielded command. Waiting does not extend execution timeout or owner lifetime.", "For ordinary commands, omit wait to use the owner's observation policy (normally 10s). Do not routinely request one-second waits: premature yields add tool calls without making the command faster. Use a short budget only for a concrete responsiveness need, or explicit background observation when you have independent work to do. Explicit budgets, including zero for polling, remain available.", "Choose foreground or background shell observation as needed without asking the user each time. Background yields after admission; foreground waits for its optional budget then the same command continues in background. Omitted wait uses owner-configured automatic background yield (default 10s). Observation never changes the execution timeout, which stops the command. Background requires a supported task owner; unbound foreground waits until completion regardless of budget."]; }>; export type PowerShellOperations = BashOperations; export type PowerShellToolDetails = BashToolDetails; export type PowerShellToolInput = BashToolInput; export interface PowerShellToolOptions extends Pick { operations?: BashOperations; } export declare function createLocalPowerShellOperations(binding?: { taskOwner?: SupervisedCommandOwner; }): PowerShellOperations; export declare function createPowerShellToolDefinition(cwd: string, options?: PowerShellToolOptions): { name: string; label: string; execute(toolCallId: string, params: ({ command: string; env?: Record | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>), signal: AbortSignal | undefined, onUpdate: import("@earendil-works/pi-agent-core").AgentToolUpdateCallback | undefined, ctx: import("../extensions/context-types.ts").ExtensionToolContext): Promise>; description: string; promptSnippet: "Execute PowerShell commands."; promptGuidelines: ("Choose foreground or background shell observation as needed without asking the user each time. Background yields after admission; foreground waits for its optional budget then the same command continues in background. Omitted wait uses owner-configured automatic background yield (default 10s). Observation never changes the execution timeout, which stops the command. Background requires a supported task owner; unbound foreground waits until completion regardless of budget." | "For ordinary commands, omit wait to use the owner's observation policy (normally 10s). Do not routinely request one-second waits: premature yields add tool calls without making the command faster. Use a short budget only for a concrete responsiveness need, or explicit background observation when you have independent work to do. Explicit budgets, including zero for polling, remain available." | "Use { action: \"wait\", id: taskId } to observe an existing shell task with the owner policy. Avoid repeated short polls; await completion notifications when no dependent work is blocked. Never relaunch a yielded command. Waiting does not extend execution timeout or owner lifetime." | "You can inspect ATOMIC_* or PI_* environment variables for current model and session details.")[] | undefined; parameters: import("typebox").TUnsafe<({ command: string; env?: Record | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)>; constrainedSampling?: false | import("@bastani/pi-ai").ConstrainedSamplingConfig; maxResultSizeChars?: number; structuredOutput?: true; renderShell?: "default" | "self"; prepareArguments?: ((args: unknown) => ({ command: string; env?: Record | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)) | undefined; outputSchema?: import("typebox").TSchema; exposure?: import("../extensions/tool-types.ts").ToolExposure; namespace?: import("../extensions/tool-types.ts").ToolNamespace; annotations?: import("../extensions/tool-types.ts").ToolAnnotations; defaultActive?: boolean; prepareLoadout?: (loadout: import("../extensions/tool-types.ts").ToolLoadout) => import("../extensions/tool-types.ts").ToolLoadoutChanges | undefined; executionMode?: import("@earendil-works/pi-agent-core").ToolExecutionMode; concurrency?: import("./tool-concurrency.ts").ToolConcurrency<({ command: string; env?: Record | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)> | undefined; renderCall?: ((args: ({ command: string; env?: Record | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>), theme: import("../../index.ts").Theme, context: import("../extensions/tool-types.ts").ToolRenderContext | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)>) => import("@earendil-works/pi-tui").Component) | undefined; renderResult?: ((result: import("@earendil-works/pi-agent-core").AgentToolResult, options: import("../index.ts").ToolRenderResultOptions, theme: import("../../index.ts").Theme, context: import("../extensions/tool-types.ts").ToolRenderContext | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)>) => import("@earendil-works/pi-tui").Component) | undefined; }; export declare function createPowerShellTool(cwd: string, options?: PowerShellToolOptions): import("@earendil-works/pi-agent-core").AgentTool | undefined; timeout?: number | undefined; wait?: import("../tasks/contracts.ts").WaitPolicy | undefined; cwd?: string | undefined; pty?: boolean | undefined; } & { action?: never; id?: never; budgetMs?: never; }) | ({ action: "wait"; id: string; budgetMs?: number; } & Partial>)>, BashToolDetails | undefined>; export type PowerShellSpawnContext = BashSpawnContext; export type PowerShellSpawnHook = BashSpawnHook; //# sourceMappingURL=powershell.d.ts.map