@timurproko/a1 0.1.8-dev.465 → 0.1.8-dev.468
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/dist/integrations/pi/session-ui/session-shell-root.js +31 -2
- package/dist/native/darwin-arm64/manifest.json +1 -1
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ import { createPiQueuedInputStatus, createPiShellFooter, createPiShellHeader, cr
|
|
|
12
12
|
import { createPiShellArmin, createPiShellAuthProviderSelector, createPiShellDaxnuts, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellExtensionSelector, createPiShellLoginDialog, createPiShellModelSelector, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, } from "../components/shell-selectors-dialogs.js";
|
|
13
13
|
import { createPiShellChangelog, createPiShellCollapsedChangelog, createPiShellHotkeys, createPiShellSessionInfo, renderPiShellCommandMessage, renderPiShellStatusText, } from "../components/shell-presenters-info.js";
|
|
14
14
|
import { createPiShellTranscriptComponent, isPiPromptStyleCompaction, paintPiSubmittedPromptTimestamp, renderPiShellPackageUpdateNotice, renderPiShellStartupDiagnostic, renderPiShellTranscriptBlock, } from "../components/shell-presenters-transcript.js";
|
|
15
|
-
import { onPiThemeChange, piTheme } from "../components/upstream/theme/theme.js";
|
|
15
|
+
import { onPiThemeChange, PINNED_PI_LAYOUT, piTheme } from "../components/upstream/theme/theme.js";
|
|
16
16
|
import { piShellTruncateToWidth, piShellVisibleWidth, } from "../components/shell-shared-facade.js";
|
|
17
17
|
import { classifyPiTuiInput, } from "../tui-runtime/input-presentation-coordinator.js";
|
|
18
18
|
import { PromptChipStore } from "./prompt-chips.js";
|
|
@@ -59,6 +59,8 @@ export class OwnedUiSessionShellRoot {
|
|
|
59
59
|
#workflowStatusAnchors = new Map();
|
|
60
60
|
#workflowStatusMessages = new Map();
|
|
61
61
|
#lastWorkflowStatusId;
|
|
62
|
+
// Invariant: the notice is dock chrome, never transcript content; the custom viewport alone uses it.
|
|
63
|
+
#dockNotice;
|
|
62
64
|
#inputSurface;
|
|
63
65
|
#inputSurfaceCoordination = "editor";
|
|
64
66
|
#dockInputReuseEnabled;
|
|
@@ -341,6 +343,10 @@ export class OwnedUiSessionShellRoot {
|
|
|
341
343
|
this.#documentLayouts.clear();
|
|
342
344
|
}
|
|
343
345
|
#mountTranscript(block) {
|
|
346
|
+
// Invariant: the notice answers the reader's last command, so only their next prompt or
|
|
347
|
+
// shell command retires it; assistant, tool, and compaction blocks streaming in keep it.
|
|
348
|
+
if (block.kind === "user" || block.kind === "bash")
|
|
349
|
+
this.#dismissDockNotice();
|
|
344
350
|
const created = createPiShellTranscriptComponent(block, this.#cwd, this.#extensionRenderers, this.#submittedPromptComposer, this.#outputPad, !this.#thinkingVisible, this.#mermaidRenderingMode, this.#showImages, this.#imageWidthCells, this.#imageAssets, { ...this.#componentRuntime, changed: () => {
|
|
345
351
|
if (this.#transcript.get(block.id) !== created)
|
|
346
352
|
return;
|
|
@@ -522,7 +528,7 @@ export class OwnedUiSessionShellRoot {
|
|
|
522
528
|
#renderDockLayout(width) {
|
|
523
529
|
const queued = this.#customViewport ? [] : this.#renderQueued(width);
|
|
524
530
|
const statusRows = this.#customViewport ? this.#status.renderDock(width) : this.#renderStatus(width);
|
|
525
|
-
const transientRows = [...queued, ...statusRows];
|
|
531
|
+
const transientRows = [...queued, ...statusRows, ...this.#renderDockNotice(width)];
|
|
526
532
|
const aboveWidgets = this.#renderWidgets("aboveEditor", width);
|
|
527
533
|
const input = this.#inputSurface.render(width);
|
|
528
534
|
// Invariant: pointer rows describe the body, not the autocomplete block now preceding it.
|
|
@@ -536,6 +542,18 @@ export class OwnedUiSessionShellRoot {
|
|
|
536
542
|
inputRows: body?.rowCount ?? input.length,
|
|
537
543
|
};
|
|
538
544
|
}
|
|
545
|
+
#renderDockNotice(width) {
|
|
546
|
+
if (this.#dockNotice === undefined)
|
|
547
|
+
return [];
|
|
548
|
+
// Compatibility: Pi pads its status text by one cell regardless of the output pad setting.
|
|
549
|
+
return ["", ...renderPiShellStatusText(this.#dockNotice, width, PINNED_PI_LAYOUT.outputPad)];
|
|
550
|
+
}
|
|
551
|
+
#dismissDockNotice() {
|
|
552
|
+
if (this.#dockNotice === undefined)
|
|
553
|
+
return;
|
|
554
|
+
this.#dockNotice = undefined;
|
|
555
|
+
this.#invalidateChrome();
|
|
556
|
+
}
|
|
539
557
|
#renderQueued(width) {
|
|
540
558
|
return this.#view.editor.queuedSubmissions.length === 0 ? [] : this.#queued.render(width);
|
|
541
559
|
}
|
|
@@ -734,6 +752,14 @@ export class OwnedUiSessionShellRoot {
|
|
|
734
752
|
return rows.join("\n");
|
|
735
753
|
}
|
|
736
754
|
appendWorkflowStatus(message) {
|
|
755
|
+
// Rationale: bare A1 acknowledges commands in one dock notice above the editor, where the
|
|
756
|
+
// reader's eye already is, instead of a transcript row that opens an empty session at the
|
|
757
|
+
// top-left or sinks into a long feed. The pinned route keeps Pi's chat placement.
|
|
758
|
+
if (this.#customViewport) {
|
|
759
|
+
this.#dockNotice = message;
|
|
760
|
+
this.#invalidateChrome();
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
737
763
|
const previousId = this.#lastWorkflowStatusId;
|
|
738
764
|
if (previousId !== undefined
|
|
739
765
|
&& this.#transcriptOrder.at(-1) === previousId
|
|
@@ -873,6 +899,7 @@ export class OwnedUiSessionShellRoot {
|
|
|
873
899
|
this.invalidate();
|
|
874
900
|
}
|
|
875
901
|
resetWorkflowPresentation() {
|
|
902
|
+
this.#dockNotice = undefined;
|
|
876
903
|
for (const id of this.#workflowStatusAnchors.keys()) {
|
|
877
904
|
this.#transcript.get(id)?.dispose?.();
|
|
878
905
|
this.#transcript.delete(id);
|
|
@@ -1057,6 +1084,8 @@ export class OwnedUiSessionShellRoot {
|
|
|
1057
1084
|
this.#transcriptOrder = order;
|
|
1058
1085
|
}
|
|
1059
1086
|
#appendAnchoredWorkflowComponent(render, dispose) {
|
|
1087
|
+
// Invariant: transcript-bound workflow output supersedes a pending acknowledgement.
|
|
1088
|
+
this.#dismissDockNotice();
|
|
1060
1089
|
this.#workflowTranscriptSequence += 1;
|
|
1061
1090
|
const id = `workflow-status-${this.#workflowTranscriptSequence}`;
|
|
1062
1091
|
const component = {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"platform": "darwin",
|
|
6
6
|
"architecture": "arm64",
|
|
7
7
|
"capability": "supported",
|
|
8
|
-
"builtAt": "2026-09-
|
|
8
|
+
"builtAt": "2026-09-17T18:35:35.556Z",
|
|
9
9
|
"artifact": {
|
|
10
10
|
"filename": "process-guardian",
|
|
11
11
|
"sha256": "9db1726bbe3fc2e8292f2ead1e7e9d0fd4d7d0dc9217b372582bf354b0f565dc",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"platform": "linux",
|
|
6
6
|
"architecture": "x64",
|
|
7
7
|
"capability": "supported",
|
|
8
|
-
"builtAt": "2026-09-
|
|
8
|
+
"builtAt": "2026-09-17T18:35:34.322Z",
|
|
9
9
|
"artifact": {
|
|
10
10
|
"filename": "process-guardian",
|
|
11
11
|
"sha256": "d8cda6b0c7cb36c0cc41e90802aceebf6c02eaebbc08a83d7d963d2e918dbd7a",
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"platform": "win32",
|
|
6
6
|
"architecture": "x64",
|
|
7
7
|
"capability": "supported",
|
|
8
|
-
"builtAt": "2026-09-
|
|
8
|
+
"builtAt": "2026-09-17T18:36:08.573Z",
|
|
9
9
|
"artifact": {
|
|
10
10
|
"filename": "process-guardian.exe",
|
|
11
|
-
"sha256": "
|
|
11
|
+
"sha256": "2e6e2de410d516ae2f78b20e7253e0feb789fc460de8b5de9ec3a22219395309",
|
|
12
12
|
"size": 177664
|
|
13
13
|
},
|
|
14
14
|
"provenance": {
|
|
Binary file
|
package/package.json
CHANGED