@pi-unipi/unipi 2.19.1 → 2.19.3
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 +12 -0
- package/package.json +24 -24
- package/packages/ask-user/package.json +2 -2
- package/packages/autocomplete/package.json +1 -1
- package/packages/background-tasks/package.json +2 -2
- package/packages/btw/package.json +2 -2
- package/packages/compactor/package.json +3 -3
- package/packages/core/package.json +1 -1
- package/packages/footer/package.json +3 -3
- package/packages/footer/src/index.ts +22 -0
- package/packages/fusion/package.json +3 -3
- package/packages/fusion/src/tools.ts +0 -2
- package/packages/image/package.json +2 -2
- package/packages/info-screen/package.json +2 -2
- package/packages/input-shortcuts/package.json +2 -2
- package/packages/kanboard/package.json +2 -2
- package/packages/mcp/package.json +2 -2
- package/packages/memory/package.json +3 -3
- package/packages/milestone/package.json +2 -2
- package/packages/notify/package.json +2 -2
- package/packages/ralph/package.json +3 -3
- package/packages/subagents/package.json +2 -2
- package/packages/trajectory/package.json +1 -1
- package/packages/unipi/bundled.js +12 -2
- package/packages/updater/package.json +2 -2
- package/packages/utility/package.json +2 -2
- package/packages/web-api/package.json +2 -2
- package/packages/workflow/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [2.19.3] — 2026-09-16
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- `fusion`: **sidekick blocks get the standard tool highlight again.** Both fusion tools declared `renderShell: "self"`, which routes `renderCall`/`renderResult` into a bare `Container` and bypasses `ToolExecutionComponent`'s `toolPendingBg`/`toolSuccessBg`/`toolErrorBg` box. Once the `customMessageBg` frame was removed in 2.19.1, sidekick activity rendered as unhighlighted plain text — plainer than the lead's own tool calls. Dropping the self shell lets pi wrap the transcript in the same tinted block every other tool gets, with the normal pending → success/error repaint.
|
|
14
|
+
|
|
15
|
+
## [2.19.2] — 2026-09-16
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- `footer`: **the update overlay no longer leaves the TUI dead after pressing `y`.** The Glance editor install (`installGlanceEditor`) detaches the default editor, but any overlay opened before the swap — the updater prompt opens at `session_start`, the swap lands ~3.5s later — keeps that component as its `preFocus` restore target. On `hideOverlay()` the TUI refocused the detached editor, so every keystroke (including Ctrl+C) was routed to an unmounted component and the session had to be killed. After the swap we now walk `overlayStack` and retarget any `preFocus` pointing at an unmounted non-overlay component to the newly installed editor; `preFocus` entries referencing a live overlay or a still-mounted component are left alone. Regression covered in `glance-focus.test.ts`.
|
|
20
|
+
|
|
9
21
|
## [2.19.1] — 2026-09-16
|
|
10
22
|
|
|
11
23
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/unipi",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "All-in-one extension suite for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -84,29 +84,29 @@
|
|
|
84
84
|
"typebox": "^1.1.38"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@pi-unipi/ask-user": "2.19.
|
|
88
|
-
"@pi-unipi/background-tasks": "2.19.
|
|
89
|
-
"@pi-unipi/btw": "2.19.
|
|
90
|
-
"@pi-unipi/command-enchantment": "2.19.
|
|
91
|
-
"@pi-unipi/compactor": "2.19.
|
|
92
|
-
"@pi-unipi/core": "2.19.
|
|
93
|
-
"@pi-unipi/footer": "2.19.
|
|
94
|
-
"@pi-unipi/image": "2.19.
|
|
95
|
-
"@pi-unipi/fusion": "2.19.
|
|
96
|
-
"@pi-unipi/info-screen": "2.19.
|
|
97
|
-
"@pi-unipi/input-shortcuts": "2.19.
|
|
98
|
-
"@pi-unipi/kanboard": "2.19.
|
|
99
|
-
"@pi-unipi/mcp": "2.19.
|
|
100
|
-
"@pi-unipi/memory": "2.19.
|
|
101
|
-
"@pi-unipi/milestone": "2.19.
|
|
102
|
-
"@pi-unipi/notify": "2.19.
|
|
103
|
-
"@pi-unipi/ralph": "2.19.
|
|
104
|
-
"@pi-unipi/subagents": "2.19.
|
|
105
|
-
"@pi-unipi/trajectory": "2.19.
|
|
106
|
-
"@pi-unipi/updater": "2.19.
|
|
107
|
-
"@pi-unipi/utility": "2.19.
|
|
108
|
-
"@pi-unipi/web-api": "2.19.
|
|
109
|
-
"@pi-unipi/workflow": "2.19.
|
|
87
|
+
"@pi-unipi/ask-user": "2.19.3",
|
|
88
|
+
"@pi-unipi/background-tasks": "2.19.3",
|
|
89
|
+
"@pi-unipi/btw": "2.19.3",
|
|
90
|
+
"@pi-unipi/command-enchantment": "2.19.3",
|
|
91
|
+
"@pi-unipi/compactor": "2.19.3",
|
|
92
|
+
"@pi-unipi/core": "2.19.3",
|
|
93
|
+
"@pi-unipi/footer": "2.19.3",
|
|
94
|
+
"@pi-unipi/image": "2.19.3",
|
|
95
|
+
"@pi-unipi/fusion": "2.19.3",
|
|
96
|
+
"@pi-unipi/info-screen": "2.19.3",
|
|
97
|
+
"@pi-unipi/input-shortcuts": "2.19.3",
|
|
98
|
+
"@pi-unipi/kanboard": "2.19.3",
|
|
99
|
+
"@pi-unipi/mcp": "2.19.3",
|
|
100
|
+
"@pi-unipi/memory": "2.19.3",
|
|
101
|
+
"@pi-unipi/milestone": "2.19.3",
|
|
102
|
+
"@pi-unipi/notify": "2.19.3",
|
|
103
|
+
"@pi-unipi/ralph": "2.19.3",
|
|
104
|
+
"@pi-unipi/subagents": "2.19.3",
|
|
105
|
+
"@pi-unipi/trajectory": "2.19.3",
|
|
106
|
+
"@pi-unipi/updater": "2.19.3",
|
|
107
|
+
"@pi-unipi/utility": "2.19.3",
|
|
108
|
+
"@pi-unipi/web-api": "2.19.3",
|
|
109
|
+
"@pi-unipi/workflow": "2.19.3"
|
|
110
110
|
},
|
|
111
111
|
"devDependencies": {
|
|
112
112
|
"@earendil-works/pi-agent-core": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/ask-user",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Structured user input tool for Pi coding agent — single-select, multi-select, freeform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@pi-unipi/core": "2.19.
|
|
43
|
+
"@pi-unipi/core": "2.19.3"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/background-tasks",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Background tasks for UniPi — durable shell jobs and delegated background agents with a footer dock",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@earendil-works/pi-ai": "^0.84.0",
|
|
13
|
-
"@pi-unipi/core": "2.19.
|
|
13
|
+
"@pi-unipi/core": "2.19.3",
|
|
14
14
|
"turndown": "^7.2.4"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/btw",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "A pi extension for parallel side conversations with /unipi:btw — part of the Unipi suite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "extensions/btw.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@earendil-works/pi-tui": "^0.84.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@pi-unipi/core": "2.19.
|
|
40
|
+
"@pi-unipi/core": "2.19.3"
|
|
41
41
|
},
|
|
42
42
|
"pi": {
|
|
43
43
|
"extensions": [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/compactor",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Context engine for Pi — zero-LLM compaction, session continuity, sandbox execution, and tool display optimization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@pi-unipi/core": "2.19.
|
|
38
|
-
"@pi-unipi/info-screen": "2.19.
|
|
37
|
+
"@pi-unipi/core": "2.19.3",
|
|
38
|
+
"@pi-unipi/info-screen": "2.19.3",
|
|
39
39
|
"@earendil-works/pi-agent-core": "^0.84.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/footer",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Persistent status bar for Unipi — subscribes to UNIPI_EVENTS and renders key stats from all unipi packages",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@pi-unipi/core": "2.19.
|
|
36
|
-
"@pi-unipi/background-tasks": "2.19.
|
|
35
|
+
"@pi-unipi/core": "2.19.3",
|
|
36
|
+
"@pi-unipi/background-tasks": "2.19.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -451,6 +451,28 @@ function installGlanceEditor(
|
|
|
451
451
|
};
|
|
452
452
|
}),
|
|
453
453
|
);
|
|
454
|
+
// setCustomEditorComponent detaches the previous editor, but any open
|
|
455
|
+
// overlay captured it as its preFocus restore target — closing the overlay
|
|
456
|
+
// would refocus a dead component and swallow all input. Right after the
|
|
457
|
+
// swap, getFocusedComponent() is the new editor; retarget stale preFocus
|
|
458
|
+
// entries to it (skip preFocus that points at a live overlay).
|
|
459
|
+
const newEditor = typeof tui?.getFocusedComponent === "function" ? tui.getFocusedComponent() : null;
|
|
460
|
+
const internals = tui as ({
|
|
461
|
+
overlayStack?: Array<{ component?: unknown; preFocus?: unknown }>;
|
|
462
|
+
isComponentMounted?: (c: unknown) => boolean;
|
|
463
|
+
}) | null | undefined;
|
|
464
|
+
const overlayStack = internals?.overlayStack;
|
|
465
|
+
const isMounted = typeof internals?.isComponentMounted === "function"
|
|
466
|
+
? internals.isComponentMounted.bind(tui)
|
|
467
|
+
: undefined;
|
|
468
|
+
if (newEditor && overlayStack && isMounted) {
|
|
469
|
+
const overlayComponents = new Set(overlayStack.map((entry) => entry.component));
|
|
470
|
+
for (const entry of overlayStack) {
|
|
471
|
+
if (entry.preFocus && entry.preFocus !== newEditor && !overlayComponents.has(entry.preFocus) && !isMounted(entry.preFocus)) {
|
|
472
|
+
entry.preFocus = newEditor;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
454
476
|
if (overlayOwner && tui) tui.setFocus(overlayOwner);
|
|
455
477
|
st.glanceInstalled = true;
|
|
456
478
|
} catch {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/fusion",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Devin-style model picker, fusion presets (lead + sidekick), and Local Fusion runtime for UniPi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@pi-unipi/core": "2.19.
|
|
36
|
-
"@pi-unipi/subagents": "2.19.
|
|
35
|
+
"@pi-unipi/core": "2.19.3",
|
|
36
|
+
"@pi-unipi/subagents": "2.19.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@earendil-works/pi-ai": "^0.84.0",
|
|
@@ -178,7 +178,6 @@ export function registerFusionTools(pi: ExtensionAPI, deps: FusionToolDeps): voi
|
|
|
178
178
|
label: "Sidekick",
|
|
179
179
|
description: "Hand off work to your persistent sidekick subagent (one per session; context and shells persist across handoffs; runs on the same machine). block:true (default) waits and returns the report. block:false returns immediately and the report arrives later as a <subagent_completion_notification>. Calling again while a handoff is running injects the message as an interrupt rather than starting a second sidekick.",
|
|
180
180
|
parameters: SidekickParams,
|
|
181
|
-
renderShell: "self",
|
|
182
181
|
renderCall: (args, theme) => new Text(`${theme.fg("toolTitle", theme.bold("◆ sidekick"))} ${theme.fg("dim", firstLine(String(args.message)).slice(0, 100))}`, 0, 0),
|
|
183
182
|
renderResult: (result, options, theme) => renderToolTranscript(result, options, theme as unknown as ThemeLike, "sidekick"),
|
|
184
183
|
async execute(_toolCallId, params, signal, onUpdate, ctx) {
|
|
@@ -214,7 +213,6 @@ export function registerFusionTools(pi: ExtensionAPI, deps: FusionToolDeps): voi
|
|
|
214
213
|
label: "Read Sidekick",
|
|
215
214
|
description: "Read a sidekick handoff report by agent_id (omit for the latest). block:true waits for completion (default timeout 2700s when omitted); block:false returns the current progress snapshot immediately.",
|
|
216
215
|
parameters: ReadSubagentParams,
|
|
217
|
-
renderShell: "self",
|
|
218
216
|
renderCall: (args, theme) => new Text(`${theme.fg("toolTitle", theme.bold("◆ read_subagent"))} ${theme.fg("dim", args.block === false ? "· snapshot" : "· waiting")}`, 0, 0),
|
|
219
217
|
renderResult: (result, options, theme) => renderToolTranscript(result, options, theme as unknown as ThemeLike, "read_subagent"),
|
|
220
218
|
async execute(_toolCallId, params, signal, onUpdate, ctx) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/image",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Image generation and image recognition tools for the Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@pi-unipi/core": "2.19.
|
|
37
|
+
"@pi-unipi/core": "2.19.3"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@earendil-works/pi-ai": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/info-screen",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Dashboard and module registry for Unipi — configurable info overlay with tabbed groups",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@pi-unipi/core": "2.19.
|
|
36
|
+
"@pi-unipi/core": "2.19.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/input-shortcuts",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Keyboard shortcuts for stash/restore, undo/redo, clipboard, and thinking toggle — chord-based overlay system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@pi-unipi/core": "2.19.
|
|
36
|
+
"@pi-unipi/core": "2.19.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/kanboard",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Visualization layer for unipi workflow — HTTP server with htmx/Alpine.js UI, modular parsers, TUI overlay, and kanban board",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@pi-unipi/core": "2.19.
|
|
42
|
+
"@pi-unipi/core": "2.19.3"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/mcp",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "MCP server management extension for Pi coding agent — browse, add, configure, and use MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"test": "npx tsx --test tests/**/*.test.ts"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@pi-unipi/core": "2.19.
|
|
33
|
+
"@pi-unipi/core": "2.19.3"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/memory",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Persistent cross-session memory with MemPalace backend (auto-installed) and SQLite fallback for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"README.md"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@pi-unipi/core": "2.19.
|
|
43
|
-
"@pi-unipi/info-screen": "2.19.
|
|
42
|
+
"@pi-unipi/core": "2.19.3",
|
|
43
|
+
"@pi-unipi/info-screen": "2.19.3",
|
|
44
44
|
"js-yaml": "^4.1.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/milestone",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Lifecycle layer for project-level goals — MILESTONES.md tracking, session hooks, auto-sync",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@pi-unipi/core": "2.19.
|
|
35
|
+
"@pi-unipi/core": "2.19.3"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/notify",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Cross-platform notification extension for Pi — native OS, Gotify, and Telegram notifications for agent lifecycle events",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@pi-unipi/core": "2.19.
|
|
37
|
+
"@pi-unipi/core": "2.19.3",
|
|
38
38
|
"node-notifier": "^10.0.1"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/ralph",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Long-running iterative development loops for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"test": "npx tsx --test reminder.test.ts"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@pi-unipi/core": "2.19.
|
|
35
|
-
"@pi-unipi/info-screen": "2.19.
|
|
34
|
+
"@pi-unipi/core": "2.19.3",
|
|
35
|
+
"@pi-unipi/info-screen": "2.19.3"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@earendil-works/pi-ai": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/subagents",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Subagents for UniPi — parallel execution, file locking, workflow integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"test": "npx tsx --test src/__tests__/*.test.ts"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@pi-unipi/core": "2.19.
|
|
12
|
+
"@pi-unipi/core": "2.19.3",
|
|
13
13
|
"@earendil-works/pi-agent-core": "^0.84.0",
|
|
14
14
|
"acorn": "8.18.0"
|
|
15
15
|
},
|
|
@@ -48424,6 +48424,18 @@ function installGlanceEditor(st, uiHost) {
|
|
|
48424
48424
|
};
|
|
48425
48425
|
})
|
|
48426
48426
|
);
|
|
48427
|
+
const newEditor = typeof tui?.getFocusedComponent === "function" ? tui.getFocusedComponent() : null;
|
|
48428
|
+
const internals = tui;
|
|
48429
|
+
const overlayStack = internals?.overlayStack;
|
|
48430
|
+
const isMounted = typeof internals?.isComponentMounted === "function" ? internals.isComponentMounted.bind(tui) : void 0;
|
|
48431
|
+
if (newEditor && overlayStack && isMounted) {
|
|
48432
|
+
const overlayComponents = new Set(overlayStack.map((entry) => entry.component));
|
|
48433
|
+
for (const entry of overlayStack) {
|
|
48434
|
+
if (entry.preFocus && entry.preFocus !== newEditor && !overlayComponents.has(entry.preFocus) && !isMounted(entry.preFocus)) {
|
|
48435
|
+
entry.preFocus = newEditor;
|
|
48436
|
+
}
|
|
48437
|
+
}
|
|
48438
|
+
}
|
|
48427
48439
|
if (overlayOwner && tui) tui.setFocus(overlayOwner);
|
|
48428
48440
|
st.glanceInstalled = true;
|
|
48429
48441
|
} catch {
|
|
@@ -53927,7 +53939,6 @@ function registerFusionTools(pi, deps) {
|
|
|
53927
53939
|
label: "Sidekick",
|
|
53928
53940
|
description: "Hand off work to your persistent sidekick subagent (one per session; context and shells persist across handoffs; runs on the same machine). block:true (default) waits and returns the report. block:false returns immediately and the report arrives later as a <subagent_completion_notification>. Calling again while a handoff is running injects the message as an interrupt rather than starting a second sidekick.",
|
|
53929
53941
|
parameters: SidekickParams,
|
|
53930
|
-
renderShell: "self",
|
|
53931
53942
|
renderCall: (args, theme) => new Text12(`${theme.fg("toolTitle", theme.bold("\u25C6 sidekick"))} ${theme.fg("dim", firstLine3(String(args.message)).slice(0, 100))}`, 0, 0),
|
|
53932
53943
|
renderResult: (result2, options, theme) => renderToolTranscript(result2, options, theme, "sidekick"),
|
|
53933
53944
|
async execute(_toolCallId, params, signal, onUpdate, ctx) {
|
|
@@ -53965,7 +53976,6 @@ ${progressText(runtime, handoff.id)}`, { progress: runtime.progress(handoff.id),
|
|
|
53965
53976
|
label: "Read Sidekick",
|
|
53966
53977
|
description: "Read a sidekick handoff report by agent_id (omit for the latest). block:true waits for completion (default timeout 2700s when omitted); block:false returns the current progress snapshot immediately.",
|
|
53967
53978
|
parameters: ReadSubagentParams,
|
|
53968
|
-
renderShell: "self",
|
|
53969
53979
|
renderCall: (args, theme) => new Text12(`${theme.fg("toolTitle", theme.bold("\u25C6 read_subagent"))} ${theme.fg("dim", args.block === false ? "\xB7 snapshot" : "\xB7 waiting")}`, 0, 0),
|
|
53970
53980
|
renderResult: (result2, options, theme) => renderToolTranscript(result2, options, theme, "read_subagent"),
|
|
53971
53981
|
async execute(_toolCallId, params, signal, onUpdate, ctx) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/updater",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Auto-updater, changelog browser, and readme browser for Unipi — checks npm registry, renders CHANGELOG.md and README.md files in TUI overlays",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@pi-unipi/core": "2.19.
|
|
37
|
+
"@pi-unipi/core": "2.19.3"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/utility",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Utility commands and tools for Pi coding agent — lifecycle, diagnostics, cache, analytics, display, batch execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@pi-unipi/core": "2.19.
|
|
39
|
+
"@pi-unipi/core": "2.19.3"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {},
|
|
42
42
|
"peerDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/web-api",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Web search, read, and summarize tools with provider-based backend selection for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@pi-unipi/core": "2.19.
|
|
34
|
+
"@pi-unipi/core": "2.19.3",
|
|
35
35
|
"defuddle": "^0.18.1",
|
|
36
36
|
"linkedom": "^0.18.12",
|
|
37
37
|
"wreq-js": "^2.3.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/workflow",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.3",
|
|
4
4
|
"description": "Structured development workflow commands for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@pi-unipi/core": "2.19.
|
|
33
|
+
"@pi-unipi/core": "2.19.3"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@earendil-works/pi-ai": "^0.84.0",
|