import type { Context } from "@deepseek-ai/cordis"; import type { AgentSession, AgentSessionEvent, AgentSessionRuntime, AgentSessionServices, ExtensionError, PromptOptions, SessionManager, ToolDefinition } from "@earendil-works/pi-coding-agent"; import type { Api, Model } from "@earendil-works/pi-ai"; import type { ModelRuntime } from "@earendil-works/pi-coding-agent"; export interface PiHarnessLaunch { readonly cwd: string; readonly cwdUrl?: string; readonly agentDir: string; readonly configPath?: string; readonly args: readonly string[]; requestExit(code: number): void; } export interface PiModelsService { readonly runtime: ModelRuntime; readonly model: Model; } export interface PiModelRuntimeService { readonly runtime: ModelRuntime; readonly provider: string; readonly model: string; } export type PiResourcesService = AgentSessionServices & { createForCwd(cwd: string): Promise; }; export interface PiSessionService { readonly manager: SessionManager; } export interface PiMcpServerSnapshot { readonly id: string; readonly command: readonly string[]; readonly status: string; readonly startedAt: number; } export interface PiMcpService { snapshot(): { readonly servers: readonly PiMcpServerSnapshot[]; }; } export interface PiRuntimeService { readonly session: AgentSession; readonly sessionRuntime: AgentSessionRuntime; setModel(model: Model): Promise; prompt(text: string, options?: Pick): Promise; abort(): Promise; dispose(): Promise; } export interface PiTelemetryEvent { readonly name: string; readonly properties?: Readonly>; } export interface PiTelemetryService { readonly enabled: false; send(event: PiTelemetryEvent): { discarded: true; name: string; }; snapshot(): { enabled: false; discarded: number; observed: number; names: readonly string[]; namesTruncated: boolean; scope: "piTelemetry-service-and-event-observation"; }; } export interface PiToolsSnapshot { readonly names: string[]; readonly customTools: ToolDefinition[]; } export interface PiToolsLease extends PiToolsSnapshot { release(): void; } export declare class PiToolRegistryLeasedError extends Error { readonly piToolRegistryLeased = true; constructor(toolName: string); } export declare function isPiToolRegistryLeasedError(error: unknown): boolean; export declare class PiToolRegistry { #private; constructor(names?: readonly string[]); register(tool: ToolDefinition): () => void; snapshot(): PiToolsSnapshot; acquire(): PiToolsLease; } export interface PiPluginPanel { readonly id: string; readonly pluginId: string; readonly title: string; readonly description?: string; readonly icon?: string; readonly visible?: (signal?: AbortSignal) => boolean | Promise; readonly read: (signal?: AbortSignal) => unknown; } export interface PiPluginPanelSnapshot { readonly id: string; readonly pluginId: string; readonly title: string; readonly description?: string; readonly icon?: string; readonly data?: unknown; readonly error?: string; } export declare class PiPluginUiRegistry { #private; register(panel: PiPluginPanel): () => void; snapshot(): Promise; } declare module "@deepseek-ai/cordis" { interface Context { piHarnessLaunch: PiHarnessLaunch; piModelRuntime: PiModelRuntimeService; piModels: PiModelsService; piResources: PiResourcesService; piSession: PiSessionService; piMcp: PiMcpService; piTools: PiToolRegistry; piPluginUi: PiPluginUiRegistry; piRuntime: PiRuntimeService; piTelemetry: PiTelemetryService; } interface Events { "pi/session-event"(event: AgentSessionEvent): void; /** Emitted by the web Stop action before invoking the native abort operation. */ "pi/session-abort-requested"(session: AgentSession): void; "pi/extension-error"(error: ExtensionError): void; "pi/telemetry"(event: PiTelemetryEvent): void; } } export declare function provideLaunchContext(context: Context, launch: PiHarnessLaunch): () => void; //# sourceMappingURL=services.d.ts.map