@firstpick/pi-package-webui 0.4.3 → 0.4.4
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/bin/pi-webui.mjs +6 -2
- package/package.json +6 -4
- package/public/app.js +528 -4
- package/public/index.html +11 -2
- package/public/styles.css +146 -1
- package/tests/mobile-static.test.mjs +31 -9
- package/tests/native-parity-harness.test.mjs +1 -1
- package/tests/native-parity.test.mjs +2 -2
- package/start-webui.ps1 +0 -368
- package/start-webui.sh +0 -472
- /package/{WEBUI_TUI_NATIVE_PARITY.json → dev/docs/WEBUI_TUI_NATIVE_PARITY.json} +0 -0
package/README.md
CHANGED
|
@@ -139,7 +139,7 @@ Environment variables:
|
|
|
139
139
|
- Side-panel theme picker backed by optional `@firstpick/pi-themes-bundle` themes when loaded.
|
|
140
140
|
- Per-tab cwd changes, a clickable footer cwd picker, saved path fast picks, server-persisted fast picks, and restart-safe restoration of open tabs.
|
|
141
141
|
- Detected app runner dropdown for the active tab cwd, including Cargo, Bun, npm/npx/pnpm, Python/uv, Go/Golang, Zig, C/C++, Docker Compose, root/dev/scripts shell scripts, and other common project runners with live output pinned at the top of the terminal. Projects can add browseable custom runners in `.pi-webui-runners.json` with a command (default `./`) plus a relative path to the file to run.
|
|
142
|
-
- Browser support for Pi extension UI prompts, widgets, status updates, browser notifications when a tab needs an extension UI response and an optional side-panel toggle for agent-done notifications.
|
|
142
|
+
- Browser support for Pi extension UI prompts, widgets, status updates, `/btw` side-question output widgets with optional context transfer/live steering, browser notifications when a tab needs an extension UI response, and an optional side-panel toggle for agent-done notifications.
|
|
143
143
|
- Localhost-only Pi/Web UI update checks with a top-right update notification and a confirmed **Update & restart** action that runs `pi update` plus all detected local/global Web UI and Pi package-manager updates, then restarts the Web UI server.
|
|
144
144
|
- Feedback reactions (`👍`, `👎`, `?`) on final assistant output plus tool/bash action cards, which can ask Pi to create or update a LEARNING.
|
|
145
145
|
- Mobile-friendly layout and PWA install support where the browser allows it.
|
|
@@ -156,7 +156,7 @@ Useful browser endpoints exposed by the local server include:
|
|
|
156
156
|
For local development, run the checkout helper directly, for example:
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
./start-webui.sh --dev --cwd /path/to/project
|
|
159
|
+
./dev/scripts/start-webui.sh --dev --cwd /path/to/project
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
Run `../dev/scripts/sync-pi-package-symlinks.sh` first when developing companion packages from this workspace. The Web UI manifest loads companions through `node_modules/` paths, and the sync script links those paths to the top-level dev packages so only one copy is loaded.
|
|
@@ -169,9 +169,11 @@ When the standalone global `pi-webui` launcher is used, optional companion insta
|
|
|
169
169
|
|
|
170
170
|
Optional companions:
|
|
171
171
|
|
|
172
|
+
- `@firstpick/pi-extension-btw` — ephemeral `/btw` side-question command with a TUI overlay, Web UI live output widget, and Transfer Context action.
|
|
172
173
|
- `@firstpick/pi-prompts-git-pr` — guided Git commit/push workflow.
|
|
173
174
|
- `@firstpick/pi-extension-release-npm` — NPM publish menu and release widgets.
|
|
174
175
|
- `@firstpick/pi-extension-release-aur` — AUR publish menu and release widgets.
|
|
176
|
+
- `@firstpick/pi-extension-workflows` — `/workflow` runtime with non-blocking Web UI subprocess-output widgets.
|
|
175
177
|
- `@firstpick/pi-extension-safety-guard` — interactive guardrails for dangerous bash commands and protected file edits.
|
|
176
178
|
- `@firstpick/pi-extension-setup-skills` — TUI `/skills` setup command alongside WebUI-native skill toggles.
|
|
177
179
|
- `@firstpick/pi-extension-todo-progress` — todo-progress rendering.
|
package/bin/pi-webui.mjs
CHANGED
|
@@ -52,7 +52,7 @@ try {
|
|
|
52
52
|
} catch {
|
|
53
53
|
piPackageJson = {};
|
|
54
54
|
}
|
|
55
|
-
const nativeParityMatrix = JSON.parse(await readFile(path.join(packageRoot, "WEBUI_TUI_NATIVE_PARITY.json"), "utf8"));
|
|
55
|
+
const nativeParityMatrix = JSON.parse(await readFile(path.join(packageRoot, "dev", "docs", "WEBUI_TUI_NATIVE_PARITY.json"), "utf8"));
|
|
56
56
|
const webuiDevServer = isTruthyEnv(process.env.PI_WEBUI_DEV) || isSourceCheckout(packageRoot);
|
|
57
57
|
|
|
58
58
|
const DEFAULT_HOST = "127.0.0.1";
|
|
@@ -221,9 +221,11 @@ function parseSlashCommand(message) {
|
|
|
221
221
|
return parseNativeSlashCommand(message, NATIVE_SLASH_COMMAND_NAMES);
|
|
222
222
|
}
|
|
223
223
|
const OPTIONAL_FEATURE_PACKAGES = new Map([
|
|
224
|
+
["btwCommand", "@firstpick/pi-extension-btw"],
|
|
224
225
|
["gitWorkflow", "@firstpick/pi-prompts-git-pr"],
|
|
225
226
|
["releaseNpm", "@firstpick/pi-extension-release-npm"],
|
|
226
227
|
["releaseAur", "@firstpick/pi-extension-release-aur"],
|
|
228
|
+
["workflows", "@firstpick/pi-extension-workflows"],
|
|
227
229
|
["safetyGuard", "@firstpick/pi-extension-safety-guard"],
|
|
228
230
|
["tuiSkillsCommand", "@firstpick/pi-extension-setup-skills"],
|
|
229
231
|
["todoProgressWidget", "@firstpick/pi-extension-todo-progress"],
|
|
@@ -5380,8 +5382,10 @@ function renameTab(tab, title, { source = "explicit", maxLength, unique = source
|
|
|
5380
5382
|
}
|
|
5381
5383
|
|
|
5382
5384
|
function maybeNameTabForConversation(tab, command) {
|
|
5383
|
-
if (!tab || !commandStartsConversation(command)
|
|
5385
|
+
if (!tab || !commandStartsConversation(command)) return false;
|
|
5386
|
+
const shouldRename = !tab.conversationStarted && tab.titleSource !== "explicit";
|
|
5384
5387
|
tab.conversationStarted = true;
|
|
5388
|
+
if (!shouldRename) return false;
|
|
5385
5389
|
const title = generatedTabTitleFromPrompt(command.message) || `Conversation ${tab.index}`;
|
|
5386
5390
|
return renameTab(tab, title, { source: "auto", maxLength: AUTO_TAB_TITLE_MAX_LENGTH });
|
|
5387
5391
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firstpick/pi-package-webui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Pi Web UI companion package with a local browser UI CLI plus /webui-start and /webui-status commands.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/Firstp1ck/npm-packages/tree/main/pi-package-webui#readme",
|
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
"image": "https://unpkg.com/@firstpick/pi-package-webui/images/WebUI_v0.3.7.png",
|
|
24
24
|
"extensions": [
|
|
25
25
|
"./index.ts",
|
|
26
|
+
"node_modules/@firstpick/pi-extension-btw/index.ts",
|
|
26
27
|
"node_modules/@firstpick/pi-extension-git-footer-status/index.ts",
|
|
27
28
|
"node_modules/@firstpick/pi-extension-release-aur/index.ts",
|
|
28
29
|
"node_modules/@firstpick/pi-extension-release-npm/index.ts",
|
|
30
|
+
"node_modules/@firstpick/pi-extension-workflows/index.ts",
|
|
29
31
|
"node_modules/@firstpick/pi-extension-safety-guard/index.ts",
|
|
30
32
|
"node_modules/@firstpick/pi-extension-setup-skills/index.ts",
|
|
31
33
|
"node_modules/@firstpick/pi-extension-stats/index.ts",
|
|
@@ -54,9 +56,11 @@
|
|
|
54
56
|
"@earendil-works/pi-coding-agent": "^0.79.3"
|
|
55
57
|
},
|
|
56
58
|
"optionalDependencies": {
|
|
59
|
+
"@firstpick/pi-extension-btw": "^0.1.0",
|
|
57
60
|
"@firstpick/pi-extension-git-footer-status": "^0.3.3",
|
|
58
61
|
"@firstpick/pi-extension-release-aur": "^0.1.6",
|
|
59
62
|
"@firstpick/pi-extension-release-npm": "^0.4.0",
|
|
63
|
+
"@firstpick/pi-extension-workflows": "^0.1.0",
|
|
60
64
|
"@firstpick/pi-extension-safety-guard": "^0.2.3",
|
|
61
65
|
"@firstpick/pi-extension-setup-skills": "^0.1.8",
|
|
62
66
|
"@firstpick/pi-extension-stats": "^0.2.6",
|
|
@@ -74,9 +78,7 @@
|
|
|
74
78
|
"public",
|
|
75
79
|
"images",
|
|
76
80
|
"tests",
|
|
77
|
-
"
|
|
78
|
-
"start-webui.ps1",
|
|
79
|
-
"WEBUI_TUI_NATIVE_PARITY.json",
|
|
81
|
+
"dev/docs/WEBUI_TUI_NATIVE_PARITY.json",
|
|
80
82
|
"README.md",
|
|
81
83
|
"LICENSE"
|
|
82
84
|
],
|