@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,374 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { hostname as osHostname } from "node:os";
3
+ import { resolve } from "node:path";
4
+ /**
5
+ * Neutral active-state snapshot/change bus for optional appearance/session
6
+ * consumers.
7
+ *
8
+ * This module is deliberately Pi Pet-agnostic: it publishes only the small,
9
+ * privacy-preserving scalar contract in the parent implementation contract
10
+ * (`@zihanw/pi-forge/active-state/v1`). It never carries prompt text, file
11
+ * paths, tokens, credentials, model configuration, tool policy, or character
12
+ * data. Consumers are optional and must not affect Forge compilation, tool
13
+ * policy, or provider behavior.
14
+ */
15
+ export const FORGE_ACTIVE_STATE_SCHEMA_VERSION = "1";
16
+ export const FORGE_ACTIVE_STATE_CHANNEL = "@zihanw/pi-forge/active-state/v1";
17
+ export const FORGE_ACTIVE_STATE_REQUEST_CHANNEL = "@zihanw/pi-forge/active-state/request/v1";
18
+ /** Hash domain separator from the parent contract. Do not change without a new version. */
19
+ export const FORGE_ACTIVE_STATE_PROJECT_KEY_PREFIX = "pi-forge-project-v1\0";
20
+ /**
21
+ * Scoped resource key grammar from the parent contract. Stricter than the
22
+ * internal resource grammar (length-bounded, exactly one colon).
23
+ */
24
+ export const FORGE_ACTIVE_STATE_SCOPED_KEY_PATTERN = /^(global|project):[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
25
+ /** Opaque lower-hex SHA-256 project key. */
26
+ export const FORGE_ACTIVE_STATE_PROJECT_KEY_PATTERN = /^[0-9a-f]{64}$/;
27
+ /**
28
+ * Bounded publisher-instance grammar shared with the downstream Pi Pet/Clawd
29
+ * appearance consumer. UUIDs pass; control characters, path separators, and
30
+ * other punctuation are rejected so an instance id can never look like a path
31
+ * or smuggle control bytes across the bus.
32
+ */
33
+ export const FORGE_ACTIVE_STATE_INSTANCE_ID_PATTERN = /^[A-Za-z0-9_-]{1,128}$/;
34
+ export const FORGE_ACTIVE_STATE_MAX_SESSION_ID_LENGTH = 1024;
35
+ export const FORGE_ACTIVE_STATE_MAX_INSTANCE_ID_LENGTH = 128;
36
+ export function isValidActiveStateSessionId(value) {
37
+ return typeof value === "string"
38
+ && value.length > 0
39
+ && value.length <= FORGE_ACTIVE_STATE_MAX_SESSION_ID_LENGTH;
40
+ }
41
+ export function isValidActiveStateScopedKey(value) {
42
+ return typeof value === "string" && FORGE_ACTIVE_STATE_SCOPED_KEY_PATTERN.test(value);
43
+ }
44
+ export function isValidActiveStateProjectKey(value) {
45
+ return typeof value === "string" && FORGE_ACTIVE_STATE_PROJECT_KEY_PATTERN.test(value);
46
+ }
47
+ export function isValidActiveStateInstanceId(value) {
48
+ return typeof value === "string" && FORGE_ACTIVE_STATE_INSTANCE_ID_PATTERN.test(value);
49
+ }
50
+ /**
51
+ * Opaque project identity from the session working directory. The raw path and
52
+ * hostname never leave this function; only the 64-char digest crosses the bus.
53
+ */
54
+ export function activeStateProjectKey(cwd, hostnameValue = osHostname()) {
55
+ if (typeof cwd !== "string" || cwd.length === 0)
56
+ return null;
57
+ let resolved;
58
+ try {
59
+ resolved = resolve(cwd);
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ return createHash("sha256")
65
+ .update(`${FORGE_ACTIVE_STATE_PROJECT_KEY_PREFIX}${hostnameValue}\0${resolved}`)
66
+ .digest("hex");
67
+ }
68
+ export function validateActiveStateRequest(value) {
69
+ if (!isPlainRecord(value))
70
+ return { ok: false, error: "active-state request must be an object." };
71
+ for (const key of Object.keys(value)) {
72
+ if (key !== "schemaVersion" && key !== "sessionId") {
73
+ return { ok: false, error: `active-state request contains unsupported field: ${key}.` };
74
+ }
75
+ }
76
+ if (value.schemaVersion !== FORGE_ACTIVE_STATE_SCHEMA_VERSION) {
77
+ return { ok: false, error: "active-state request has an unsupported schemaVersion." };
78
+ }
79
+ if (value.sessionId !== undefined && !isValidActiveStateSessionId(value.sessionId)) {
80
+ return { ok: false, error: "active-state request sessionId is malformed or oversized." };
81
+ }
82
+ return {
83
+ ok: true,
84
+ data: {
85
+ schemaVersion: FORGE_ACTIVE_STATE_SCHEMA_VERSION,
86
+ ...(value.sessionId === undefined ? {} : { sessionId: value.sessionId }),
87
+ },
88
+ };
89
+ }
90
+ export function validateActiveStateEvent(value) {
91
+ if (!isPlainRecord(value))
92
+ return { ok: false, error: "active-state event must be an object." };
93
+ const allowed = new Set(["schemaVersion", "sessionId", "instanceId", "revision", "stackKey", "profileKey", "projectKey"]);
94
+ for (const key of Object.keys(value)) {
95
+ if (!allowed.has(key))
96
+ return { ok: false, error: `active-state event contains unsupported field: ${key}.` };
97
+ }
98
+ if (value.schemaVersion !== FORGE_ACTIVE_STATE_SCHEMA_VERSION) {
99
+ return { ok: false, error: "active-state event has an unsupported schemaVersion." };
100
+ }
101
+ if (!isValidActiveStateSessionId(value.sessionId)) {
102
+ return { ok: false, error: "active-state event sessionId is malformed or oversized." };
103
+ }
104
+ if (!isValidActiveStateInstanceId(value.instanceId)) {
105
+ return { ok: false, error: "active-state event instanceId is malformed or oversized." };
106
+ }
107
+ if (typeof value.revision !== "number" || !Number.isSafeInteger(value.revision) || value.revision < 0) {
108
+ return { ok: false, error: "active-state event revision must be a non-negative safe integer." };
109
+ }
110
+ if (value.stackKey !== null && !isValidActiveStateScopedKey(value.stackKey)) {
111
+ return { ok: false, error: "active-state event stackKey is malformed." };
112
+ }
113
+ if (value.profileKey !== null && !isValidActiveStateScopedKey(value.profileKey)) {
114
+ return { ok: false, error: "active-state event profileKey is malformed." };
115
+ }
116
+ if (value.projectKey !== null && !isValidActiveStateProjectKey(value.projectKey)) {
117
+ return { ok: false, error: "active-state event projectKey is malformed." };
118
+ }
119
+ // Project resource bindings require an opaque projectKey. Fail closed so a
120
+ // consumer can never bind a project-scoped stack/profile to a missing key.
121
+ if (value.projectKey === null) {
122
+ for (const key of [value.stackKey, value.profileKey]) {
123
+ if (typeof key === "string" && key.startsWith("project:")) {
124
+ return { ok: false, error: "active-state event carries a project-scoped binding without a projectKey." };
125
+ }
126
+ }
127
+ }
128
+ return { ok: true, data: value };
129
+ }
130
+ /**
131
+ * Publishes active-state snapshots on the neutral channel and answers
132
+ * late-subscriber snapshot requests. One publisher instance corresponds to one
133
+ * attached Pi session identity; a session-id change retires the old instance
134
+ * (after a final cleared snapshot) and attaches a new instance.
135
+ */
136
+ export class ForgeActiveStatePublisher {
137
+ transport;
138
+ read;
139
+ hostnameValue;
140
+ createInstanceId;
141
+ sessionValue;
142
+ instanceIdValue;
143
+ revisionValue = 0;
144
+ requestUnsubscribe;
145
+ requestListenerAttached = false;
146
+ suspended = false;
147
+ constructor(options) {
148
+ this.transport = options.transport;
149
+ this.read = options.readWorkspace;
150
+ this.hostnameValue = options.hostname ?? osHostname();
151
+ this.createInstanceId = options.createInstanceId ?? (() => randomUUID());
152
+ }
153
+ get attached() {
154
+ return this.sessionValue !== undefined && this.instanceIdValue !== undefined;
155
+ }
156
+ get sessionId() {
157
+ return this.sessionValue?.sessionId;
158
+ }
159
+ get instanceId() {
160
+ return this.instanceIdValue;
161
+ }
162
+ get revision() {
163
+ return this.revisionValue;
164
+ }
165
+ /**
166
+ * Pause publication and request replies while a lifecycle restore is in
167
+ * flight. The workspace publishes several intermediate snapshots during
168
+ * `restoreBranchScopedRuntime`; emitting those would leak the new workspace
169
+ * under the old session id before the publisher is rebound. Call
170
+ * `bindSession` once the restore is complete to resume with the latest
171
+ * coherent snapshot.
172
+ */
173
+ suspend() {
174
+ this.suspended = true;
175
+ }
176
+ /** Bind or rebind the Pi session, resume publication, and publish the current snapshot. */
177
+ bindSession(session) {
178
+ if (!isValidActiveStateSessionId(session?.sessionId)) {
179
+ // Invalid session context: fail closed instead of retaining a stale
180
+ // binding that no consumer can safely attribute.
181
+ this.dispose();
182
+ return;
183
+ }
184
+ if (this.sessionValue && this.sessionValue.sessionId !== session.sessionId) {
185
+ // Emit the retiring session's clear only after the restore has
186
+ // completed, so no intermediate workspace snapshot leaks under the
187
+ // wrong session id.
188
+ this.dispose();
189
+ // A synchronous clear callback may have installed another session.
190
+ // Do not overwrite that newer binding from this stale bind call.
191
+ if (this.sessionValue)
192
+ return;
193
+ }
194
+ if (!this.instanceIdValue) {
195
+ this.instanceIdValue = this.createInstanceId();
196
+ this.revisionValue = 0;
197
+ }
198
+ this.sessionValue = { sessionId: session.sessionId, cwd: session.cwd };
199
+ this.ensureRequestListener();
200
+ // Resume only after the complete new state and listener are installed.
201
+ this.suspended = false;
202
+ this.publish();
203
+ }
204
+ /** Publish the current workspace view with a fresh revision. */
205
+ publish() {
206
+ if (this.suspended)
207
+ return;
208
+ if (!this.sessionValue || !this.instanceIdValue)
209
+ return;
210
+ const epoch = this.advanceEpoch();
211
+ this.emitEvent(this.buildEvent(this.readSafely(), epoch.instanceId, epoch.revision));
212
+ }
213
+ /**
214
+ * Emit one final cleared snapshot for the bound session, unregister the
215
+ * request listener, and detach. Safe to call more than once.
216
+ */
217
+ dispose() {
218
+ const session = this.sessionValue;
219
+ let clear;
220
+ if (session && this.instanceIdValue) {
221
+ const epoch = this.advanceEpoch();
222
+ clear = this.buildClearEvent(session, epoch.instanceId, epoch.revision);
223
+ }
224
+ // Retire the old lifecycle before publishing its clear. A synchronous
225
+ // consumer callback must not be able to request/publish/dispose through
226
+ // the old binding or recurse into another clear.
227
+ this.suspended = true;
228
+ this.unsubscribeRequest();
229
+ this.sessionValue = undefined;
230
+ this.instanceIdValue = undefined;
231
+ this.revisionValue = 0;
232
+ this.emitEvent(clear);
233
+ // Preserve a reentrant bind's resumed state; otherwise restore the
234
+ // historical post-dispose state for a later bind.
235
+ if (!this.sessionValue && !this.instanceIdValue)
236
+ this.suspended = false;
237
+ }
238
+ ensureRequestListener() {
239
+ if (this.requestListenerAttached)
240
+ return;
241
+ let unsubscribe;
242
+ try {
243
+ unsubscribe = this.transport.on(FORGE_ACTIVE_STATE_REQUEST_CHANNEL, (data) => this.onRequest(data));
244
+ }
245
+ catch {
246
+ // Optional bus registration must never break Forge lifecycle.
247
+ return;
248
+ }
249
+ this.requestListenerAttached = true;
250
+ this.requestUnsubscribe = typeof unsubscribe === "function" ? unsubscribe : undefined;
251
+ }
252
+ unsubscribeRequest() {
253
+ const unsubscribe = this.requestUnsubscribe;
254
+ this.requestUnsubscribe = undefined;
255
+ this.requestListenerAttached = false;
256
+ if (!unsubscribe)
257
+ return;
258
+ try {
259
+ unsubscribe();
260
+ }
261
+ catch {
262
+ // Optional bus teardown must never break Forge lifecycle.
263
+ }
264
+ }
265
+ onRequest(data) {
266
+ // Suppress snapshot replies while a restore is in flight: the only
267
+ // complete answer is the snapshot published once the rebind completes.
268
+ if (this.suspended)
269
+ return;
270
+ const request = validateActiveStateRequest(data);
271
+ if (!request.ok)
272
+ return;
273
+ if (!this.sessionValue || !this.instanceIdValue)
274
+ return;
275
+ if (request.data.sessionId !== undefined && request.data.sessionId !== this.sessionValue.sessionId)
276
+ return;
277
+ // Snapshot requests repeat the current revision rather than advancing it.
278
+ this.emitEvent(this.buildEvent(this.readSafely(), this.instanceIdValue, this.revisionValue));
279
+ }
280
+ buildEvent(view, instanceId, revision) {
281
+ const session = this.sessionValue;
282
+ if (!session)
283
+ return undefined;
284
+ const projectKey = activeStateProjectKey(session.cwd, this.hostnameValue);
285
+ const stackCandidate = isValidActiveStateScopedKey(view.stackKey) ? view.stackKey : null;
286
+ // Project-scoped bindings require a project key. An empty/unresolvable
287
+ // cwd must fail closed rather than emit a snapshot the contract rejects,
288
+ // and the profile provenance must be dropped with it: the profile matched
289
+ // a stack we cannot safely identify.
290
+ const droppedProjectBinding = projectKey === null && stackCandidate !== null && stackCandidate.startsWith("project:");
291
+ const stackKey = droppedProjectBinding ? null : stackCandidate;
292
+ return {
293
+ schemaVersion: FORGE_ACTIVE_STATE_SCHEMA_VERSION,
294
+ sessionId: session.sessionId,
295
+ instanceId,
296
+ revision,
297
+ stackKey,
298
+ profileKey: droppedProjectBinding ? null : compatibleProfileKey(view.profile, stackKey, projectKey),
299
+ projectKey,
300
+ };
301
+ }
302
+ buildClearEvent(session, instanceId, revision) {
303
+ return {
304
+ schemaVersion: FORGE_ACTIVE_STATE_SCHEMA_VERSION,
305
+ sessionId: session.sessionId,
306
+ instanceId,
307
+ revision,
308
+ stackKey: null,
309
+ profileKey: null,
310
+ projectKey: activeStateProjectKey(session.cwd, this.hostnameValue),
311
+ };
312
+ }
313
+ emitEvent(event) {
314
+ if (!event)
315
+ return;
316
+ // Defense in depth: never put a self-rejected snapshot on the bus.
317
+ if (!validateActiveStateEvent(event).ok)
318
+ return;
319
+ try {
320
+ this.transport.emit(FORGE_ACTIVE_STATE_CHANNEL, event);
321
+ }
322
+ catch {
323
+ // Optional bus failures must never affect Forge lifecycle or
324
+ // provider behavior.
325
+ }
326
+ }
327
+ readSafely() {
328
+ try {
329
+ const view = this.read();
330
+ return view && typeof view === "object" ? view : {};
331
+ }
332
+ catch {
333
+ // Optional listeners/readers must never alter Forge behavior.
334
+ return {};
335
+ }
336
+ }
337
+ advanceEpoch() {
338
+ if (this.revisionValue >= Number.MAX_SAFE_INTEGER) {
339
+ // Rotate to a fresh instance at the safe-integer boundary. Rolling
340
+ // the revision back to 1 on the same instance would look stale to
341
+ // consumers that reject non-increasing revisions.
342
+ this.instanceIdValue = this.createInstanceId();
343
+ this.revisionValue = 1;
344
+ }
345
+ else {
346
+ this.revisionValue += 1;
347
+ }
348
+ return { instanceId: this.instanceIdValue, revision: this.revisionValue };
349
+ }
350
+ }
351
+ /**
352
+ * A profile binding is cosmetic compatibility provenance, not a claim that the
353
+ * current model/tool policy still matches the profile. It is retained only
354
+ * while the profile's recorded prompt stack equals the effective stack.
355
+ */
356
+ function compatibleProfileKey(profile, stackKey, projectKey) {
357
+ if (!profile || typeof profile.profileId !== "string")
358
+ return null;
359
+ const scope = profile.scope === "global" || profile.scope === "project" ? profile.scope : "project";
360
+ const candidate = `${scope}:${profile.profileId}`;
361
+ if (!isValidActiveStateScopedKey(candidate))
362
+ return null;
363
+ // A project-scoped profile binding is only meaningful with a project key.
364
+ if (scope === "project" && projectKey === null)
365
+ return null;
366
+ const recordedStack = typeof profile.promptStack === "string" ? profile.promptStack : null;
367
+ if (recordedStack !== stackKey)
368
+ return null;
369
+ return candidate;
370
+ }
371
+ function isPlainRecord(value) {
372
+ return !!value && typeof value === "object" && !Array.isArray(value);
373
+ }
374
+ //# sourceMappingURL=active-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-state.js","sourceRoot":"","sources":["../src/active-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-profile.d.ts","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-profile.d.ts","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,17 @@ export function resolveAgentProfile(loaded, resources) {
97
97
  });
98
98
  }
99
99
  const allowedPatterns = promptStack.stack.tools?.allow?.filter((pattern) => pattern !== "*") ?? [];
100
+ if (resources.toolNames && Array.isArray(promptStack.stack.tools?.initial)) {
101
+ for (const name of promptStack.stack.tools.initial) {
102
+ if (!resources.toolNames.includes(name)) {
103
+ diagnostics.push({
104
+ level: "warning",
105
+ field: "promptStack",
106
+ message: `Preset ${promptStack.stack.id} initial tool "${name}" is not registered; it will remain inactive.`,
107
+ });
108
+ }
109
+ }
110
+ }
100
111
  if (resources.toolNames && !promptStack.stack.tools?.allow?.includes("*")) {
101
112
  for (const pattern of allowedPatterns) {
102
113
  if (resources.toolNames.some((name) => resourcePatternMatches(name, pattern)))
@@ -1 +1 @@
1
- {"version":3,"file":"agent-profile.js","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-profile.js","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { ResourceCatalog } from "./catalog.ts";
2
+ import { type Capability, type CapabilityBinding, type LoadedCapability } from "./codecs/capability.ts";
3
+ import { type ResourceKey } from "./resource-identity.ts";
4
+ export declare const MAX_CAPABILITY_BINDINGS = 256;
5
+ export interface ResolvedCapabilityBinding {
6
+ id: string;
7
+ ref: ResourceKey;
8
+ preset: ResourceKey;
9
+ modelCallable: boolean;
10
+ capability: Capability;
11
+ }
12
+ export type ResolveCapabilityResult = {
13
+ ok: true;
14
+ loaded: LoadedCapability;
15
+ } | {
16
+ ok: false;
17
+ error: string;
18
+ };
19
+ export type ResolveCapabilityBindingsResult = {
20
+ ok: true;
21
+ bindings: readonly ResolvedCapabilityBinding[];
22
+ } | {
23
+ ok: false;
24
+ error: string;
25
+ index?: number;
26
+ };
27
+ /**
28
+ * Resolve a capability for direct browse/enable from a catalog.
29
+ * Bare selector uses project-over-global shadowing. Exact selector targets specific scope.
30
+ * Ambiguity or unusable shadowed capabilities fail closed without global fallback.
31
+ */
32
+ export declare function resolveCapability(catalog: ResourceCatalog<LoadedCapability>, selector: string): ResolveCapabilityResult;
33
+ /**
34
+ * Resolve capability bindings for a prompt stack preset.
35
+ * Bare refs strictly inherit preset scope. Global presets cannot bind project capabilities.
36
+ * Validates preset key, binding schemas, and duplicate effective IDs before resolving.
37
+ */
38
+ export declare function resolveCapabilityBindings(catalog: ResourceCatalog<LoadedCapability>, preset: ResourceKey, bindings: readonly CapabilityBinding[]): ResolveCapabilityBindingsResult;
39
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAIN,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAKN,KAAK,WAAW,EAEhB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhC,MAAM,MAAM,+BAA+B,GACxC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAA;CAAE,GAC5D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,EAC1C,QAAQ,EAAE,MAAM,GACd,uBAAuB,CA6BzB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,EAC1C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACpC,+BAA+B,CA4EjC"}