@codex-infinity/pi-infinity 0.63.3 → 0.64.2
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 +101 -0
- package/README.md +7 -3
- package/dist/core/agent-session-runtime.d.ts +134 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +262 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session.d.ts +10 -42
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +56 -236
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts +2 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +2 -2
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- 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/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +11 -16
- 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 +5 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +69 -8
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybindings.d.ts +10 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +10 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-registry.d.ts +3 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +7 -1
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/sdk.d.ts +5 -2
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +5 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +13 -6
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +15 -4
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +2 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +42 -10
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -3
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +4 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +4 -2
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +48 -15
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +11 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +112 -89
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +6 -11
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +37 -36
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +72 -49
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/docs/extensions.md +104 -19
- package/docs/json.md +5 -2
- package/docs/keybindings.md +2 -0
- package/docs/rpc.md +21 -7
- package/docs/sdk.md +168 -75
- package/docs/tree.md +6 -3
- package/examples/extensions/README.md +1 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/rpc-demo.ts +3 -9
- package/examples/extensions/status-line.ts +0 -8
- package/examples/extensions/todo.ts +0 -2
- package/examples/extensions/tools.ts +0 -5
- package/examples/extensions/widget-placement.ts +4 -12
- 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 +1 -1
- package/examples/sdk/09-api-keys-and-oauth.ts +3 -3
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/13-session-runtime.ts +49 -0
- package/examples/sdk/README.md +5 -4
- package/package.json +4 -4
|
@@ -16,14 +16,14 @@ 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 ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type ShutdownHandler, type ToolDefinition, type ToolInfo } from "./extensions/index.js";
|
|
19
|
+
import { type ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type SessionStartEvent, type ShutdownHandler, type ToolDefinition, type ToolInfo } 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
23
|
import type { ResourceLoader } from "./resource-loader.js";
|
|
24
24
|
import type { BranchSummaryEntry, SessionManager } from "./session-manager.js";
|
|
25
25
|
import type { SettingsManager } from "./settings-manager.js";
|
|
26
|
-
import type
|
|
26
|
+
import { type BashOperations } from "./tools/bash.js";
|
|
27
27
|
/** Parsed skill block from a user message */
|
|
28
28
|
export interface ParsedSkillBlock {
|
|
29
29
|
name: string;
|
|
@@ -38,6 +38,10 @@ export interface ParsedSkillBlock {
|
|
|
38
38
|
export declare function parseSkillBlock(text: string): ParsedSkillBlock | null;
|
|
39
39
|
/** Session-specific events that extend the core AgentEvent */
|
|
40
40
|
export type AgentSessionEvent = AgentEvent | {
|
|
41
|
+
type: "queue_update";
|
|
42
|
+
steering: readonly string[];
|
|
43
|
+
followUp: readonly string[];
|
|
44
|
+
} | {
|
|
41
45
|
type: "compaction_start";
|
|
42
46
|
reason: "manual" | "threshold" | "overflow";
|
|
43
47
|
} | {
|
|
@@ -94,6 +98,8 @@ export interface AgentSessionConfig {
|
|
|
94
98
|
autoNextSteps?: boolean;
|
|
95
99
|
/** Automatically ideate and work on new ideas after completing tasks */
|
|
96
100
|
autoNextIdea?: boolean;
|
|
101
|
+
/** Session start event metadata emitted when extensions bind to this runtime. */
|
|
102
|
+
sessionStartEvent?: SessionStartEvent;
|
|
97
103
|
}
|
|
98
104
|
export interface ExtensionBindings {
|
|
99
105
|
uiContext?: ExtensionUIContext;
|
|
@@ -173,6 +179,7 @@ export declare class AgentSession {
|
|
|
173
179
|
private _extensionRunnerRef?;
|
|
174
180
|
private _initialActiveToolNames?;
|
|
175
181
|
private _baseToolsOverride?;
|
|
182
|
+
private _sessionStartEvent;
|
|
176
183
|
private _extensionUIContext?;
|
|
177
184
|
private _extensionCommandContextActions?;
|
|
178
185
|
private _extensionShutdownHandler?;
|
|
@@ -199,6 +206,7 @@ export declare class AgentSession {
|
|
|
199
206
|
private _installAgentToolHooks;
|
|
200
207
|
/** Emit an event to all listeners */
|
|
201
208
|
private _emit;
|
|
209
|
+
private _emitQueueUpdate;
|
|
202
210
|
private _lastAssistantMessage;
|
|
203
211
|
/** Internal handler for agent events - shared by subscribe and reconnect */
|
|
204
212
|
private _handleAgentEvent;
|
|
@@ -378,18 +386,6 @@ export declare class AgentSession {
|
|
|
378
386
|
* Abort current operation and wait for agent to become idle.
|
|
379
387
|
*/
|
|
380
388
|
abort(): Promise<void>;
|
|
381
|
-
/**
|
|
382
|
-
* Start a new session, optionally with initial messages and parent tracking.
|
|
383
|
-
* Clears all messages and starts a new session.
|
|
384
|
-
* Listeners are preserved and will continue receiving events.
|
|
385
|
-
* @param options.parentSession - Optional parent session path for tracking
|
|
386
|
-
* @param options.setup - Optional callback to initialize session (e.g., append messages)
|
|
387
|
-
* @returns true if completed, false if cancelled by extension
|
|
388
|
-
*/
|
|
389
|
-
newSession(options?: {
|
|
390
|
-
parentSession?: string;
|
|
391
|
-
setup?: (sessionManager: SessionManager) => Promise<void>;
|
|
392
|
-
}): Promise<boolean>;
|
|
393
389
|
private _emitModelSelect;
|
|
394
390
|
/**
|
|
395
391
|
* Set model directly.
|
|
@@ -404,7 +400,6 @@ export declare class AgentSession {
|
|
|
404
400
|
* @returns The new model info, or undefined if only one model available
|
|
405
401
|
*/
|
|
406
402
|
cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
|
|
407
|
-
private _getScopedModelsWithAuth;
|
|
408
403
|
private _cycleScopedModel;
|
|
409
404
|
private _cycleAvailableModel;
|
|
410
405
|
/**
|
|
@@ -530,30 +525,10 @@ export declare class AgentSession {
|
|
|
530
525
|
* Called after agent turn completes to maintain proper message ordering.
|
|
531
526
|
*/
|
|
532
527
|
private _flushPendingBashMessages;
|
|
533
|
-
/**
|
|
534
|
-
* Switch to a different session file.
|
|
535
|
-
* Aborts current operation, loads messages, restores model/thinking.
|
|
536
|
-
* Listeners are preserved and will continue receiving events.
|
|
537
|
-
* @returns true if switch completed, false if cancelled by extension
|
|
538
|
-
*/
|
|
539
|
-
switchSession(sessionPath: string): Promise<boolean>;
|
|
540
528
|
/**
|
|
541
529
|
* Set a display name for the current session.
|
|
542
530
|
*/
|
|
543
531
|
setSessionName(name: string): void;
|
|
544
|
-
/**
|
|
545
|
-
* Create a fork from a specific entry.
|
|
546
|
-
* Emits before_fork/fork session events to extensions.
|
|
547
|
-
*
|
|
548
|
-
* @param entryId ID of the entry to fork from
|
|
549
|
-
* @returns Object with:
|
|
550
|
-
* - selectedText: The text of the selected user message (for editor pre-fill)
|
|
551
|
-
* - cancelled: True if an extension cancelled the fork
|
|
552
|
-
*/
|
|
553
|
-
fork(entryId: string): Promise<{
|
|
554
|
-
selectedText: string;
|
|
555
|
-
cancelled: boolean;
|
|
556
|
-
}>;
|
|
557
532
|
/**
|
|
558
533
|
* Navigate to a different node in the session tree.
|
|
559
534
|
* Unlike fork() which creates a new session file, this stays in the same file.
|
|
@@ -602,13 +577,6 @@ export declare class AgentSession {
|
|
|
602
577
|
* @returns The resolved output file path.
|
|
603
578
|
*/
|
|
604
579
|
exportToJsonl(outputPath?: string): string;
|
|
605
|
-
/**
|
|
606
|
-
* Import a JSONL session file.
|
|
607
|
-
* Copies the file into the session directory and switches to it (like /resume).
|
|
608
|
-
* @param inputPath Path to the JSONL file to import.
|
|
609
|
-
* @returns true if the session was switched successfully.
|
|
610
|
-
*/
|
|
611
|
-
importFromJsonl(inputPath: string): Promise<boolean>;
|
|
612
580
|
/**
|
|
613
581
|
* Get text content of last assistant message.
|
|
614
582
|
* Useful for /copy command.
|