@zihanw/pi-forge 0.5.4 → 0.5.5

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 (228) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +67 -103
  3. package/README.zh-CN.md +67 -95
  4. package/assets/pi-forge-header-concept-1.png +0 -0
  5. package/assets/readme/PROVENANCE.md +95 -0
  6. package/assets/readme/en/capability-tools.gif +0 -0
  7. package/assets/readme/en/context-composition.gif +0 -0
  8. package/assets/readme/en/context-toggle.gif +0 -0
  9. package/assets/readme/en/draft-diff.png +0 -0
  10. package/assets/readme/en/edit-draft-diff.gif +0 -0
  11. package/assets/readme/en/editor-overview-v3.png +0 -0
  12. package/assets/readme/en/editor-overview.png +0 -0
  13. package/assets/readme/en/mode-tools.gif +0 -0
  14. package/assets/readme/en/regex-transforms.gif +0 -0
  15. package/assets/readme/en/tool-selection.gif +0 -0
  16. package/assets/readme/tui-quickstart.gif +0 -0
  17. package/assets/readme/zh-CN/capability-tools.gif +0 -0
  18. package/assets/readme/zh-CN/context-composition.gif +0 -0
  19. package/assets/readme/zh-CN/context-toggle.gif +0 -0
  20. package/assets/readme/zh-CN/draft-diff.png +0 -0
  21. package/assets/readme/zh-CN/edit-draft-diff.gif +0 -0
  22. package/assets/readme/zh-CN/editor-overview-v3.png +0 -0
  23. package/assets/readme/zh-CN/editor-overview.png +0 -0
  24. package/assets/readme/zh-CN/mode-tools.gif +0 -0
  25. package/assets/readme/zh-CN/regex-transforms.gif +0 -0
  26. package/assets/readme/zh-CN/tool-selection.gif +0 -0
  27. package/dist/active-state.d.ts +148 -0
  28. package/dist/active-state.d.ts.map +1 -0
  29. package/dist/active-state.js +374 -0
  30. package/dist/active-state.js.map +1 -0
  31. package/dist/agent-profile.d.ts.map +1 -1
  32. package/dist/agent-profile.js +11 -0
  33. package/dist/agent-profile.js.map +1 -1
  34. package/dist/capabilities.d.ts +39 -0
  35. package/dist/capabilities.d.ts.map +1 -0
  36. package/dist/capabilities.js +160 -0
  37. package/dist/capabilities.js.map +1 -0
  38. package/dist/capability-anchors.d.ts +45 -0
  39. package/dist/capability-anchors.d.ts.map +1 -0
  40. package/dist/capability-anchors.js +263 -0
  41. package/dist/capability-anchors.js.map +1 -0
  42. package/dist/capability-command.d.ts +4 -0
  43. package/dist/capability-command.d.ts.map +1 -0
  44. package/dist/capability-command.js +164 -0
  45. package/dist/capability-command.js.map +1 -0
  46. package/dist/capability-events.d.ts +79 -0
  47. package/dist/capability-events.d.ts.map +1 -0
  48. package/dist/capability-events.js +478 -0
  49. package/dist/capability-events.js.map +1 -0
  50. package/dist/capability-projection.d.ts +22 -0
  51. package/dist/capability-projection.d.ts.map +1 -0
  52. package/dist/capability-projection.js +273 -0
  53. package/dist/capability-projection.js.map +1 -0
  54. package/dist/capability-protocol.d.ts +21 -0
  55. package/dist/capability-protocol.d.ts.map +1 -0
  56. package/dist/capability-protocol.js +15 -0
  57. package/dist/capability-protocol.js.map +1 -0
  58. package/dist/capability-state.d.ts +74 -0
  59. package/dist/capability-state.d.ts.map +1 -0
  60. package/dist/capability-state.js +43 -0
  61. package/dist/capability-state.js.map +1 -0
  62. package/dist/capability-tool.d.ts +11 -0
  63. package/dist/capability-tool.d.ts.map +1 -0
  64. package/dist/capability-tool.js +25 -0
  65. package/dist/capability-tool.js.map +1 -0
  66. package/dist/capability-web-host.d.ts +11 -0
  67. package/dist/capability-web-host.d.ts.map +1 -0
  68. package/dist/capability-web-host.js +105 -0
  69. package/dist/capability-web-host.js.map +1 -0
  70. package/dist/codecs/capability.d.ts +71 -0
  71. package/dist/codecs/capability.d.ts.map +1 -0
  72. package/dist/codecs/capability.js +363 -0
  73. package/dist/codecs/capability.js.map +1 -0
  74. package/dist/codecs/prompt-stack.d.ts +1 -1
  75. package/dist/codecs/prompt-stack.d.ts.map +1 -1
  76. package/dist/codecs/prompt-stack.js +140 -13
  77. package/dist/codecs/prompt-stack.js.map +1 -1
  78. package/dist/command-contribution/index.d.ts +21 -0
  79. package/dist/command-contribution/index.d.ts.map +1 -0
  80. package/dist/command-contribution/index.js +14 -0
  81. package/dist/command-contribution/index.js.map +1 -0
  82. package/dist/compile-cycle.d.ts +1 -0
  83. package/dist/compile-cycle.d.ts.map +1 -1
  84. package/dist/compile-cycle.js.map +1 -1
  85. package/dist/compiler.d.ts.map +1 -1
  86. package/dist/compiler.js +70 -17
  87. package/dist/compiler.js.map +1 -1
  88. package/dist/forge-command.d.ts +10 -0
  89. package/dist/forge-command.d.ts.map +1 -0
  90. package/dist/forge-command.js +106 -0
  91. package/dist/forge-command.js.map +1 -0
  92. package/dist/index.d.ts +2 -2
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +54 -5
  95. package/dist/index.js.map +1 -1
  96. package/dist/json-fingerprint.d.ts +11 -0
  97. package/dist/json-fingerprint.d.ts.map +1 -0
  98. package/dist/json-fingerprint.js +66 -0
  99. package/dist/json-fingerprint.js.map +1 -0
  100. package/dist/lifecycle.d.ts +14 -0
  101. package/dist/lifecycle.d.ts.map +1 -1
  102. package/dist/lifecycle.js +167 -67
  103. package/dist/lifecycle.js.map +1 -1
  104. package/dist/payload-command.d.ts +2 -2
  105. package/dist/payload-command.d.ts.map +1 -1
  106. package/dist/payload-command.js +80 -26
  107. package/dist/payload-command.js.map +1 -1
  108. package/dist/payload-state.d.ts +1 -0
  109. package/dist/payload-state.d.ts.map +1 -1
  110. package/dist/payload-state.js +1 -0
  111. package/dist/payload-state.js.map +1 -1
  112. package/dist/policy.d.ts +2 -1
  113. package/dist/policy.d.ts.map +1 -1
  114. package/dist/policy.js +3 -0
  115. package/dist/policy.js.map +1 -1
  116. package/dist/preset-command.d.ts.map +1 -1
  117. package/dist/preset-command.js +92 -35
  118. package/dist/preset-command.js.map +1 -1
  119. package/dist/preview-text.d.ts +5 -0
  120. package/dist/preview-text.d.ts.map +1 -0
  121. package/dist/preview-text.js +27 -0
  122. package/dist/preview-text.js.map +1 -0
  123. package/dist/preview.d.ts +18 -1
  124. package/dist/preview.d.ts.map +1 -1
  125. package/dist/preview.js +132 -97
  126. package/dist/preview.js.map +1 -1
  127. package/dist/profile-command.js +68 -9
  128. package/dist/profile-command.js.map +1 -1
  129. package/dist/regex.d.ts.map +1 -1
  130. package/dist/regex.js +5 -0
  131. package/dist/regex.js.map +1 -1
  132. package/dist/render-helpers.d.ts.map +1 -1
  133. package/dist/render-helpers.js +2 -0
  134. package/dist/render-helpers.js.map +1 -1
  135. package/dist/repositories/capability.d.ts +53 -0
  136. package/dist/repositories/capability.d.ts.map +1 -0
  137. package/dist/repositories/capability.js +294 -0
  138. package/dist/repositories/capability.js.map +1 -0
  139. package/dist/runtime/capability-runtime.d.ts +91 -0
  140. package/dist/runtime/capability-runtime.d.ts.map +1 -0
  141. package/dist/runtime/capability-runtime.js +967 -0
  142. package/dist/runtime/capability-runtime.js.map +1 -0
  143. package/dist/runtime/tool-policy-runtime.d.ts +8 -0
  144. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  145. package/dist/runtime/tool-policy-runtime.js +171 -30
  146. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  147. package/dist/session-adapter.d.ts +13 -0
  148. package/dist/session-adapter.d.ts.map +1 -1
  149. package/dist/session-adapter.js +110 -0
  150. package/dist/session-adapter.js.map +1 -1
  151. package/dist/session-usage.d.ts +65 -0
  152. package/dist/session-usage.d.ts.map +1 -0
  153. package/dist/session-usage.js +134 -0
  154. package/dist/session-usage.js.map +1 -0
  155. package/dist/subagent/fingerprints.d.ts +3 -15
  156. package/dist/subagent/fingerprints.d.ts.map +1 -1
  157. package/dist/subagent/fingerprints.js +5 -69
  158. package/dist/subagent/fingerprints.js.map +1 -1
  159. package/dist/subagent/index.d.ts +2 -0
  160. package/dist/subagent/index.d.ts.map +1 -1
  161. package/dist/subagent/index.js +2 -0
  162. package/dist/subagent/index.js.map +1 -1
  163. package/dist/subagent-host.d.ts +2 -2
  164. package/dist/subagent-host.d.ts.map +1 -1
  165. package/dist/subagent-host.js +13 -1
  166. package/dist/subagent-host.js.map +1 -1
  167. package/dist/types.d.ts +6 -1
  168. package/dist/types.d.ts.map +1 -1
  169. package/dist/types.js.map +1 -1
  170. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  171. package/dist/web-editor/client-script.generated.js +1 -1
  172. package/dist/web-editor/client-script.generated.js.map +1 -1
  173. package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
  174. package/dist/web-editor/client-styles.generated.js +1 -1
  175. package/dist/web-editor/client-styles.generated.js.map +1 -1
  176. package/dist/web-editor/server.d.ts.map +1 -1
  177. package/dist/web-editor/server.js +152 -4
  178. package/dist/web-editor/server.js.map +1 -1
  179. package/dist/web-editor/styles.d.ts.map +1 -1
  180. package/dist/web-editor/styles.js +476 -149
  181. package/dist/web-editor/styles.js.map +1 -1
  182. package/dist/web-editor/types.d.ts +81 -1
  183. package/dist/web-editor/types.d.ts.map +1 -1
  184. package/dist/web-host.d.ts +7 -0
  185. package/dist/web-host.d.ts.map +1 -1
  186. package/dist/web-host.js +168 -5
  187. package/dist/web-host.js.map +1 -1
  188. package/dist/workspace.d.ts +11 -0
  189. package/dist/workspace.d.ts.map +1 -1
  190. package/dist/workspace.js +63 -5
  191. package/dist/workspace.js.map +1 -1
  192. package/docs/README.md +4 -0
  193. package/docs/design/README.md +3 -1
  194. package/docs/design/architecture-0.5.md +22 -0
  195. package/docs/design/archive/2026-09-12-system-update-design.md +229 -0
  196. package/docs/design/pi-forge-system-update-design-notes.md +157 -229
  197. package/docs/development/release.md +20 -20
  198. package/docs/development/roadmap.md +17 -2
  199. package/docs/development/scoped-global-profiles-stacks.md +1 -1
  200. package/docs/development/setup.md +1 -1
  201. package/docs/getting-started.md +1 -1
  202. package/docs/guides/delegation.md +22 -20
  203. package/docs/guides/migrating-to-0.5.md +29 -0
  204. package/docs/guides/use-cases.md +6 -2
  205. package/docs/guides/web-editor.md +73 -5
  206. package/docs/reference/active-state.md +77 -0
  207. package/docs/reference/capabilities.md +259 -0
  208. package/docs/reference/commands.md +52 -24
  209. package/docs/reference/configuration.md +4 -2
  210. package/docs/reference/features.md +70 -4
  211. package/docs/reference/provider-support.md +67 -0
  212. package/docs/reference/public-api.md +49 -3
  213. package/docs/reference/session-cache.md +112 -0
  214. package/docs/reference/stack-schema.md +18 -4
  215. package/docs/reference/subagent-host-port.md +8 -0
  216. package/docs/zh-CN/README.md +3 -0
  217. package/docs/zh-CN/getting-started.md +1 -1
  218. package/docs/zh-CN/guides/delegation.md +22 -10
  219. package/docs/zh-CN/guides/migrating-to-0.5.md +29 -0
  220. package/docs/zh-CN/guides/web-editor.md +74 -7
  221. package/docs/zh-CN/reference/capabilities.md +259 -0
  222. package/docs/zh-CN/reference/commands.md +61 -33
  223. package/docs/zh-CN/reference/provider-support.md +67 -0
  224. package/docs/zh-CN/reference/session-cache.md +112 -0
  225. package/examples/capabilities/review.json +12 -0
  226. package/examples/capabilities/write-tools.json +15 -0
  227. package/examples/read-first-worker-prompt-stack.json +49 -0
  228. package/package.json +16 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../../src/runtime/capability-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import type { BuildSystemPromptOptions, ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
2
+ import { type CapabilityToolPatch } from "../codecs/capability.ts";
2
3
  import type { LoadedPromptStack } from "../types.ts";
3
4
  import type { PromptStack } from "../types.ts";
4
5
  import type { WebEditorPolicyResources } from "../web-editor/index.ts";
6
+ export interface ToolPolicySnapshot {
7
+ baseline: string[];
8
+ lastApplied: string[];
9
+ }
5
10
  export interface ToolPolicyRuntime {
6
11
  sync(ctx?: ExtensionContext): void;
7
12
  restore(ctx?: ExtensionContext): void;
@@ -9,6 +14,9 @@ export interface ToolPolicyRuntime {
9
14
  previewToolNames(stack: PromptStack | undefined): string[];
10
15
  previewOptions(base: BuildSystemPromptOptions, stack: PromptStack): BuildSystemPromptOptions;
11
16
  policyResources(options: BuildSystemPromptOptions): WebEditorPolicyResources;
17
+ snapshot(): ToolPolicySnapshot;
18
+ setCapabilities(patches: readonly CapabilityToolPatch[], restored?: ToolPolicySnapshot): void;
19
+ validateCapabilities(patches: readonly CapabilityToolPatch[]): string | undefined;
12
20
  }
13
21
  export declare function createToolPolicyRuntime(pi: ExtensionAPI, getActiveStack: () => LoadedPromptStack | undefined): ToolPolicyRuntime;
14
22
  export declare function reconcileToolPolicyBaseline(baseline: string[], lastApplied: string[], current: string[]): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tool-policy-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/tool-policy-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEhH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEhG,MAAM,WAAW,iBAAiB;IACjC,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3D,cAAc,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,GAAG,wBAAwB,CAAC;IAC7F,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAAC;CAC7E;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,CA0HhI;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBlH"}
1
+ {"version":3,"file":"tool-policy-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/tool-policy-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3D,cAAc,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,GAAG,wBAAwB,CAAC;IAC7F,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAAC;IAC7E,QAAQ,IAAI,kBAAkB,CAAC;IAC/B,eAAe,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9F,oBAAoB,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;CAClF;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,CAoPhI;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBlH"}
@@ -1,7 +1,10 @@
1
- import { applyResourcePolicy, hasResourcePolicy } from "../policy.js";
1
+ import { basename } from "node:path";
2
+ import { isValidToolName } from "../codecs/capability.js";
3
+ import { applyResourcePolicy, hasResourcePolicy, hasToolSelectionPolicy } from "../policy.js";
2
4
  export function createToolPolicyRuntime(pi, getActiveStack) {
3
5
  let baseline;
4
6
  let lastApplied;
7
+ let capabilityPatches = [];
5
8
  function filterKnownTools(names) {
6
9
  const known = new Set(pi.getAllTools().map((tool) => tool.name));
7
10
  if (known.size === 0)
@@ -16,9 +19,41 @@ export function createToolPolicyRuntime(pi, getActiveStack) {
16
19
  ? pi.getAllTools().map((tool) => tool.name).filter((name) => typeof name === "string" && !!name)
17
20
  : filterKnownTools(activeBaseline);
18
21
  }
22
+ function computeEffectiveTools(policy, sourceBaseline) {
23
+ const policyActive = hasResourcePolicy(policy);
24
+ const sourceTools = filterKnownTools(sourceBaseline);
25
+ const registered = new Set(pi.getAllTools().map((tool) => tool.name));
26
+ const baseList = Array.isArray(policy?.initial)
27
+ ? policy.initial.filter((name) => registered.has(name))
28
+ : policyActive
29
+ ? applyResourcePolicy(policySourceTools(policy, sourceTools), policy)
30
+ : sourceTools;
31
+ const effective = [...baseList];
32
+ for (const patch of capabilityPatches) {
33
+ for (const name of patch.add) {
34
+ if (registered.has(name) && !effective.includes(name)) {
35
+ effective.push(name);
36
+ }
37
+ }
38
+ }
39
+ const allRemoved = new Set();
40
+ for (const patch of capabilityPatches) {
41
+ for (const name of patch.remove) {
42
+ allRemoved.add(name);
43
+ }
44
+ }
45
+ let result = effective.filter((name) => !allRemoved.has(name));
46
+ if (policyActive) {
47
+ result = applyResourcePolicy(result, policy);
48
+ }
49
+ result = result.filter((name) => !allRemoved.has(name));
50
+ return result;
51
+ }
19
52
  function sync(ctx) {
20
53
  const policy = getActiveStack()?.stack.tools;
21
- if (!hasResourcePolicy(policy)) {
54
+ const selectionActive = hasToolSelectionPolicy(policy);
55
+ const capabilitiesActive = capabilityPatches.length > 0;
56
+ if (!selectionActive && !capabilitiesActive) {
22
57
  restore(ctx);
23
58
  return;
24
59
  }
@@ -27,7 +62,7 @@ export function createToolPolicyRuntime(pi, getActiveStack) {
27
62
  baseline = reconcileToolPolicyBaseline(baseline, lastApplied, currentTools);
28
63
  const sourceTools = baseline ?? currentTools;
29
64
  baseline ??= [...sourceTools];
30
- const nextTools = applyResourcePolicy(policySourceTools(policy, sourceTools), policy);
65
+ const nextTools = computeEffectiveTools(policy, sourceTools);
31
66
  if (!sameStringSet(currentTools, nextTools))
32
67
  pi.setActiveTools(nextTools);
33
68
  lastApplied = [...nextTools];
@@ -47,39 +82,104 @@ export function createToolPolicyRuntime(pi, getActiveStack) {
47
82
  baseline = undefined;
48
83
  }
49
84
  lastApplied = undefined;
85
+ capabilityPatches = [];
50
86
  if (ctx)
51
87
  ctx.ui.setStatus("pi-forge-tools", undefined);
52
88
  }
89
+ function snapshot() {
90
+ return {
91
+ baseline: baseline ? [...baseline] : [...pi.getActiveTools()],
92
+ lastApplied: lastApplied ? [...lastApplied] : [...pi.getActiveTools()],
93
+ };
94
+ }
95
+ function validateCapabilities(patches) {
96
+ if (!Array.isArray(patches)) {
97
+ return "Capability capability patches must be an array.";
98
+ }
99
+ const registered = new Set(pi.getAllTools().map((tool) => tool.name));
100
+ const activeStack = getActiveStack();
101
+ const policy = activeStack?.stack.tools;
102
+ const policyActive = hasResourcePolicy(policy);
103
+ for (const patch of patches) {
104
+ if (!patch || typeof patch !== "object") {
105
+ return "Capability capability patch must be an object.";
106
+ }
107
+ if (!Array.isArray(patch.add) || !Array.isArray(patch.remove)) {
108
+ return "Capability capability patch must have add and remove arrays.";
109
+ }
110
+ for (const name of patch.remove) {
111
+ if (typeof name !== "string" || !isValidToolName(name)) {
112
+ return `Invalid tool name "${name}" in capability remove list.`;
113
+ }
114
+ }
115
+ for (const name of patch.add) {
116
+ if (typeof name !== "string" || !isValidToolName(name)) {
117
+ return `Invalid tool name "${name}" in capability add list.`;
118
+ }
119
+ if (!registered.has(name)) {
120
+ return `Tool "${name}" is not registered.`;
121
+ }
122
+ if (policyActive && activeStack && !applyResourcePolicy([name], policy).includes(name)) {
123
+ return `Tool "${name}" is blocked by prompt stack "${activeStack.stack.id}".`;
124
+ }
125
+ }
126
+ }
127
+ return undefined;
128
+ }
129
+ function setCapabilities(patches, restored) {
130
+ const validationError = validateCapabilities(patches);
131
+ if (validationError)
132
+ throw new Error(validationError);
133
+ if (restored !== undefined) {
134
+ if (!restored || typeof restored !== "object" || !Array.isArray(restored.baseline) || !Array.isArray(restored.lastApplied)) {
135
+ throw new Error("Invalid tool policy snapshot: baseline and lastApplied must be arrays.");
136
+ }
137
+ for (const name of [...restored.baseline, ...restored.lastApplied]) {
138
+ if (typeof name !== "string" || !name || name.length > 1024 || /[\x00-\x1f\x7f]/.test(name)) {
139
+ throw new Error("Invalid tool name in tool policy snapshot.");
140
+ }
141
+ }
142
+ baseline = [...restored.baseline];
143
+ lastApplied = [...restored.lastApplied];
144
+ }
145
+ capabilityPatches = patches.map((patch) => ({ add: [...patch.add], remove: [...patch.remove] }));
146
+ if (restored) {
147
+ const current = filterKnownTools(pi.getActiveTools());
148
+ const expected = computeEffectiveTools(getActiveStack()?.stack.tools, restored.baseline);
149
+ // A crash can land before or after the executable-selection update. Neither
150
+ // known side of this transition is an external tool change. Reconcile only
151
+ // distinguishable third-party differences against the saved applied set.
152
+ if (sameStringSet(current, restored.lastApplied) || sameStringSet(current, expected))
153
+ lastApplied = [...current];
154
+ }
155
+ }
53
156
  function blockReason(toolName) {
54
157
  const active = getActiveStack();
55
- if (!active || !hasResourcePolicy(active.stack.tools))
56
- return undefined;
57
- if (applyResourcePolicy([toolName], active.stack.tools).includes(toolName))
58
- return undefined;
59
- return `Tool "${toolName}" is blocked by prompt stack "${active.stack.id}".`;
158
+ if (active && hasResourcePolicy(active.stack.tools)) {
159
+ if (!applyResourcePolicy([toolName], active.stack.tools).includes(toolName)) {
160
+ return `Tool "${toolName}" is blocked by prompt stack "${active.stack.id}".`;
161
+ }
162
+ }
163
+ const allRemoved = new Set();
164
+ for (const patch of capabilityPatches) {
165
+ for (const name of patch.remove) {
166
+ allRemoved.add(name);
167
+ }
168
+ }
169
+ if (allRemoved.has(toolName)) {
170
+ return `Tool "${toolName}" is blocked by active capability.`;
171
+ }
172
+ return undefined;
60
173
  }
61
174
  function previewToolNames(stack) {
62
175
  const sourceTools = filterKnownTools(baseline ?? pi.getActiveTools());
63
- return stack && hasResourcePolicy(stack.tools)
64
- ? applyResourcePolicy(policySourceTools(stack.tools, sourceTools), stack.tools)
65
- : sourceTools;
176
+ return computeEffectiveTools(stack?.tools, sourceTools);
66
177
  }
67
178
  function previewOptions(base, stack) {
68
- // The captured options may come from a request whose tools were already
69
- // filtered by the active policy (sync() mutates pi's active tools), so
70
- // prefer the pre-policy baseline; without it, fall back from a possibly
71
- // empty snapshot to the session's current tools.
179
+ // Captured prompt options may predate activation OR restoration. The live
180
+ // baseline/current selection is authoritative, including an empty selection.
72
181
  const sessionTools = filterKnownTools(baseline ?? pi.getActiveTools());
73
- const baseSelectedTools = baseline
74
- ? sessionTools
75
- : base.selectedTools?.length
76
- ? [...base.selectedTools]
77
- : sessionTools;
78
- const policyActive = hasResourcePolicy(stack.tools);
79
- const baselineTools = policyActive ? (baseline ?? pi.getActiveTools()) : baseSelectedTools;
80
- const selectedTools = policyActive
81
- ? applyResourcePolicy(policySourceTools(stack.tools, filterKnownTools(baselineTools)), stack.tools)
82
- : baseSelectedTools;
182
+ const selectedTools = computeEffectiveTools(stack.tools, sessionTools);
83
183
  const selectedToolSet = new Set(selectedTools);
84
184
  const toolSnippets = filterToolSnippets(base.toolSnippets ?? {}, selectedToolSet);
85
185
  const toolInfos = pi.getAllTools();
@@ -100,16 +200,21 @@ export function createToolPolicyRuntime(pi, getActiveStack) {
100
200
  return !!name && selectedToolSet.has(name);
101
201
  })
102
202
  .flatMap((tool) => stringArrayValue(tool.promptGuidelines));
103
- const promptGuidelines = baseline || (policyActive && !sameStringSet(baseSelectedTools, selectedTools))
203
+ const promptGuidelines = baseline || capabilityPatches.length > 0 || !sameStringSet(base.selectedTools ?? sessionTools, selectedTools)
104
204
  ? mappedGuidelines
105
205
  : (base.promptGuidelines?.length ? [...base.promptGuidelines] : mappedGuidelines);
106
206
  return { ...base, selectedTools, toolSnippets, promptGuidelines };
107
207
  }
108
208
  function policyResources(options) {
109
- const activeTools = new Set(pi.getActiveTools());
209
+ const current = filterKnownTools(pi.getActiveTools());
210
+ const activeTools = new Set(current);
211
+ const sourceBaseline = baseline && lastApplied
212
+ ? reconcileToolPolicyBaseline(baseline, lastApplied, current)
213
+ : baseline ?? current;
214
+ const baselineTools = new Set(sourceBaseline);
110
215
  const snippets = options.toolSnippets ?? {};
111
216
  const tools = pi.getAllTools()
112
- .map((tool) => normalizeToolResource(tool, activeTools, snippets))
217
+ .map((tool) => normalizeToolResource(tool, activeTools, snippets, baselineTools))
113
218
  .filter(hasPolicyResourceName)
114
219
  .sort(comparePolicyResource);
115
220
  const skills = (options.skills ?? [])
@@ -118,7 +223,17 @@ export function createToolPolicyRuntime(pi, getActiveStack) {
118
223
  .sort(comparePolicyResource);
119
224
  return { tools, skills };
120
225
  }
121
- return { sync, restore, blockReason, previewToolNames, previewOptions, policyResources };
226
+ return {
227
+ sync,
228
+ restore,
229
+ blockReason,
230
+ previewToolNames,
231
+ previewOptions,
232
+ policyResources,
233
+ snapshot,
234
+ setCapabilities,
235
+ validateCapabilities,
236
+ };
122
237
  }
123
238
  export function reconcileToolPolicyBaseline(baseline, lastApplied, current) {
124
239
  const baselineSet = new Set(baseline);
@@ -145,13 +260,15 @@ function filterToolSnippets(snippets, selectedTools) {
145
260
  }
146
261
  return filtered;
147
262
  }
148
- function normalizeToolResource(tool, activeTools, snippets) {
263
+ function normalizeToolResource(tool, activeTools, snippets, baselineTools) {
149
264
  const name = String(tool.name ?? "");
150
265
  return {
151
266
  name,
152
267
  description: stringValue(tool.description) ?? stringValue(tool.promptSnippet) ?? snippets[name],
153
268
  source: sourceLabel(tool.sourceInfo),
269
+ group: sourceGroup(tool.sourceInfo),
154
270
  active: activeTools.has(name),
271
+ baselineActive: baselineTools.has(name),
155
272
  };
156
273
  }
157
274
  function normalizeSkillResource(skill) {
@@ -177,6 +294,30 @@ function sourceLabel(value) {
177
294
  return `${source}: ${path}`;
178
295
  return source ?? path;
179
296
  }
297
+ function sourceGroup(value) {
298
+ if (!value || typeof value !== "object")
299
+ return undefined;
300
+ const info = value;
301
+ const source = stringValue(info.source);
302
+ const path = stringValue(info.path);
303
+ const scope = stringValue(info.scope);
304
+ const origin = stringValue(info.origin);
305
+ const baseDir = stringValue(info.baseDir);
306
+ if (source === "builtin" || path?.startsWith("<builtin:")) {
307
+ return { id: "builtin", label: "Pi" };
308
+ }
309
+ if (origin === "package") {
310
+ if (scope && source && baseDir)
311
+ return { id: JSON.stringify(["package", scope, source, baseDir]), label: source };
312
+ if (path)
313
+ return { id: JSON.stringify(["package-path", scope, source, path]), label: source ?? path };
314
+ return undefined;
315
+ }
316
+ if (origin === "top-level" && path) {
317
+ return { id: JSON.stringify(["top-level", scope, source, path]), label: `${basename(path)}${scope ? ` (${scope})` : ""}` };
318
+ }
319
+ return undefined;
320
+ }
180
321
  function comparePolicyResource(a, b) {
181
322
  return a.name.localeCompare(b.name);
182
323
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-policy-runtime.js","sourceRoot":"","sources":["../../src/runtime/tool-policy-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-policy-runtime.js","sourceRoot":"","sources":["../../src/runtime/tool-policy-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
2
2
  import { type AgentProfileProvenance } from "./agent-profile.ts";
3
3
  import type { PromptStackDiagnostic } from "./types.ts";
4
+ import { type CapabilityEvent } from "./capability-events.ts";
5
+ import { type CapabilityHistory } from "./capability-protocol.ts";
6
+ import type { ToolPolicySnapshot } from "./runtime/tool-policy-runtime.ts";
4
7
  export declare const STATE_ENTRY_TYPE = "pi-forge-prompt-stack-state";
5
8
  export declare const PROFILE_ENTRY_TYPE = "pi-forge-agent-profile-state";
6
9
  /**
@@ -14,4 +17,14 @@ export declare function getRestoredProfileProvenance(ctx: ExtensionContext): Age
14
17
  export declare function getLegacyVariableStateDiagnostic(ctx: ExtensionContext): PromptStackDiagnostic[];
15
18
  export declare function persistActiveSelection(pi: ExtensionAPI, activeStackId: string): void;
16
19
  export declare function persistProfileProvenance(pi: ExtensionAPI, provenance: AgentProfileProvenance | null): void;
20
+ export interface CapabilitySessionHistory extends CapabilityHistory {
21
+ tools?: ToolPolicySnapshot;
22
+ /** First-occurrence event index covered by a stored anchor, not a delivery acknowledgment. */
23
+ lastAnchoredIndex: number;
24
+ }
25
+ /** Branch-local semantic history; compaction positions, not wall clocks, cut the checkpoint. */
26
+ export declare function readCapabilitySession(ctx: ExtensionContext): CapabilitySessionHistory;
27
+ export declare function persistCapabilityDelivery(pi: ExtensionAPI, throughEventId: string): void;
28
+ export declare function persistCapabilityEvent(pi: ExtensionAPI, event: CapabilityEvent): void;
29
+ export declare function persistCapabilityTools(pi: ExtensionAPI, snapshot: ToolPolicySnapshot): void;
17
30
  //# sourceMappingURL=session-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-adapter.d.ts","sourceRoot":"","sources":["../src/session-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,iCAAiC,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAQxE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAS7E;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,SAAS,CAStG;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,gBAAgB,GAAG,qBAAqB,EAAE,CAW/F;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAE1G"}
1
+ {"version":3,"file":"session-adapter.d.ts","sourceRoot":"","sources":["../src/session-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAiD,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAKN,KAAK,iBAAiB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,iCAAiC,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAQxE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAS7E;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,SAAS,CAStG;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,gBAAgB,GAAG,qBAAqB,EAAE,CAW/F;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAE1G;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IAClE,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,8FAA8F;IAC9F,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,wBAAwB,CAqErF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAOxF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAIrF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAI3F"}
@@ -1,4 +1,7 @@
1
1
  import { isAgentProfileProvenance } from "./agent-profile.js";
2
+ import { decodeCapabilityEvent, reduceCapabilityEvents } from "./capability-events.js";
3
+ import { CAPABILITY_DELIVERY_TYPE, CAPABILITY_EVENT_ENTRY, CAPABILITY_TOOLS_ENTRY, } from "./capability-protocol.js";
4
+ import { validateCapabilityAnchorData } from "./capability-anchors.js";
2
5
  export const STATE_ENTRY_TYPE = "pi-forge-prompt-stack-state";
3
6
  export const PROFILE_ENTRY_TYPE = "pi-forge-agent-profile-state";
4
7
  /**
@@ -54,4 +57,111 @@ export function persistActiveSelection(pi, activeStackId) {
54
57
  export function persistProfileProvenance(pi, provenance) {
55
58
  pi.appendEntry(PROFILE_ENTRY_TYPE, { provenance });
56
59
  }
60
+ /** Branch-local semantic history; compaction positions, not wall clocks, cut the checkpoint. */
61
+ export function readCapabilitySession(ctx) {
62
+ const events = [];
63
+ let checkpointThrough;
64
+ let toolsData;
65
+ let lastNewEventId;
66
+ const seenEvents = new Set();
67
+ const eventIndexMap = new Map();
68
+ let lastAnchoredIndex = -1;
69
+ for (const raw of getCurrentBranchEntries(ctx)) {
70
+ if (!raw || typeof raw !== "object")
71
+ continue;
72
+ const entry = raw;
73
+ if (entry.type === "compaction")
74
+ checkpointThrough = lastNewEventId;
75
+ if (entry.type === "custom") {
76
+ if (entry.customType === "pi-forge-instruction-event" || entry.customType === "pi-forge-instruction-tools" || entry.customType === "pi-forge-instruction-delivery") {
77
+ throw new Error("This session contains legacy pre-capability state. Start a new session; old capability state is not restored.");
78
+ }
79
+ if (entry.customType === CAPABILITY_EVENT_ENTRY) {
80
+ const decoded = decodeCapabilityEvent(entry.data);
81
+ if (!decoded.ok)
82
+ throw new Error(`Invalid Forge capability history: ${decoded.error}`);
83
+ events.push(decoded.event);
84
+ if (!seenEvents.has(decoded.event.eventId)) {
85
+ seenEvents.add(decoded.event.eventId);
86
+ lastNewEventId = decoded.event.eventId;
87
+ eventIndexMap.set(decoded.event.eventId, events.length - 1);
88
+ }
89
+ }
90
+ else if (entry.customType === CAPABILITY_TOOLS_ENTRY) {
91
+ toolsData = entry.data;
92
+ }
93
+ else if (entry.customType === CAPABILITY_DELIVERY_TYPE) {
94
+ const anchorData = validateCapabilityAnchorData(entry.data);
95
+ const cursorIndex = eventIndexMap.get(anchorData.throughEventId);
96
+ if (cursorIndex === undefined) {
97
+ throw new Error(`Invalid Forge capability delivery anchor: unknown or future cursor "${anchorData.throughEventId}"`);
98
+ }
99
+ if (cursorIndex < lastAnchoredIndex) {
100
+ throw new Error(`Invalid Forge capability delivery anchor: out-of-order cursor "${anchorData.throughEventId}" (index ${cursorIndex} < ${lastAnchoredIndex})`);
101
+ }
102
+ lastAnchoredIndex = cursorIndex;
103
+ }
104
+ }
105
+ else if (entry.type === "custom_message" && entry.customType === "pi-forge-instruction-delivery") {
106
+ throw new Error("This session contains legacy pre-capability delivery state. Start a new session; old capability state is not restored.");
107
+ }
108
+ else if (entry.type === "custom_message" && entry.customType === CAPABILITY_DELIVERY_TYPE) {
109
+ const details = entry.details;
110
+ if (details && typeof details === "object" && "throughEventId" in details) {
111
+ const cursorId = details.throughEventId;
112
+ if (typeof cursorId === "string") {
113
+ const cursorIndex = eventIndexMap.get(cursorId);
114
+ if (cursorIndex !== undefined) {
115
+ if (cursorIndex >= lastAnchoredIndex) {
116
+ lastAnchoredIndex = cursorIndex;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ const reduced = reduceCapabilityEvents(events);
124
+ if (!reduced.ok)
125
+ throw new Error(`Invalid Forge capability event ${reduced.index}: ${reduced.error}`);
126
+ return {
127
+ events,
128
+ checkpointThrough,
129
+ lastAnchoredIndex,
130
+ ...(toolsData === undefined ? {} : { tools: decodeCapabilityTools(toolsData) }),
131
+ };
132
+ }
133
+ export function persistCapabilityDelivery(pi, throughEventId) {
134
+ const data = {
135
+ schemaVersion: 1,
136
+ throughEventId,
137
+ };
138
+ validateCapabilityAnchorData(data);
139
+ pi.appendEntry(CAPABILITY_DELIVERY_TYPE, data);
140
+ }
141
+ export function persistCapabilityEvent(pi, event) {
142
+ const decoded = decodeCapabilityEvent(event);
143
+ if (!decoded.ok)
144
+ throw new Error(decoded.error);
145
+ pi.appendEntry(CAPABILITY_EVENT_ENTRY, decoded.event);
146
+ }
147
+ export function persistCapabilityTools(pi, snapshot) {
148
+ const data = { schemaVersion: 1, baseline: [...snapshot.baseline], lastApplied: [...snapshot.lastApplied] };
149
+ decodeCapabilityTools(data);
150
+ pi.appendEntry(CAPABILITY_TOOLS_ENTRY, data);
151
+ }
152
+ function decodeCapabilityTools(raw) {
153
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
154
+ throw new Error("Invalid Forge tool baseline.");
155
+ const data = raw;
156
+ if (data.schemaVersion !== 1 || Object.keys(data).some((key) => !["schemaVersion", "baseline", "lastApplied"].includes(key))) {
157
+ throw new Error("Unsupported Forge tool baseline schema.");
158
+ }
159
+ for (const key of ["baseline", "lastApplied"]) {
160
+ if (!Array.isArray(data[key]) || data[key].length > 4096
161
+ || data[key].some((value) => typeof value !== "string" || !value || value.length > 1024 || /[\x00-\x1f\x7f]/.test(value))) {
162
+ throw new Error(`Invalid Forge tool baseline ${key}.`);
163
+ }
164
+ }
165
+ return { baseline: [...data.baseline], lastApplied: [...data.lastApplied] };
166
+ }
57
167
  //# sourceMappingURL=session-adapter.js.map