@zihanw/pi-forge 0.5.10 → 0.5.11

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -2
  3. package/README.zh-CN.md +2 -2
  4. package/dist/capability-tool.d.ts +1 -1
  5. package/dist/capability-tool.d.ts.map +1 -1
  6. package/dist/capability-tool.js +1 -1
  7. package/dist/capability-tool.js.map +1 -1
  8. package/dist/prompt-runtime.d.ts.map +1 -1
  9. package/dist/prompt-runtime.js +1 -0
  10. package/dist/prompt-runtime.js.map +1 -1
  11. package/dist/render-helpers.d.ts +2 -0
  12. package/dist/render-helpers.d.ts.map +1 -1
  13. package/dist/render-helpers.js +5 -0
  14. package/dist/render-helpers.js.map +1 -1
  15. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  16. package/dist/runtime/tool-policy-runtime.js +3 -1
  17. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  18. package/dist/slot-renderers.d.ts.map +1 -1
  19. package/dist/slot-renderers.js +7 -8
  20. package/dist/slot-renderers.js.map +1 -1
  21. package/dist/types.d.ts +2 -0
  22. package/dist/types.d.ts.map +1 -1
  23. package/dist/types.js.map +1 -1
  24. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  25. package/dist/web-editor/client-script.generated.js +1 -1
  26. package/dist/web-editor/client-script.generated.js.map +1 -1
  27. package/docs/development/release.md +7 -7
  28. package/docs/development/setup.md +8 -8
  29. package/docs/guides/pi-1-compatibility.md +20 -2
  30. package/docs/reference/capabilities.md +2 -2
  31. package/docs/reference/features.md +2 -2
  32. package/docs/zh-CN/guides/pi-1-compatibility.md +20 -2
  33. package/docs/zh-CN/reference/capabilities.md +2 -2
  34. package/examples/default-prompt-stack.json +2 -2
  35. package/examples/hack-prompt-stack.json +1 -1
  36. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"client-script.generated.js","sourceRoot":"","sources":["../../src/web-editor/client-script.generated.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAW,8+44BAA8+44B,CAAC"}
1
+ {"version":3,"file":"client-script.generated.js","sourceRoot":"","sources":["../../src/web-editor/client-script.generated.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAW,y9q5BAAy9q5B,CAAC"}
@@ -13,18 +13,18 @@ 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 (0.87.0) and current tested Pi versions (1.4.0) using `PI_TEST_VERSION` / `TYPEBOX_TEST_VERSION`; exercise ordinary Preset/Profile/Capability behavior independently of optional delegation.
16
+ 4. Test a packed main-package installation against both the documented minimum (0.87.0) and current tested Pi versions (1.5.0) 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
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 documentation does not record cross-platform release CI results.
20
20
 
21
21
  ## Dependency policy
22
22
 
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.10 expands supported peers to the union:
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.11 expands supported peers to the union:
24
24
  ```
25
- >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0
25
+ >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0
26
26
  ```
27
- Development fixtures are pinned to `1.4.0` with `typebox@1.3.27`. Minimum supported Pi `0.87.0` remains unchanged; The 1.x range covers 1.0–1.4; Pi 0.86, other 0.x versions and Pi 1.5 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).
27
+ Development fixtures are pinned to `1.5.0` with `typebox@1.3.27`. Minimum supported Pi `0.87.0` remains unchanged; The 1.x range covers 1.0–1.5; Pi 0.86, other 0.x versions and Pi 1.6 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).
28
28
 
29
29
  To run packed installation smoke tests against the minimum or current version:
30
30
 
@@ -32,8 +32,8 @@ To run packed installation smoke tests against the minimum or current version:
32
32
  # Test packed install against pinned minimum (0.87.0):
33
33
  PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
34
34
 
35
- # Test packed install against current Pi 1.4.0:
36
- PI_TEST_VERSION=1.4.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
35
+ # Test packed install against current Pi 1.5.0:
36
+ PI_TEST_VERSION=1.5.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
37
37
  ```
38
38
 
39
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).
@@ -54,6 +54,6 @@ Do not silently move unrelated legacy or prerelease tags. Publishing is not a ho
54
54
 
55
55
  ### Coherent fixtures versus fresh consumers
56
56
 
57
- Compatibility CI pins the four SDKs and, for 1.x, codemode/MCP/telemetry/chord to the same exact version and asserts resolved versions. These are explicit coherent fixtures, not ordinary fresh consumer resolution. By default the packed check keeps normal npm resolution and verifies the installed four-SDK family; the ordinary 1.4.0 jobs (all three platforms) are the unconstrained normal-consumer gate. Compatibility lanes set `PI_TEST_COHERENT_UPSTREAM=1`, which also pins codemode/MCP/telemetry/chord to the host version inside the packed consumers and is printed in the log. This is required because fresh unconstrained installs of Pi 1.0.1–1.1.x now resolve their caret ranges to newer, incompatible upstream releases (observed 2026-10-20: Pi 1.1.0 + pi-codemode 1.3.0 fails with a missing `MCP_TYPESCRIPT_PREAMBLE` export) independently of Forge. Fixture success on those lanes says Forge works on that host family; it does not claim that a fresh unconstrained install of that old Pi works.
57
+ Compatibility CI pins the four SDKs and, for 1.x, codemode/MCP/telemetry/chord to the same exact version and asserts resolved versions. These are explicit coherent fixtures, not ordinary fresh consumer resolution. By default the packed check keeps normal npm resolution and verifies the installed four-SDK family; the ordinary 1.5.0 jobs (all three platforms) are the unconstrained normal-consumer gate. Compatibility lanes set `PI_TEST_COHERENT_UPSTREAM=1`, which also pins codemode/MCP/telemetry/chord to the host version inside the packed consumers and is printed in the log. This is required because fresh unconstrained installs of Pi 1.0.1–1.1.x now resolve their caret ranges to newer, incompatible upstream releases (observed 2026-10-20: Pi 1.1.0 + pi-codemode 1.3.0 fails with a missing `MCP_TYPESCRIPT_PREAMBLE` export) independently of Forge. Fixture success on those lanes says Forge works on that host family; it does not claim that a fresh unconstrained install of that old Pi works.
58
58
 
59
59
  Pi 1.3 pins its internal Pi dependencies exactly; normal 1.3 consumers resolve the four SDKs plus codemode/MCP/telemetry to 1.3.0 without a fixture overlay. Real-SDK regressions cover default/modifier transcript tool restoration, resumed Preset initial/allow/deny policy, Capability additions, and disabling a Preset back to the policy owner's saved startup baseline (with distinguishable external changes reconciled). Those 0.5.9 restoration changes did not change execution authorization or enable every default-active extension tool on resume. Forge 0.5.10 separately adds [effective-set execution authorization](../reference/capabilities.md#execution-authorization-forge-0510).
@@ -55,18 +55,18 @@ 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. Published Forge 0.5.7 declared peer range `>=0.87.0 <0.88.0`. Forge 0.5.10 expands supported peers to the union:
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.11 expands supported peers to the union:
59
59
  ```
60
- >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0
60
+ >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0
61
61
  ```
62
- The repository dev SDK fixtures are updated to `1.4.0` 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).
62
+ The repository dev SDK fixtures are updated to `1.5.0` 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).
63
63
 
64
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.
65
65
 
66
66
  Release validation and smoke testing verify:
67
67
 
68
68
  - the documented minimum supported Pi version (`0.87.0`);
69
- - the current Pi version at release time (`1.4.0`), with earlier releases (`1.0.0`, `1.0.1`, `1.0.2`, `1.0.4`, `1.1.0`, `1.2.0`, `1.3.0`) as compatibility lanes;
69
+ - the current Pi version at release time (`1.5.0`), with earlier releases (`1.0.0`, `1.0.1`, `1.0.2`, `1.0.4`, `1.1.0`, `1.2.0`, `1.3.0`, `1.4.0`) as compatibility lanes;
70
70
  - an automated or scheduled probe of npm `latest`.
71
71
 
72
72
  Run packed installation tests against specific target versions using environment variables:
@@ -75,11 +75,11 @@ Run packed installation tests against specific target versions using environment
75
75
  # Verify packed install against pinned minimum (0.87.0):
76
76
  PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
77
77
 
78
- # Verify packed install against current Pi 1.4.0:
79
- PI_TEST_VERSION=1.4.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
78
+ # Verify packed install against current Pi 1.5.0:
79
+ PI_TEST_VERSION=1.5.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
80
80
  ```
81
81
 
82
- Ordinary Linux/macOS/Windows CI uses Pi 1.4.0; older supported versions, including minimum 0.87.0 and Pi 1.0.0/1.0.1/1.0.2/1.0.4/1.1.0/1.2.0/1.3.0, are explicit Linux compatibility lanes; passing CI on the exact release commit is a release gate (its result is not recorded in this document).
82
+ Ordinary Linux/macOS/Windows CI uses Pi 1.5.0; older supported versions, including minimum 0.87.0 and Pi 1.0.0/1.0.1/1.0.2/1.0.4/1.1.0/1.2.0/1.3.0/1.4.0, are explicit Linux compatibility lanes; passing CI on the exact release commit is a release gate (its result is not recorded in this document).
83
83
 
84
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.
85
85
 
@@ -94,6 +94,6 @@ See the [public API policy](../reference/public-api.md).
94
94
 
95
95
  ### Coherent fixtures versus fresh consumers
96
96
 
97
- Compatibility CI pins the four SDKs and, for 1.x, codemode/MCP/telemetry/chord to the same exact version and asserts resolved versions. These are explicit coherent fixtures, not ordinary fresh consumer resolution. By default the packed check keeps normal npm resolution and verifies the installed four-SDK family; the ordinary 1.4.0 jobs (all three platforms) are the unconstrained normal-consumer gate. Compatibility lanes set `PI_TEST_COHERENT_UPSTREAM=1`, which also pins codemode/MCP/telemetry/chord to the host version inside the packed consumers and is printed in the log. This is required because fresh unconstrained installs of Pi 1.0.1–1.1.x now resolve their caret ranges to newer, incompatible upstream releases (observed 2026-10-20: Pi 1.1.0 + pi-codemode 1.3.0 fails with a missing `MCP_TYPESCRIPT_PREAMBLE` export) independently of Forge. Fixture success on those lanes says Forge works on that host family; it does not claim that a fresh unconstrained install of that old Pi works.
97
+ Compatibility CI pins the four SDKs and, for 1.x, codemode/MCP/telemetry/chord to the same exact version and asserts resolved versions. These are explicit coherent fixtures, not ordinary fresh consumer resolution. By default the packed check keeps normal npm resolution and verifies the installed four-SDK family; the ordinary 1.5.0 jobs (all three platforms) are the unconstrained normal-consumer gate. Compatibility lanes set `PI_TEST_COHERENT_UPSTREAM=1`, which also pins codemode/MCP/telemetry/chord to the host version inside the packed consumers and is printed in the log. This is required because fresh unconstrained installs of Pi 1.0.1–1.1.x now resolve their caret ranges to newer, incompatible upstream releases (observed 2026-10-20: Pi 1.1.0 + pi-codemode 1.3.0 fails with a missing `MCP_TYPESCRIPT_PREAMBLE` export) independently of Forge. Fixture success on those lanes says Forge works on that host family; it does not claim that a fresh unconstrained install of that old Pi works.
98
98
 
99
99
  Pi 1.3 pins its internal Pi dependencies exactly; normal 1.3 consumers resolve the four SDKs plus codemode/MCP/telemetry to 1.3.0 without a fixture overlay. Real-SDK regressions cover default/modifier transcript tool restoration, resumed Preset initial/allow/deny policy, Capability additions, and disabling a Preset back to the policy owner's saved startup baseline (with distinguishable external changes reconciled). Those 0.5.9 restoration changes did not change execution authorization or enable every default-active extension tool on resume. Forge 0.5.10 separately adds [effective-set execution authorization](../reference/capabilities.md#execution-authorization-forge-0510).
@@ -2,6 +2,24 @@
2
2
 
3
3
  [Documentation](../README.md) · [简体中文](../zh-CN/guides/pi-1-compatibility.md)
4
4
 
5
+ ## Forge 0.5.11: Pi 1.5
6
+
7
+ Development SDKs are pinned to **1.5.0** and the four optional SDK peers expand to:
8
+
9
+ ```text
10
+ >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0
11
+ ```
12
+
13
+ Minimum Pi 0.87.0 and `typebox@1.3.27` remain unchanged; no host is dropped. Ordinary CI and normal packed consumers use 1.5.0; compatibility lanes keep every earlier version and add 1.4.0. The 0.5.10 and earlier sections below are historical records, not the current peer range.
14
+
15
+ Pi 1.5 changes that affect Forge:
16
+
17
+ - `@earendil-works/pi-ai` no longer re-exports TypeBox. Forge imports `Type` from `typebox` (an optional peer since 0.5.x). Inside Pi, the extension loader aliases both, so installed extensions were not affected; SDK consumers that import Forge directly were.
18
+ - Tool argument validation uses pi-schema. Forge's `forge_capability` schema is plain JSON Schema and validates unchanged.
19
+ - `pi.setActiveTools()` keeps surviving tools in place and appends newly activated ones, so restored tool lists can come back in a different order. Forge compares tool sets, not order.
20
+ - The default system prompt was tightened. The **Pi Default** web-editor template, the example stacks and the `pi-docs` slot now use the Pi 1.5 wording on every supported host; existing Presets keep their saved text.
21
+ - Extension changelogs: Pi 1.5 shows new `CHANGELOG.md` entries after an update.
22
+
5
23
  ## Forge 0.5.10: Pi 1.4
6
24
 
7
25
  Development SDKs are pinned to **1.4.0** and the four optional SDK peers expand to:
@@ -118,9 +136,9 @@ Published subagents 0.5.3 does not support `tools.initial`. Its pending feature
118
136
  ```bash
119
137
  # Override both when testing a different host than the installed development SDK.
120
138
  PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
121
- PI_TEST_VERSION=1.4.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
139
+ PI_TEST_VERSION=1.5.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
122
140
  ```
123
141
 
124
142
  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.
125
143
 
126
- Ordinary Linux/macOS/Windows CI uses pinned Pi 1.4.0; explicit compatibility lanes (0.87.0 through 1.3.0, including 1.0.2) and scheduled latest-Pi probes run on Linux. CI on the exact release commit remains a release gate; this document does not record its result or any real-provider testing.
144
+ Ordinary Linux/macOS/Windows CI uses pinned Pi 1.5.0; explicit compatibility lanes (0.87.0 through 1.4.0, including 1.0.2) and scheduled latest-Pi probes run on Linux. CI on the exact release commit remains a release gate; this document does not record its result or any real-provider testing.
@@ -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:** 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 supported `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; Forge 0.5.10 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0` (dev SDK 1.4.0, `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).
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 supported `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; Forge 0.5.11 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0` (dev SDK 1.5.0, `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
 
@@ -259,7 +259,7 @@ Active state is derived deterministically from session events and delivery curso
259
259
 
260
260
  ## Compatibility and security boundaries
261
261
 
262
- - **Upstream Pi minimum required:** Pi 0.87.0 is the minimum supported host (Forge 0.5.10 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0`; Forge 0.5.8 supported `>=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).
262
+ - **Upstream Pi minimum required:** Pi 0.87.0 is the minimum supported host (Forge 0.5.11 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0`; Forge 0.5.8 supported `>=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).
263
263
  - **Timing with `before_agent_start`:** Any forced System prompt injection via `before_agent_start` continues to execute later than `context_with_system`.
264
264
  - **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.
265
265
  - **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.
@@ -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+. In published 0.5.7, peer metadata required `>=0.87.0 <0.88.0`. Forge 0.5.8 expanded supported peers to `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; Forge 0.5.10 expands them to `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0` (development SDK pinned to 1.4.0 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).
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 expanded supported peers to `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.1.0`; Forge 0.5.11 expands them to `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0` (development SDK pinned to 1.5.0 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: Minimum supported Pi version is 0.87.0 (published 0.5.7 declared `>=0.87.0 <0.88.0`; 0.5.10 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0`; dev SDK updated to 1.4.0 with `typebox@1.3.27`; no dual 0.86 runtime support claim). See [Pi 1.0 compatibility](../guides/pi-1-compatibility.md).
252
+ - Upstream host requirement: Minimum supported Pi version is 0.87.0 (published 0.5.7 declared `>=0.87.0 <0.88.0`; 0.5.11 supports `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0`; dev SDK updated to 1.5.0 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.
@@ -2,6 +2,24 @@
2
2
 
3
3
  [中文文档](../README.md) · [English](../../guides/pi-1-compatibility.md)
4
4
 
5
+ ## Forge 0.5.11:Pi 1.5
6
+
7
+ 开发 SDK 固定为 **1.5.0**,四个可选 SDK peer 范围扩大为:
8
+
9
+ ```text
10
+ >=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0
11
+ ```
12
+
13
+ 最低 Pi 0.87.0 与 `typebox@1.3.27` 保持不变,不放弃任何宿主。常规 CI 与普通打包消费者使用 1.5.0;兼容矩阵保留此前所有版本并增加 1.4.0。下面 0.5.10 及更早的章节是历史记录,不是当前 peer 范围。
14
+
15
+ Pi 1.5 中影响 Forge 的变化:
16
+
17
+ - `@earendil-works/pi-ai` 不再转导出 TypeBox。Forge 改为从 `typebox`(0.5.x 起就是可选 peer)导入 `Type`。在 Pi 内部,扩展加载器会为两者设置别名,所以已安装的扩展不受影响;直接导入 Forge 的 SDK 调用方会受影响。
18
+ - 工具参数校验改用 pi-schema。Forge 的 `forge_capability` schema 是普通 JSON Schema,校验结果不变。
19
+ - `pi.setActiveTools()` 保留仍启用工具的原有位置,新启用的工具追加到末尾,因此恢复后的工具列表顺序可能不同;Forge 按集合比较工具,不比较顺序。
20
+ - 默认系统提示词更精简。Web 编辑器的 **Pi Default** 模板、示例预设和 `pi-docs` 插槽在所有受支持的宿主上都改用 Pi 1.5 的措辞;已有预设保留已保存的文本。
21
+ - 扩展更新日志:Pi 1.5 在更新后会显示 `CHANGELOG.md` 中的新条目。
22
+
5
23
  ## Forge 0.5.10:Pi 1.4
6
24
 
7
25
  开发 SDK 固定为 **1.4.0**,四个可选 SDK peer 范围扩大为:
@@ -116,9 +134,9 @@ agent-core 实验 harness 的移除,不等于我们配套 runtime 使用的 co
116
134
  ```bash
117
135
  # 目标与已安装开发 SDK 不同时,请同时指定这两个版本。
118
136
  PI_TEST_VERSION=0.87.0 TYPEBOX_TEST_VERSION=1.3.7 npm run check:packed
119
- PI_TEST_VERSION=1.4.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
137
+ PI_TEST_VERSION=1.5.0 TYPEBOX_TEST_VERSION=1.3.27 npm run check:packed
120
138
  ```
121
139
 
122
140
  不指定时,packed 检查读取一致的已安装 SDK family 及其声明的 TypeBox 版本,不再硬编码旧 pin。两个消费者都使用正常 npm peer 解析,并核对实际安装版本。如果存在 optional sibling,使用它声明的 runtime 依赖;不把这当成未发布本地 runtime 的测试。
123
141
 
124
- 常规 Linux/macOS/Windows CI 使用固定的 Pi 1.4.0;显式兼容(0.87.0 至 1.3.0,含 1.0.2)与 scheduled latest 探针运行在 Linux。目标 release commit 的 CI 仍是发布门槛;本文不记录其结果,也不代表已完成真实 provider 验收。
142
+ 常规 Linux/macOS/Windows CI 使用固定的 Pi 1.5.0;显式兼容(0.87.0 至 1.4.0,含 1.0.2)与 scheduled latest 探针运行在 Linux。目标 release commit 的 CI 仍是发布门槛;本文不记录其结果,也不代表已完成真实 provider 验收。
@@ -6,7 +6,7 @@ Pi-forge 引入了能力(Capabilities):会话级动态提示词指令与
6
6
 
7
7
  ## 环境要求与安装
8
8
 
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`;Forge 0.5.10 支持联合范围 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.0`(开发 SDK 更新至 1.4.0,`typebox@1.3.27`;最低 SDK 0.87 保持不变;不声称对 0.86 的双重运行时支持)。能力功能需要 Forge 0.5.5。详见 [Pi 1.0 兼容指南](../guides/pi-1-compatibility.md)。
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`;Forge 0.5.11 支持联合范围 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.0`(开发 SDK 更新至 1.5.0,`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
 
@@ -259,7 +259,7 @@ Forge 在每次发起模型请求时通过两阶段拼装动态投影能力增
259
259
 
260
260
  ## 兼容性与安全边界
261
261
 
262
- - **要求上游 Pi 最低版本:** 必须使用上游 Pi 0.87.0 或更高版本(Forge 0.5.10 支持 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.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)。
262
+ - **要求上游 Pi 最低版本:** 必须使用上游 Pi 0.87.0 或更高版本(Forge 0.5.11 支持 `>=0.87.0 <0.88.0 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.6.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)。
263
263
  - **`before_agent_start` 注入时机:** `before_agent_start` 阶段强制注入的 System 提示词在 Pi 执行流中仍然晚于 `context_with_system` 生效。
264
264
  - **前置扩展上下文改写:** Pi 允许 hook 改写消息。当可见元数据锚点或未锚定事件需要定位时,Forge 要求输入与规范会话投影有唯一的有序对应,否则中止而非猜测(fail-closed)。Pi 可能先保存排队的 custom 消息、但暂不放入工具续跑上下文:Forge 仅容许位置能唯一确定的 custom 消息缺省,忽略其重新生成的外层时间戳;保留传入对象,不擅自把缺省对话补回请求。前置改写因而可能与该定位方式冲突;简单后移不保证组合安全。通用插件、warming、自动 overflow 兼容性仍未全面验收。
265
265
  - **上游缺陷与协议限制:** 上游 Pi 元数据分块及语义截断缺陷(semantic-cut defect)未被修复,压缩检查点位置保持不变。旧会话和旧投递载体保持原样,不支持继续恢复能力状态;Forge 不会迁移旧 JSONL 或改写历史摘要。不支持也不承诺 OMP(Oh My Pi)。
@@ -34,7 +34,7 @@
34
34
  "package": "@earendil-works/pi-coding-agent",
35
35
  "file": "dist/core/system-prompt.js"
36
36
  },
37
- "content": "You are an expert coding assistant operating inside pi, a coding agent harness. You help users by reading files, executing commands, editing code, and writing new files."
37
+ "content": "You are a coding assistant running inside pi, a coding agent harness. Help users inspect files, run commands, and modify code."
38
38
  },
39
39
  {
40
40
  "kind": "slot",
@@ -54,7 +54,7 @@
54
54
  "name": "Custom Tools Note",
55
55
  "enabled": true,
56
56
  "role": "system",
57
- "content": "In addition to the tools above, you may have access to other custom tools depending on the project."
57
+ "content": "Additional tools may be available."
58
58
  },
59
59
  {
60
60
  "kind": "slot",
@@ -25,7 +25,7 @@
25
25
  "name": "Pi Default Role",
26
26
  "enabled": true,
27
27
  "role": "system",
28
- "content": "You are an expert coding assistant operating inside pi, a coding agent harness. You help users by reading files, executing commands, editing code, and writing new files."
28
+ "content": "You are a coding assistant running inside pi, a coding agent harness. Help users inspect files, run commands, and modify code."
29
29
  },
30
30
  {
31
31
  "kind": "slot",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zihanw/pi-forge",
3
- "version": "0.5.10",
3
+ "version": "0.5.11",
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 || 0.99.0 || 0.99.1 || 0.99.2 || >=1.0.0 <1.5.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.5.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.5.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.5.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.6.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.6.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.6.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.6.0",
52
52
  "typebox": "*"
53
53
  },
54
54
  "peerDependenciesMeta": {
@@ -69,17 +69,17 @@
69
69
  }
70
70
  },
71
71
  "devDependencies": {
72
- "@earendil-works/pi-agent-core": "1.4.0",
73
- "@earendil-works/pi-ai": "1.4.0",
74
- "@earendil-works/pi-coding-agent": "1.4.0",
75
- "@earendil-works/pi-tui": "1.4.0",
72
+ "@earendil-works/pi-agent-core": "1.5.0",
73
+ "@earendil-works/pi-ai": "1.5.0",
74
+ "@earendil-works/pi-coding-agent": "1.5.0",
75
+ "@earendil-works/pi-tui": "1.5.0",
76
76
  "@types/node": "22.20.1",
77
77
  "@vitejs/plugin-vue": "6.0.8",
78
78
  "playwright-core": "1.61.1",
79
79
  "typebox": "1.3.27",
80
80
  "typescript": "6.0.3",
81
- "vite": "8.1.5",
82
- "vue": "3.5.40",
81
+ "vite": "8.3.6",
82
+ "vue": "3.5.45",
83
83
  "vue-tsc": "3.3.8"
84
84
  },
85
85
  "scripts": {