@ai-agent-forge/agent-forge 0.88.4 → 0.88.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.
Files changed (198) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
  3. package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
  4. package/bundled-plugins/alignment/agent-forge.json +19 -0
  5. package/bundled-plugins/alignment/dist/baseline.d.ts +12 -0
  6. package/bundled-plugins/alignment/dist/baseline.d.ts.map +1 -0
  7. package/bundled-plugins/alignment/dist/baseline.js +68 -0
  8. package/bundled-plugins/alignment/dist/baseline.js.map +1 -0
  9. package/bundled-plugins/alignment/dist/engine.d.ts +102 -0
  10. package/bundled-plugins/alignment/dist/engine.d.ts.map +1 -0
  11. package/bundled-plugins/alignment/dist/engine.js +654 -0
  12. package/bundled-plugins/alignment/dist/engine.js.map +1 -0
  13. package/bundled-plugins/alignment/dist/entry.d.ts +14 -0
  14. package/bundled-plugins/alignment/dist/entry.d.ts.map +1 -0
  15. package/bundled-plugins/alignment/dist/entry.js +23 -0
  16. package/bundled-plugins/alignment/dist/entry.js.map +1 -0
  17. package/bundled-plugins/alignment/dist/export.d.ts +15 -0
  18. package/bundled-plugins/alignment/dist/export.d.ts.map +1 -0
  19. package/bundled-plugins/alignment/dist/export.js +122 -0
  20. package/bundled-plugins/alignment/dist/export.js.map +1 -0
  21. package/bundled-plugins/alignment/dist/http-server.d.ts +33 -0
  22. package/bundled-plugins/alignment/dist/http-server.d.ts.map +1 -0
  23. package/bundled-plugins/alignment/dist/http-server.js +119 -0
  24. package/bundled-plugins/alignment/dist/http-server.js.map +1 -0
  25. package/bundled-plugins/alignment/dist/index.d.ts +24 -0
  26. package/bundled-plugins/alignment/dist/index.d.ts.map +1 -0
  27. package/bundled-plugins/alignment/dist/index.js +719 -0
  28. package/bundled-plugins/alignment/dist/index.js.map +1 -0
  29. package/bundled-plugins/alignment/dist/page.d.ts +15 -0
  30. package/bundled-plugins/alignment/dist/page.d.ts.map +1 -0
  31. package/bundled-plugins/alignment/dist/page.js +832 -0
  32. package/bundled-plugins/alignment/dist/page.js.map +1 -0
  33. package/bundled-plugins/alignment/dist/render.d.ts +40 -0
  34. package/bundled-plugins/alignment/dist/render.d.ts.map +1 -0
  35. package/bundled-plugins/alignment/dist/render.js +194 -0
  36. package/bundled-plugins/alignment/dist/render.js.map +1 -0
  37. package/bundled-plugins/alignment/dist/types.d.ts +217 -0
  38. package/bundled-plugins/alignment/dist/types.d.ts.map +1 -0
  39. package/bundled-plugins/alignment/dist/types.js +30 -0
  40. package/bundled-plugins/alignment/dist/types.js.map +1 -0
  41. package/bundled-plugins/alignment/plugin.json +12 -0
  42. package/bundled-plugins/browser-playwright/MANUAL.md +60 -0
  43. package/bundled-plugins/browser-playwright/agent-forge.json +25 -0
  44. package/bundled-plugins/browser-playwright/dist/capability.d.ts +25 -0
  45. package/bundled-plugins/browser-playwright/dist/capability.d.ts.map +1 -0
  46. package/bundled-plugins/browser-playwright/dist/capability.js +612 -0
  47. package/bundled-plugins/browser-playwright/dist/capability.js.map +1 -0
  48. package/bundled-plugins/browser-playwright/dist/entry.d.ts +13 -0
  49. package/bundled-plugins/browser-playwright/dist/entry.d.ts.map +1 -0
  50. package/bundled-plugins/browser-playwright/dist/entry.js +14 -0
  51. package/bundled-plugins/browser-playwright/dist/entry.js.map +1 -0
  52. package/bundled-plugins/browser-playwright/dist/index.d.ts +7 -0
  53. package/bundled-plugins/browser-playwright/dist/index.d.ts.map +1 -0
  54. package/bundled-plugins/browser-playwright/dist/index.js +5 -0
  55. package/bundled-plugins/browser-playwright/dist/index.js.map +1 -0
  56. package/bundled-plugins/browser-playwright/dist/operations.d.ts +69 -0
  57. package/bundled-plugins/browser-playwright/dist/operations.d.ts.map +1 -0
  58. package/bundled-plugins/browser-playwright/dist/operations.js +149 -0
  59. package/bundled-plugins/browser-playwright/dist/operations.js.map +1 -0
  60. package/bundled-plugins/browser-playwright/dist/playwright-driver.d.ts +275 -0
  61. package/bundled-plugins/browser-playwright/dist/playwright-driver.d.ts.map +1 -0
  62. package/bundled-plugins/browser-playwright/dist/playwright-driver.js +953 -0
  63. package/bundled-plugins/browser-playwright/dist/playwright-driver.js.map +1 -0
  64. package/bundled-plugins/browser-playwright/dist/setup.d.ts +88 -0
  65. package/bundled-plugins/browser-playwright/dist/setup.d.ts.map +1 -0
  66. package/bundled-plugins/browser-playwright/dist/setup.js +252 -0
  67. package/bundled-plugins/browser-playwright/dist/setup.js.map +1 -0
  68. package/bundled-plugins/browser-playwright/dist/types.d.ts +270 -0
  69. package/bundled-plugins/browser-playwright/dist/types.d.ts.map +1 -0
  70. package/bundled-plugins/browser-playwright/dist/types.js +2 -0
  71. package/bundled-plugins/browser-playwright/dist/types.js.map +1 -0
  72. package/bundled-plugins/browser-playwright/plugin.json +20 -0
  73. package/bundled-plugins/coding-tools/agent-forge.json +1 -1
  74. package/bundled-plugins/coding-tools/dist/bash.d.ts +2 -7
  75. package/bundled-plugins/coding-tools/dist/bash.d.ts.map +1 -1
  76. package/bundled-plugins/coding-tools/dist/bash.js +2 -34
  77. package/bundled-plugins/coding-tools/dist/bash.js.map +1 -1
  78. package/bundled-plugins/coding-tools/plugin.json +1 -1
  79. package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
  80. package/bundled-plugins/compaction-policy/plugin.json +1 -1
  81. package/bundled-plugins/mcp-http/dist/mcp-http.d.ts.map +1 -1
  82. package/bundled-plugins/mcp-http/dist/mcp-http.js +84 -31
  83. package/bundled-plugins/mcp-http/dist/mcp-http.js.map +1 -1
  84. package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
  85. package/bundled-plugins/overflow-policy/plugin.json +1 -1
  86. package/bundled-plugins/provider-failover/agent-forge.json +1 -1
  87. package/bundled-plugins/provider-failover/plugin.json +1 -1
  88. package/bundled-plugins/retry-policy/agent-forge.json +1 -1
  89. package/bundled-plugins/retry-policy/plugin.json +1 -1
  90. package/dist/bundle/.build-manifest.json +60 -58
  91. package/dist/bundle/chunks/{anthropic-messages-3FJHRAJL.js → anthropic-messages-NL4Y6WPB.js} +1 -1
  92. package/dist/bundle/chunks/{azure-openai-responses-GCL47IDS.js → azure-openai-responses-CPXC42HO.js} +1 -1
  93. package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  94. package/dist/bundle/chunks/chunk-5LRQFZFE.js +2 -0
  95. package/dist/bundle/chunks/{chunk-HTEVUY7F.js → chunk-7HSJPQKN.js} +1 -1
  96. package/dist/bundle/chunks/{chunk-AC2FIS4G.js → chunk-EDO7Q6XR.js} +1 -1
  97. package/dist/bundle/chunks/{chunk-755VNWIF.js → chunk-ISLHFRER.js} +6 -6
  98. package/dist/bundle/chunks/{chunk-HV64ASMT.js → chunk-K3S6GTL7.js} +1 -1
  99. package/dist/bundle/chunks/{chunk-HEL6TAWE.js → chunk-POLDAUYA.js} +37 -36
  100. package/dist/bundle/chunks/{chunk-V3ACW7VD.js → chunk-WJSKB3FC.js} +1 -1
  101. package/dist/bundle/chunks/{chunk-32YDZI4J.js → chunk-ZS5JEI76.js} +1 -1
  102. package/dist/bundle/chunks/{google-generative-ai-6BMXWA44.js → google-generative-ai-UMZ53EFA.js} +1 -1
  103. package/dist/bundle/chunks/{google-vertex-6H7NLRTK.js → google-vertex-ZNR5NS6H.js} +1 -1
  104. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  105. package/dist/bundle/chunks/{mistral-conversations-IXUHSFSJ.js → mistral-conversations-IT66WUNN.js} +1 -1
  106. package/dist/bundle/chunks/{openai-codex-responses-YHUAEVCM.js → openai-codex-responses-FOVCVG6I.js} +1 -1
  107. package/dist/bundle/chunks/{openai-completions-ULQCFC72.js → openai-completions-FLQ7CBOL.js} +1 -1
  108. package/dist/bundle/chunks/{openai-responses-NLLAJDPS.js → openai-responses-ABGYHS2T.js} +1 -1
  109. package/dist/bundle/chunks/{pi-messages-EJTI2EJ3.js → pi-messages-6K5W6LUN.js} +1 -1
  110. package/dist/bundle/chunks/{virtual-modules-TQWEGNNZ.js → virtual-modules-2QGILFV7.js} +1 -1
  111. package/dist/bundle/cli.js +1 -1
  112. package/dist/bundle/client.js +1 -1
  113. package/dist/bundle/index.js +1 -1
  114. package/dist/bundle/rpc-entry.js +1 -1
  115. package/dist/client/remote-session.d.ts.map +1 -1
  116. package/dist/client/remote-session.js +65 -6
  117. package/dist/client/remote-session.js.map +1 -1
  118. package/dist/core/agent-session-store.d.ts.map +1 -1
  119. package/dist/core/agent-session-store.js +20 -3
  120. package/dist/core/agent-session-store.js.map +1 -1
  121. package/dist/core/extensions/agent-composition.d.ts.map +1 -1
  122. package/dist/core/extensions/agent-composition.js +20 -1
  123. package/dist/core/extensions/agent-composition.js.map +1 -1
  124. package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
  125. package/dist/core/i18n/locales/zh-cn/core-errors.js +1 -0
  126. package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -1
  127. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -1
  128. package/dist/core/i18n/locales/zh-cn/interactive-mode.js +10 -3
  129. package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -1
  130. package/dist/core/keybindings.d.ts +35 -0
  131. package/dist/core/keybindings.d.ts.map +1 -1
  132. package/dist/core/keybindings.js +34 -0
  133. package/dist/core/keybindings.js.map +1 -1
  134. package/dist/core/sdk.d.ts.map +1 -1
  135. package/dist/core/sdk.js +62 -15
  136. package/dist/core/sdk.js.map +1 -1
  137. package/dist/core/session-manager.d.ts.map +1 -1
  138. package/dist/core/session-manager.js +11 -3
  139. package/dist/core/session-manager.js.map +1 -1
  140. package/dist/core/system-prompt.d.ts.map +1 -1
  141. package/dist/core/system-prompt.js +2 -2
  142. package/dist/core/system-prompt.js.map +1 -1
  143. package/dist/core/tools/capability-mount.d.ts.map +1 -1
  144. package/dist/core/tools/capability-mount.js +4 -21
  145. package/dist/core/tools/capability-mount.js.map +1 -1
  146. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  147. package/dist/modes/interactive/components/assistant-message.js +2 -2
  148. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  149. package/dist/modes/interactive/components/bash-execution.d.ts +2 -0
  150. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  151. package/dist/modes/interactive/components/bash-execution.js +25 -0
  152. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  153. package/dist/modes/interactive/components/changelog-pager.d.ts +53 -0
  154. package/dist/modes/interactive/components/changelog-pager.d.ts.map +1 -0
  155. package/dist/modes/interactive/components/changelog-pager.js +239 -0
  156. package/dist/modes/interactive/components/changelog-pager.js.map +1 -0
  157. package/dist/modes/interactive/components/tool-execution.d.ts +6 -0
  158. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  159. package/dist/modes/interactive/components/tool-execution.js +12 -0
  160. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  161. package/dist/modes/interactive/components/tool-run-group.d.ts +41 -11
  162. package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -1
  163. package/dist/modes/interactive/components/tool-run-group.js +126 -14
  164. package/dist/modes/interactive/components/tool-run-group.js.map +1 -1
  165. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
  166. package/dist/modes/interactive/interactive-commands.js +23 -13
  167. package/dist/modes/interactive/interactive-commands.js.map +1 -1
  168. package/dist/modes/interactive/interactive-events.d.ts +14 -4
  169. package/dist/modes/interactive/interactive-events.d.ts.map +1 -1
  170. package/dist/modes/interactive/interactive-events.js +94 -12
  171. package/dist/modes/interactive/interactive-events.js.map +1 -1
  172. package/dist/modes/interactive/interactive-mode.d.ts +6 -1
  173. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  174. package/dist/modes/interactive/interactive-mode.js +21 -5
  175. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  176. package/dist/plugins/ecosystem/node-local-package-source.d.ts +2 -1
  177. package/dist/plugins/ecosystem/node-local-package-source.d.ts.map +1 -1
  178. package/dist/plugins/ecosystem/node-local-package-source.js +110 -4
  179. package/dist/plugins/ecosystem/node-local-package-source.js.map +1 -1
  180. package/dist/plugins/ecosystem/node-package-install-host.d.ts.map +1 -1
  181. package/dist/plugins/ecosystem/node-package-install-host.js +106 -39
  182. package/dist/plugins/ecosystem/node-package-install-host.js.map +1 -1
  183. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
  184. package/dist/plugins/ecosystem/node-plugin-bootstrap.js +59 -2
  185. package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
  186. package/dist/suites/builtin-suites.d.ts.map +1 -1
  187. package/dist/suites/builtin-suites.js +2 -2
  188. package/dist/suites/builtin-suites.js.map +1 -1
  189. package/dist/utils/changelog.d.ts +27 -0
  190. package/dist/utils/changelog.d.ts.map +1 -1
  191. package/dist/utils/changelog.js +110 -0
  192. package/dist/utils/changelog.js.map +1 -1
  193. package/docs/keybindings.md +14 -0
  194. package/examples/extensions/with-deps/package-lock.json +2 -2
  195. package/examples/extensions/with-deps/package.json +1 -1
  196. package/examples/extensions/with-deps/plugin.json +1 -1
  197. package/package.json +1 -1
  198. package/dist/bundle/chunks/chunk-A3JYRWB6.js +0 -2
package/dist/core/sdk.js CHANGED
@@ -157,6 +157,32 @@ const CODING_TOOLS_PACKAGE_ID = "agent-forge.plugin.coding-tools";
157
157
  * wrapper 以 priority -100 注册(契约 A),无论装载顺序都在链最外层。
158
158
  */
159
159
  const PROVIDER_FAILOVER_PACKAGE_ID = "agent-forge.plugin.provider-failover";
160
+ /**
161
+ * Plugin id of the standalone browser-playwright package(D-082 §4.9 范围扩围,
162
+ * 2026-10-08 用户裁决:浏览器操作开箱可用,从 0 安装即可 mount): the Playwright
163
+ * browser tool family lives in the `plugins/browser-playwright` package and
164
+ * assembles through the bundled distribution channel (§4.9) as a fourth-file
165
+ * copy (plugin.json / agent-forge.json / MANUAL.md / dist/**). Its manifest
166
+ * declares `activation: "on-demand"`: loading registers no tools and only the
167
+ * mountable capability card (description + manual path) enters the system
168
+ * prompt; `capability_mount` activates the tools per plugin on demand. Because
169
+ * that dormancy self-guards inside the plugin (与 provider-failover 的 config
170
+ * no-op 自守卫同构), it is exempt from the suite capabilities declaration gate
171
+ * (see {@link BUNDLED_WIRING_EXEMPT_PLUGIN_IDS}) — the card stays available in
172
+ * every suite by default and `disabledPluginIds` still disables it.
173
+ */
174
+ const BROWSER_PLAYWRIGHT_PACKAGE_ID = "agent-forge.plugin.browser-playwright";
175
+ /**
176
+ * Plugin id of the standalone alignment package(2026-10-08 用户裁决:需求对齐是
177
+ * 编程助手开箱能力,从 0 安装即可用): the goal→detail→design requirement
178
+ * alignment funnel lives in the `plugins/alignment` package and assembles
179
+ * through the bundled distribution channel (§4.9) as a three-file copy
180
+ * (plugin.json / agent-forge.json / dist/**). It declares no `provides`, so it
181
+ * cannot pass the suite capabilities declaration gate and is exempt via
182
+ * {@link BUNDLED_WIRING_EXEMPT_PLUGIN_IDS}; its three tools join the default
183
+ * full-control tool surface (always activation, no dormancy).
184
+ */
185
+ const ALIGNMENT_PACKAGE_ID = "agent-forge.plugin.alignment";
160
186
  /**
161
187
  * Bundled 默认面插件 id 集合(D-082 批 3):随发行物 bundled 分发、不受 suite
162
188
  * capabilities 声明门控的第一方默认插件——内嵌时代的默认工具面(coding-tools,
@@ -172,15 +198,22 @@ const BUNDLED_DEFAULT_PLUGIN_IDS = new Set([
172
198
  "agent-forge.plugin.compaction-policy",
173
199
  ]);
174
200
  /**
175
- * Bundled 装配豁免集合(D-082 批 3b):bundled 候选中不受 suite capabilities
176
- * 声明门控的插件 id——默认面({@link BUNDLED_DEFAULT_PLUGIN_IDS},五 id)加上
177
- * config 门控可选能力 provider-failover(第六 id,config 门控豁免而非默认策略:
178
- * settings `failover` 节存在即装配,与内嵌装配同语义;节点不存在时插件工厂
179
- * 自守卫 no-op)。disabledPluginIds 仍可禁用其中任何一个。
201
+ * Bundled 装配豁免集合(D-082 批 3b;2026-10-08 扩 browser-playwright、alignment):
202
+ * bundled 候选中不受 suite capabilities 声明门控的插件 id——默认面({@link
203
+ * BUNDLED_DEFAULT_PLUGIN_IDS},五 id)、config 门控可选能力 provider-failover
204
+ * (第六 id,config 门控豁免而非默认策略:settings `failover` 节存在即装配,与
205
+ * 内嵌装配同语义;节点不存在时插件工厂自守卫 no-op)、on-demand 的
206
+ * browser-playwright(第七 id,dormancy 由插件自守卫:装载零工具注册,仅
207
+ * mountable 卡片进系统提示,capability_mount 按需激活),加 always 激活的
208
+ * alignment(第八 id,不 provides capability 无法走声明门控;三工具随默认
209
+ * full-control 工具面)。后两者均为 2026-10-08 用户裁决(浏览器操作、需求对齐
210
+ * 开箱可用,从 0 安装即可用)。disabledPluginIds 仍可禁用其中任何一个。
180
211
  */
181
212
  const BUNDLED_WIRING_EXEMPT_PLUGIN_IDS = new Set([
182
213
  ...BUNDLED_DEFAULT_PLUGIN_IDS,
183
214
  PROVIDER_FAILOVER_PACKAGE_ID,
215
+ BROWSER_PLAYWRIGHT_PACKAGE_ID,
216
+ ALIGNMENT_PACKAGE_ID,
184
217
  ]);
185
218
  /**
186
219
  * Bundled 默认策略包的目录名(plugins/ 工作副本与发行物 bundled-plugins/ 快照
@@ -201,13 +234,17 @@ const BUNDLED_DEFAULT_POLICY_PACKAGES = [
201
234
  * `<packageRoot>/bundled-plugins/<name>/` (data files, not npm deps).
202
235
  * - Dev repository form: the repo-root working copies of the packages this
203
236
  * batch migrated (`<repoRoot>/plugins/coding-tools` — 批 1;四个策略包 — 批 3;
204
- * provider-failover — 批 3b).
205
- * Sibling first-party packages keep their install-store assembly (D-075
206
- * S4/S5 semantics, pinned by the ecosystem assembly tests) until their own
207
- * migration batch (S7-S9) widens this root.
237
+ * provider-failover — 批 3b;browser-playwright、alignment — 2026-10-08 范围
238
+ * 扩围). Sibling first-party packages keep their install-store assembly
239
+ * (D-075 S4/S5 semantics, pinned by the ecosystem assembly tests) until their
240
+ * own migration batch (S7-S9) widens this root.
208
241
  *
209
- * 工具面(coding-tools)受 noTools 整层跳过(对照内嵌工具装配的跳过语义);
210
- * 策略面不受 noTools 门控——内嵌 installBootstrap* 时代它们随会话无条件安装。
242
+ * 工具面(coding-tools、browser-playwright、alignment)受 noTools 整层跳过(对照
243
+ * 内嵌工具装配的跳过语义);策略面不受 noTools 门控——内嵌 installBootstrap* 时
244
+ * 代它们随会话无条件安装。browser-playwright 是 on-demand 激活:装载零工具注册,
245
+ * 仅 mountable 卡片进系统提示(2026-10-08 用户裁决:浏览器操作开箱可用)。
246
+ * alignment 是 always 激活:三工具进默认 full-control 工具面(2026-10-08 用户裁
247
+ * 决:需求对齐开箱可用)。
211
248
  *
212
249
  * The package root is derived from this module's URL: src runs sit at
213
250
  * `src/core/`, unbundled dist runs at `dist/core/` (both two levels up), and
@@ -240,6 +277,12 @@ function bundledCapabilityPluginRoots() {
240
277
  // gate instead of passing unnoticed.
241
278
  const devPluginsRoot = join(packageRoot, "..", "..", "plugins");
242
279
  toolRoots.push(join(devPluginsRoot, "coding-tools"));
280
+ // browser-playwright(2026-10-08 范围扩围):浏览器工具面随工具根分发(受
281
+ // noTools 门控,与工具面同语义);on-demand 激活保持装载不进默认工具面。
282
+ toolRoots.push(join(devPluginsRoot, "browser-playwright"));
283
+ // alignment(2026-10-08 用户裁决):对齐三工具随工具根分发,always 激活进
284
+ // 默认 full-control 工具面(受 noTools 门控)。
285
+ toolRoots.push(join(devPluginsRoot, "alignment"));
243
286
  for (const name of BUNDLED_DEFAULT_POLICY_PACKAGES)
244
287
  policyRoots.push(join(devPluginsRoot, name));
245
288
  // provider-failover(D-082 批 3b):config 门控可选能力,随策略面根分发
@@ -247,6 +290,8 @@ function bundledCapabilityPluginRoots() {
247
290
  policyRoots.push(join(devPluginsRoot, "provider-failover"));
248
291
  const bundledRoot = join(packageRoot, "bundled-plugins");
249
292
  toolRoots.push(join(bundledRoot, "coding-tools"));
293
+ toolRoots.push(join(bundledRoot, "browser-playwright"));
294
+ toolRoots.push(join(bundledRoot, "alignment"));
250
295
  for (const name of BUNDLED_DEFAULT_POLICY_PACKAGES)
251
296
  policyRoots.push(join(bundledRoot, name));
252
297
  policyRoots.push(join(bundledRoot, "provider-failover"));
@@ -1181,10 +1226,12 @@ export async function createAgentSession(options = {}) {
1181
1226
  discoveredPluginIds.push(entry.manifest.id);
1182
1227
  const bundledCandidate = bundledManifestPathSet.has(entry.path);
1183
1228
  // Bundled 层过滤:bundled 装配豁免集合(coding-tools 工具面 + 四个默认
1184
- // 策略插件 + config 门控的 provider-failover,BUNDLED_WIRING_EXEMPT_
1185
- // PLUGIN_IDS)不受 suite capabilities 声明门控,与内嵌装配同语义——
1186
- // failover 的"配置存在即装配"不是套件声明可关闭的面(disabledPluginIds
1187
- // 仍可显式禁用);其余 bundled 候选与 installed 层同法——
1229
+ // 策略插件 + config 门控的 provider-failover + on-demand 的
1230
+ // browser-playwright,BUNDLED_WIRING_EXEMPT_PLUGIN_IDS)不受 suite
1231
+ // capabilities 声明门控,与内嵌装配同语义——failover 的"配置存在即装
1232
+ // 配"与 browser-playwright 的"开箱即有 mountable 卡片"(2026-10-08 用
1233
+ // 户裁决)都不是套件声明可关闭的面(disabledPluginIds 仍可显式禁用);
1234
+ // 其余 bundled 候选与 installed 层同法——
1188
1235
  // capabilityWiring 开启时插件 id 必须命中 capabilityPackageIds(套件
1189
1236
  // 未选中的包静默缺席),关闭(自持 loader 的宿主)全收,保底拿到产品
1190
1237
  // 默认面。disabledPluginIds(既有用户面)作用于全部 bundled 候选。