@zihanw/pi-forge 0.5.4 → 0.5.6
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 +83 -0
- package/README.md +67 -103
- package/README.zh-CN.md +67 -95
- package/assets/pi-forge-header-concept-1.png +0 -0
- package/assets/readme/PROVENANCE.md +95 -0
- 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/dist/active-state.d.ts +148 -0
- package/dist/active-state.d.ts.map +1 -0
- package/dist/active-state.js +374 -0
- package/dist/active-state.js.map +1 -0
- package/dist/agent-profile.d.ts +1 -0
- package/dist/agent-profile.d.ts.map +1 -1
- package/dist/agent-profile.js +20 -14
- package/dist/agent-profile.js.map +1 -1
- package/dist/capabilities.d.ts +39 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +160 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/capability-anchors.d.ts +45 -0
- package/dist/capability-anchors.d.ts.map +1 -0
- package/dist/capability-anchors.js +263 -0
- package/dist/capability-anchors.js.map +1 -0
- package/dist/capability-command.d.ts +4 -0
- package/dist/capability-command.d.ts.map +1 -0
- package/dist/capability-command.js +164 -0
- package/dist/capability-command.js.map +1 -0
- package/dist/capability-events.d.ts +79 -0
- package/dist/capability-events.d.ts.map +1 -0
- package/dist/capability-events.js +478 -0
- package/dist/capability-events.js.map +1 -0
- package/dist/capability-projection.d.ts +22 -0
- package/dist/capability-projection.d.ts.map +1 -0
- package/dist/capability-projection.js +273 -0
- package/dist/capability-projection.js.map +1 -0
- package/dist/capability-protocol.d.ts +21 -0
- package/dist/capability-protocol.d.ts.map +1 -0
- package/dist/capability-protocol.js +15 -0
- package/dist/capability-protocol.js.map +1 -0
- package/dist/capability-state.d.ts +74 -0
- package/dist/capability-state.d.ts.map +1 -0
- package/dist/capability-state.js +43 -0
- package/dist/capability-state.js.map +1 -0
- package/dist/capability-tool.d.ts +11 -0
- package/dist/capability-tool.d.ts.map +1 -0
- package/dist/capability-tool.js +25 -0
- package/dist/capability-tool.js.map +1 -0
- package/dist/capability-web-host.d.ts +11 -0
- package/dist/capability-web-host.d.ts.map +1 -0
- package/dist/capability-web-host.js +105 -0
- package/dist/capability-web-host.js.map +1 -0
- package/dist/codecs/capability.d.ts +71 -0
- package/dist/codecs/capability.d.ts.map +1 -0
- package/dist/codecs/capability.js +363 -0
- package/dist/codecs/capability.js.map +1 -0
- package/dist/codecs/prompt-stack.d.ts +1 -1
- package/dist/codecs/prompt-stack.d.ts.map +1 -1
- package/dist/codecs/prompt-stack.js +140 -13
- package/dist/codecs/prompt-stack.js.map +1 -1
- package/dist/command-contribution/index.d.ts +21 -0
- package/dist/command-contribution/index.d.ts.map +1 -0
- package/dist/command-contribution/index.js +14 -0
- package/dist/command-contribution/index.js.map +1 -0
- package/dist/compile-cycle.d.ts +1 -0
- package/dist/compile-cycle.d.ts.map +1 -1
- package/dist/compile-cycle.js.map +1 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +81 -17
- package/dist/compiler.js.map +1 -1
- package/dist/forge-command.d.ts +10 -0
- package/dist/forge-command.d.ts.map +1 -0
- package/dist/forge-command.js +106 -0
- package/dist/forge-command.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -5
- package/dist/index.js.map +1 -1
- package/dist/json-fingerprint.d.ts +11 -0
- package/dist/json-fingerprint.d.ts.map +1 -0
- package/dist/json-fingerprint.js +66 -0
- package/dist/json-fingerprint.js.map +1 -0
- package/dist/lifecycle.d.ts +14 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +167 -67
- package/dist/lifecycle.js.map +1 -1
- package/dist/payload-command.d.ts +2 -2
- package/dist/payload-command.d.ts.map +1 -1
- package/dist/payload-command.js +80 -26
- package/dist/payload-command.js.map +1 -1
- package/dist/payload-state.d.ts +1 -0
- package/dist/payload-state.d.ts.map +1 -1
- package/dist/payload-state.js +1 -0
- package/dist/payload-state.js.map +1 -1
- package/dist/policy.d.ts +2 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +3 -0
- package/dist/policy.js.map +1 -1
- package/dist/preset-command.d.ts +1 -0
- package/dist/preset-command.d.ts.map +1 -1
- package/dist/preset-command.js +94 -36
- package/dist/preset-command.js.map +1 -1
- package/dist/preview-text.d.ts +5 -0
- package/dist/preview-text.d.ts.map +1 -0
- package/dist/preview-text.js +27 -0
- package/dist/preview-text.js.map +1 -0
- package/dist/preview.d.ts +18 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +132 -97
- package/dist/preview.js.map +1 -1
- package/dist/profile-command.js +68 -9
- package/dist/profile-command.js.map +1 -1
- package/dist/regex.d.ts.map +1 -1
- package/dist/regex.js +5 -0
- package/dist/regex.js.map +1 -1
- package/dist/render-helpers.d.ts.map +1 -1
- package/dist/render-helpers.js +2 -0
- package/dist/render-helpers.js.map +1 -1
- package/dist/repositories/capability.d.ts +53 -0
- package/dist/repositories/capability.d.ts.map +1 -0
- package/dist/repositories/capability.js +294 -0
- package/dist/repositories/capability.js.map +1 -0
- package/dist/runtime/capability-runtime.d.ts +93 -0
- package/dist/runtime/capability-runtime.d.ts.map +1 -0
- package/dist/runtime/capability-runtime.js +987 -0
- package/dist/runtime/capability-runtime.js.map +1 -0
- package/dist/runtime/profile-runtime.d.ts.map +1 -1
- package/dist/runtime/profile-runtime.js +10 -9
- package/dist/runtime/profile-runtime.js.map +1 -1
- package/dist/runtime/prompt-stack-runtime.d.ts +7 -4
- package/dist/runtime/prompt-stack-runtime.d.ts.map +1 -1
- package/dist/runtime/prompt-stack-runtime.js +47 -11
- package/dist/runtime/prompt-stack-runtime.js.map +1 -1
- package/dist/runtime/tool-policy-runtime.d.ts +10 -0
- package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
- package/dist/runtime/tool-policy-runtime.js +171 -30
- package/dist/runtime/tool-policy-runtime.js.map +1 -1
- package/dist/session-adapter.d.ts +13 -0
- package/dist/session-adapter.d.ts.map +1 -1
- package/dist/session-adapter.js +110 -0
- package/dist/session-adapter.js.map +1 -1
- package/dist/session-usage.d.ts +65 -0
- package/dist/session-usage.d.ts.map +1 -0
- package/dist/session-usage.js +134 -0
- package/dist/session-usage.js.map +1 -0
- package/dist/subagent/fingerprints.d.ts +3 -15
- package/dist/subagent/fingerprints.d.ts.map +1 -1
- package/dist/subagent/fingerprints.js +5 -69
- package/dist/subagent/fingerprints.js.map +1 -1
- package/dist/subagent/index.d.ts +2 -0
- package/dist/subagent/index.d.ts.map +1 -1
- package/dist/subagent/index.js +2 -0
- package/dist/subagent/index.js.map +1 -1
- package/dist/subagent-host.d.ts +2 -2
- package/dist/subagent-host.d.ts.map +1 -1
- package/dist/subagent-host.js +13 -1
- package/dist/subagent-host.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/web-editor/client-script.generated.d.ts.map +1 -1
- package/dist/web-editor/client-script.generated.js +1 -1
- package/dist/web-editor/client-script.generated.js.map +1 -1
- package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
- package/dist/web-editor/client-styles.generated.js +1 -1
- package/dist/web-editor/client-styles.generated.js.map +1 -1
- package/dist/web-editor/server.d.ts.map +1 -1
- package/dist/web-editor/server.js +152 -4
- package/dist/web-editor/server.js.map +1 -1
- package/dist/web-editor/styles.d.ts.map +1 -1
- package/dist/web-editor/styles.js +573 -165
- package/dist/web-editor/styles.js.map +1 -1
- package/dist/web-editor/types.d.ts +81 -1
- package/dist/web-editor/types.d.ts.map +1 -1
- package/dist/web-host.d.ts +9 -0
- package/dist/web-host.d.ts.map +1 -1
- package/dist/web-host.js +210 -11
- package/dist/web-host.js.map +1 -1
- package/dist/workspace.d.ts +11 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +63 -5
- package/dist/workspace.js.map +1 -1
- package/docs/README.md +4 -0
- package/docs/design/README.md +3 -1
- package/docs/design/architecture-0.5.md +22 -0
- package/docs/design/archive/2026-09-12-system-update-design.md +229 -0
- package/docs/design/pi-forge-system-update-design-notes.md +157 -229
- package/docs/development/release.md +20 -20
- package/docs/development/roadmap.md +21 -2
- package/docs/development/scoped-global-profiles-stacks.md +1 -1
- package/docs/development/setup.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/guides/delegation.md +22 -20
- package/docs/guides/migrating-to-0.5.md +29 -0
- package/docs/guides/use-cases.md +6 -2
- package/docs/guides/web-editor.md +74 -5
- package/docs/reference/active-state.md +77 -0
- package/docs/reference/capabilities.md +259 -0
- package/docs/reference/commands.md +52 -24
- package/docs/reference/configuration.md +4 -2
- package/docs/reference/features.md +70 -4
- package/docs/reference/provider-support.md +67 -0
- package/docs/reference/public-api.md +49 -3
- package/docs/reference/session-cache.md +112 -0
- package/docs/reference/stack-schema.md +18 -4
- package/docs/reference/subagent-host-port.md +8 -0
- package/docs/zh-CN/README.md +3 -0
- package/docs/zh-CN/getting-started.md +1 -1
- package/docs/zh-CN/guides/delegation.md +22 -10
- package/docs/zh-CN/guides/migrating-to-0.5.md +29 -0
- package/docs/zh-CN/guides/web-editor.md +75 -7
- package/docs/zh-CN/reference/capabilities.md +259 -0
- package/docs/zh-CN/reference/commands.md +61 -33
- package/docs/zh-CN/reference/provider-support.md +67 -0
- package/docs/zh-CN/reference/session-cache.md +112 -0
- package/examples/capabilities/review.json +12 -0
- package/examples/capabilities/write-tools.json +15 -0
- package/examples/read-first-worker-prompt-stack.json +49 -0
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/profile-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,
|
|
1
|
+
{"version":3,"file":"profile-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/profile-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAKN,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;IACxF,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,wBAAgB,oBAAoB,CACnC,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE;IACL,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACnE,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC1C,GACC,cAAc,CA8DhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { findAutoActivateAgentProfileCandidates, isResolvedAgentProfileUsable, renderAgentProfileDiagnostics, resolveAgentProfile, } from "../agent-profile.js";
|
|
2
2
|
import { chooseDefaultStack } from "../loader.js";
|
|
3
3
|
import { applyResolvedAgentProfile } from "../profile-service.js";
|
|
4
4
|
import { formatResourceKey } from "../resource-identity.js";
|
|
@@ -21,19 +21,20 @@ export function createProfileRuntime(pi, workspace, deps) {
|
|
|
21
21
|
if (!ctx.isProjectTrusted())
|
|
22
22
|
return;
|
|
23
23
|
const snapshot = workspace.snapshot();
|
|
24
|
-
const
|
|
25
|
-
if (
|
|
26
|
-
if (hasAutoActivateAgentProfile(snapshot.profiles)) {
|
|
27
|
-
workspace.setActiveStack(undefined);
|
|
28
|
-
deps.updateStatus(ctx);
|
|
29
|
-
ctx.ui.notify("pi-forge: multiple agent profiles request auto-activation; no profile or fallback preset was applied.", "error");
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
24
|
+
const candidates = findAutoActivateAgentProfileCandidates(snapshot.profiles);
|
|
25
|
+
if (candidates.length === 0) {
|
|
32
26
|
const fallback = chooseDefaultStack([...snapshot.stacks]);
|
|
33
27
|
workspace.setActiveStack(fallback ? formatResourceKey(fallback.key) : undefined);
|
|
34
28
|
deps.updateStatus(ctx);
|
|
35
29
|
return;
|
|
36
30
|
}
|
|
31
|
+
if (candidates.length > 1) {
|
|
32
|
+
workspace.setActiveStack(undefined);
|
|
33
|
+
deps.updateStatus(ctx);
|
|
34
|
+
ctx.ui.notify("pi-forge: multiple agent profiles request auto-activation; no profile or fallback preset was applied.", "error");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const target = candidates[0];
|
|
37
38
|
const resolved = resolveProfile(target, ctx);
|
|
38
39
|
if (!isResolvedAgentProfileUsable(resolved) || !resolved.model) {
|
|
39
40
|
workspace.setActiveStack(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runtime.js","sourceRoot":"","sources":["../../src/runtime/profile-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACN,
|
|
1
|
+
{"version":3,"file":"profile-runtime.js","sourceRoot":"","sources":["../../src/runtime/profile-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACN,sCAAsC,EACtC,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAS5D,MAAM,UAAU,oBAAoB,CACnC,EAAgB,EAChB,SAAyB,EACzB,IAGC;IAED,SAAS,cAAc,CAAC,GAAqB;QAC5C,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,cAAc,CAAC,MAA0B,EAAE,GAAqB;QACxE,OAAO,mBAAmB,CAAC,MAAM,EAAE;YAClC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE;YAClC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE;YACjD,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;YAC9C,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACpD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,4BAA4B,CAAC,GAAqB;QAChE,uEAAuE;QACvE,wEAAwE;QACxE,kDAAkD;QAClD,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAAE,OAAO;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,sCAAsC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;QACR,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uGAAuG,EAAE,OAAO,CAAC,CAAC;YAChI,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,qCAAqC,MAAM,CAAC,OAAO,CAAC,EAAE,iEAAiE,6BAA6B,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAC5K,OAAO,CACP,CAAC;YACF,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1H,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YACjF,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,6CAA6C,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,GAAG,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;YACrH,OAAO;QACR,CAAC;QAED,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,oCAAoC,MAAM,CAAC,OAAO,CAAC,EAAE,+BAA+B,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,EAAE,2CAA2C,EACnM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACxC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,4BAA4B,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
import type { CompileCycleState } from "../compile-cycle.ts";
|
|
3
3
|
import type { ForgeWorkspace } from "../workspace.ts";
|
|
4
|
-
import type { PromptStackDiagnostic } from "../types.ts";
|
|
4
|
+
import type { LoadedPromptStack, PromptStackDiagnostic } from "../types.ts";
|
|
5
|
+
export interface PromptStackRuntimeDeps {
|
|
6
|
+
syncToolPolicy(ctx?: ExtensionContext): void;
|
|
7
|
+
validatePresetSwitch?(target: LoadedPromptStack | undefined, ctx?: ExtensionContext): string | undefined;
|
|
8
|
+
}
|
|
5
9
|
export interface PromptStackRuntime {
|
|
6
10
|
dispose(): PromptStackDiagnostic[];
|
|
7
11
|
activeId(): string | undefined;
|
|
@@ -9,6 +13,7 @@ export interface PromptStackRuntime {
|
|
|
9
13
|
restorePersistedActiveId(id?: string): void;
|
|
10
14
|
persistActiveSelection(): void;
|
|
11
15
|
setActive(id: string | undefined, ctx?: ExtensionContext): boolean;
|
|
16
|
+
lastActivationError(): string | undefined;
|
|
12
17
|
reloadStacks(ctx: ExtensionContext, preferredId?: string, options?: {
|
|
13
18
|
deferToolPolicy?: boolean;
|
|
14
19
|
suppressAutoActivate?: boolean;
|
|
@@ -17,7 +22,5 @@ export interface PromptStackRuntime {
|
|
|
17
22
|
notifyActivePreset(ctx: ExtensionContext, detail: string): void;
|
|
18
23
|
recordCompileDiagnostics(ctx: ExtensionContext, diagnostics: PromptStackDiagnostic[]): void;
|
|
19
24
|
}
|
|
20
|
-
export declare function createPromptStackRuntime(pi: ExtensionAPI, workspace: ForgeWorkspace, compileCycle: CompileCycleState, deps:
|
|
21
|
-
syncToolPolicy(ctx?: ExtensionContext): void;
|
|
22
|
-
}): PromptStackRuntime;
|
|
25
|
+
export declare function createPromptStackRuntime(pi: ExtensionAPI, workspace: ForgeWorkspace, compileCycle: CompileCycleState, deps: PromptStackRuntimeDeps): PromptStackRuntime;
|
|
23
26
|
//# sourceMappingURL=prompt-stack-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-stack-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/prompt-stack-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-stack-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/prompt-stack-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACtC,cAAc,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7C,oBAAoB,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;CACzG;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,IAAI,qBAAqB,EAAE,CAAC;IACnC,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAAC;IACvC,wBAAwB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,sBAAsB,IAAI,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACnE,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClJ,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;CAC5F;AAED,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,iBAAiB,EAC/B,IAAI,EAAE,sBAAsB,GAC1B,kBAAkB,CAkJpB"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { createResourceCatalog } from "../catalog.js";
|
|
1
2
|
import { isDisabledPromptStackId } from "../loader.js";
|
|
2
|
-
import { formatResourceKey } from "../resource-identity.js";
|
|
3
|
+
import { formatResourceKey, parseResourceSelector } from "../resource-identity.js";
|
|
3
4
|
import { persistActiveSelection as persistActiveSelectionEntry } from "../session-adapter.js";
|
|
4
5
|
export function createPromptStackRuntime(pi, workspace, compileCycle, deps) {
|
|
5
6
|
let lastPersistedActiveId;
|
|
7
|
+
let lastActivationError;
|
|
6
8
|
function dispose() {
|
|
7
9
|
return workspace.disposeExtensions();
|
|
8
10
|
}
|
|
@@ -26,22 +28,56 @@ export function createPromptStackRuntime(pi, workspace, compileCycle, deps) {
|
|
|
26
28
|
persistActiveSelectionEntry(pi, canonical);
|
|
27
29
|
lastPersistedActiveId = canonical;
|
|
28
30
|
}
|
|
29
|
-
function
|
|
31
|
+
function lastActivationErrorFn() {
|
|
32
|
+
return lastActivationError;
|
|
33
|
+
}
|
|
34
|
+
function resolveTargetStack(id) {
|
|
30
35
|
if (!id || isDisabledPromptStackId(id)) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
return { ok: true, target: undefined };
|
|
37
|
+
}
|
|
38
|
+
const parsed = parseResourceSelector(id);
|
|
39
|
+
if (!parsed.ok) {
|
|
40
|
+
return { ok: false, error: `Invalid preset selector: ${id}` };
|
|
41
|
+
}
|
|
42
|
+
const found = createResourceCatalog([...workspace.snapshot().stacks]).resolveSelector(parsed.selector);
|
|
43
|
+
if (!found) {
|
|
44
|
+
return { ok: false, error: `Unknown preset: ${id}` };
|
|
45
|
+
}
|
|
46
|
+
return { ok: true, target: found };
|
|
47
|
+
}
|
|
48
|
+
function setActive(id, ctx) {
|
|
49
|
+
lastActivationError = undefined;
|
|
50
|
+
const resolution = resolveTargetStack(id);
|
|
51
|
+
if (!resolution.ok) {
|
|
52
|
+
lastActivationError = resolution.error;
|
|
53
|
+
return false;
|
|
37
54
|
}
|
|
38
|
-
|
|
55
|
+
const target = resolution.target;
|
|
56
|
+
if (target && ctx && !ctx.isProjectTrusted()) {
|
|
57
|
+
lastActivationError = "Project is not trusted; refusing to activate a preset.";
|
|
39
58
|
return false;
|
|
40
|
-
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const validationError = deps.validatePresetSwitch?.(target, ctx);
|
|
62
|
+
if (validationError) {
|
|
63
|
+
lastActivationError = `Cannot activate preset "${id ?? "none"}": ${validationError} Disable conflicting capabilities before switching presets.`;
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
// Preflight is read-only: malformed restored state also leaves selection untouched.
|
|
69
|
+
lastActivationError = error instanceof Error ? error.message : String(error);
|
|
41
70
|
return false;
|
|
71
|
+
}
|
|
72
|
+
if (!workspace.setActiveStack(id)) {
|
|
73
|
+
lastActivationError = `Unknown preset: ${id}`;
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
42
76
|
persistActiveSelection();
|
|
43
77
|
if (ctx)
|
|
44
78
|
updateStatus(ctx);
|
|
79
|
+
// Unexpected host failures must still propagate; do not disguise a partial
|
|
80
|
+
// commit as an ordinary preflight rejection. Known conflicts were checked above.
|
|
45
81
|
deps.syncToolPolicy(ctx);
|
|
46
82
|
return true;
|
|
47
83
|
}
|
|
@@ -94,6 +130,6 @@ export function createPromptStackRuntime(pi, workspace, compileCycle, deps) {
|
|
|
94
130
|
}
|
|
95
131
|
ctx.ui.setStatus("pi-forge-diagnostics", undefined);
|
|
96
132
|
}
|
|
97
|
-
return { dispose, activeId, selectedActiveId, restorePersistedActiveId, persistActiveSelection, setActive, reloadStacks, updateStatus, notifyActivePreset, recordCompileDiagnostics };
|
|
133
|
+
return { dispose, activeId, selectedActiveId, restorePersistedActiveId, persistActiveSelection, setActive, lastActivationError: lastActivationErrorFn, reloadStacks, updateStatus, notifyActivePreset, recordCompileDiagnostics };
|
|
98
134
|
}
|
|
99
135
|
//# sourceMappingURL=prompt-stack-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-stack-runtime.js","sourceRoot":"","sources":["../../src/runtime/prompt-stack-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-stack-runtime.js","sourceRoot":"","sources":["../../src/runtime/prompt-stack-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,11 @@ 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[], options?: {
|
|
20
|
+
prospectiveStack: LoadedPromptStack | undefined;
|
|
21
|
+
}): string | undefined;
|
|
12
22
|
}
|
|
13
23
|
export declare function createToolPolicyRuntime(pi: ExtensionAPI, getActiveStack: () => LoadedPromptStack | undefined): ToolPolicyRuntime;
|
|
14
24
|
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":"
|
|
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,CACnB,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,OAAO,CAAC,EAAE;QAAE,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,CAAA;KAAE,GAC3D,MAAM,GAAG,SAAS,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,CAuPhI;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 {
|
|
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
|
-
|
|
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 =
|
|
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, options) {
|
|
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 = options ? options.prospectiveStack : 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 (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
|
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
|
-
//
|
|
69
|
-
//
|
|
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
|
|
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 ||
|
|
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
|
|
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 {
|
|
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
|
}
|