@zihanw/pi-forge 0.5.7 → 0.5.8
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 +9 -0
- package/README.md +9 -9
- package/README.zh-CN.md +9 -9
- package/dist/slot-renderers.js +1 -1
- package/dist/slot-renderers.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/development/release.md +21 -5
- package/docs/development/roadmap.md +8 -4
- package/docs/development/setup.md +20 -4
- package/docs/guides/pi-1-compatibility.md +72 -0
- package/docs/guides/web-editor.md +1 -1
- package/docs/reference/capabilities.md +3 -3
- package/docs/reference/features.md +2 -2
- package/docs/reference/provider-support.md +1 -1
- package/docs/reference/stack-schema.md +1 -1
- package/docs/zh-CN/README.md +1 -0
- package/docs/zh-CN/guides/pi-1-compatibility.md +72 -0
- package/docs/zh-CN/guides/web-editor.md +1 -1
- package/docs/zh-CN/reference/capabilities.md +3 -3
- package/docs/zh-CN/reference/provider-support.md +1 -1
- package/package.json +17 -16
- package/assets/pi-forge-header-concept-1.png +0 -0
- package/assets/readme/PROVENANCE.md +0 -95
- package/assets/readme/en/capability-tools.gif +0 -0
- package/assets/readme/en/context-composition.gif +0 -0
- package/assets/readme/en/context-toggle.gif +0 -0
- package/assets/readme/en/draft-diff.png +0 -0
- package/assets/readme/en/edit-draft-diff.gif +0 -0
- package/assets/readme/en/editor-overview-v3.png +0 -0
- package/assets/readme/en/editor-overview.png +0 -0
- package/assets/readme/en/mode-tools.gif +0 -0
- package/assets/readme/en/regex-transforms.gif +0 -0
- package/assets/readme/en/tool-selection.gif +0 -0
- package/assets/readme/tui-quickstart.gif +0 -0
- package/assets/readme/zh-CN/capability-tools.gif +0 -0
- package/assets/readme/zh-CN/context-composition.gif +0 -0
- package/assets/readme/zh-CN/context-toggle.gif +0 -0
- package/assets/readme/zh-CN/draft-diff.png +0 -0
- package/assets/readme/zh-CN/edit-draft-diff.gif +0 -0
- package/assets/readme/zh-CN/editor-overview-v3.png +0 -0
- package/assets/readme/zh-CN/editor-overview.png +0 -0
- package/assets/readme/zh-CN/mode-tools.gif +0 -0
- package/assets/readme/zh-CN/regex-transforms.gif +0 -0
- package/assets/readme/zh-CN/tool-selection.gif +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,15 @@ In 0.x development, breaking changes may occur in minor releases and will be exp
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.5.8] - 2026-10-03
|
|
12
|
+
|
|
13
|
+
- Keep README images and demonstration media in the repository, not the npm package. Link the accepted EN/ZH demos to immutable GitHub URLs; retain text documentation, examples, compiled code, types and source maps. Restrict package file patterns, reject media/asset entries and tarballs above 2 MiB during package checks, and run those checks automatically in prepack.
|
|
14
|
+
|
|
15
|
+
- Extend optional host peers to Pi 0.99.0, 0.99.1, 0.99.2 and the Pi 1.0 patch series (`>=1.0.0 <1.1.0`; 1.0.0, 1.0.1 and 1.0.2 tested) while retaining the Pi 0.87.x baseline. Pin development SDKs to 1.0.2 and TypeBox to 1.3.27; ordinary platform CI uses current pins and explicit Linux lanes retain older supported hosts.
|
|
16
|
+
- Parameterize packed consumers with `PI_TEST_VERSION` / `TYPEBOX_TEST_VERSION`, default to the coherent installed host, verify installed family versions and use normal npm peer resolution. Pass the selected host through compatibility/latest CI instead of silently packing against 0.87.0. Optional import smoke uses the companion's declared runtime dependency.
|
|
17
|
+
- Document Pi 1.0.1+ Anthropic native tool changes (fixed request-level list, later tools defined inline in `tool_addition`, at least one initial tool required) in the compatibility guide and provider support reference.
|
|
18
|
+
- Refresh the pi-docs slot and add bilingual native MCP/codemode migration notes and focused catalog/System-section regressions. Native MCP names remain exact: stale deny/remove names require review, not automatic aliases. This patch does not change initial/loadout authorization, Capability ownership, models.* access or usage accounting; published 0.5.7 metadata and personal configurations are unchanged.
|
|
19
|
+
|
|
11
20
|
## [0.5.7] - 2026-09-28
|
|
12
21
|
|
|
13
22
|
- Preserve inspection choices through same-Preset draft edits with a clearly marked, paused previous preview. Restore native disclosure state after search/full-text, retain filtered history JSON reading positions, and search historical declaration JSON and named System keys without changing prompt text. Keep the Preset dock physically reachable on short narrow screens.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | [简体中文](README.zh-CN.md) · [Documentation](docs/README.md) · [Quick start](#install-and-first-run)
|
|
4
4
|
|
|
5
|
-

|
|
5
|
+

|
|
6
6
|
|
|
7
7
|
**A context editor and inspection workbench for Pi.**
|
|
8
8
|
|
|
@@ -16,9 +16,9 @@ pi-forge provides visual context composition, tool selection, reusable configura
|
|
|
16
16
|
|
|
17
17
|
## Install and first run
|
|
18
18
|
|
|
19
|
-
Requires Node.js **22.19 or newer**.
|
|
19
|
+
Requires Node.js **22.19 or newer**. Forge **0.5.8** supports Pi **0.87.x, 0.99.0–0.99.2 and 1.0.x**; see [compatibility and migration](docs/guides/pi-1-compatibility.md).
|
|
20
20
|
|
|
21
|
-
> **Version note:** This README describes Forge **0.5.
|
|
21
|
+
> **Version note:** This README describes Forge **0.5.8**, a Pi host-compatibility patch. Older installed packages do not gain the expanded peer metadata automatically; tool-policy and Capability execution semantics are unchanged. Capabilities and configurable default tools require 0.5.5; optional subagents have a separate [compatibility requirement](docs/reference/subagent-host-port.md#tool-selection-compatibility).
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
pi install npm:@zihanw/pi-forge
|
|
@@ -40,9 +40,9 @@ Prefer the terminal? Select a Preset with `/preset use <id>` and enable a Capabi
|
|
|
40
40
|
Build your agent’s context from editable text blocks and slots for tools, skills, project files, and conversation history. Reorder or toggle them and see the result in Preview.
|
|
41
41
|
|
|
42
42
|
- **Use case**: Give a code-review agent your project guidelines and selected context, instead of keeping one oversized prompt for every task.
|
|
43
|
-
- **Try it**: In
|
|
43
|
+
- **Try it**: In **Stack**, toggle a User message block, then drag it after the chat-history slot. Watch the roles and order update in **Preview**.
|
|
44
44
|
|
|
45
|
-

|
|
46
46
|
|
|
47
47
|
See [Web editor guide](docs/guides/web-editor.md) and [Stack schema](docs/reference/stack-schema.md).
|
|
48
48
|
|
|
@@ -53,7 +53,7 @@ Choose which tools an agent may use and which are available by default. An allow
|
|
|
53
53
|
- **Use case**: Keep a review agent focused on reading and searching, without giving it editing or shell tools.
|
|
54
54
|
- **Try it**: In **Policy**, choose the permitted tools and a default set such as `read` and `ls`. Add the already-permitted `grep` to the defaults and check the tool list in **Preview**; save and activate to apply the policy.
|
|
55
55
|
|
|
56
|
-

|
|
56
|
+

|
|
57
57
|
|
|
58
58
|
See [Tool policy reference](docs/reference/stack-schema.md#tool-and-skill-policy).
|
|
59
59
|
|
|
@@ -64,7 +64,7 @@ Find and replace text in model input or completed assistant/tool output using re
|
|
|
64
64
|
- **Use case**: Replace a known sensitive marker in selected prompt text before sending it, or clean repetitive boilerplate from responses.
|
|
65
65
|
- **Try it**: In **Regex**, set up an outgoing rule matching the synthetic `SAMPLE_TOKEN`, replacing it with `[REDACTED]`, and targeting system text. The demo toggles this preconfigured rule and compares **Preview**.
|
|
66
66
|
|
|
67
|
-

|
|
67
|
+

|
|
68
68
|
|
|
69
69
|
See [Regex transformation reference](docs/reference/stack-schema.md#regex-transforms).
|
|
70
70
|
|
|
@@ -79,7 +79,7 @@ Updates reach the model as native mid-conversation system updates on supported m
|
|
|
79
79
|
|
|
80
80
|
On supported provider/model combinations, adding or removing tools can preserve the cached prompt prefix. Support differs for additions and removals, and cache hits are not guaranteed; see [provider support and cache observations](docs/reference/provider-support.md#observed-cache-behavior).
|
|
81
81
|
|
|
82
|
-

|
|
82
|
+

|
|
83
83
|
|
|
84
84
|
See [Capabilities reference](docs/reference/capabilities.md).
|
|
85
85
|
|
|
@@ -90,7 +90,7 @@ See what your edits change before calling a model, then inspect captured request
|
|
|
90
90
|
- **Use case**: Check whether a prompt edit adds the intended instructions, or compare successive requests when a run behaves differently than expected.
|
|
91
91
|
- **Try it**: In `/forge ui`, switch to **Preview** to view compiled messages, open **Draft diff** to see unsaved changes, or run `/forge payload next` in the terminal to inspect the next outgoing request.
|
|
92
92
|
|
|
93
|
-

|
|
93
|
+

|
|
94
94
|
|
|
95
95
|
**Current session** also shows turn and branch cache-hit rates, with main-model and reported nested-tool usage kept separate. These are recorded usage metrics, not a complete bill. See [cache usage](docs/reference/session-cache.md), [debugging](docs/guides/debugging.md), and [commands](docs/reference/commands.md).
|
|
96
96
|
|
package/README.zh-CN.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | [简体中文](README.zh-CN.md) · [中文文档](docs/zh-CN/README.md) · [快速开始](#安装与第一次使用)
|
|
4
4
|
|
|
5
|
-

|
|
5
|
+

|
|
6
6
|
|
|
7
7
|
**面向 Pi 的上下文编辑与检查工作台。**
|
|
8
8
|
|
|
@@ -16,9 +16,9 @@ pi-forge 为 [Pi](https://github.com/earendil-works/pi) 提供可视化上下文
|
|
|
16
16
|
|
|
17
17
|
## 安装与第一次使用
|
|
18
18
|
|
|
19
|
-
Node.js 需要 **22.19 或更高版本**。0.5.
|
|
19
|
+
Node.js 需要 **22.19 或更高版本**。Forge **0.5.8** 支持 Pi **0.87.x、0.99.0–0.99.2 与 1.0.x**,见[兼容与迁移说明](docs/zh-CN/guides/pi-1-compatibility.md)。
|
|
20
20
|
|
|
21
|
-
> **版本提示:** 本文介绍 Forge **0.5.
|
|
21
|
+
> **版本提示:** 本文介绍 Forge **0.5.8**,这是一次 Pi 宿主兼容补丁。旧安装包不会自动获得扩展后的 peer 元数据;工具策略和 Capability 执行语义保持不变。能力与可配置默认工具需要 0.5.5;可选 subagents 另有[兼容要求(英文)](docs/reference/subagent-host-port.md#tool-selection-compatibility)。
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
pi install npm:@zihanw/pi-forge
|
|
@@ -40,9 +40,9 @@ pi install npm:@zihanw/pi-forge
|
|
|
40
40
|
用可编辑的内容块和插槽组合 Agent 的上下文:指令、工具说明、技能、项目文件和聊天记录都可以放进来。调整顺序或开关条目,直接在预览中看结果。
|
|
41
41
|
|
|
42
42
|
- **使用场景**:给代码审查 Agent 配上项目规范和相关上下文,而不是让所有任务共用一份越来越长的提示词。
|
|
43
|
-
-
|
|
43
|
+
- **上手尝试**:在 **Stack** 中开关一条 User 消息块,再将它拖到聊天历史插槽之后,在 **Preview** 中查看角色与顺序的变化。
|
|
44
44
|
|
|
45
|
-

|
|
46
46
|
|
|
47
47
|
详见 [Web 编辑器指南](docs/zh-CN/guides/web-editor.md)与 [Schema 与策略文档(英文)](docs/reference/stack-schema.md)。
|
|
48
48
|
|
|
@@ -53,7 +53,7 @@ pi install npm:@zihanw/pi-forge
|
|
|
53
53
|
- **使用场景**:让代码审查 Agent 专注于阅读和搜索,不提供编辑文件或执行 shell 的工具。
|
|
54
54
|
- **上手尝试**:在 **Policy** 中选择许可工具,并将默认工具设为 `read` 和 `ls`。把已获准的 `grep` 加入默认集,在 **Preview** 中查看工具列表;保存并启用预设后应用策略。
|
|
55
55
|
|
|
56
|
-

|
|
56
|
+

|
|
57
57
|
|
|
58
58
|
详见 [工具策略参考(英文)](docs/reference/stack-schema.md#tool-and-skill-policy)。
|
|
59
59
|
|
|
@@ -64,7 +64,7 @@ pi install npm:@zihanw/pi-forge
|
|
|
64
64
|
- **使用场景**:发送前替换选定提示词中的已知敏感标记,或者清理回复中反复出现的套话。
|
|
65
65
|
- **上手尝试**:在 **Regex** 中配置出站规则,将示例文本 `SAMPLE_TOKEN` 替换为 `[REDACTED]`,目标选择 system 文本。演示中开关这条预先配置的规则,在 **Preview** 中对比结果。
|
|
66
66
|
|
|
67
|
-

|
|
67
|
+

|
|
68
68
|
|
|
69
69
|
详见 [正则规则参考(英文)](docs/reference/stack-schema.md#regex-transforms)。
|
|
70
70
|
|
|
@@ -79,7 +79,7 @@ pi install npm:@zihanw/pi-forge
|
|
|
79
79
|
|
|
80
80
|
在支持的 provider/模型组合上,新增或移除工具可以保留已有的提示词缓存前缀。新增与移除的支持范围不同,实际缓存命中不作保证;详见[支持情况与缓存实测](docs/zh-CN/reference/provider-support.md#实测缓存表现)。
|
|
81
81
|
|
|
82
|
-

|
|
82
|
+

|
|
83
83
|
|
|
84
84
|
详见[能力参考](docs/zh-CN/reference/capabilities.md)。
|
|
85
85
|
|
|
@@ -90,7 +90,7 @@ pi install npm:@zihanw/pi-forge
|
|
|
90
90
|
- **使用场景**:确认修改后的提示词包含了想要的指令,或在 Agent 表现不同时对比前后两次请求。
|
|
91
91
|
- **上手尝试**:在 `/forge ui` 中切换至 **Preview** 查看编译消息,打开 **Draft diff** 对比未保存修改,或在终端运行 `/forge payload next` 捕获下一次出站请求。
|
|
92
92
|
|
|
93
|
-

|
|
93
|
+

|
|
94
94
|
|
|
95
95
|
**当前会话**还会显示本轮和当前分支的缓存命中率,主模型与已上报的嵌套工具用量分开统计。这是已记录的用量,不是完整账单。详见[缓存用量](docs/zh-CN/reference/session-cache.md)、[调试指南(英文)](docs/guides/debugging.md)与[命令参考](docs/zh-CN/reference/commands.md)。
|
|
96
96
|
|
package/dist/slot-renderers.js
CHANGED
|
@@ -254,7 +254,7 @@ function renderPiDocsGuidance() {
|
|
|
254
254
|
`- Additional docs: ${paths.docs}`,
|
|
255
255
|
`- Examples: ${paths.examples} (extensions, custom tools, SDK)`,
|
|
256
256
|
"- When reading pi docs or examples, resolve docs/... under Additional docs and examples/... under Examples, not the current working directory",
|
|
257
|
-
"- When asked about: extensions (docs/extensions.md, examples/extensions/), themes (docs/themes.md), skills (docs/skills.md), prompt templates (docs/prompt-templates.md), TUI components (docs/tui.md), keybindings (docs/keybindings.md), SDK integrations (docs/sdk.md), custom providers (docs/custom-provider.md), adding models (docs/models.md), pi packages (docs/packages.md)",
|
|
257
|
+
"- When asked about: extensions (docs/extensions.md, examples/extensions/), themes (docs/themes.md), skills (docs/skills.md), prompt templates (docs/prompt-templates.md), TUI components (docs/tui.md), keybindings (docs/keybindings.md), SDK integrations (docs/sdk.md), custom providers (docs/custom-provider.md), adding models (docs/models.md), pi packages (docs/packages.md), environment variables (docs/environment-variables.md), MCP servers (docs/mcp.md), codemode scripts and non-LLM models such as classifiers and image models (docs/codemode.md)",
|
|
258
258
|
"- When working on pi topics, read the docs and examples, and follow .md cross-references before implementing",
|
|
259
259
|
"- Always read pi .md files completely and follow links to related docs (e.g., tui.md for TUI API details)",
|
|
260
260
|
].join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-renderers.js","sourceRoot":"","sources":["../src/slot-renderers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slot-renderers.js","sourceRoot":"","sources":["../src/slot-renderers.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -15,6 +15,7 @@ Use this page as the documentation map. Each subject has one authoritative home;
|
|
|
15
15
|
- [Web editor](guides/web-editor.md)
|
|
16
16
|
- [Preset patterns and examples](guides/use-cases.md)
|
|
17
17
|
- [Migrating to 0.5](guides/migrating-to-0.5.md)
|
|
18
|
+
- [Pi 1.0 compatibility](guides/pi-1-compatibility.md)
|
|
18
19
|
- [Foreground delegation](guides/delegation.md) — experimental; read the security boundary before enabling it.
|
|
19
20
|
- [Custom macros and slots](guides/custom-macros-and-slots.md)
|
|
20
21
|
- [Prompt and payload debugging](guides/debugging.md)
|
|
@@ -13,20 +13,36 @@ The optional package is tested against the released Forge host before its own pu
|
|
|
13
13
|
1. Confirm the intended version in the manifest, lockfile, changelog, and current user documentation. Preserve historical release records and document breaking configuration/session boundaries.
|
|
14
14
|
2. Install dependencies from the lockfile with `npm ci`, build, and run the complete `npm run verify` chain: Node tests, browser tests, types, generated client, docs, distribution, package contents, and packed installation.
|
|
15
15
|
3. Require the Ubuntu, macOS, Windows, and configured Pi compatibility GitHub Actions jobs to pass for the **exact release commit**, not an earlier source revision.
|
|
16
|
-
4. Test a packed main-package installation against both the documented minimum and current tested Pi versions
|
|
16
|
+
4. Test a packed main-package installation against both the documented minimum (0.87.0) and current tested Pi versions (1.0.2) using `PI_TEST_VERSION` / `TYPEBOX_TEST_VERSION`; exercise ordinary Preset/Profile/Capability behavior independently of optional delegation.
|
|
17
17
|
5. Inspect `npm pack --dry-run` for package size and unexpected or missing files. Publish the verified artifact, not an unreviewed working tree.
|
|
18
18
|
|
|
19
|
-
The macOS and Windows jobs run the same complete verification surface as Linux, including the real-browser editor suite. Compatibility-version and scheduled latest-Pi probes remain Linux-only; they test dependency drift rather than operating-system behavior.
|
|
19
|
+
The macOS and Windows jobs run the same complete verification surface as Linux, including the real-browser editor suite. Compatibility-version (older supported releases) and scheduled latest-Pi probes remain Linux-only; they test dependency drift rather than operating-system behavior. Exact-release CI is a mandatory pre-release gate; this patch documentation does not claim cross-platform release CI has already passed.
|
|
20
20
|
|
|
21
21
|
## Dependency policy
|
|
22
22
|
|
|
23
|
-
The four Pi SDK packages remain host-provided optional peers, never private runtime dependencies. Forge 0.5.7
|
|
23
|
+
The four Pi SDK packages remain host-provided optional peers, never private runtime dependencies. Published Forge 0.5.7 required Pi `>=0.87.0 <0.88.0`. Forge 0.5.8 expands supported peers to the union:
|
|
24
|
+
```
|
|
25
|
+
>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0
|
|
26
|
+
```
|
|
27
|
+
Development fixtures are pinned to `1.0.2` with `typebox@1.3.27`. Minimum supported Pi `0.87.0` remains unchanged; The 1.0 range covers patch releases; Pi 0.86, other 0.x versions and Pi 1.1 or later are not implicitly supported. Exact tested versions belong in development dependencies and the lockfile, not exact host-version requirements. See the [Pi 1.0 compatibility guide](../guides/pi-1-compatibility.md).
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
To run packed installation smoke tests against the minimum or current version:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Test packed install against pinned minimum (0.87.0):
|
|
33
|
+
PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
|
|
34
|
+
|
|
35
|
+
# Test packed install against current Pi 1.0.2:
|
|
36
|
+
PI_TEST_VERSION=1.0.2 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Published `@zihanw/pi-forge-subagents` 0.5.3 does not understand `tools.initial`. Its published dependency metadata does not include this source compatibility patch. A companion release can combine its pending features with Pi 1.0 adaptation, independently after the runtime floor is updated and the bubblewrap (`bwrap`) `/tmp` mount shadowing issue is resolved. This is an independent companion release, not a requirement to publish the packages simultaneously. See the [host-port compatibility note](../reference/subagent-host-port.md#tool-selection-compatibility).
|
|
26
40
|
|
|
27
41
|
## Package contents
|
|
28
42
|
|
|
29
|
-
The tarball must include compiled `dist/`, examples, the English and Chinese landing pages, changelog, license, and
|
|
43
|
+
The tarball must include compiled JavaScript, type declarations and source maps from `dist/`, JSON and TypeScript examples, the English and Chinese landing pages, changelog, license, and Markdown documentation. README images and demonstration media are repository-only: keep them in GitHub, use commit-pinned raw GitHub URLs in both READMEs, and do not package `assets/` or image/audio/video files anywhere in the tarball. Installed README text works offline; remote media requires network access. Positive `files` patterns exclude non-code/non-text additions by default. It must not include physical `src/` files. The root, `/subagent`, `/ui-contribution`, and `/command-contribution` entries must resolve to compiled output.
|
|
44
|
+
|
|
45
|
+
`prepack` runs the build and `check:package`; the latter uses `npm pack --dry-run --ignore-scripts` to inspect the actual inventory without recursive lifecycle calls. Media/asset entries and compressed tarballs above **2 MiB** fail the check. Keep the real-pack injection regression enabled. Any future essential runtime asset or budget change needs an explicit packaging review; do not simply widen the whitelist or remove the checks. These are normal build/release gates, not protection against deliberately bypassing lifecycle scripts.
|
|
30
46
|
|
|
31
47
|
The root `PUBLIC_API.md` and `SUBAGENT_ADAPTER_CONTRACT.md` files are compatibility pointers; authoritative content lives under `docs/reference/`.
|
|
32
48
|
|
|
@@ -4,11 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
This file contains forward-looking product work only. Completed capability belongs in the [feature inventory](../reference/features.md), release history in the root [changelog](../../CHANGELOG.md), and completed investigation in the [design archive](../design/README.md).
|
|
6
6
|
|
|
7
|
-
## Active 0.5.
|
|
7
|
+
## Active 0.5.8: Pi host compatibility release preparation
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Forge 0.5.8 aligns host peers, development pins, packed consumers and CI with Pi 1.0.x (tested 1.0.0–1.0.2) while preserving the Pi 0.87.x baseline and explicit 0.99.0–0.99.2 support. The only production source change adds Pi documentation pointers; tool-policy, Capability, model-API and usage semantics remain unchanged. See [compatibility and migration](../guides/pi-1-compatibility.md).
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Local release preparation is authorized; the user will review the change list and publish. The final release commit still requires all [release gates](release.md), including exact-commit remote CI. Optional/runtime features and any future exposure-policy redesign remain independent. Publishing does not authorize an installed-host upgrade or reload.
|
|
12
|
+
|
|
13
|
+
## 0.5.7 Preview and scrolling (completed)
|
|
14
|
+
|
|
15
|
+
0.5.7 delivered readable role-colored context, collapsible Tools groups, original-order / safe call-paired result views, historical tool JSON disclosure, search/reading-state retention and scroll reachability. See the [changelog](../../CHANGELOG.md) for the published UI release.
|
|
12
16
|
|
|
13
17
|
## 0.5.6 regression and UI closeout (completed)
|
|
14
18
|
|
|
@@ -25,7 +29,7 @@ One active lane at a time:
|
|
|
25
29
|
3. **Session observability & activity panel (implemented):** derived multi-capability state, actual selected tools, delivery status (`none`, `pending`, `prepared`), presentation indicators, and guarded human disable/reset; real SDK summarizer-input characterization.
|
|
26
30
|
4. **Preset authorization & restricted Agent control (implemented):** live Preset binding schema (`capabilities`), opt-in `modelCallable: true`, and model-callable `forge_capability` tool with fixed list/status/enable/disable schema; per-call trust, binding identity, authorization, and tool policy checks; strict user-vs-agent ownership.
|
|
27
31
|
5. **Capabilities library CRUD, Preset binding editor, and guarded human Web activation picker (delivered in functional source):** dedicated **Capabilities** surface for project/global capability CRUD with `sourceRevision` stale-save guards; dedicated peer Capability bindings editor with finite overrides and live source-effective preview; guarded human Web activation picker (`GET /api/capability-state/available`, `POST /api/capability-state/enable`) with pre-activation preview and session guard plus content fingerprint validation. Parent safeguards enforce raw source/revision coherence, external new bindings stale-save detection, and lifecycle/re-entry fences (`disposed`, `lifecycleRevision`, `sameContext`).
|
|
28
|
-
6. **Main-package 0.5.5 release closeout:** The accepted UI and local full verification closed out on 2026-09-24 (`89c6ba2`); bilingual README B and reviewed continuous media are adopted. UI scope is frozen except for regressions/release blockers. The main package 0.5.5 was published; subsequent patches retain the exact-commit CI and packed-install gates in the [release process](release.md). No paid provider matrix is implied. The optional package and runtime have independent unfinished release work and are not a main-package gate.
|
|
32
|
+
6. **Main-package 0.5.5 release closeout:** The accepted UI and local full verification closed out on 2026-09-24 (`89c6ba2`); bilingual README B and reviewed continuous media are adopted. UI scope is frozen except for regressions/release blockers. The main package 0.5.5 was published; subsequent patches retain the exact-commit CI and packed-install gates in the [release process](release.md). No paid provider matrix is implied. The optional package and runtime have independent unfinished release work and are not a main-package gate. At that closeout the dev SDK was 0.87.0 with peer `>=0.87.0 <0.88.0`; the 0.5.8 host policy is documented in [Pi 1.0 compatibility](../guides/pi-1-compatibility.md).
|
|
29
33
|
|
|
30
34
|
Existing README and optional Pet active-state changes are preserved. No host upgrade, reload or publication follows implicitly from local feature development. Foundation tests are not proof of live 0.5.5 behavior.
|
|
31
35
|
|
|
@@ -55,16 +55,32 @@ Set `CHROME_PATH` when Chrome/Chromium is outside a standard location. CI runs t
|
|
|
55
55
|
|
|
56
56
|
## Pi compatibility
|
|
57
57
|
|
|
58
|
-
Pi-forge treats Pi-owned SDK packages (`pi-agent-core`, `pi-ai`, `pi-coding-agent`, `pi-tui`, and `typebox`) as host-provided optional peers, not private runtime dependencies.
|
|
58
|
+
Pi-forge treats Pi-owned SDK packages (`pi-agent-core`, `pi-ai`, `pi-coding-agent`, `pi-tui`, and `typebox`) as host-provided optional peers, not private runtime dependencies. Published Forge 0.5.7 declared peer range `>=0.87.0 <0.88.0`. Forge 0.5.8 expands supported peers to the union:
|
|
59
|
+
```
|
|
60
|
+
>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0
|
|
61
|
+
```
|
|
62
|
+
The repository dev SDK fixtures are updated to `1.0.2` with `typebox@1.3.27`. The minimum supported version remains `0.87.0`; there is no claim of dual 0.86 runtime support. The running host supplies one coherent SDK instance, avoiding duplicate packages and exact-version locks while expressing the actual API requirement. See the [Pi 1.0 compatibility guide](../guides/pi-1-compatibility.md).
|
|
59
63
|
|
|
60
64
|
The repository keeps exact SDK versions as development/test fixtures for reproducibility. Exact fixtures do not constrain which Pi version may load the published extension.
|
|
61
65
|
|
|
62
|
-
Release validation
|
|
66
|
+
Release validation and smoke testing verify:
|
|
63
67
|
|
|
64
|
-
- the documented minimum supported Pi version;
|
|
65
|
-
- the current Pi version at release time;
|
|
68
|
+
- the documented minimum supported Pi version (`0.87.0`);
|
|
69
|
+
- the current Pi version at release time (`1.0.2`), with earlier 1.0 patch releases (`1.0.0`, `1.0.1`) as compatibility lanes;
|
|
66
70
|
- an automated or scheduled probe of npm `latest`.
|
|
67
71
|
|
|
72
|
+
Run packed installation tests against specific target versions using environment variables:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Verify packed install against pinned minimum (0.87.0):
|
|
76
|
+
PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
|
|
77
|
+
|
|
78
|
+
# Verify packed install against current Pi 1.0.2:
|
|
79
|
+
PI_TEST_VERSION=1.0.2 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Ordinary Linux/macOS/Windows CI uses Pi 1.0.2; older supported versions, including minimum 0.87.0 and Pi 1.0.0/1.0.1, are explicit Linux compatibility lanes; passing CI on the exact release commit is a release gate (not claimed as already passed for an unreleased source patch).
|
|
83
|
+
|
|
68
84
|
Document the tested range separately from peer constraints. Pi-coupled experimental subagent capabilities must preflight against the actual host and fail closed with a precise compatibility diagnostic when required APIs are unavailable; ordinary stacks and profiles should remain usable.
|
|
69
85
|
|
|
70
86
|
## Package boundaries
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Pi 1.0 compatibility
|
|
2
|
+
|
|
3
|
+
[Documentation](../README.md) · [简体中文](../zh-CN/guides/pi-1-compatibility.md)
|
|
4
|
+
|
|
5
|
+
## Forge 0.5.8 versus older packages
|
|
6
|
+
|
|
7
|
+
This guide covers the **Forge 0.5.8** compatibility patch. Installing the older `@zihanw/pi-forge@0.5.7` does not install these changes: that artifact still declares Pi peers `>=0.87.0 <0.88.0`.
|
|
8
|
+
|
|
9
|
+
Forge 0.5.8 declares the following peer policy for the four Pi SDK packages:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Minimum Pi remains 0.87.0. Development pins are Pi 1.0.2 and `typebox@1.3.27`. The SDK packages and TypeBox remain host-provided optional peers, not private runtime dependencies. The `>=1.0.0 <1.1.0` range covers Pi 1.0 patch releases; 1.0.0, 1.0.1 and 1.0.2 were tested for this release, and a scheduled CI job tests the newest Pi. Other 0.x intermediate versions and Pi 1.1 or later are not implicitly supported.
|
|
16
|
+
|
|
17
|
+
This patch changes dependency/test coverage and documentation, **not** tool authorization, Capability ownership, usage aggregation, or personal configuration.
|
|
18
|
+
|
|
19
|
+
## Native MCP: migrate exact names deliberately
|
|
20
|
+
|
|
21
|
+
Pi 0.99.2+ normalizes native MCP names, for example `mcp__demo-server__ping` becomes `mcp__demo_server__ping`. Same-server tool collisions such as `a-b` and `a_b` receive hash suffixes; conflicting normalized server names are rejected.
|
|
22
|
+
|
|
23
|
+
Check all exact names in allow/deny, initial, Capability add/remove, scripts and saved loadouts:
|
|
24
|
+
|
|
25
|
+
- An unregistered Capability **add** is rejected. An old initial name may be omitted, and an old exact allow entry will not allow the new name.
|
|
26
|
+
- **Old exact deny/remove names may simply stop matching the renamed tool.** Do not assume every stale name fails closed. Review restrictions as carefully as additions.
|
|
27
|
+
- Inspect the live registered catalog after servers connect: use the Web editor's refreshed tool picker or extension API `pi.getAllTools()`. The active list alone omits inactive/deferred tools.
|
|
28
|
+
- Explicitly confirm each old-to-new mapping, including collision hashes, before updating configurations. Forge does not guess aliases or apply blanket hyphen replacement.
|
|
29
|
+
|
|
30
|
+
These rules concern **native MCP**, not third-party adapters such as `pi-mcp-adapter` 2.x. This patch does not migrate adapter configuration or rewrite existing resources.
|
|
31
|
+
|
|
32
|
+
## Discovery and delayed registration
|
|
33
|
+
|
|
34
|
+
Default native MCP servers now connect in the background without blocking the first prompt; `direct` exposure has different startup behavior. Default tools are registered with deferred exposure, omitted from codemode's description, and discovered using `searchTools()` / `describeNamespace()`. Discovery does not grant a Forge Capability or override its policy.
|
|
35
|
+
|
|
36
|
+
Pi 1.0 improves deferred-tool restoration on resume/reload. Forge still requires Capability additions to be registered before activation; when a server is late, wait for registration and retry the intended action. Reload alone is not a guaranteed remedy. Explicit policy sync can replace a restored host loadout, so do not assume pending tools must always reactivate. Full slow-MCP resume/reload behavior needs integration validation, not just catalog-mock tests.
|
|
37
|
+
|
|
38
|
+
Forge preserves foreign System sections such as `mcp_servers`, including updates and removals. Upstream section updates can change later prompts; this is not a cache-hit guarantee.
|
|
39
|
+
|
|
40
|
+
## Anthropic tool changes in Pi 1.0.1+
|
|
41
|
+
|
|
42
|
+
On Anthropic models with native mid-conversation tool changes, Pi 1.0.1 keeps the request-level tool list fixed at the initial tools plus a reserved placeholder and defines every later tool inline in a `tool_addition` block. Enabling or disabling a Capability therefore no longer rewrites the request-level tool list, and a same-name redefinition no longer forces the full list. The native path still needs at least one initial tool: a session that starts with no active tools (for example a Preset with `tools.initial: []`) sends the full current list at request level on every tool change. Forge does not change this behavior, and no new live cache measurements were taken for 1.0.1+. See [provider support](../reference/provider-support.md).
|
|
43
|
+
|
|
44
|
+
## Codemode boundaries remain unchanged
|
|
45
|
+
|
|
46
|
+
Pi 1.0 throws when scripts read missing `tools` properties. Use `"name" in tools`, not `typeof tools.name`, to test existence.
|
|
47
|
+
|
|
48
|
+
`tools.initial` is a default loadout, **not an enabled-membership execution gate**. Registered deferred/codemode tools permitted by the Preset can remain callable through nested codemode even when omitted from initial or after their adding Capability is disabled. Preset allow **or** deny policy and active Capability removes still apply; direct calls also depend on the host's active loadout. This patch does not change those semantics or make discovery authorization-aware.
|
|
49
|
+
|
|
50
|
+
`models.generateImages()` (new in 1.0) and `models.classify()` (since 0.99) call the session model registry, not `ctx.executeTool()` / `tool_call`. Disabling image tools does **not** disable these model APIs. Pi settings have no `models: false` toggle; the SDK factory `createCodemodeExtension({ models: false })` requires explicit programmatic extension assembly.
|
|
51
|
+
|
|
52
|
+
Pi accounts for reported codemode model usage. Forge's cache display still separates assistant usage from explicit `details.forgeNestedUsage`; it does not newly aggregate arbitrary native tool/model usage. Do not add both receipts without deduplication.
|
|
53
|
+
|
|
54
|
+
## TUI and optional packages
|
|
55
|
+
|
|
56
|
+
Pi 1.0 defaults to fullscreen. To retain ordinary terminal scrollback, set `"tuiMode": "regular"` in Pi settings or use `pi --tui-mode regular`. This does not change Forge's Web UI.
|
|
57
|
+
|
|
58
|
+
Removing the experimental agent-core harness does not remove the coding-agent `AgentSession` used by our companion runtime. `pi-durable` is still explicitly experimental; this patch does not adopt it or add cross-restart continuation.
|
|
59
|
+
|
|
60
|
+
Published subagents 0.5.3 does not support `tools.initial`. Its pending feature release can include Pi 1.0 adaptation, but requires its own runtime artifact/floor, TypeBox peer cleanup, bwrap `/tmp` launcher fix, packed tests and approval. Main Forge releases independently; main+optional import smoke does not certify the pending continuation/background features. See [host-port compatibility](../reference/subagent-host-port.md#tool-selection-compatibility).
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Override both when testing a different host than the installed development SDK.
|
|
66
|
+
PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
|
|
67
|
+
PI_TEST_VERSION=1.0.2 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Without overrides, packed checks use the coherent installed SDK family and its declared TypeBox version, not a hardcoded historical pin. Both consumers use normal npm peer resolution and check the installed versions. An optional sibling, when present, uses its declared runtime dependency; this is not a test of an unreleased local runtime.
|
|
71
|
+
|
|
72
|
+
Ordinary Linux/macOS/Windows CI uses pinned Pi 1.0.2; explicit compatibility lanes (0.87.0 through 1.0.1) and scheduled latest-Pi probes run on Linux. Exact-release CI remains a release gate, not a claim that this source patch has already passed remote or real-provider testing.
|
|
@@ -133,7 +133,7 @@ Saves, imports, forks, and deletes reload Preset state into the current Pi sessi
|
|
|
133
133
|
|
|
134
134
|
### Compatibility
|
|
135
135
|
|
|
136
|
-
Presets configured with `tools.initial` require updated Forge. Older Forge versions may ignore `tools.initial` and revert to legacy selection behavior (selective allow selects catalog matches; unrestricted/deny retains or filters the session baseline) (not downgrade-compatible). These changes require Forge 0.5.5; the host requirement remains Pi `>=0.87.0 <0.88.0
|
|
136
|
+
Presets configured with `tools.initial` require updated Forge. Older Forge versions may ignore `tools.initial` and revert to legacy selection behavior (selective allow selects catalog matches; unrestricted/deny retains or filters the session baseline) (not downgrade-compatible). These changes require Forge 0.5.5; the minimum host requirement remains Pi 0.87.0 (published 0.5.7 peer range was `>=0.87.0 <0.88.0`; unreleased source compatibility supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; see [Pi 1.0 compatibility guide](pi-1-compatibility.md)).
|
|
137
137
|
|
|
138
138
|
## Agent-profile workspace
|
|
139
139
|
|
|
@@ -6,7 +6,7 @@ Pi-forge introduces capabilities: session-scoped prompt directives paired with d
|
|
|
6
6
|
|
|
7
7
|
## Requirements and installation
|
|
8
8
|
|
|
9
|
-
- **Host requirement:** Pi `>=0.87.0 <0.88.0
|
|
9
|
+
- **Host requirement:** Minimum supported Pi version is 0.87.0. Published Forge 0.5.7 declared peer range `>=0.87.0 <0.88.0`; Forge 0.5.8 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0` (dev SDK 1.0.2, `typebox@1.3.27`; min SDK 0.87 unchanged; no dual 0.86 runtime support claim). Capabilities require Forge 0.5.5. See [Pi 1.0 compatibility guide](../guides/pi-1-compatibility.md).
|
|
10
10
|
- **Project trust:** Activating capabilities, preset bindings, or manual directives requires a trusted project (`isProjectTrusted()`).
|
|
11
11
|
- **Compatibility:** Configurations utilizing `tools.initial` require a Forge version with this support; older Forge versions may ignore `initial`, so configurations are not downgrade-compatible.
|
|
12
12
|
|
|
@@ -230,7 +230,7 @@ Active state is derived deterministically from session events and delivery curso
|
|
|
230
230
|
|
|
231
231
|
## Compatibility and security boundaries
|
|
232
232
|
|
|
233
|
-
- **Upstream Pi 0.87
|
|
233
|
+
- **Upstream Pi minimum required:** Pi 0.87.0 is the minimum supported host (Forge 0.5.8 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; published 0.5.7 peer metadata remains `>=0.87.0 <0.88.0`). Dual 0.86 runtime support is not provided. Extensions that previously manipulated or inspected full System messages in `context` must migrate to the full `context_with_system` hook. See [Pi 1.0 compatibility](../guides/pi-1-compatibility.md).
|
|
234
234
|
- **Timing with `before_agent_start`:** Any forced System prompt injection via `before_agent_start` continues to execute later than `context_with_system`.
|
|
235
235
|
- **Preceding extension message rewrites:** Pi permits context hooks to rewrite messages. When visible metadata anchors or unanchored events need positioning, Forge requires a unique ordered alignment with the canonical session projection and fails closed if arbitrary preceding rewrites break alignment. Pi may persist queued custom messages absent from a tool follow-up: Forge permits only uniquely alignable custom-message omissions, ignores their regenerated envelope timestamps, and preserves incoming objects without restoring omitted dialogue. A preceding rewrite can therefore conflict with this locator; moving it later does not guarantee safe composition. Broad plugin, warming, and automatic-overflow compatibility remain unverified.
|
|
236
236
|
- **Upstream defect status and protocol limits:** Upstream Pi metadata chunking and semantic-cut defects are NOT patched and remain unfixed upstream. Compaction checkpoint placement is unchanged. Old sessions and former delivery carriers remain untouched and unsupported for continuing capability state; Forge does not migrate old JSONL or rewrite historical summaries. Oh My Pi (OMP) is not supported or promised.
|
|
@@ -253,7 +253,7 @@ The 0.5.5 core functional implementation is delivered in source across all plann
|
|
|
253
253
|
- Parent safeguards: raw source/revision coherence, external new bindings stale-save detection, and lifecycle/re-entry fences.
|
|
254
254
|
- Tool patch schema supports `add` and `remove` only; candidate `only`/allowlist is not implemented.
|
|
255
255
|
- Conservative provider-managed prompt cache warnings; compatible Codex additional-tool delivery can preserve prefixes for new names when retained history has no removals/redeclarations; tool removal/redeclaration falls back to the current full tool list (not guaranteed cache hits); no automatic legacy migration or old summary rewrites; no Pi split patch; no claims of forced prompt, warming, auto overflow, or remote acceptance.
|
|
256
|
-
- Local build and full Node/browser/package verification passed at the 2026-09-24 UI closeout (commit `89c6ba2`); this is a dated local result, not current CI evidence, remote-provider acceptance, or npm publication. Pi `>=0.87.0 <0.88.0
|
|
256
|
+
- Local build and full Node/browser/package verification passed at the 2026-09-24 UI closeout (commit `89c6ba2`); this is a dated local result, not current CI evidence, remote-provider acceptance, or npm publication. That historical check used Pi `>=0.87.0 <0.88.0`; current source host policy is in the [compatibility guide](../guides/pi-1-compatibility.md). Optional runtime/subagent integration and its producer work are independently tested and released.
|
|
257
257
|
|
|
258
258
|
|
|
259
259
|
Filesystem safety checks reject symlinks present when checked. They are not isolation against another local process racing directory replacement; revision checks likewise are not cross-process locking. Do not use resource mutation against an adversarial shared filesystem.
|
|
@@ -10,7 +10,7 @@ This file tracks the currently implemented feature surface for agent profiles, t
|
|
|
10
10
|
- Tarball verification rejects physical `src/` entries and requires the root and subagent compiled entry points.
|
|
11
11
|
- The web editor's HTML page shell and static styles are maintained separately from its browser behavior modules.
|
|
12
12
|
- Strict typed web-editor client modules bundled into one self-contained browser script at build time, with generated-client consistency verification.
|
|
13
|
-
- Supported Node.js baseline is 22.19+.
|
|
13
|
+
- Supported Node.js baseline is 22.19+. In published 0.5.7, peer metadata required `>=0.87.0 <0.88.0`. Forge 0.5.8 expands supported peers to `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0` (development SDK pinned to 1.0.2 with `typebox@1.3.27`, minimum 0.87.0 unchanged). All five packages remain host-provided optional peers. Exact repository versions are reproducible development/test fixtures rather than runtime constraints. See [Pi 1.0 compatibility guide](../guides/pi-1-compatibility.md).
|
|
14
14
|
- Project trust check before loading prompt stacks.
|
|
15
15
|
- Footer status showing the active prompt stack.
|
|
16
16
|
|
|
@@ -249,7 +249,7 @@ This file tracks the currently implemented feature surface for agent profiles, t
|
|
|
249
249
|
|
|
250
250
|
## Capabilities and System Updates
|
|
251
251
|
|
|
252
|
-
- Upstream host requirement: Pi `>=0.87.0 <0.88.0
|
|
252
|
+
- Upstream host requirement: Minimum supported Pi version is 0.87.0 (published 0.5.7 declared `>=0.87.0 <0.88.0`; source compatibility policy supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; dev SDK updated to 1.0.2 with `typebox@1.3.27`; no dual 0.86 runtime support claim). See [Pi 1.0 compatibility](../guides/pi-1-compatibility.md).
|
|
253
253
|
- File-backed capability definitions stored in `.pi/forge/capabilities/<id>.json` (project scope) and `~/.pi/forge/capabilities/<id>.json` (global scope) with schema `schemaVersion: 1`, `type: "pi-forge.capability"`.
|
|
254
254
|
- Literal text content (up to 100,000 characters) without macro, template, or script evaluation.
|
|
255
255
|
- Tool modification patches supporting `add` and `remove` arrays (tool IDs ≤ 128 characters, no whitespace/controls/wildcards, up to 256 tools per array). Capabilities support `add` and `remove` ONLY; candidate `only`/allowlist is not implemented.
|
|
@@ -23,7 +23,7 @@ Tool flags only apply when `supportsMidConvoSystemMessages` is also enabled. The
|
|
|
23
23
|
|
|
24
24
|
| API | Instruction text | Tool changes |
|
|
25
25
|
|---|---|---|
|
|
26
|
-
| `anthropic-messages` | With the flag: a `role: "system"` message. Pi holds it until just before the next assistant message, so it never separates a `tool_use` from its `tool_result`; an update recorded before a user message is sent after it. | With `supportsMidConvoToolChanges
|
|
26
|
+
| `anthropic-messages` | With the flag: a `role: "system"` message. Pi holds it until just before the next assistant message, so it never separates a `tool_use` from its `tool_result`; an update recorded before a user message is sent after it. | With `supportsMidConvoToolChanges` and at least one initial tool. **Pi 1.0.1+:** the request-level list stays fixed (initial tools plus a reserved deferred placeholder); later tools are defined by value inside `tool_addition` blocks (a same-name redefinition replaces the earlier definition) and withdrawn by `tool_removal`. **Pi 1.0.0 and earlier:** later tools are appended to the request-level list with `defer_loading`, the list only grows, and a same-name redefinition falls back to the full list. Otherwise (including a session that starts with no active tools, such as `tools.initial: []`): the current list at request level. |
|
|
27
27
|
| `openai-responses`, `openai-codex-responses`, `azure-openai-responses` | With the flag: a `developer` message (reasoning models that accept the developer role) or a `system` message, at its position. | Additions load in place while retained history contains only additions. Any removal or same-name redeclaration anywhere in retained history switches that request to the full current list at request level. |
|
|
28
28
|
| `openai-completions` | With the flag: a `developer` or `system` message at its position. | Additions load in place with `supportsMidConvoToolAdditions`; removals and redeclarations switch to the full current list. |
|
|
29
29
|
| `mistral-conversations` | With the flag: a `system` message at its position. | Always the full current list at request level. |
|
|
@@ -127,7 +127,7 @@ The `tools` policy optionally accepts an `initial` list:
|
|
|
127
127
|
- **Ceiling enforcement:** The `allow`/`deny` ceiling remains authoritative and exclusive. Initial tools must fall within permitted bounds: listing a tool that is blocked by allow/deny produces a validation error.
|
|
128
128
|
- **Extension and mod tools:** Dynamically registered extension tools are allowed by default if they satisfy the allow/deny policy, but when `initial` is specified, they remain registered and inactive until explicitly added by `initial`, by an active capability, or through runtime tooling.
|
|
129
129
|
- **Preset baseline behavior:** Configured initial tools serve as the active base for as long as the preset remains active—not a one-time reset per turn. Calling `/capability disable` or `/capability reset` returns the session to the preset defaults (plus any remaining active capabilities). Disabling restores the reconciled session baseline; switching recomputes under the new Preset and remaining unbound capabilities.
|
|
130
|
-
- **Compatibility:** Stacks declaring `tools.initial` require Forge 0.5.5 or newer. Older Forge versions may ignore `tools.initial` and revert to legacy selection behavior (selective allow selects catalog matches; unrestricted/deny retains or filters the session baseline), so the field is not downgrade-compatible. The host requirement remains Pi `>=0.87.0 <0.88.0
|
|
130
|
+
- **Compatibility:** Stacks declaring `tools.initial` require Forge 0.5.5 or newer. Older Forge versions may ignore `tools.initial` and revert to legacy selection behavior (selective allow selects catalog matches; unrestricted/deny retains or filters the session baseline), so the field is not downgrade-compatible. The minimum host requirement remains Pi 0.87.0 (published 0.5.7 peer range was `>=0.87.0 <0.88.0`; unreleased source compatibility supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; see [Pi 1.0 compatibility guide](../guides/pi-1-compatibility.md)).
|
|
131
131
|
|
|
132
132
|
Tool policy changes Pi's active tool list, is reasserted before input/turns, and has a tool-call guard. It preserves external additions in the restorable baseline and restores that baseline when policy no longer applies or the extension shuts down.
|
|
133
133
|
|
package/docs/zh-CN/README.md
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Pi 1.0 兼容说明
|
|
2
|
+
|
|
3
|
+
[中文文档](../README.md) · [English](../../guides/pi-1-compatibility.md)
|
|
4
|
+
|
|
5
|
+
## Forge 0.5.8 与旧版本
|
|
6
|
+
|
|
7
|
+
本指南介绍 **Forge 0.5.8** 兼容补丁。安装旧版 `@zihanw/pi-forge@0.5.7` 不会获得这些改动;该 artifact 的 Pi peer 范围仍为 `>=0.87.0 <0.88.0`。
|
|
8
|
+
|
|
9
|
+
Forge 0.5.8 为四个 Pi SDK 包声明的 peer 策略为:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
最低 Pi 保持 0.87.0。开发依赖固定为 Pi 1.0.2 和 `typebox@1.3.27`。SDK 和 TypeBox 仍为宿主提供的可选 peer,不私装运行时副本;`>=1.0.0 <1.1.0` 覆盖 Pi 1.0 的补丁版本;本次发布实测 1.0.0、1.0.1、1.0.2,CI 定时任务会测试最新 Pi。不自动承诺其他 0.x 中间版本或 Pi 1.1 及以后版本。
|
|
16
|
+
|
|
17
|
+
本补丁只调整依赖、测试覆盖与文档,**不改变**工具授权、Capability 所有权、用量汇总或个人配置。
|
|
18
|
+
|
|
19
|
+
## Native MCP:逐项确认精确名称迁移
|
|
20
|
+
|
|
21
|
+
Pi 0.99.2+ 规范化 native MCP 名称,例如 `mcp__demo-server__ping` 改为 `mcp__demo_server__ping`。同一服务器内 `a-b` 与 `a_b` 等工具名冲突会添加 hash 后缀;服务器名规范化冲突会被拒绝。
|
|
22
|
+
|
|
23
|
+
请检查 allow/deny、initial、Capability add/remove、脚本和已保存 loadout 中的精确名称:
|
|
24
|
+
|
|
25
|
+
- 未注册的 Capability **add** 会被拒绝。旧 initial 名称可能被省略,旧精确 allow 项不会放行新名称。
|
|
26
|
+
- **旧的精确 deny/remove 名称可能只是匹配不到更名后的工具。** 不能把所有旧名称都当成 fail-closed;限制项和添加项一样需要检查。
|
|
27
|
+
- 等服务器连接后,查看 Web 编辑器刷新后的工具选择器,或扩展 API `pi.getAllTools()` 返回的注册目录。仅查看 active 列表会漏掉 inactive/deferred 工具。
|
|
28
|
+
- 人工确认每个 old→new 映射,包括碰撞 hash,再更新配置。Forge 不猜测别名,也不全局替换连字符。
|
|
29
|
+
|
|
30
|
+
这些规则针对 **native MCP**,不是 `pi-mcp-adapter` 2.x 等第三方 adapter。本补丁不迁移 adapter 配置或改写现有资源。
|
|
31
|
+
|
|
32
|
+
## Discovery 与延迟注册
|
|
33
|
+
|
|
34
|
+
默认 native MCP 服务器后台连接,不阻塞首个 prompt;`direct` exposure 的启动行为不同。默认工具以 deferred exposure 注册,不列进 codemode description,通过 `searchTools()` / `describeNamespace()` 发现。搜索工具不会授予 Forge Capability,也不会覆盖工具策略。
|
|
35
|
+
|
|
36
|
+
Pi 1.0 改进了 resume/reload 后的 deferred 工具恢复。Forge 仍要求 Capability add 的工具已注册;服务器未就绪时,应等待注册后重试原操作。单纯 reload 不保证解决问题。显式策略同步可能替换宿主恢复的 loadout,不应假定所有 pending 工具必须自动恢复。完整慢 MCP resume/reload 需要集成验收,不能拿 catalog mock 测试冒充。
|
|
37
|
+
|
|
38
|
+
Forge 保留 `mcp_servers` 等外来 System section,包括更新和删除。上游 section 更新可能改变后续 prompt,不保证 cache 命中。
|
|
39
|
+
|
|
40
|
+
## Pi 1.0.1 起的 Anthropic 工具变化
|
|
41
|
+
|
|
42
|
+
在支持原生中途改工具的 Anthropic 模型上,Pi 1.0.1 起请求级工具列表固定为初始工具加一个保留占位工具,之后的每个工具都直接以完整定义写在 `tool_addition` 块里。因此启用或停用 Capability 不再改写请求级工具列表,同名重定义也不再强制发送完整列表。原生路径仍需要至少一个初始工具:会话开始时没有任何活动工具(例如 `tools.initial: []` 的预设)时,每次工具变化都会在请求级别发送当前完整列表。Forge 不改变这一行为,也没有针对 1.0.1 起重新做真实缓存实测。详见 [Provider 支持](../reference/provider-support.md)。
|
|
43
|
+
|
|
44
|
+
## Codemode 边界保持原样
|
|
45
|
+
|
|
46
|
+
Pi 1.0 访问不存在的 `tools` 属性会抛错。检查存在性请用 `"name" in tools`,不要用 `typeof tools.name`。
|
|
47
|
+
|
|
48
|
+
`tools.initial` 是默认 loadout,**不是按 enabled 集合检查执行的 gate**。在 Preset 许可内、已注册的 deferred/codemode 工具,即使未列入 initial,或添加它的 Capability 已关闭,仍可能经 codemode nested 调用。Preset 的 allow **或** deny 策略和活动 Capability.remove 仍生效;direct 调用还取决于宿主 active loadout。本补丁不改变这些语义,也不让 discovery 自动按授权过滤。
|
|
49
|
+
|
|
50
|
+
`models.generateImages()`(1.0 新增)和 `models.classify()`(0.99 已有)直接调用会话 model registry,不经过 `ctx.executeTool()` / `tool_call`。关闭生图工具**不等于**关闭模型 API。Pi settings 没有 `models: false` 开关;SDK factory `createCodemodeExtension({ models: false })` 需要明确的编程式插件装配。
|
|
51
|
+
|
|
52
|
+
Pi 会将 codemode 模型返回的用量计入总账。Forge cache 面板仍分别展示 assistant 用量与显式 `details.forgeNestedUsage`,没有新增任意 native tool/model usage 汇总;不能把两份回执直接重复加总。
|
|
53
|
+
|
|
54
|
+
## TUI 与配套包
|
|
55
|
+
|
|
56
|
+
Pi 1.0 默认 fullscreen。要保留普通终端 scrollback,可在 Pi settings 中设置 `"tuiMode": "regular"`,或运行 `pi --tui-mode regular`。这不改变 Forge WebUI。
|
|
57
|
+
|
|
58
|
+
agent-core 实验 harness 的移除,不等于我们配套 runtime 使用的 coding-agent `AgentSession` 被移除。`pi-durable` 仍明确标为实验性;本补丁不接入它,也不新增跨重启 continue。
|
|
59
|
+
|
|
60
|
+
已发布的 subagents 0.5.3 不支持 `tools.initial`。尚未发布的新功能版本可以合入 Pi 1.0 适配,但仍需独立完成 runtime artifact/floor、TypeBox peer 整理、bwrap `/tmp` 启动器修复、packed 验收与发布授权。主 Forge 独立发布;main+optional 的 import smoke 不等于待发布 continue/background 功能已验收。见 [host-port 兼容说明](../../reference/subagent-host-port.md#tool-selection-compatibility)。
|
|
61
|
+
|
|
62
|
+
## 验证
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 目标与已安装开发 SDK 不同时,请同时指定这两个版本。
|
|
66
|
+
PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
|
|
67
|
+
PI_TEST_VERSION=1.0.2 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
不指定时,packed 检查读取一致的已安装 SDK family 及其声明的 TypeBox 版本,不再硬编码旧 pin。两个消费者都使用正常 npm peer 解析,并核对实际安装版本。如果存在 optional sibling,使用它声明的 runtime 依赖;不把这当成未发布本地 runtime 的测试。
|
|
71
|
+
|
|
72
|
+
常规 Linux/macOS/Windows CI 使用固定的 Pi 1.0.2;显式兼容(0.87.0 至 1.0.1)与 scheduled latest 探针运行在 Linux。目标 release commit 的 CI 仍是发布门槛,不代表当前源码补丁已完成远端平台或真实 provider 验收。
|
|
@@ -119,7 +119,7 @@ Profile 编辑按 Provider/Model、Thinking/Preset 分组,不可变身份
|
|
|
119
119
|
|
|
120
120
|
### 兼容性说明
|
|
121
121
|
|
|
122
|
-
使用 `tools.initial` 的预设需要新版 Forge 支持。旧版 Forge 可能忽略 `tools.initial` 并恢复旧选择逻辑(选择性 allow 匹配目录,不限/deny 保留或过滤会话基线)(不支持向下降级兼容)。这些变化需要 Forge 0.5.5
|
|
122
|
+
使用 `tools.initial` 的预设需要新版 Forge 支持。旧版 Forge 可能忽略 `tools.initial` 并恢复旧选择逻辑(选择性 allow 匹配目录,不限/deny 保留或过滤会话基线)(不支持向下降级兼容)。这些变化需要 Forge 0.5.5;最低宿主要求保持 Pi 0.87.0 不变(已发布 0.5.7 的 peer 范围为 `>=0.87.0 <0.88.0`;未发布的源码兼容补丁支持 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`;详见 [Pi 1.0 兼容指南](pi-1-compatibility.md))。
|
|
123
123
|
|
|
124
124
|
## Agent profile 工作区
|
|
125
125
|
|
|
@@ -6,7 +6,7 @@ Pi-forge 引入了能力(Capabilities):会话级动态提示词指令与
|
|
|
6
6
|
|
|
7
7
|
## 环境要求与安装
|
|
8
8
|
|
|
9
|
-
- **宿主版本:** Pi `>=0.87.0 <0.88.0
|
|
9
|
+
- **宿主版本:** 最低支持 Pi 0.87.0。已发布的 Forge 0.5.7 声明 peer 范围为 `>=0.87.0 <0.88.0`;Forge 0.5.8 支持联合范围 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`(开发 SDK 更新至 1.0.2,`typebox@1.3.27`;最低 SDK 0.87 保持不变;不声称对 0.86 的双重运行时支持)。能力功能需要 Forge 0.5.5。详见 [Pi 1.0 兼容指南](../guides/pi-1-compatibility.md)。
|
|
10
10
|
- **项目信任:** 激活能力、预设绑定或添加手动指令需要项目处于受信任状态(`isProjectTrusted()`)。
|
|
11
11
|
- **兼容性限制:** 包含 `tools.initial` 的配置需要新版 Forge 支持;旧版 Forge 会忽略 `initial`,因而配置不具备向下降级兼容性。
|
|
12
12
|
|
|
@@ -230,7 +230,7 @@ Forge 在每次发起模型请求时通过两阶段拼装动态投影能力增
|
|
|
230
230
|
|
|
231
231
|
## 兼容性与安全边界
|
|
232
232
|
|
|
233
|
-
- **要求上游 Pi 0.87
|
|
233
|
+
- **要求上游 Pi 最低版本:** 必须使用上游 Pi 0.87.0 或更高版本(Forge 0.5.8 支持 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`;已发布 0.5.7 的 peer 元数据保持 `>=0.87.0 <0.88.0` 不变)。不提供对 0.86 的双重运行时支持。之前在 `context` hook 中操作或读取完整 System 消息的第三方扩展必须迁移到 `context_with_system` 完整 hook。详见 [Pi 1.0 兼容指南](../guides/pi-1-compatibility.md)。
|
|
234
234
|
- **`before_agent_start` 注入时机:** `before_agent_start` 阶段强制注入的 System 提示词在 Pi 执行流中仍然晚于 `context_with_system` 生效。
|
|
235
235
|
- **前置扩展上下文改写:** Pi 允许 hook 改写消息。当可见元数据锚点或未锚定事件需要定位时,Forge 要求输入与规范会话投影有唯一的有序对应,否则中止而非猜测(fail-closed)。Pi 可能先保存排队的 custom 消息、但暂不放入工具续跑上下文:Forge 仅容许位置能唯一确定的 custom 消息缺省,忽略其重新生成的外层时间戳;保留传入对象,不擅自把缺省对话补回请求。前置改写因而可能与该定位方式冲突;简单后移不保证组合安全。通用插件、warming、自动 overflow 兼容性仍未全面验收。
|
|
236
236
|
- **上游缺陷与协议限制:** 上游 Pi 元数据分块及语义截断缺陷(semantic-cut defect)未被修复,压缩检查点位置保持不变。旧会话和旧投递载体保持原样,不支持继续恢复能力状态;Forge 不会迁移旧 JSONL 或改写历史摘要。不支持也不承诺 OMP(Oh My Pi)。
|
|
@@ -253,7 +253,7 @@ Forge 在每次发起模型请求时通过两阶段拼装动态投影能力增
|
|
|
253
253
|
- Parent 核心防护:源版本一致性保障、外部新增绑定防脏写检测、生命周期与重入安全围栏。
|
|
254
254
|
- 工具补丁仅支持 `add` 与 `remove`;候选的 `only`/allowlist 未实现。
|
|
255
255
|
- 提供保守的 Provider 托管与缓存预警;兼容的 Codex 传输在保留历史没有移除/重复声明时可追加全新工具以保留前缀(不保证缓存命中);移除/同名重加回退全量当前工具表;不进行自动旧数据迁移,不重写历史摘要;无 Pi split patch;不声称 forceprompt、warming、autooverflow 或远程模型验收保证。
|
|
256
|
-
- 2026-09-24 UI 收口时(提交 `89c6ba2`)本地构建、完整 Node/浏览器/打包验证已通过;这是有日期的本地结果,不是当前 CI 证据、远端提供商验收或 npm
|
|
256
|
+
- 2026-09-24 UI 收口时(提交 `89c6ba2`)本地构建、完整 Node/浏览器/打包验证已通过;这是有日期的本地结果,不是当前 CI 证据、远端提供商验收或 npm 已发布的证明。该历史验收使用 Pi `>=0.87.0 <0.88.0`;当前源码宿主策略见[兼容说明](../guides/pi-1-compatibility.md)。可选 runtime/subagent 集成及其生成者接入工作独立测试和发布。
|
|
257
257
|
|
|
258
258
|
|
|
259
259
|
文件路径校验会拒绝检查时已存在的符号链接,但不能隔离另一个本地进程并发替换目录的攻击;源版本比较也不是跨进程锁。不要把资源编辑用于不可信进程可竞争修改的共享目录。
|
|
@@ -23,7 +23,7 @@ Pi 和 Forge 在每次请求时都读取当前模型的 `compat` 标记:
|
|
|
23
23
|
|
|
24
24
|
| API | 指令正文 | 工具变化 |
|
|
25
25
|
|---|---|---|
|
|
26
|
-
| `anthropic-messages` | 有标记时为 `role: "system"` 消息。Pi 会把它留到下一条 assistant 消息之前再发,因此不会插在 `tool_use` 和对应的 `tool_result` 之间;记录在用户消息之前的更新,实际会发在该用户消息之后。 |
|
|
26
|
+
| `anthropic-messages` | 有标记时为 `role: "system"` 消息。Pi 会把它留到下一条 assistant 消息之前再发,因此不会插在 `tool_use` 和对应的 `tool_result` 之间;记录在用户消息之前的更新,实际会发在该用户消息之后。 | 需要 `supportsMidConvoToolChanges` 且至少一个初始工具。**Pi 1.0.1 起:** 请求级工具列表固定不变(初始工具加一个保留的 deferred 占位工具);之后的工具直接以完整定义写在 `tool_addition` 块里(同名重定义会替换旧定义),用 `tool_removal` 撤下。**Pi 1.0.0 及更早:** 之后的工具带 `defer_loading` 追加到请求级列表,列表只增不减,同名重定义会退回发送完整列表。其他情况(包括会话开始时没有任何活动工具,例如 `tools.initial: []`)在请求级别发送当前列表。 |
|
|
27
27
|
| `openai-responses`、`openai-codex-responses`、`azure-openai-responses` | 有标记时,在原位置发送 `developer` 消息(支持 developer 角色的推理模型)或 `system` 消息。 | 保留的历史中只有新增时,新工具在原位置加载;历史中任何位置出现过移除或同名重声明,这次请求就改为在请求级别发送完整的当前列表。 |
|
|
28
28
|
| `openai-completions` | 有标记时,在原位置发送 `developer` 或 `system` 消息。 | 有 `supportsMidConvoToolAdditions` 时新增在原位置加载;移除和重声明改为发送完整的当前列表。 |
|
|
29
29
|
| `mistral-conversations` | 有标记时,在原位置发送 `system` 消息。 | 始终在请求级别发送完整的当前列表。 |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zihanw/pi-forge",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.8",
|
|
4
4
|
"description": "Pi extension for editable context presets, one-shot agent profiles, tool policy, and request debugging.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
]
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@earendil-works/pi-agent-core": ">=0.87.0 <0.88.0",
|
|
49
|
-
"@earendil-works/pi-ai": ">=0.87.0 <0.88.0",
|
|
50
|
-
"@earendil-works/pi-coding-agent": ">=0.87.0 <0.88.0",
|
|
51
|
-
"@earendil-works/pi-tui": ">=0.87.0 <0.88.0",
|
|
48
|
+
"@earendil-works/pi-agent-core": ">=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0",
|
|
49
|
+
"@earendil-works/pi-ai": ">=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0",
|
|
50
|
+
"@earendil-works/pi-coding-agent": ">=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0",
|
|
51
|
+
"@earendil-works/pi-tui": ">=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0",
|
|
52
52
|
"typebox": "*"
|
|
53
53
|
},
|
|
54
54
|
"peerDependenciesMeta": {
|
|
@@ -69,14 +69,14 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@earendil-works/pi-agent-core": "0.
|
|
73
|
-
"@earendil-works/pi-ai": "0.
|
|
74
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
75
|
-
"@earendil-works/pi-tui": "0.
|
|
72
|
+
"@earendil-works/pi-agent-core": "1.0.2",
|
|
73
|
+
"@earendil-works/pi-ai": "1.0.2",
|
|
74
|
+
"@earendil-works/pi-coding-agent": "1.0.2",
|
|
75
|
+
"@earendil-works/pi-tui": "1.0.2",
|
|
76
76
|
"@types/node": "22.20.1",
|
|
77
77
|
"@vitejs/plugin-vue": "6.0.8",
|
|
78
78
|
"playwright-core": "1.61.1",
|
|
79
|
-
"typebox": "1.3.
|
|
79
|
+
"typebox": "1.3.27",
|
|
80
80
|
"typescript": "6.0.3",
|
|
81
81
|
"vite": "8.1.5",
|
|
82
82
|
"vue": "3.5.40",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"check:docs": "node scripts/check-docs.mjs",
|
|
90
90
|
"check:dist": "node scripts/check-dist.mjs",
|
|
91
91
|
"check:package": "node scripts/check-package.mjs",
|
|
92
|
-
"prepack": "npm run build",
|
|
92
|
+
"prepack": "npm run build && npm run check:package",
|
|
93
93
|
"typecheck": "tsc --noEmit && vue-tsc --noEmit -p tsconfig.web.json",
|
|
94
94
|
"test": "node --test tests/*.test.ts",
|
|
95
95
|
"test:browser": "node --test --test-concurrency=1 tests-browser/*.test.ts",
|
|
@@ -97,11 +97,12 @@
|
|
|
97
97
|
"check:packed": "node scripts/check-packed-install.mjs"
|
|
98
98
|
},
|
|
99
99
|
"files": [
|
|
100
|
-
"dist
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
100
|
+
"dist/**/*.js",
|
|
101
|
+
"dist/**/*.d.ts",
|
|
102
|
+
"dist/**/*.map",
|
|
103
|
+
"docs/**/*.md",
|
|
104
|
+
"examples/**/*.json",
|
|
105
|
+
"examples/**/*.ts",
|
|
105
106
|
"README.md",
|
|
106
107
|
"README.zh-CN.md",
|
|
107
108
|
"CHANGELOG.md",
|
|
Binary file
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# README media
|
|
2
|
-
|
|
3
|
-
## September 26 Capabilities rename
|
|
4
|
-
|
|
5
|
-
All ten currently embedded WebUI GIFs (five scenes in each language) were re-recorded from the renamed development source based on `9f3bbb4`. They now show Capabilities and Enable/Disable; `capability-tools.gif` replaces the README reference to `mode-tools.gif`. Historical files, including the old mode and TUI clips, are retained rather than silently relabelled.
|
|
6
|
-
|
|
7
|
-
Context, Draft diff and Capability recordings use the continuous recorder (1440×900, 15fps exports); Tools and Regex use their dedicated recorder (1200×750, 15fps exports). Both use native pointer actions and continuous X11 capture, with only the disclosed pointer halo. The Capability scene checks actual SDK tool selection `read → read,grep,find → read` and locates both the update and removal in projected context. All projects and sessions are disposable fixtures; no real provider inference, personal history, or cache-hit claim is involved. English/Chinese final keyframes were reviewed against the current UI. The legacy TUI clip was not re-recorded and remains unembedded.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm run build
|
|
11
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-capability-media LOCALES=en,zh-CN SCENES=context,diff,capability node scripts/record-readme-continuous.ts
|
|
12
|
-
python3 scripts/export-readme-continuous.py /tmp/forge-capability-media
|
|
13
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-tools-regex node scripts/record-readme-tools-regex.ts
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Current output scene names are `context`, `diff`, and `capability`; copy reviewed outputs to `context-composition.gif`, `edit-draft-diff.gif`, and `capability-tools.gif` respectively. The sections below document earlier captures, not the current embedded footage.
|
|
17
|
-
|
|
18
|
-
## September 26 README refresh
|
|
19
|
-
|
|
20
|
-
The concept header `../pi-forge-header-concept-1.png` is restored unchanged. The duplicate overview screenshot is no longer embedded; old image files remain available. Installation precedes all demo GIFs.
|
|
21
|
-
|
|
22
|
-
Follow-up review: the TUI clip was removed from both READMEs because its command/status flow did not clearly communicate the benefit. The file and recorder are retained as historical material; the five WebUI feature GIFs remain in use. The personal motivation is now a short opening note, with a prominent optional-subagents link before installation.
|
|
23
|
-
|
|
24
|
-
Recordings produced for this refresh, based on source `6a197e6` plus the local unpublished-alias removal:
|
|
25
|
-
|
|
26
|
-
- `tui-quickstart.gif` (retained, not embedded in README): real Pi 0.87.1 TUI, 1000×540, about 12.75s. `/preset use project:read-first` → `/instruction use project:write-tools` → `/instruction status`. This uses synthetic read-first resources, not a verbatim copy of the checked-in example. Real Forge operations change selected tools from read/ls/control to also bash/edit. No model response is shown or implied.
|
|
27
|
-
- `<locale>/tool-selection.gif`: real Policy picker, defaults read/ls → read/ls/grep, Save/Activate, compiled Preview tool list. Permission ceiling already includes grep; this is a default-selection edit, not an authorization bypass. About 12.94s.
|
|
28
|
-
- `<locale>/regex-transforms.gif`: enable a preconfigured outgoing system-text rule, then inspect `SAMPLE_TOKEN` → `[REDACTED]` in Preview. About 8.07s. Only synthetic text is used; no general secret-detection guarantee.
|
|
29
|
-
|
|
30
|
-
Browser captures use the built product editor and production loopback host/compiler, with an inert command harness and synthetic tools (not a live model session). Native X11 pointer interactions are continuous; the blue halo is a recording aid. 1440×900 masters export to 1200×750/15fps GIFs. Semantic before/after assertions check Preview and tool selection; the browser is restricted to its own editor origin. Parent review confirmed no page errors or external browser requests in either locale, and decoded all five GIFs.
|
|
31
|
-
|
|
32
|
-
The TUI uses a separate temporary home/agent directory, isolated dark colors with brighter dim text, no session persistence, and a local `offline-demo` model definition with an inert placeholder key. That model is not a real provider. Pi runs offline; a Node preload blocks fetch/socket connections and asserts an empty network-attempt log. Keyframes were manually reviewed for actual command results and tool state; capture action logs are not automated OCR assertions. The terminal has no custom Forge UI or replaced output. Earlier captures showing missing-model warnings were discarded from the published asset and retained only in the local evidence report.
|
|
33
|
-
|
|
34
|
-
### Reproduce the new recordings
|
|
35
|
-
|
|
36
|
-
Requires the repository dev dependencies, Pi CLI, Google Chrome, Xvfb, xdotool, ffmpeg, ImageMagick `import`, GNOME Terminal and `dbus-run-session`. Private displays `:192` (browser) and `:196` (terminal) must be free. Recorders create disposable resources and clean up only their own processes. Outputs default to the review directory, not the checked-in images.
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npm run build
|
|
40
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-tools-regex node scripts/record-readme-tools-regex.ts
|
|
41
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-tui node scripts/record-readme-tui.ts
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Review `/tmp/forge-tools-regex/assets/{en,zh-CN}/` and `/tmp/forge-tui/assets/tui-quickstart.gif` before copying to `assets/readme/`. Masters, keyframes and evidence stay in each output directory. Fixture IDs, timing and hashes vary between runs. These clips prove local editing/management behavior, not provider delivery, model compliance, cache reuse, sandbox isolation or autonomous agent decisions.
|
|
45
|
-
|
|
46
|
-
## September 24 continuous v3
|
|
47
|
-
|
|
48
|
-
Captured 2026-09-24 EDT from accepted UI commit `89c6ba2` (development package metadata 0.5.4), using isolated synthetic projects, the built production loopback editor/compiler and, for Mode, a real SDK AgentSession with no remote model requests.
|
|
49
|
-
|
|
50
|
-
The September 24 capture produced these per-locale files:
|
|
51
|
-
- `editor-overview-v3.png` (retained, no longer in README): editor and compiled Preview (1439×899 browser viewport; the continuous videos/GIFs include the 1px X11 border at 1440×900).
|
|
52
|
-
- `context-composition.gif`: native drag reordering plus project-context toggle, about 14.6s.
|
|
53
|
-
- `mode-tools.gif`: Current session Use → locate → Off → locate removal, about 18.3s. Actual SDK tools `read → read,grep,find → read`; projected instructions/stop notices remain distinct from delivery or cache evidence.
|
|
54
|
-
- `edit-draft-diff.gif`: real keyboard edit followed by Draft diff without resizing, about 13–14s.
|
|
55
|
-
|
|
56
|
-
GIFs are 1440×900/15fps exports of continuous 30fps x11grab MP4, without time acceleration or stitched state screenshots. The native pointer drives the UI; the blue halo/click pulse is a disclosed recording aid, not a Forge feature. Native dragging's light drag image and actual compile loading states are retained. GIF palette conversion is lossy. Complete MP4/GIF decoding and real browser playback/seek were checked for both languages. No personal resources/credentials/history, model inference, provider/cache claims or user-host restart were involved.
|
|
57
|
-
|
|
58
|
-
## Reproduce September 24 recordings
|
|
59
|
-
|
|
60
|
-
Requires the checkout's development dependencies, Xvfb, xdotool, ffmpeg, Google Chrome and Python Pillow. Private display `:192` must be unused. The recorder refuses to use an occupied display, creates disposable fixtures and cleans its own processes/resources. Do not copy output over formal assets without reviewing it.
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
npm run build
|
|
64
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-readme-v3 LOCALES=en,zh-CN SCENES=context,diff,capability node scripts/record-readme-continuous.ts
|
|
65
|
-
python3 scripts/export-readme-continuous.py /tmp/forge-readme-v3
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Output is `media/<locale>/{context,capability,diff}.{mp4,gif}`, proof images and semantic evidence; `manifest.json` records dimensions/durations/hashes. Copy approved GIFs to the corresponding names above and `context-poster.png` to `editor-overview-v3.png`. New recordings have fresh synthetic session IDs; pixel-identical reproduction is not promised.
|
|
69
|
-
|
|
70
|
-
## Retained legacy media (not referenced by current README)
|
|
71
|
-
|
|
72
|
-
Captured on 2026-09-23 from the built 0.5.5-development WebUI (package version still 0.5.4), using the production loopback editor server and compiler with an isolated, synthetic code-review project.
|
|
73
|
-
|
|
74
|
-
Each locale (`en`, `zh-CN`) has:
|
|
75
|
-
|
|
76
|
-
- `editor-overview.png`: 1440 × 900, selected instructions beside compiled Preview.
|
|
77
|
-
- `context-toggle.gif`: 1440 × 900, two real, settled UI states in a five-second loop. Clicking the project-context toggle removes/restores the owned example `AGENTS.md` paragraph. This is a sampled-state demonstration, not real-time footage or a latency measurement. No zoom, captions, or drawn/replaced UI.
|
|
78
|
-
- `draft-diff.png`: 1440 × 620, one instruction edit compared with the saved Preset. Token deltas are estimates, not provider usage.
|
|
79
|
-
|
|
80
|
-
No model requests, credentials, personal presets, real conversation history, or user-host restart were needed. `demo-session` and the project contents are examples; `/tmp/pi-forge-readme-*` is a disposable project. Runtime context-file input is supplied through the harness's public prompt-options boundary; no private SDK state is patched. Browser traffic is restricted to that editor origin. These images demonstrate editing/compilation, not provider delivery, model compliance or cache reuse.
|
|
81
|
-
|
|
82
|
-
## Reproduce from a repository checkout
|
|
83
|
-
|
|
84
|
-
Requires the repository's Node development dependencies, system Chrome (or `CHROME_PATH`) and Python with Pillow for GIF encoding. Outputs are local; this does not publish them.
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
npm run build
|
|
88
|
-
PI_FORGE_MEDIA_OUT_DIR=/tmp/forge-readme-capture node scripts/record-readme-media.ts
|
|
89
|
-
# Inspect the captured PNGs before replacing the checked-in media.
|
|
90
|
-
python3 scripts/render-readme-media.py /tmp/forge-readme-capture assets/readme
|
|
91
|
-
npm run check:docs
|
|
92
|
-
npm run check:package
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
The recorder owns its temporary project/global configuration directories and removes them after use. It never copies user auth files. GIFs use one shared palette and two 2.5-second holds; the encoder validates frame count, loop and dimensions.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|