@mariozechner/pi-coding-agent 0.49.2 → 0.50.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 +126 -1
- package/README.md +310 -1229
- package/dist/cli/args.d.ts +5 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +57 -22
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +53 -34
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +262 -67
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +8 -18
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +39 -55
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +2 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/export-html/template.css +9 -0
- package/dist/core/export-html/template.js +6 -4
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +10 -1
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +9 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +39 -12
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +112 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +9 -2
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +13 -0
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/model-registry.d.ts +42 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +154 -44
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +3 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +129 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1148 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +6 -0
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +114 -54
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/resource-loader.d.ts +160 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +604 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +14 -105
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +52 -304
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +45 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +39 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +107 -25
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +18 -10
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +126 -93
- package/dist/core/skills.js.map +1 -1
- package/dist/core/system-prompt.d.ts +3 -27
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +16 -103
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +2 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +4 -4
- package/dist/core/tools/read.js.map +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +209 -97
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +5 -3
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +5 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +29 -9
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +3 -2
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +4 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +3 -2
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +4 -2
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +468 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +3 -2
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +4 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +9 -0
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +3 -4
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +18 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +195 -87
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -5
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +2 -2
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +2 -2
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +2 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +47 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +566 -211
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -1
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +8 -1
- package/dist/modes/interactive/theme/theme.d.ts +8 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +79 -28
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +25 -89
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +32 -92
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/git.d.ts +2 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +6 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/shell.d.ts +1 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +16 -2
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/docs/compaction.md +23 -21
- package/docs/custom-provider.md +538 -0
- package/docs/development.md +69 -0
- package/docs/extensions.md +180 -118
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/json.md +79 -0
- package/docs/keybindings.md +162 -0
- package/docs/models.md +193 -0
- package/docs/packages.md +163 -0
- package/docs/prompt-templates.md +67 -0
- package/docs/providers.md +147 -0
- package/docs/sdk.md +111 -178
- package/docs/session.md +167 -16
- package/docs/settings.md +216 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +111 -202
- package/docs/terminal-setup.md +65 -0
- package/docs/themes.md +295 -0
- package/docs/tui.md +36 -5
- package/docs/windows.md +17 -0
- package/examples/README.md +1 -0
- package/examples/extensions/README.md +24 -2
- package/examples/extensions/antigravity-image-gen.ts +413 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/doom-overlay/doom/build.sh +1 -1
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/02-custom-model.ts +3 -3
- package/examples/sdk/03-custom-prompt.ts +20 -9
- package/examples/sdk/04-skills.ts +26 -27
- package/examples/sdk/06-extensions.ts +15 -6
- package/examples/sdk/07-context-files.ts +22 -18
- package/examples/sdk/08-prompt-templates.ts +19 -14
- package/examples/sdk/09-api-keys-and-oauth.ts +5 -12
- package/examples/sdk/10-settings.ts +3 -3
- package/examples/sdk/12-full-control.ts +16 -7
- package/examples/sdk/README.md +24 -30
- package/package.json +4 -4
- package/docs/theme.md +0 -617
- package/examples/extensions/chalk-logger.ts +0 -26
|
@@ -16,14 +16,26 @@ import type { Agent, AgentEvent, AgentMessage, AgentState, AgentTool, ThinkingLe
|
|
|
16
16
|
import type { ImageContent, Model, TextContent } from "@mariozechner/pi-ai";
|
|
17
17
|
import { type BashResult } from "./bash-executor.js";
|
|
18
18
|
import { type CompactionResult } from "./compaction/index.js";
|
|
19
|
-
import type
|
|
19
|
+
import { type ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type ShutdownHandler, type ToolDefinition } from "./extensions/index.js";
|
|
20
20
|
import type { CustomMessage } from "./messages.js";
|
|
21
21
|
import type { ModelRegistry } from "./model-registry.js";
|
|
22
22
|
import { type PromptTemplate } from "./prompt-templates.js";
|
|
23
|
+
import type { ResourceLoader } from "./resource-loader.js";
|
|
23
24
|
import type { BranchSummaryEntry, NewSessionOptions, SessionManager } from "./session-manager.js";
|
|
24
|
-
import type { SettingsManager
|
|
25
|
-
import type { Skill, SkillWarning } from "./skills.js";
|
|
25
|
+
import type { SettingsManager } from "./settings-manager.js";
|
|
26
26
|
import type { BashOperations } from "./tools/bash.js";
|
|
27
|
+
/** Parsed skill block from a user message */
|
|
28
|
+
export interface ParsedSkillBlock {
|
|
29
|
+
name: string;
|
|
30
|
+
location: string;
|
|
31
|
+
content: string;
|
|
32
|
+
userMessage: string | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse a skill block from message text.
|
|
36
|
+
* Returns null if the text doesn't contain a skill block.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseSkillBlock(text: string): ParsedSkillBlock | null;
|
|
27
39
|
/** Session-specific events that extend the core AgentEvent */
|
|
28
40
|
export type AgentSessionEvent = AgentEvent | {
|
|
29
41
|
type: "auto_compaction_start";
|
|
@@ -52,26 +64,32 @@ export interface AgentSessionConfig {
|
|
|
52
64
|
agent: Agent;
|
|
53
65
|
sessionManager: SessionManager;
|
|
54
66
|
settingsManager: SettingsManager;
|
|
67
|
+
cwd: string;
|
|
55
68
|
/** Models to cycle through with Ctrl+P (from --models flag) */
|
|
56
69
|
scopedModels?: Array<{
|
|
57
70
|
model: Model<any>;
|
|
58
71
|
thinkingLevel: ThinkingLevel;
|
|
59
72
|
}>;
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
/** Loaded skills (already discovered by SDK) */
|
|
65
|
-
skills?: Skill[];
|
|
66
|
-
/** Skill loading warnings (already captured by SDK) */
|
|
67
|
-
skillWarnings?: SkillWarning[];
|
|
68
|
-
skillsSettings?: Required<SkillsSettings>;
|
|
73
|
+
/** Resource loader for skills, prompts, themes, context files, system prompt */
|
|
74
|
+
resourceLoader: ResourceLoader;
|
|
75
|
+
/** SDK custom tools registered outside extensions */
|
|
76
|
+
customTools?: ToolDefinition[];
|
|
69
77
|
/** Model registry for API key resolution and model discovery */
|
|
70
78
|
modelRegistry: ModelRegistry;
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
|
|
79
|
+
/** Initial active built-in tool names. Default: [read, bash, edit, write] */
|
|
80
|
+
initialActiveToolNames?: string[];
|
|
81
|
+
/** Override base tools (useful for custom runtimes). */
|
|
82
|
+
baseToolsOverride?: Record<string, AgentTool>;
|
|
83
|
+
/** Mutable ref used by Agent to access the current ExtensionRunner */
|
|
84
|
+
extensionRunnerRef?: {
|
|
85
|
+
current?: ExtensionRunner;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export interface ExtensionBindings {
|
|
89
|
+
uiContext?: ExtensionUIContext;
|
|
90
|
+
commandContextActions?: ExtensionCommandContextActions;
|
|
91
|
+
shutdownHandler?: ShutdownHandler;
|
|
92
|
+
onError?: ExtensionErrorListener;
|
|
75
93
|
}
|
|
76
94
|
/** Options for AgentSession.prompt() */
|
|
77
95
|
export interface PromptOptions {
|
|
@@ -114,7 +132,6 @@ export declare class AgentSession {
|
|
|
114
132
|
readonly sessionManager: SessionManager;
|
|
115
133
|
readonly settingsManager: SettingsManager;
|
|
116
134
|
private _scopedModels;
|
|
117
|
-
private _promptTemplates;
|
|
118
135
|
private _unsubscribeAgent?;
|
|
119
136
|
private _eventListeners;
|
|
120
137
|
/** Tracks pending steering messages for UI display. Removed when delivered. */
|
|
@@ -134,12 +151,20 @@ export declare class AgentSession {
|
|
|
134
151
|
private _pendingBashMessages;
|
|
135
152
|
private _extensionRunner;
|
|
136
153
|
private _turnIndex;
|
|
137
|
-
private
|
|
138
|
-
private
|
|
139
|
-
private
|
|
154
|
+
private _resourceLoader;
|
|
155
|
+
private _customTools;
|
|
156
|
+
private _baseToolRegistry;
|
|
157
|
+
private _cwd;
|
|
158
|
+
private _extensionRunnerRef?;
|
|
159
|
+
private _initialActiveToolNames?;
|
|
160
|
+
private _baseToolsOverride?;
|
|
161
|
+
private _extensionUIContext?;
|
|
162
|
+
private _extensionCommandContextActions?;
|
|
163
|
+
private _extensionShutdownHandler?;
|
|
164
|
+
private _extensionErrorListener?;
|
|
165
|
+
private _extensionErrorUnsubscriber?;
|
|
140
166
|
private _modelRegistry;
|
|
141
167
|
private _toolRegistry;
|
|
142
|
-
private _rebuildSystemPrompt?;
|
|
143
168
|
private _baseSystemPrompt;
|
|
144
169
|
constructor(config: AgentSessionConfig);
|
|
145
170
|
/** Model registry for API key resolution and model discovery */
|
|
@@ -231,6 +256,7 @@ export declare class AgentSession {
|
|
|
231
256
|
}>): void;
|
|
232
257
|
/** File-based prompt templates */
|
|
233
258
|
get promptTemplates(): ReadonlyArray<PromptTemplate>;
|
|
259
|
+
private _rebuildSystemPrompt;
|
|
234
260
|
/**
|
|
235
261
|
* Send a prompt to the agent.
|
|
236
262
|
* - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
|
|
@@ -309,11 +335,7 @@ export declare class AgentSession {
|
|
|
309
335
|
getSteeringMessages(): readonly string[];
|
|
310
336
|
/** Get pending follow-up messages (read-only) */
|
|
311
337
|
getFollowUpMessages(): readonly string[];
|
|
312
|
-
get
|
|
313
|
-
/** Skills loaded by SDK (empty if --no-skills or skills: [] was passed) */
|
|
314
|
-
get skills(): readonly Skill[];
|
|
315
|
-
/** Skill loading warnings captured by SDK */
|
|
316
|
-
get skillWarnings(): readonly SkillWarning[];
|
|
338
|
+
get resourceLoader(): ResourceLoader;
|
|
317
339
|
/**
|
|
318
340
|
* Abort current operation and wait for agent to become idle.
|
|
319
341
|
*/
|
|
@@ -342,10 +364,6 @@ export declare class AgentSession {
|
|
|
342
364
|
cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
|
|
343
365
|
private _cycleScopedModel;
|
|
344
366
|
private _cycleAvailableModel;
|
|
345
|
-
/**
|
|
346
|
-
* Get all available models with valid API keys.
|
|
347
|
-
*/
|
|
348
|
-
getAvailableModels(): Promise<Model<any>[]>;
|
|
349
367
|
/**
|
|
350
368
|
* Set thinking level.
|
|
351
369
|
* Clamps to model capabilities based on available thinking levels.
|
|
@@ -403,16 +421,17 @@ export declare class AgentSession {
|
|
|
403
421
|
setAutoCompactionEnabled(enabled: boolean): void;
|
|
404
422
|
/** Whether auto-compaction is enabled */
|
|
405
423
|
get autoCompactionEnabled(): boolean;
|
|
424
|
+
bindExtensions(bindings: ExtensionBindings): Promise<void>;
|
|
425
|
+
private _applyExtensionBindings;
|
|
426
|
+
private _bindExtensionCore;
|
|
427
|
+
private _buildRuntime;
|
|
428
|
+
reload(): Promise<void>;
|
|
406
429
|
/**
|
|
407
430
|
* Check if an error is retryable (overloaded, rate limit, server errors).
|
|
408
431
|
* Context overflow errors are NOT retryable (handled by compaction instead).
|
|
409
432
|
*/
|
|
410
433
|
private _isRetryableError;
|
|
411
434
|
private _handleRetryableError;
|
|
412
|
-
/**
|
|
413
|
-
* Sleep helper that respects abort signal.
|
|
414
|
-
*/
|
|
415
|
-
private _sleep;
|
|
416
435
|
/**
|
|
417
436
|
* Cancel in-progress retry.
|
|
418
437
|
*/
|