@timurproko/a1 0.2.7-dev.808 → 0.2.7-dev.810
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/README.md +4 -2
- package/dist/app/session-shell/dialog-coordinator.d.ts +42 -0
- package/dist/app/session-shell/dialog-coordinator.js +133 -0
- package/dist/app/session-shell/dock-chrome.d.ts +34 -0
- package/dist/app/session-shell/dock-chrome.js +109 -0
- package/dist/app/session-shell/exit-notice.d.ts +1 -1
- package/dist/app/session-shell/exit-notice.js +1 -1
- package/dist/app/session-shell/extension-surface.d.ts +30 -0
- package/dist/app/session-shell/extension-surface.js +105 -0
- package/dist/app/session-shell/input-surface-switch.d.ts +36 -0
- package/dist/app/session-shell/input-surface-switch.js +85 -0
- package/dist/app/session-shell/login-interaction.d.ts +27 -0
- package/dist/app/session-shell/login-interaction.js +91 -0
- package/dist/app/session-shell/prompt-submission.d.ts +48 -0
- package/dist/app/session-shell/prompt-submission.js +276 -0
- package/dist/app/session-shell/resident-tab-coordinator.d.ts +41 -0
- package/dist/app/session-shell/resident-tab-coordinator.js +120 -0
- package/dist/app/session-shell/response-copy-transport.d.ts +13 -0
- package/dist/app/session-shell/response-copy-transport.js +16 -7
- package/dist/app/session-shell/session-concern.d.ts +22 -0
- package/dist/app/session-shell/session-concern.js +29 -0
- package/dist/app/session-shell/session-lifecycle.d.ts +29 -0
- package/dist/app/session-shell/session-lifecycle.js +49 -0
- package/dist/app/session-shell/session-shell-root.d.ts +1 -1
- package/dist/app/session-shell/session-shell-root.js +182 -931
- package/dist/app/session-shell/session-shell.d.ts +2 -8
- package/dist/app/session-shell/session-shell.js +202 -901
- package/dist/app/session-shell/settings-bindings.d.ts +17 -0
- package/dist/app/session-shell/settings-bindings.js +91 -0
- package/dist/app/session-shell/shell-editor-factory.d.ts +27 -0
- package/dist/app/session-shell/shell-editor-factory.js +102 -0
- package/dist/app/session-shell/shell-host.d.ts +6 -0
- package/dist/app/session-shell/shell-host.js +8 -0
- package/dist/app/session-shell/shell-layout.d.ts +64 -0
- package/dist/app/session-shell/shell-layout.js +18 -0
- package/dist/app/session-shell/suggestion-surface.d.ts +25 -0
- package/dist/app/session-shell/suggestion-surface.js +63 -0
- package/dist/app/session-shell/transcript-document.d.ts +78 -0
- package/dist/app/session-shell/transcript-document.js +365 -0
- package/dist/app/session-shell/viewport-layout.d.ts +31 -0
- package/dist/app/session-shell/viewport-layout.js +160 -0
- package/dist/app/session-shell/workflow-output.d.ts +33 -0
- package/dist/app/session-shell/workflow-output.js +174 -0
- package/dist/app/session-shell/workflow-router.d.ts +25 -0
- package/dist/app/session-shell/workflow-router.js +39 -0
- package/dist/composition/owned-ui.d.ts +4 -25
- package/dist/composition/owned-ui.js +26 -270
- package/dist/composition/resident-tab-bridge.d.ts +16 -0
- package/dist/composition/resident-tab-bridge.js +159 -0
- package/dist/composition/session-backend.d.ts +19 -0
- package/dist/composition/session-backend.js +1 -0
- package/dist/composition/session-runtime-registry.d.ts +20 -0
- package/dist/composition/session-runtime-registry.js +85 -0
- package/dist/composition/startup-route.d.ts +32 -0
- package/dist/composition/startup-route.js +72 -0
- package/dist/foundation/release/progress-palette.generated.d.ts +2 -2
- package/dist/foundation/release/progress-palette.generated.js +2 -2
- package/dist/foundation/startup/startup-descriptor.js +2 -2
- package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -2
- package/dist/integrations/pi/components/resources/builtin-themes.js +2 -2
- package/dist/integrations/pi/components/shell-extension-ui.js +79 -60
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +1 -1
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
- package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
- package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/components/pi-logo.js +1 -1
- package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/session-footer.js +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
- package/dist/integrations/pi/components/upstream/components/session-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/status-indicator.js +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
- package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/thinking-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +2 -4
- package/dist/integrations/pi/components/upstream/components/tool-execution.js +77 -98
- package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/components/tree-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
- package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/editor-core.js +1 -1
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
- package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
- package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/program-status-reporter.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
- package/dist/integrations/pi/components/upstream/theme/theme.js +1 -1
- package/dist/integrations/pi/engine/adapter.d.ts +4 -77
- package/dist/integrations/pi/engine/adapter.js +85 -393
- package/dist/integrations/pi/engine/command-dispatch.d.ts +13 -0
- package/dist/integrations/pi/engine/command-dispatch.js +57 -0
- package/dist/integrations/pi/engine/host.js +2 -2
- package/dist/integrations/pi/engine/ports.d.ts +56 -0
- package/dist/integrations/pi/engine/ports.js +89 -0
- package/dist/integrations/pi/engine/resources/changelog.json +4 -4
- package/dist/integrations/pi/engine/view-state.d.ts +42 -0
- package/dist/integrations/pi/engine/view-state.js +126 -0
- package/dist/integrations/pi/startup-public.js +164 -150
- package/dist/integrations/pi/startup-public.manifest.json +351 -310
- package/dist/integrations/pi/tui-runtime/adapter.js +4 -0
- package/dist/integrations/pi/tui-runtime/contracts.d.ts +5 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +1 -1
- package/dist/native/darwin-arm64/manifest.json +1 -1
- package/dist/native/darwin-arm64/terminal-host.manifest.json +3 -3
- package/dist/native/darwin-arm64/terminal-host.node +0 -0
- package/dist/native/darwin-x64/manifest.json +1 -1
- package/dist/native/darwin-x64/terminal-host.manifest.json +3 -3
- package/dist/native/darwin-x64/terminal-host.node +0 -0
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/linux-x64/terminal-host.manifest.json +3 -3
- package/dist/native/linux-x64/terminal-host.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.node +0 -0
- package/dist/native/win32-x64/terminal-host.manifest.json +3 -3
- package/dist/native/win32-x64/terminal-host.node +0 -0
- package/dist/runtime-payload-inventory.json +5181 -5369
- package/dist/ui/components/transcript-viewport.js +10 -19
- package/docs/architecture/boundaries.md +14 -0
- package/docs/architecture/resident-tabs.md +8 -8
- package/docs/architecture/response-copy-delivery.md +1 -1
- package/docs/architecture/toolchain.md +2 -2
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/themed-text.ts.
|
|
4
4
|
* Modifications: Integrated invalidation-aware text into A1's owned startup header and notices;
|
|
5
5
|
* repository formatting only.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/thinking-selector.ts.
|
|
4
4
|
* Modifications: Preserve the searchable thinking-level selector, current/default semantics,
|
|
5
5
|
* selection, and focus while accepting the active bare-A1 cycle-key label from the shell, styling the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/thinking-selector.ts.
|
|
4
4
|
* Modifications: Preserve the searchable thinking-level selector, current/default semantics,
|
|
5
5
|
* selection, and focus while accepting the active bare-A1 cycle-key label from the shell, styling the
|
|
@@ -14,7 +14,6 @@ export interface ToolExecutionOptions {
|
|
|
14
14
|
export declare class ToolExecutionComponent extends Container {
|
|
15
15
|
private contentBox;
|
|
16
16
|
private contentText;
|
|
17
|
-
private contentTextRegion;
|
|
18
17
|
private selfRenderContainer;
|
|
19
18
|
private selfRenderHeight;
|
|
20
19
|
private callRendererComponent;
|
|
@@ -42,9 +41,6 @@ export declare class ToolExecutionComponent extends Container {
|
|
|
42
41
|
private result;
|
|
43
42
|
private hideComponent;
|
|
44
43
|
constructor(toolName: string, toolCallId: string, args: any, options: ToolExecutionOptions | undefined, toolDefinition: ToolRenderers | ToolDefinition<any, any, any> | undefined, ui: TUI, cwd: string);
|
|
45
|
-
private getCallRenderer;
|
|
46
|
-
private getResultRenderer;
|
|
47
|
-
private hasRendererDefinition;
|
|
48
44
|
private getRenderShell;
|
|
49
45
|
private getRenderContext;
|
|
50
46
|
private createCallFallback;
|
|
@@ -63,6 +59,8 @@ export declare class ToolExecutionComponent extends Container {
|
|
|
63
59
|
render(width: number): string[];
|
|
64
60
|
handleMouse(event: TuiMouseEvent): ReturnType<Container["handleMouse"]>;
|
|
65
61
|
private updateDisplay;
|
|
62
|
+
private callTheme;
|
|
63
|
+
private appendRenderer;
|
|
66
64
|
private composeDisplay;
|
|
67
65
|
private getTextOutput;
|
|
68
66
|
private formatToolExecution;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tool-execution.ts.
|
|
4
4
|
* Modifications: Retain pinned shell/public renderers. Own image conversion; replace private APIs with
|
|
5
5
|
* public/local equivalents. Use bare-A1 secondary-accent read ranges and concise collapse shortcut
|
|
6
|
-
* hints.
|
|
6
|
+
* hints. Restore the enclosing default-shell background after nested renderer resets. See
|
|
7
|
+
* docs/architecture/tool-image-presentation.md.
|
|
7
8
|
* Deviations: current-tool-image-conversion-ownership, read-range-secondary-accent,
|
|
8
|
-
* concise-tool-expand-shortcut-hint.
|
|
9
|
+
* concise-tool-expand-shortcut-hint, default-shell-background-reset-scoping.
|
|
9
10
|
*/
|
|
10
11
|
import { stripVTControlCharacters } from "node:util";
|
|
11
12
|
import { Box, Container, getCapabilities, getImageDimensions, imageFallback, MouseRegion, Spacer, Text } from "@earendil-works/pi-tui";
|
|
@@ -29,6 +30,30 @@ function withConciseExpandHint(component) {
|
|
|
29
30
|
return typeof value === "function" ? value.bind(target) : value;
|
|
30
31
|
} });
|
|
31
32
|
}
|
|
33
|
+
function enclosingToolBackground(theme, role) {
|
|
34
|
+
const background = theme.bg(role, "\u0000").split("\u0000")[0];
|
|
35
|
+
// Invariant: child defaults return to the enclosing shell, not the terminal canvas.
|
|
36
|
+
return text => theme.bg(role, text.replace(/\u001b\[([0-9:;]*)m/gu, (ansi, parameters) => {
|
|
37
|
+
const values = parameters.split(";");
|
|
38
|
+
let restore = false;
|
|
39
|
+
for (let index = 0; index < values.length; index++) {
|
|
40
|
+
const token = values[index], code = Number(token.split(":", 1)[0] || "0");
|
|
41
|
+
if (code === 0 || code === 49)
|
|
42
|
+
restore = true;
|
|
43
|
+
else if (code >= 40 && code <= 47 || code >= 100 && code <= 107)
|
|
44
|
+
restore = false;
|
|
45
|
+
else if (code === 38 || code === 48 || code === 58) {
|
|
46
|
+
if (code === 48)
|
|
47
|
+
restore = false;
|
|
48
|
+
if (!token.includes(":")) {
|
|
49
|
+
const mode = Number(values[index + 1]);
|
|
50
|
+
index += mode === 2 ? 4 : mode === 5 ? 2 : 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return restore ? ansi + background : ansi;
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
32
57
|
export function mergeBuiltInRenderers(definition, builtIn) {
|
|
33
58
|
if (definition === undefined)
|
|
34
59
|
return builtIn;
|
|
@@ -71,7 +96,6 @@ function formatToolCallWithArgs(title, args, expanded) {
|
|
|
71
96
|
export class ToolExecutionComponent extends Container {
|
|
72
97
|
contentBox;
|
|
73
98
|
contentText;
|
|
74
|
-
contentTextRegion;
|
|
75
99
|
selfRenderContainer;
|
|
76
100
|
selfRenderHeight = 0;
|
|
77
101
|
callRendererComponent;
|
|
@@ -118,27 +142,17 @@ export class ToolExecutionComponent extends Container {
|
|
|
118
142
|
this.ui.requestRender();
|
|
119
143
|
});
|
|
120
144
|
this.addChild(new Spacer(1));
|
|
121
|
-
this.contentBox = new Box(1, 1, (
|
|
122
|
-
this.contentText = new Text("", 1, 1, (
|
|
123
|
-
this.contentTextRegion = this.createResultRegion(this.contentText);
|
|
145
|
+
this.contentBox = new Box(1, 1, enclosingToolBackground(piTheme(), "toolPendingBg"));
|
|
146
|
+
this.contentText = new Text("", 1, 1, enclosingToolBackground(piTheme(), "toolPendingBg"));
|
|
124
147
|
this.selfRenderContainer = new Container();
|
|
125
|
-
if (this.
|
|
148
|
+
if (this.toolDefinition !== undefined) {
|
|
126
149
|
this.addChild(this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox);
|
|
127
150
|
}
|
|
128
151
|
else {
|
|
129
|
-
this.addChild(this.
|
|
152
|
+
this.addChild(this.createResultRegion(this.contentText));
|
|
130
153
|
}
|
|
131
154
|
this.updateDisplay();
|
|
132
155
|
}
|
|
133
|
-
getCallRenderer() {
|
|
134
|
-
return this.toolDefinition?.renderCall;
|
|
135
|
-
}
|
|
136
|
-
getResultRenderer() {
|
|
137
|
-
return this.toolDefinition?.renderResult;
|
|
138
|
-
}
|
|
139
|
-
hasRendererDefinition() {
|
|
140
|
-
return this.toolDefinition !== undefined;
|
|
141
|
-
}
|
|
142
156
|
getRenderShell() {
|
|
143
157
|
return this.toolDefinition?.renderShell ?? "default";
|
|
144
158
|
}
|
|
@@ -171,9 +185,8 @@ export class ToolExecutionComponent extends Container {
|
|
|
171
185
|
createResultFallback() {
|
|
172
186
|
const theme = piTheme();
|
|
173
187
|
const output = this.getTextOutput();
|
|
174
|
-
if (!output)
|
|
188
|
+
if (!output)
|
|
175
189
|
return undefined;
|
|
176
|
-
}
|
|
177
190
|
const lines = output.split("\n");
|
|
178
191
|
const displayLines = this.expanded ? lines : lines.slice(0, FALLBACK_PREVIEW_LINES);
|
|
179
192
|
const remaining = lines.length - displayLines.length;
|
|
@@ -245,7 +258,7 @@ export class ToolExecutionComponent extends Container {
|
|
|
245
258
|
if (this.hideComponent) {
|
|
246
259
|
return [];
|
|
247
260
|
}
|
|
248
|
-
if (this.
|
|
261
|
+
if (this.toolDefinition !== undefined && this.getRenderShell() === "self") {
|
|
249
262
|
const contentLines = this.selfRenderContainer.render(width);
|
|
250
263
|
this.selfRenderHeight = contentLines.length;
|
|
251
264
|
if (contentLines.length === 0 && this.imageComponents.length === 0) {
|
|
@@ -271,7 +284,7 @@ export class ToolExecutionComponent extends Container {
|
|
|
271
284
|
return super.render(width);
|
|
272
285
|
}
|
|
273
286
|
handleMouse(event) {
|
|
274
|
-
if (
|
|
287
|
+
if (this.toolDefinition === undefined || this.getRenderShell() !== "self")
|
|
275
288
|
return super.handleMouse(event);
|
|
276
289
|
if (event.y <= 0 || event.y > this.selfRenderHeight)
|
|
277
290
|
return undefined;
|
|
@@ -292,77 +305,52 @@ export class ToolExecutionComponent extends Container {
|
|
|
292
305
|
this.updatingDisplay = false;
|
|
293
306
|
}
|
|
294
307
|
}
|
|
308
|
+
callTheme(theme, renderer) {
|
|
309
|
+
if (this.toolName !== "read" || renderer !== this.builtInToolDefinition?.renderCall || !isPiAccentProjectionEnabled)
|
|
310
|
+
return theme;
|
|
311
|
+
return new Proxy(theme, { get(target, property) {
|
|
312
|
+
if (property === "fg")
|
|
313
|
+
return (...args) => target.fg(args[0] === "warning" ? "mdHeading" : args[0], args[1]);
|
|
314
|
+
const value = Reflect.get(target, property, target);
|
|
315
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
316
|
+
} });
|
|
317
|
+
}
|
|
318
|
+
appendRenderer(container, field, render, fallback, builtIn) {
|
|
319
|
+
if (render) {
|
|
320
|
+
try {
|
|
321
|
+
const component = render(this.getRenderContext(this[field]));
|
|
322
|
+
this[field] = component;
|
|
323
|
+
container.addChild(this.createResultRegion(builtIn ? withConciseExpandHint(component) : component));
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
this[field] = undefined;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
const component = fallback();
|
|
331
|
+
if (component)
|
|
332
|
+
container.addChild(this.createResultRegion(component));
|
|
333
|
+
return component !== undefined;
|
|
334
|
+
}
|
|
295
335
|
composeDisplay() {
|
|
296
336
|
const theme = piTheme();
|
|
297
|
-
const bgFn = this.isPartial
|
|
298
|
-
?
|
|
299
|
-
: this.result?.isError
|
|
300
|
-
? (text) => theme.bg("toolErrorBg", text)
|
|
301
|
-
: (text) => theme.bg("toolSuccessBg", text);
|
|
337
|
+
const bgFn = enclosingToolBackground(theme, this.isPartial ? "toolPendingBg"
|
|
338
|
+
: this.result?.isError ? "toolErrorBg" : "toolSuccessBg");
|
|
302
339
|
let hasContent = false;
|
|
303
340
|
this.hideComponent = false;
|
|
304
|
-
if (this.
|
|
341
|
+
if (this.toolDefinition !== undefined) {
|
|
305
342
|
const renderContainer = this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox;
|
|
306
343
|
if (renderContainer instanceof Box) {
|
|
307
344
|
renderContainer.setBgFn(bgFn);
|
|
308
345
|
renderContainer.setPaddingX(this.outputPad);
|
|
309
346
|
}
|
|
310
347
|
renderContainer.clear();
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
try {
|
|
318
|
-
const component = callRenderer(this.args, this.toolName === "read" && callRenderer === this.builtInToolDefinition?.renderCall && isPiAccentProjectionEnabled
|
|
319
|
-
? new Proxy(theme, {
|
|
320
|
-
get(target, property) {
|
|
321
|
-
if (property === "fg") {
|
|
322
|
-
return (...args) => target.fg(args[0] === "warning" ? "mdHeading" : args[0], args[1]);
|
|
323
|
-
}
|
|
324
|
-
const value = Reflect.get(target, property, target);
|
|
325
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
326
|
-
},
|
|
327
|
-
})
|
|
328
|
-
: theme, this.getRenderContext(this.callRendererComponent));
|
|
329
|
-
this.callRendererComponent = component;
|
|
330
|
-
renderContainer.addChild(this.createResultRegion(callRenderer === this.builtInToolDefinition?.renderCall
|
|
331
|
-
? withConciseExpandHint(component) : component));
|
|
332
|
-
hasContent = true;
|
|
333
|
-
}
|
|
334
|
-
catch {
|
|
335
|
-
this.callRendererComponent = undefined;
|
|
336
|
-
renderContainer.addChild(this.createResultRegion(this.createCallFallback()));
|
|
337
|
-
hasContent = true;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
if (this.result) {
|
|
341
|
-
const resultRenderer = this.getResultRenderer();
|
|
342
|
-
if (!resultRenderer) {
|
|
343
|
-
const component = this.createResultFallback();
|
|
344
|
-
if (component) {
|
|
345
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
346
|
-
hasContent = true;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
try {
|
|
351
|
-
const component = resultRenderer({ content: this.result.content, details: this.result.details }, { expanded: this.expanded, isPartial: this.isPartial }, theme, this.getRenderContext(this.resultRendererComponent));
|
|
352
|
-
this.resultRendererComponent = component;
|
|
353
|
-
renderContainer.addChild(this.createResultRegion(resultRenderer === this.builtInToolDefinition?.renderResult
|
|
354
|
-
? withConciseExpandHint(component) : component));
|
|
355
|
-
hasContent = true;
|
|
356
|
-
}
|
|
357
|
-
catch {
|
|
358
|
-
this.resultRendererComponent = undefined;
|
|
359
|
-
const component = this.createResultFallback();
|
|
360
|
-
if (component) {
|
|
361
|
-
renderContainer.addChild(this.createResultRegion(component));
|
|
362
|
-
hasContent = true;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
348
|
+
const call = this.toolDefinition?.renderCall;
|
|
349
|
+
hasContent = this.appendRenderer(renderContainer, "callRendererComponent", call ? context => call(this.args, this.callTheme(theme, call), context) : undefined, () => this.createCallFallback(), call === this.builtInToolDefinition?.renderCall);
|
|
350
|
+
const result = this.result;
|
|
351
|
+
if (result) {
|
|
352
|
+
const render = this.toolDefinition?.renderResult;
|
|
353
|
+
hasContent = this.appendRenderer(renderContainer, "resultRendererComponent", render ? context => render({ content: result.content, details: result.details }, { expanded: this.expanded, isPartial: this.isPartial }, theme, context) : undefined, () => this.createResultFallback(), render === this.builtInToolDefinition?.renderResult) || hasContent;
|
|
366
354
|
}
|
|
367
355
|
}
|
|
368
356
|
else {
|
|
@@ -371,13 +359,9 @@ export class ToolExecutionComponent extends Container {
|
|
|
371
359
|
this.contentText.setText(this.formatToolExecution());
|
|
372
360
|
hasContent = true;
|
|
373
361
|
}
|
|
374
|
-
for (const
|
|
375
|
-
this.removeChild(
|
|
376
|
-
}
|
|
362
|
+
for (const child of [...this.imageComponents, ...this.imageSpacers])
|
|
363
|
+
this.removeChild(child);
|
|
377
364
|
this.imageComponents = [];
|
|
378
|
-
for (const spacer of this.imageSpacers) {
|
|
379
|
-
this.removeChild(spacer);
|
|
380
|
-
}
|
|
381
365
|
this.imageSpacers = [];
|
|
382
366
|
this.images.update(this.result?.content ?? [], this.showImages);
|
|
383
367
|
for (const imageComponent of this.images.components(this.imageWidthCells)) {
|
|
@@ -387,17 +371,14 @@ export class ToolExecutionComponent extends Container {
|
|
|
387
371
|
this.imageComponents.push(imageComponent);
|
|
388
372
|
this.addChild(imageComponent);
|
|
389
373
|
}
|
|
390
|
-
if (this.
|
|
374
|
+
if (this.toolDefinition !== undefined && !hasContent && this.imageComponents.length === 0) {
|
|
391
375
|
this.hideComponent = true;
|
|
392
376
|
}
|
|
393
377
|
}
|
|
394
378
|
getTextOutput() {
|
|
395
379
|
if (!this.result)
|
|
396
380
|
return "";
|
|
397
|
-
const text = this.result.content.filter(part => part.type === "text").map(part =>
|
|
398
|
-
const code = char.codePointAt(0);
|
|
399
|
-
return code === 9 || code === 10 || code > 31 && (code < 0xfff9 || code > 0xfffb);
|
|
400
|
-
}).join("")).join("\n");
|
|
381
|
+
const text = this.result.content.filter(part => part.type === "text").map(part => stripVTControlCharacters(part.text ?? "").replace(/[\u0000-\u0008\u000b-\u001f\ufff9-\ufffb]/gu, "")).join("\n");
|
|
401
382
|
if (getCapabilities().images && this.showImages)
|
|
402
383
|
return text;
|
|
403
384
|
const indicators = this.result.content.filter(part => part.type === "image").map(part => imageFallback(part.mimeType ?? "image/unknown", part.data && part.mimeType ? getImageDimensions(part.data, part.mimeType) ?? undefined : undefined)).join("\n");
|
|
@@ -407,13 +388,11 @@ export class ToolExecutionComponent extends Container {
|
|
|
407
388
|
const theme = piTheme();
|
|
408
389
|
let text = theme.fg("toolTitle", theme.bold(this.toolName));
|
|
409
390
|
const content = JSON.stringify(this.args, null, 2);
|
|
410
|
-
if (content)
|
|
391
|
+
if (content)
|
|
411
392
|
text += `\n\n${content}`;
|
|
412
|
-
}
|
|
413
393
|
const output = this.getTextOutput();
|
|
414
|
-
if (output)
|
|
394
|
+
if (output)
|
|
415
395
|
text += `\n${output}`;
|
|
416
|
-
}
|
|
417
396
|
return text;
|
|
418
397
|
}
|
|
419
398
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tree-selector.ts.
|
|
4
4
|
* Modifications: Port remaps public types/components plus owned keybindings/theme helpers while
|
|
5
5
|
* preserving tree behavior; bare A1 uses compact modal chrome and label editing, four-mode
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/tree-selector.ts.
|
|
4
4
|
* Modifications: Port remaps public types/components plus owned keybindings/theme helpers while
|
|
5
5
|
* preserving tree behavior; bare A1 uses compact modal chrome and label editing, four-mode
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/components/trust-selector.ts.
|
|
4
4
|
* Modifications: Mechanical source-synchronized trust selector port with injected public
|
|
5
5
|
* ProjectTrustStore-derived options, remapped owned theme imports, the shared bare-A1 modal shortcut
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/external-editor.ts.
|
|
4
4
|
* Modifications: Mechanical port: retain temporary prompt file, asynchronous inherited-stdio editor
|
|
5
5
|
* process, completion readback, and best-effort cleanup behind the owned extension-editor component.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/components/editor.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, semantic border state with the user-approved numeric-only
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/components/editor.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, semantic border state with the user-approved numeric-only
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/kill-ring.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/kill-ring.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/keys.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/utils.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/undo-stack.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/undo-stack.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-tui 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-tui 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/tui/src/word-navigation.ts.
|
|
4
4
|
* Modifications: Owned editor core or minimal editor-local helper subset; public imports, strict
|
|
5
5
|
* types, typed persistent-history hooks, and semantic border state. Public terminal runtime/exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/model-search.ts.
|
|
4
4
|
* Modifications: Mechanical source-synchronized port preserving pinned model search terms for stateful
|
|
5
5
|
* scoped-model filtering.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/program-status-reporter.ts.
|
|
4
4
|
* Modifications: Remap Pi session events to A1's neutral run events, inject the terminal reporter, use
|
|
5
5
|
* A1's application identity, and clear dialog state when the owned session changes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/theme/theme-controller.ts.
|
|
4
4
|
* Modifications: Source-synchronized controller port: renamed owner class, injected dependency-free
|
|
5
5
|
* settings/runtime ports, remapped private theme helpers to the public-backed A1 theme adapter, and
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance: @earendil-works/pi-coding-agent 1.
|
|
2
|
+
* Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
|
|
3
3
|
* packages/coding-agent/src/modes/interactive/theme/theme.ts.
|
|
4
4
|
* Modifications: Source-synchronized theme port: retain pinned theme schema, variable/color
|
|
5
5
|
* resolution, built-in and custom loading, terminal detection, and layout defaults while constructing
|
|
@@ -1,38 +1,17 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import
|
|
3
|
-
import type { PiAuthenticationProviderOption, PiBashWorkflowResult, PiModelsContext, PiModelsRefreshResult, PiPinnedSettingsCallback, PiPinnedSettingsSnapshot, PiProjectTrustContext, PiProjectTrustUpdate, PiScopedModelsContext, PiScopedModelsRefreshResult, PiSessionResumeMetadata, PiSessionSelectorContext, PiTreeSelectorContext, PiWorkflowAutocompleteCommand, PiWorkflowHost, PiWorkflowInteractionHost, PiWorkflowOption, PiWorkflowRequest, PiWorkflowResult } from "./workflows.js";
|
|
1
|
+
import { type OwnedUiCommand, type OwnedUiExtensionPort, type OwnedUiPromptSuggestionGeneratorPort, type OwnedUiPromptSuggestionReasoning, type OwnedUiPromptSuggestionRequest, type OwnedUiPromptSuggestionResult, type OwnedUiEvent, type OwnedUiSessionBackend, type OwnedUiSessionCatalogPort, type OwnedUiSessionIdentityPort, type OwnedUiSessionPort, type OwnedUiSessionSettingsPort, type OwnedUiSessionViewModel, type OwnedUiSnapshot, type OwnedUiWorkflowPort } from "../../../contracts/owned-ui/index.js";
|
|
2
|
+
import type { PiPinnedSettingsSnapshot, PiWorkflowHost, PiWorkflowInteractionHost, PiWorkflowRequest, PiWorkflowResult } from "./workflows.js";
|
|
4
3
|
import type { PiSettingsBridge } from "./settings-bridge.js";
|
|
5
|
-
import type { PiSettingOwnerHandlers } from "./settings-bridge.js";
|
|
6
4
|
import type { PiProjectTrustPreflightPrompt } from "./project-trust-preflight.js";
|
|
7
5
|
import type { PiSessionForkPrompt, PiSessionSelection } from "./session-selection.js";
|
|
8
|
-
import type { AgentSettingOwner } from "../../../contracts/agent-engine/index.js";
|
|
9
6
|
import { type AdapterCommandResult } from "./command-dispatch.js";
|
|
10
|
-
import { type OwnedPiVisualExtensionSupport } from "./extension-ui-binding.js";
|
|
11
|
-
import { type OwnedPiExtensionResourceSummary, type OwnedPiResourceSummary } from "./resource-catalog.js";
|
|
12
7
|
import { type PiEnginePackageUpdateProbe, type PiEngineRuntimeFactory, type PiRepositoryContextReader } from "./session-runtime.js";
|
|
13
8
|
import { type PiEngineHostSessionPorts } from "./host-ports.js";
|
|
14
|
-
import {
|
|
9
|
+
import { type PiSessionPresentationSource } from "./ports.js";
|
|
15
10
|
export type { OwnedPiExtensionResourceSummary, OwnedPiExtensionSourceSummary, OwnedPiResourceSummary } from "./resource-catalog.js";
|
|
16
11
|
export type { PiEngineRuntimeFactory, PiEngineRuntimeFactoryInput } from "./session-runtime.js";
|
|
17
12
|
export type { AdapterCommandResult } from "./command-dispatch.js";
|
|
18
13
|
export type { OwnedPiVisualExtensionSupport } from "./extension-ui-binding.js";
|
|
19
|
-
|
|
20
|
-
* The Pi objects pinned selectors and transcript renderers are built from. They are not part of the
|
|
21
|
-
* session backend contract; only the session presenters owner reads them.
|
|
22
|
-
*/
|
|
23
|
-
export interface PiSessionPresentationSource {
|
|
24
|
-
pinnedModelSelectorContext(): ReturnType<PiWorkflowContexts["pinnedModelSelectorContext"]>;
|
|
25
|
-
pinnedSessionSelectorContext(): PiSessionSelectorContext;
|
|
26
|
-
pinnedTreeSelectorContext(): PiTreeSelectorContext;
|
|
27
|
-
pinnedMessageRenderer(customType: string): unknown;
|
|
28
|
-
pinnedToolRenderers(toolName: string): unknown;
|
|
29
|
-
pinnedShortcutDescriptions(bindings: Parameters<AgentSession["extensionRunner"]["getShortcuts"]>[0]): readonly {
|
|
30
|
-
readonly key: string;
|
|
31
|
-
readonly description: string;
|
|
32
|
-
}[];
|
|
33
|
-
pinnedSettingsModels(): Pick<PiPinnedSettingsSnapshot, "currentModel" | "availableDefaultModels">;
|
|
34
|
-
applyPinnedSettingValue(callback: PiPinnedSettingsCallback, value: unknown): Promise<PiWorkflowResult>;
|
|
35
|
-
}
|
|
14
|
+
export type { PiSessionPresentationSource } from "./ports.js";
|
|
36
15
|
/** Explicit flush failure when required delivery was interrupted rather than completed. */
|
|
37
16
|
export declare class EngineDeliveryError extends Error {
|
|
38
17
|
constructor();
|
|
@@ -80,22 +59,6 @@ export declare class PiEngineAdapter implements OwnedUiSessionBackend, OwnedUiPr
|
|
|
80
59
|
/** The Pi objects behind pinned selectors and renderers, for the session presenters owner only. */
|
|
81
60
|
presentationSource(): PiSessionPresentationSource;
|
|
82
61
|
setWorkflowInteractionHost(interaction: PiWorkflowInteractionHost): void;
|
|
83
|
-
get sessionId(): string;
|
|
84
|
-
get sessionGeneration(): number;
|
|
85
|
-
/** Actual session replacements, excluding delivery-only invalidation of callbacks. */
|
|
86
|
-
get sessionBindingGeneration(): number;
|
|
87
|
-
get cwd(): string;
|
|
88
|
-
get agentDir(): string;
|
|
89
|
-
resolveTranscriptImage(assetId: string): OwnedUiImageAttachment | null;
|
|
90
|
-
currentSessionFile(): string | null;
|
|
91
|
-
currentSessionResumeMetadata(): PiSessionResumeMetadata | null;
|
|
92
|
-
get disposed(): boolean;
|
|
93
|
-
/**
|
|
94
|
-
* Report a newer A1 release found by the startup check. The shell renders the diagnostic as
|
|
95
|
-
* pinned Pi's `Update Available` notice; it arrives whenever the check resolves, so a late
|
|
96
|
-
* result is appended to the transcript like Pi's own fire-and-forget version check.
|
|
97
|
-
*/
|
|
98
|
-
announceReleaseUpdate(release: OwnedUiReleaseUpdate): void;
|
|
99
62
|
suggestionReasoningPolicy(): OwnedUiPromptSuggestionReasoning;
|
|
100
63
|
generate(request: OwnedUiPromptSuggestionRequest): Promise<OwnedUiPromptSuggestionResult>;
|
|
101
64
|
generateResidentTabName(instruction: string, maxTokens: number, signal: AbortSignal): Promise<string | null>;
|
|
@@ -120,51 +83,15 @@ export declare class PiEngineAdapter implements OwnedUiSessionBackend, OwnedUiPr
|
|
|
120
83
|
peakBytes: number;
|
|
121
84
|
};
|
|
122
85
|
flushEvents(): Promise<void>;
|
|
123
|
-
nonVisualResources(): readonly OwnedPiResourceSummary[];
|
|
124
|
-
extensionResources(): readonly OwnedPiExtensionResourceSummary[];
|
|
125
|
-
workflowAutocompleteCommands(): readonly PiWorkflowAutocompleteCommand[];
|
|
126
|
-
visualExtensionSupport(): OwnedPiVisualExtensionSupport;
|
|
127
|
-
bindExtensionUi(ui: OwnedUiExtensionUiPort, shutdown?: () => void | Promise<void>): Promise<void>;
|
|
128
|
-
unbindExtensionUi(): Promise<void>;
|
|
129
|
-
cycleModelWorkflow(direction: "forward" | "backward"): Promise<PiWorkflowResult>;
|
|
130
|
-
pinnedProjectTrustContext(): PiProjectTrustContext;
|
|
131
|
-
persistProjectTrust(updates: readonly PiProjectTrustUpdate[]): void;
|
|
132
|
-
pinnedScopedModelsContext(): PiScopedModelsContext;
|
|
133
|
-
updateScopedModels(enabledModelIds: readonly string[] | null): void;
|
|
134
|
-
persistScopedModels(enabledModelIds: readonly string[] | null): void;
|
|
135
|
-
refreshScopedModels(signal: AbortSignal): Promise<PiScopedModelsRefreshResult>;
|
|
136
|
-
modelsContext(): PiModelsContext;
|
|
137
|
-
setSessionModelScope(scopeIds: readonly string[]): void;
|
|
138
|
-
persistModelScope(scopeIds: readonly string[]): void;
|
|
139
|
-
refreshModels(signal: AbortSignal): Promise<PiModelsRefreshResult>;
|
|
140
|
-
pinnedLoginOptions(authType?: "oauth" | "api_key"): readonly PiAuthenticationProviderOption[];
|
|
141
|
-
pinnedLoginMethodOptions(providerReference: string): {
|
|
142
|
-
readonly title: string;
|
|
143
|
-
readonly options: readonly PiWorkflowOption[];
|
|
144
|
-
};
|
|
145
|
-
pinnedAmbientAuthentication(selection: string): ReturnType<PiWorkflowContexts["pinnedAmbientAuthentication"]>;
|
|
146
|
-
pinnedLogoutOptions(): Promise<readonly PiAuthenticationProviderOption[]>;
|
|
147
|
-
pinnedForkOptions(): readonly PiWorkflowOption[];
|
|
148
|
-
/** Bind the owned UI's clipboard lifecycle without changing the comparison host. True means acknowledged delivery. */
|
|
149
|
-
bindClipboardWriter(writer: (text: string) => Promise<boolean>): () => void;
|
|
150
|
-
/** Workflow and tree copying share the active owner's write fence and delivery acknowledgment. */
|
|
151
|
-
copyWorkflowText(text: string): Promise<boolean>;
|
|
152
86
|
abortBashWorkflow(): void;
|
|
153
|
-
executeBashWorkflow(command: string, excludeFromContext: boolean): Promise<PiBashWorkflowResult>;
|
|
154
|
-
reloadBlockedResult(): PiWorkflowResult | null;
|
|
155
87
|
executeWorkflow(request: PiWorkflowRequest): Promise<PiWorkflowResult>;
|
|
156
88
|
/**
|
|
157
89
|
* The theme the engine is configured with, in the engine's own grammar: a
|
|
158
90
|
* theme's name, or a `light/dark` pair meaning "follow the terminal".
|
|
159
91
|
*/
|
|
160
92
|
configuredTheme(): string | undefined;
|
|
161
|
-
/** Persist the global thinking default without changing the live session level. */
|
|
162
|
-
setDefaultThinkingLevel(level: PiPinnedSettingsSnapshot["defaultThinkingLevel"]): void;
|
|
163
93
|
/** Settings port for the live runtime, or null before the runtime is available. */
|
|
164
94
|
settingsPort(): PiSettingsBridge | null;
|
|
165
|
-
/** Which settings surface this adapter serves; hidden-in-bare effects are unbindable in bare mode. */
|
|
166
|
-
get settingsProductMode(): "bare" | "comparison";
|
|
167
|
-
bindSettingsOwner(owner: AgentSettingOwner, handlers: PiSettingOwnerHandlers): () => void;
|
|
168
95
|
pinnedSettingsSnapshot(): PiPinnedSettingsSnapshot;
|
|
169
96
|
clearQueuedWorkflows(): readonly string[];
|
|
170
97
|
view(): OwnedUiSessionViewModel;
|