pi-ui-extend 1.0.32 → 1.0.36
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 +21 -0
- package/dist/app/app.js +0 -1
- package/dist/app/commands/command-host.d.ts +1 -2
- package/dist/app/commands/command-model-actions.js +5 -5
- package/dist/app/constants.d.ts +0 -1
- package/dist/app/constants.js +0 -34
- package/dist/app/popup/menu-items-controller.d.ts +1 -3
- package/dist/app/popup/menu-items-controller.js +10 -32
- package/dist/app/rendering/popup-menu-renderer.js +1 -1
- package/dist/app/runtime.js +1 -3
- package/dist/app/screen/file-link-opener.js +15 -49
- package/external/pi-tools-suite/README.md +29 -7
- package/external/pi-tools-suite/docs/browser-qa-subagent.md +24 -6
- package/external/pi-tools-suite/docs/session-recovery.md +84 -0
- package/external/pi-tools-suite/src/async-subagents/async-subagents.sample.jsonc +13 -9
- package/external/pi-tools-suite/src/async-subagents/core/config.ts +2 -2
- package/external/pi-tools-suite/src/async-subagents/core/spawn.ts +23 -4
- package/external/pi-tools-suite/src/async-subagents/private-skills/browser-qa/SKILL.md +40 -4
- package/external/pi-tools-suite/src/async-subagents/private-skills/browser-qa/references/qa-design.md +19 -0
- package/external/pi-tools-suite/src/async-subagents/private-skills/browser-qa/scripts/browser-qa-runner.mjs +444 -13
- package/external/pi-tools-suite/src/coding-discipline/index.ts +12 -2
- package/external/pi-tools-suite/src/default-pi-tools-suite-config.ts +6 -6
- package/external/pi-tools-suite/src/index.ts +1 -0
- package/external/pi-tools-suite/src/session-recovery/index.ts +674 -0
- package/external/pi-tools-suite/src/tool-descriptions.ts +42 -0
- package/package.json +4 -2
- package/skills/skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/generate_report.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/improve_description.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/package_skill.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/run_loop.cpython-314.pyc +0 -0
- package/skills/skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
|
@@ -81,6 +81,7 @@ export function asyncSubagentToolDescriptions(options: ToolDescriptionSetOptions
|
|
|
81
81
|
].join(" "),
|
|
82
82
|
promptSnippet:
|
|
83
83
|
"For every browser-based visual QA, UI bug reproduction, or real-browser fix-verification request, immediately spawn subagentType='browser-qa' even for a single track and before inspecting files or checking prerequisites. The browser-qa sub-agent must discover the target and report missing prerequisites; do not preflight, perform, or substitute browser QA in the parent agent. " +
|
|
84
|
+
"Give browser-qa a concise acceptance brief: the known target URL/app, user-visible flow, expected observable result, and required artifacts. Do not prescribe repository files, searches, commands, server setup, or mock/synthetic substitutes; unknown setup belongs to the QA sub-agent's discovery. " +
|
|
84
85
|
"For other work, use subagents action='spawn' for multiple independent agents, explicit delegate/parallelize/split work requests, or one large review/debug track that should stay out of the parent context. " +
|
|
85
86
|
"Usually omit subagentType so the router chooses; set it only for user-named roles, deterministic tests, or another concrete override. Avoid trivial reads/edits and do not call status/wait immediately after spawn just for progress. " +
|
|
86
87
|
(repoDiscovery
|
|
@@ -88,6 +89,7 @@ export function asyncSubagentToolDescriptions(options: ToolDescriptionSetOptions
|
|
|
88
89
|
: "For one focused code-discovery question, use direct read/grep. Without repo_* tools, spawn several focused scan/quick agents first for broad multi-track discovery, incident triage, release readiness, risk strategy, or parallel reviews. Read result only after completion when findings are needed."),
|
|
89
90
|
promptGuidelines: [
|
|
90
91
|
"Treat every real-browser QA request as a mandatory delegation trigger and an explicit exception to the large/parallel threshold: immediately spawn with `subagentType: \"browser-qa\"` before checking prerequisites. The QA sub-agent owns target discovery, feasibility checks, browser automation, evidence, and blocked reports; the parent must not inspect the project first or substitute non-browser checks.",
|
|
92
|
+
"Keep the browser-qa task payload at the user-visible acceptance level: known target URL/app, actions to perform, expected observable outcome, and requested evidence. Do not turn it into a repository investigation plan, name internal files or commands, dictate server setup, or invent a mock/synthetic target. Leave unknown prerequisites to the QA sub-agent.",
|
|
91
93
|
"When browser-qa reports missing credentials, relay its explicit request and generated `.pi/qa_auth.jsonc` template path; never inspect, populate, or edit that credential file in the parent.",
|
|
92
94
|
"After browser-qa completes a test, preserve its clickable screenshot, video, and trace links in the final user-facing response whenever those artifacts exist.",
|
|
93
95
|
"For non-browser-QA work, use action='spawn' only for LARGE/PARALLEL work: independent investigations, repo-wide sweeps, deep debugging, code review/audit, or explicit delegate/parallelize/split requests; these are spawn triggers unless trivial/single-file.",
|
|
@@ -248,6 +250,46 @@ export const SESSION_NAME_TOOL_DESCRIPTION: ToolDescription = {
|
|
|
248
250
|
],
|
|
249
251
|
};
|
|
250
252
|
|
|
253
|
+
export const SESSION_RECOVERY_TOOL_DESCRIPTIONS = {
|
|
254
|
+
overview: {
|
|
255
|
+
name: "session_overview",
|
|
256
|
+
label: "Session Overview",
|
|
257
|
+
description: "Map raw persisted session history into stable, bounded sections. Defaults to the active branch and can include abandoned branches without applying context compaction.",
|
|
258
|
+
promptSnippet: "Map raw session history into stable sections before drilling into context lost to compaction.",
|
|
259
|
+
promptGuidelines: [
|
|
260
|
+
"Use session_overview first when task context was lost or compressed and no reliable search phrase is known; then inspect relevant section IDs.",
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
readSection: {
|
|
264
|
+
name: "session_read_section",
|
|
265
|
+
label: "Session Read Section",
|
|
266
|
+
description: "Read a bounded raw-history section returned by session_overview or session_search, including messages, tool calls/results, and compaction summaries.",
|
|
267
|
+
promptSnippet: "Read one stable raw-session section by ID after session_overview or session_search.",
|
|
268
|
+
promptGuidelines: [
|
|
269
|
+
"Pass a section ID produced with the same active/all scope; keep entry and body limits small unless more detail is necessary.",
|
|
270
|
+
],
|
|
271
|
+
},
|
|
272
|
+
search: {
|
|
273
|
+
name: "session_search",
|
|
274
|
+
label: "Session Search",
|
|
275
|
+
description: "Search raw session messages, summaries, tool results, and serialized tool arguments with a bounded literal substring query.",
|
|
276
|
+
promptSnippet: "Search raw session history lexically when a concrete phrase, path, symbol, tool, or error is known.",
|
|
277
|
+
promptGuidelines: [
|
|
278
|
+
"Use session_search after overview when a concrete query is known; it is lexical rather than semantic, and scope defaults to the active branch.",
|
|
279
|
+
],
|
|
280
|
+
},
|
|
281
|
+
recoveryContext: {
|
|
282
|
+
name: "session_recovery_context",
|
|
283
|
+
label: "Session Recovery Context (after overview)",
|
|
284
|
+
description: "Post-overview convenience tool for summarizing deterministic task signals: user requests, file activity, recent errors, pending tool calls, last action, and compaction references. When the task and search terms are unknown, call session_overview first instead of this tool.",
|
|
285
|
+
promptSnippet: "Use only after session_overview has mapped the raw history; verify details through section reads or search.",
|
|
286
|
+
promptGuidelines: [
|
|
287
|
+
"Do not use session_recovery_context as the first tool when the task and useful search terms are unknown; start with session_overview.",
|
|
288
|
+
"Use it as a convenience after the overview, but treat recentErrors as historical evidence and verify ambiguous state with session_read_section.",
|
|
289
|
+
],
|
|
290
|
+
},
|
|
291
|
+
} satisfies Record<string, ToolDescription>;
|
|
292
|
+
|
|
251
293
|
export const WEB_SEARCH_TOOL_DESCRIPTIONS = {
|
|
252
294
|
webSearch: {
|
|
253
295
|
name: "web_search",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-ui-extend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.36",
|
|
4
4
|
"description": "Pix: a workspace-first terminal UI for Pi with tabs, readable tool activity, voice input, and bundled agent tools.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"repository": {
|
|
@@ -41,7 +41,9 @@
|
|
|
41
41
|
"external/pi-tools-suite/src",
|
|
42
42
|
"external/pi-tools-suite/docs",
|
|
43
43
|
"external/pi-tools-suite/licenses",
|
|
44
|
-
"README.md"
|
|
44
|
+
"README.md",
|
|
45
|
+
"!**/__pycache__",
|
|
46
|
+
"!**/*.pyc"
|
|
45
47
|
],
|
|
46
48
|
"scripts": {
|
|
47
49
|
"predev": "npm run link:pix --silent",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|