@particle-academy/agent-integrations 0.49.0 → 0.51.0

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 (226) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +11 -0
  3. package/dist/bridges/artboard.d.cts +3 -3
  4. package/dist/bridges/artboard.d.ts +3 -3
  5. package/dist/bridges/catalog.d.cts +3 -3
  6. package/dist/bridges/catalog.d.ts +3 -3
  7. package/dist/bridges/charts.d.cts +3 -3
  8. package/dist/bridges/charts.d.ts +3 -3
  9. package/dist/bridges/cms.d.cts +3 -3
  10. package/dist/bridges/cms.d.ts +3 -3
  11. package/dist/bridges/code.d.cts +3 -3
  12. package/dist/bridges/code.d.ts +3 -3
  13. package/dist/bridges/doc.d.cts +3 -3
  14. package/dist/bridges/doc.d.ts +3 -3
  15. package/dist/bridges/features.d.cts +3 -3
  16. package/dist/bridges/features.d.ts +3 -3
  17. package/dist/bridges/files.d.cts +3 -3
  18. package/dist/bridges/files.d.ts +3 -3
  19. package/dist/bridges/flow.d.cts +3 -3
  20. package/dist/bridges/flow.d.ts +3 -3
  21. package/dist/bridges/forms.d.cts +3 -3
  22. package/dist/bridges/forms.d.ts +3 -3
  23. package/dist/bridges/git.d.cts +3 -3
  24. package/dist/bridges/git.d.ts +3 -3
  25. package/dist/bridges/grid.d.cts +3 -3
  26. package/dist/bridges/grid.d.ts +3 -3
  27. package/dist/bridges/map.d.cts +3 -3
  28. package/dist/bridges/map.d.ts +3 -3
  29. package/dist/bridges/navigation.d.cts +3 -3
  30. package/dist/bridges/navigation.d.ts +3 -3
  31. package/dist/bridges/passkeys.d.cts +3 -3
  32. package/dist/bridges/passkeys.d.ts +3 -3
  33. package/dist/bridges/scene.d.cts +3 -3
  34. package/dist/bridges/scene.d.ts +3 -3
  35. package/dist/bridges/screen-doc.d.cts +3 -3
  36. package/dist/bridges/screen-doc.d.ts +3 -3
  37. package/dist/bridges/screens.d.cts +3 -3
  38. package/dist/bridges/screens.d.ts +3 -3
  39. package/dist/bridges/sheets.d.cts +3 -3
  40. package/dist/bridges/sheets.d.ts +3 -3
  41. package/dist/bridges/slides.d.cts +3 -3
  42. package/dist/bridges/slides.d.ts +3 -3
  43. package/dist/bridges/terminal.d.cts +3 -3
  44. package/dist/bridges/terminal.d.ts +3 -3
  45. package/dist/bridges/tui.d.cts +2 -2
  46. package/dist/bridges/tui.d.ts +2 -2
  47. package/dist/bridges/whiteboard.d.cts +3 -3
  48. package/dist/bridges/whiteboard.d.ts +3 -3
  49. package/dist/bridges-artboard.cjs +11 -5
  50. package/dist/bridges-artboard.cjs.map +1 -1
  51. package/dist/bridges-artboard.js +6 -4
  52. package/dist/bridges-artboard.js.map +1 -1
  53. package/dist/bridges-catalog.cjs +35 -13
  54. package/dist/bridges-catalog.cjs.map +1 -1
  55. package/dist/bridges-catalog.js +3 -3
  56. package/dist/bridges-charts.cjs +11 -5
  57. package/dist/bridges-charts.cjs.map +1 -1
  58. package/dist/bridges-charts.js +3 -3
  59. package/dist/bridges-cms.cjs +11 -5
  60. package/dist/bridges-cms.cjs.map +1 -1
  61. package/dist/bridges-cms.js +4 -4
  62. package/dist/bridges-code.cjs +11 -5
  63. package/dist/bridges-code.cjs.map +1 -1
  64. package/dist/bridges-code.js +3 -3
  65. package/dist/bridges-doc.cjs +11 -5
  66. package/dist/bridges-doc.cjs.map +1 -1
  67. package/dist/bridges-doc.js +3 -3
  68. package/dist/bridges-features.cjs +21 -11
  69. package/dist/bridges-features.cjs.map +1 -1
  70. package/dist/bridges-features.js +3 -3
  71. package/dist/bridges-files.cjs +11 -5
  72. package/dist/bridges-files.cjs.map +1 -1
  73. package/dist/bridges-files.js +3 -3
  74. package/dist/bridges-flow.cjs +11 -5
  75. package/dist/bridges-flow.cjs.map +1 -1
  76. package/dist/bridges-flow.js +6 -4
  77. package/dist/bridges-flow.js.map +1 -1
  78. package/dist/bridges-forms.cjs +11 -5
  79. package/dist/bridges-forms.cjs.map +1 -1
  80. package/dist/bridges-forms.js +3 -3
  81. package/dist/bridges-git.cjs +10 -5
  82. package/dist/bridges-git.cjs.map +1 -1
  83. package/dist/bridges-git.js +3 -3
  84. package/dist/bridges-grid.cjs +11 -5
  85. package/dist/bridges-grid.cjs.map +1 -1
  86. package/dist/bridges-grid.js +3 -3
  87. package/dist/bridges-map.cjs +11 -5
  88. package/dist/bridges-map.cjs.map +1 -1
  89. package/dist/bridges-map.js +3 -3
  90. package/dist/bridges-navigation.cjs +15 -9
  91. package/dist/bridges-navigation.cjs.map +1 -1
  92. package/dist/bridges-navigation.js +3 -3
  93. package/dist/bridges-passkeys.cjs +17 -7
  94. package/dist/bridges-passkeys.cjs.map +1 -1
  95. package/dist/bridges-passkeys.js +3 -3
  96. package/dist/bridges-scene.cjs +11 -5
  97. package/dist/bridges-scene.cjs.map +1 -1
  98. package/dist/bridges-scene.js +3 -3
  99. package/dist/bridges-screen-doc.cjs +14 -6
  100. package/dist/bridges-screen-doc.cjs.map +1 -1
  101. package/dist/bridges-screen-doc.js +4 -4
  102. package/dist/bridges-screens.cjs +11 -5
  103. package/dist/bridges-screens.cjs.map +1 -1
  104. package/dist/bridges-screens.js +3 -3
  105. package/dist/bridges-sheets.cjs +11 -5
  106. package/dist/bridges-sheets.cjs.map +1 -1
  107. package/dist/bridges-sheets.js +3 -3
  108. package/dist/bridges-slides.cjs +11 -5
  109. package/dist/bridges-slides.cjs.map +1 -1
  110. package/dist/bridges-slides.js +3 -3
  111. package/dist/bridges-terminal.cjs +11 -5
  112. package/dist/bridges-terminal.cjs.map +1 -1
  113. package/dist/bridges-terminal.js +3 -3
  114. package/dist/bridges-tui.cjs +1 -1
  115. package/dist/bridges-tui.cjs.map +1 -1
  116. package/dist/bridges-tui.js +2 -2
  117. package/dist/bridges-whiteboard.cjs +11 -5
  118. package/dist/bridges-whiteboard.cjs.map +1 -1
  119. package/dist/bridges-whiteboard.js +3 -3
  120. package/dist/{chunk-CZV3WUW5.js → chunk-3GFKC6OK.js} +20 -7
  121. package/dist/chunk-3GFKC6OK.js.map +1 -0
  122. package/dist/{chunk-JLHVQWOV.js → chunk-6Q3PMT7K.js} +4 -4
  123. package/dist/chunk-6Q3PMT7K.js.map +1 -0
  124. package/dist/{chunk-AXWMWYH5.js → chunk-C4AQ2YBW.js} +7 -6
  125. package/dist/chunk-C4AQ2YBW.js.map +1 -0
  126. package/dist/{chunk-CS3CHGYC.js → chunk-CI5ZVHDY.js} +32 -14
  127. package/dist/chunk-CI5ZVHDY.js.map +1 -0
  128. package/dist/{chunk-5ZWNCHZS.js → chunk-CKJL5C7A.js} +8 -6
  129. package/dist/chunk-CKJL5C7A.js.map +1 -0
  130. package/dist/{chunk-HOZCDDRA.js → chunk-CP3EHLZJ.js} +8 -6
  131. package/dist/chunk-CP3EHLZJ.js.map +1 -0
  132. package/dist/{chunk-VFWFT3OK.js → chunk-DNF3QVTW.js} +8 -6
  133. package/dist/chunk-DNF3QVTW.js.map +1 -0
  134. package/dist/{chunk-OHNGURUJ.js → chunk-HNVHAY4A.js} +12 -10
  135. package/dist/chunk-HNVHAY4A.js.map +1 -0
  136. package/dist/{chunk-GVTBMJU6.js → chunk-KAEPC6N4.js} +18 -12
  137. package/dist/chunk-KAEPC6N4.js.map +1 -0
  138. package/dist/{chunk-3WVXAB3D.js → chunk-M423JOQ3.js} +3 -3
  139. package/dist/{chunk-3WVXAB3D.js.map → chunk-M423JOQ3.js.map} +1 -1
  140. package/dist/{chunk-SWWJUOCY.js → chunk-MKC633WU.js} +3 -3
  141. package/dist/{chunk-SWWJUOCY.js.map → chunk-MKC633WU.js.map} +1 -1
  142. package/dist/{chunk-LQB42OSA.js → chunk-MKJE6V4Z.js} +8 -6
  143. package/dist/chunk-MKJE6V4Z.js.map +1 -0
  144. package/dist/{chunk-MIDZWKIF.js → chunk-NB5AQIR2.js} +8 -6
  145. package/dist/chunk-NB5AQIR2.js.map +1 -0
  146. package/dist/{chunk-VMRUW4B4.js → chunk-OUUHFR4N.js} +8 -6
  147. package/dist/chunk-OUUHFR4N.js.map +1 -0
  148. package/dist/{chunk-FCXSR7I5.js → chunk-P6SJBP5T.js} +8 -6
  149. package/dist/chunk-P6SJBP5T.js.map +1 -0
  150. package/dist/{chunk-5JLTXHX6.js → chunk-PMPBI6I3.js} +7 -5
  151. package/dist/chunk-PMPBI6I3.js.map +1 -0
  152. package/dist/{chunk-G6CRHFWU.js → chunk-PV4FZDYX.js} +14 -8
  153. package/dist/chunk-PV4FZDYX.js.map +1 -0
  154. package/dist/{chunk-3UUF5KKZ.js → chunk-QEVSNDJW.js} +8 -6
  155. package/dist/chunk-QEVSNDJW.js.map +1 -0
  156. package/dist/{chunk-VOCUGTZB.js → chunk-S4DA2UTJ.js} +8 -6
  157. package/dist/chunk-S4DA2UTJ.js.map +1 -0
  158. package/dist/{chunk-RVMM4BHK.js → chunk-V6EHKHSF.js} +8 -6
  159. package/dist/chunk-V6EHKHSF.js.map +1 -0
  160. package/dist/{chunk-36MKPTVD.js → chunk-VE7TRWZR.js} +8 -6
  161. package/dist/chunk-VE7TRWZR.js.map +1 -0
  162. package/dist/{chunk-Z5NL5D4J.js → chunk-VFUKZ6UA.js} +8 -6
  163. package/dist/chunk-VFUKZ6UA.js.map +1 -0
  164. package/dist/{chunk-3HVYUMQF.js → chunk-VHB3VE53.js} +8 -6
  165. package/dist/chunk-VHB3VE53.js.map +1 -0
  166. package/dist/{chunk-R4XXOGQH.js → chunk-ZDKYKJFH.js} +10 -6
  167. package/dist/chunk-ZDKYKJFH.js.map +1 -0
  168. package/dist/components-shared-whiteboard.cjs +29 -10
  169. package/dist/components-shared-whiteboard.cjs.map +1 -1
  170. package/dist/components-shared-whiteboard.js +3 -3
  171. package/dist/dom-navigation/index.d.cts +3 -3
  172. package/dist/dom-navigation/index.d.ts +3 -3
  173. package/dist/index.cjs +140 -64
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.d.cts +5 -5
  176. package/dist/index.d.ts +5 -5
  177. package/dist/index.js +26 -26
  178. package/dist/mcp/index.d.cts +5 -5
  179. package/dist/mcp/index.d.ts +5 -5
  180. package/dist/mcp/stdio.d.cts +3 -3
  181. package/dist/mcp/stdio.d.ts +3 -3
  182. package/dist/mcp.cjs +18 -5
  183. package/dist/mcp.cjs.map +1 -1
  184. package/dist/mcp.js +1 -1
  185. package/dist/presence/index.d.cts +1 -1
  186. package/dist/presence/index.d.ts +1 -1
  187. package/dist/{server-1y0n61R5.d.cts → server-DJJygNo1.d.cts} +2 -2
  188. package/dist/{server-vq6qVl3T.d.ts → server-Dwo9LOxh.d.ts} +2 -2
  189. package/dist/sharing/index.d.cts +3 -3
  190. package/dist/sharing/index.d.ts +3 -3
  191. package/dist/sheets-adapter.d.cts +3 -3
  192. package/dist/sheets-adapter.d.ts +3 -3
  193. package/dist/{tool-host-LYfdPE8u.d.ts → tool-host-BBSaU7IJ.d.cts} +10 -4
  194. package/dist/{tool-host-D67N2a2h.d.cts → tool-host-BqJRPr_T.d.ts} +10 -4
  195. package/dist/{types-DP5yQZQU.d.cts → types-D_H2f-wF.d.cts} +1 -1
  196. package/dist/{types-VX_9je7w.d.ts → types-D_TzdBsK.d.ts} +1 -1
  197. package/dist/{types-gzIpsUDE.d.cts → types-ITRQFAir.d.cts} +26 -1
  198. package/dist/{types-gzIpsUDE.d.ts → types-ITRQFAir.d.ts} +26 -1
  199. package/dist/undo/index.d.cts +2 -2
  200. package/dist/undo/index.d.ts +2 -2
  201. package/dist/undo.cjs +7 -3
  202. package/dist/undo.cjs.map +1 -1
  203. package/dist/undo.js +3 -3
  204. package/package.json +1 -1
  205. package/dist/chunk-36MKPTVD.js.map +0 -1
  206. package/dist/chunk-3HVYUMQF.js.map +0 -1
  207. package/dist/chunk-3UUF5KKZ.js.map +0 -1
  208. package/dist/chunk-5JLTXHX6.js.map +0 -1
  209. package/dist/chunk-5ZWNCHZS.js.map +0 -1
  210. package/dist/chunk-AXWMWYH5.js.map +0 -1
  211. package/dist/chunk-CS3CHGYC.js.map +0 -1
  212. package/dist/chunk-CZV3WUW5.js.map +0 -1
  213. package/dist/chunk-FCXSR7I5.js.map +0 -1
  214. package/dist/chunk-G6CRHFWU.js.map +0 -1
  215. package/dist/chunk-GVTBMJU6.js.map +0 -1
  216. package/dist/chunk-HOZCDDRA.js.map +0 -1
  217. package/dist/chunk-JLHVQWOV.js.map +0 -1
  218. package/dist/chunk-LQB42OSA.js.map +0 -1
  219. package/dist/chunk-MIDZWKIF.js.map +0 -1
  220. package/dist/chunk-OHNGURUJ.js.map +0 -1
  221. package/dist/chunk-R4XXOGQH.js.map +0 -1
  222. package/dist/chunk-RVMM4BHK.js.map +0 -1
  223. package/dist/chunk-VFWFT3OK.js.map +0 -1
  224. package/dist/chunk-VMRUW4B4.js.map +0 -1
  225. package/dist/chunk-VOCUGTZB.js.map +0 -1
  226. package/dist/chunk-Z5NL5D4J.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -11,6 +11,74 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [0.51.0] - 2026-10-27
15
+
16
+ ### Changed
17
+
18
+ - **BREAKING: `registerTool` refuses a tool name already held by a different
19
+ registrant.** It used to replace the existing tool silently, so when two
20
+ bridges or two agents in one app registered the same name, the second won.
21
+ The first stayed in `tools/list`, but every call reached the second handler
22
+ and nothing reported it. That breaks multi-agent apps. It now throws an
23
+ `Error` naming the tool and both owners, and leaves the first registration in
24
+ place.
25
+ **What to do:**
26
+ - **If you only use the bridges, nothing.** Every first-party bridge now
27
+ registers under its bridge id (`"whiteboard"`, `` `chart:${adapter.id}` ``,
28
+ `` `form:${adapter.id}` ``, …), so a remount of the same bridge still
29
+ re-registers, with or without a dispose in between. The shared undo tools
30
+ (`agent_undo` / `agent_redo` / `agent_history`) register under one owner,
31
+ `"agent-undo"`, so `ensureUndoToolsRegistered` and a direct
32
+ `registerUndoTools` call on the same host still coexist, as the showcase
33
+ playground does. A census of every first-party bridge found **no two
34
+ bridges sharing a tool name**, and all of them mount on one host together.
35
+ - **If you mount two instances of a multi-instance bridge on ONE host** (two
36
+ charts, grids, code editors, forms, scenes, catalogs, feature panels or
37
+ passkey surfaces with different adapter ids), the second now throws. Their
38
+ tool names were never instance-scoped, so the second instance had already
39
+ taken over the first's tools and the first was not drivable. Give each
40
+ instance its own host, or drive both through one adapter.
41
+ - **If you call `registerTool` yourself**, pass `{ owner: "<your surface>" }`.
42
+ The same owner may re-register its own names. A registration with no owner
43
+ can be identified by nothing, so it never counts as the same registrant:
44
+ registering an unowned name twice without disposing the first now throws.
45
+ If you re-register by name on purpose to swap a handler, either pass the
46
+ same `owner` both times or pass `{ replace: true }`, the explicit opt-in for
47
+ the old behaviour. No first-party consumer relies on overwriting another
48
+ registrant: `fancy-flow-mcp-js` registers each name once per server, and
49
+ the only repeat in the showcase is the playground registering the undo
50
+ tools itself before its bridges ensure them, which is one owner.
51
+
52
+ ### Added
53
+
54
+ - `RegisterToolOptions` (`owner`, `replace`), the optional third argument of
55
+ `ToolHost.registerTool`, exported from the package root and `/mcp`. Custom
56
+ `ToolHost` implementations keep compiling: the argument is optional.
57
+
58
+ ### Fixed
59
+
60
+ - **A late disposer no longer withdraws the registration that replaced it.** A
61
+ disposer used to delete whatever held the name, so a remount whose first
62
+ cleanup ran after the second mount unregistered the live tool. A disposer now
63
+ removes only the registration it returned from.
64
+
65
+ ## [0.50.0] - 2026-10-27
66
+
67
+ ### Fixed
68
+
69
+ - **`agent_undo` / `agent_redo` reported success before an async host had
70
+ committed** for the catalog (`catalog_create_product`, `catalog_create_price`,
71
+ `catalog_delete_product`, `catalog_delete_price`), features (`features_grant`,
72
+ `features_revoke`), passkeys (`passkey_rename`) and navigation (`nav_visit`)
73
+ bridges. Their undo and redo steps called the adapter method with `void` (or,
74
+ for `nav_visit`, without `await`) and dropped its promise, so the tool
75
+ answered first and a host rejection was lost or escaped as an unhandled
76
+ promise rejection. The steps now await the adapter: the tool resolves only once
77
+ the host commits, and a rejection fails the tool call with the host's error.
78
+ A failed step is handled exactly as a synchronous throw always has been: the
79
+ entry is dropped, leaving neither an undo nor a redo for it. **Nothing to do:**
80
+ sync adapters behave as before.
81
+
14
82
  ## [0.49.0] - 2026-10-27
15
83
 
16
84
  ### Added
package/README.md CHANGED
@@ -198,6 +198,17 @@ ends are delivered before the transport closes.
198
198
  Import `/mcp/stdio` only from Node. Browser bundles import `/mcp`, which never
199
199
  pulls it in.
200
200
 
201
+ **A tool name belongs to whoever registered it.** `registerTool` throws when a
202
+ name is already held by a different registrant, and the error names both. Pass
203
+ `{ owner }` to identify yourself: the same owner may register a name again (a
204
+ React remount does), and every bridge already registers under its bridge id.
205
+ Disposing frees the name. To take over another registrant's tool on purpose,
206
+ pass `{ replace: true }`.
207
+
208
+ ```ts
209
+ server.registerTool(definition, handler, { owner: "support-triage" });
210
+ ```
211
+
201
212
  ## Connect an agent to your app — `<ConnectorButtons>`
202
213
 
203
214
  The step *before* presence: getting your MCP server installed in the user's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Transport-level JSON shapes. These intentionally mirror fancy-artboard's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Transport-level JSON shapes. These intentionally mirror fancy-artboard's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-catalog` — a Stripe catalog with
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-catalog` — a Stripe catalog with
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Adapter wires a single fancy-echarts chart to the bridge. Charts are
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Adapter wires a single fancy-echarts chart to the bridge. Charts are
@@ -1,8 +1,8 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
3
  import { DocAdapter } from './doc.cjs';
4
4
  import { StyledNode, StagePolicy, TreeOp, StyleProps, LayoutMode, DocReducer, DocTree } from '@particle-academy/fancy-doc-commons';
5
- import '../types-gzIpsUDE.cjs';
5
+ import '../types-ITRQFAir.cjs';
6
6
 
7
7
  /**
8
8
  * registerCmsBridge — the greenfield CMS agent bridge, built entirely on
@@ -1,8 +1,8 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
3
  import { DocAdapter } from './doc.js';
4
4
  import { StyledNode, StagePolicy, TreeOp, StyleProps, LayoutMode, DocReducer, DocTree } from '@particle-academy/fancy-doc-commons';
5
- import '../types-gzIpsUDE.js';
5
+ import '../types-ITRQFAir.js';
6
6
 
7
7
  /**
8
8
  * registerCmsBridge — the greenfield CMS agent bridge, built entirely on
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Adapter the host wires to a fancy-code CodeEditor (typically via the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Adapter the host wires to a fancy-code CodeEditor (typically via the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { J as JsonObject } from '../types-gzIpsUDE.cjs';
3
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { J as JsonObject } from '../types-ITRQFAir.cjs';
3
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
4
4
  import { DocNode, DocTree, TreeOp, DocReducer, StagePolicy } from '@particle-academy/fancy-doc-commons';
5
5
 
6
6
  /** Host-provided access to the document tree. */
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { J as JsonObject } from '../types-gzIpsUDE.js';
3
- import { B as Bridge } from '../types-VX_9je7w.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { J as JsonObject } from '../types-ITRQFAir.js';
3
+ import { B as Bridge } from '../types-D_TzdBsK.js';
4
4
  import { DocNode, DocTree, TreeOp, DocReducer, StagePolicy } from '@particle-academy/fancy-doc-commons';
5
5
 
6
6
  /** Host-provided access to the document tree. */
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-features` — feature management
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Headless bridge for `@particle-academy/fancy-features` — feature management
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  type FileKind = "file" | "dir";
6
6
  type FileEntry = {
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  type FileKind = "file" | "dir";
6
6
  type FileEntry = {
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  type FlowNode = {
6
6
  id: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  type FlowNode = {
6
6
  id: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Field descriptor — what the host says about each form field. Mirrors the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Field descriptor — what the host says about each form field. Mirrors the
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  type GitProposal = {
6
6
  operation: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  type GitProposal = {
6
6
  operation: string;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Loose grid types — the public state shape of `@particle-academy/fancy-grid`,
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Loose grid types — the public state shape of `@particle-academy/fancy-grid`,
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  type LatLng = {
6
6
  lat: number;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  type LatLng = {
6
6
  lat: number;
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * One interactive element the agent can act on, addressed by a STABLE handle
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * One interactive element the agent can act on, addressed by a STABLE handle
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Bridge for `@particle-academy/fancy-passkeys-ui` — the **management** half of
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Bridge for `@particle-academy/fancy-passkeys-ui` — the **management** half of
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Loose Scene types — mirror the public surface of fancy-3d's Scene
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Loose Scene types — mirror the public surface of fancy-3d's Scene
@@ -1,8 +1,8 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
3
  import { DocAdapter } from './doc.cjs';
4
4
  import { DocNode, StagePolicy, TreeOp } from '@particle-academy/fancy-doc-commons';
5
- import '../types-gzIpsUDE.cjs';
5
+ import '../types-ITRQFAir.cjs';
6
6
 
7
7
  /**
8
8
  * Reserved node type for a literal string child. Must match fancy-screens'
@@ -1,8 +1,8 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
3
  import { DocAdapter } from './doc.js';
4
4
  import { DocNode, StagePolicy, TreeOp } from '@particle-academy/fancy-doc-commons';
5
- import '../types-gzIpsUDE.js';
5
+ import '../types-ITRQFAir.js';
6
6
 
7
7
  /**
8
8
  * Reserved node type for a literal string child. Must match fancy-screens'
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * Loose snapshot of a screen — what's in fancy-screens' ScreenMeta plus
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * Loose snapshot of a screen — what's in fancy-screens' ScreenMeta plus
@@ -1,7 +1,7 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
3
  import { WorkbookData } from '@particle-academy/fancy-sheets';
4
- import '../types-gzIpsUDE.cjs';
4
+ import '../types-ITRQFAir.cjs';
5
5
 
6
6
  /**
7
7
  * Cell writes funnel through fancy-sheets' own `reduceWorkbook` + `SheetOp` —
@@ -1,7 +1,7 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
3
  import { WorkbookData } from '@particle-academy/fancy-sheets';
4
- import '../types-gzIpsUDE.js';
4
+ import '../types-ITRQFAir.js';
5
5
 
6
6
  /**
7
7
  * Cell writes funnel through fancy-sheets' own `reduceWorkbook` + `SheetOp` —
@@ -1,7 +1,7 @@
1
1
  import { Deck, DeckOp } from '@particle-academy/fancy-slides';
2
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
3
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
4
- import '../types-gzIpsUDE.cjs';
2
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
3
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
4
+ import '../types-ITRQFAir.cjs';
5
5
 
6
6
  /**
7
7
  * Adapter — the bridge calls into these to read or change deck state. The
@@ -1,7 +1,7 @@
1
1
  import { Deck, DeckOp } from '@particle-academy/fancy-slides';
2
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
3
- import { B as Bridge } from '../types-VX_9je7w.js';
4
- import '../types-gzIpsUDE.js';
2
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
3
+ import { B as Bridge } from '../types-D_TzdBsK.js';
4
+ import '../types-ITRQFAir.js';
5
5
 
6
6
  /**
7
7
  * Adapter — the bridge calls into these to read or change deck state. The
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
2
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
3
- import '../types-gzIpsUDE.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  /**
6
6
  * A shell/profile an agent can switch a terminal to. Mirrors fancy-term's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
2
- import { B as Bridge } from '../types-VX_9je7w.js';
3
- import '../types-gzIpsUDE.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
+ import { B as Bridge } from '../types-D_TzdBsK.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  /**
6
6
  * A shell/profile an agent can switch a terminal to. Mirrors fancy-term's
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
1
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
2
2
  import { HumanPlusEventStore, HumanPlusActor } from '../human-plus/index.cjs';
3
- import '../types-gzIpsUDE.cjs';
3
+ import '../types-ITRQFAir.cjs';
4
4
 
5
5
  type TuiActionPolicy = "observe" | "execute" | "propose" | "confirm" | "human-only";
6
6
  interface TuiSurfaceCommandLike {
@@ -1,6 +1,6 @@
1
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
1
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
2
2
  import { HumanPlusEventStore, HumanPlusActor } from '../human-plus/index.js';
3
- import '../types-gzIpsUDE.js';
3
+ import '../types-ITRQFAir.js';
4
4
 
5
5
  type TuiActionPolicy = "observe" | "execute" | "propose" | "confirm" | "human-only";
6
6
  interface TuiSurfaceCommandLike {
@@ -1,7 +1,7 @@
1
1
  import { StickyNoteItem, ShapeItem, ConnectorItem, Stroke, Viewport, RemoteCursor } from '@particle-academy/fancy-whiteboard';
2
- import { T as ToolHost } from '../tool-host-D67N2a2h.cjs';
3
- import { B as Bridge } from '../types-DP5yQZQU.cjs';
4
- import '../types-gzIpsUDE.cjs';
2
+ import { T as ToolHost } from '../tool-host-BBSaU7IJ.cjs';
3
+ import { B as Bridge } from '../types-D_H2f-wF.cjs';
4
+ import '../types-ITRQFAir.cjs';
5
5
 
6
6
  /**
7
7
  * State accessors / mutators the bridge needs from the host. The host owns
@@ -1,7 +1,7 @@
1
1
  import { StickyNoteItem, ShapeItem, ConnectorItem, Stroke, Viewport, RemoteCursor } from '@particle-academy/fancy-whiteboard';
2
- import { T as ToolHost } from '../tool-host-LYfdPE8u.js';
3
- import { B as Bridge } from '../types-VX_9je7w.js';
4
- import '../types-gzIpsUDE.js';
2
+ import { T as ToolHost } from '../tool-host-BqJRPr_T.js';
3
+ import { B as Bridge } from '../types-D_TzdBsK.js';
4
+ import '../types-ITRQFAir.js';
5
5
 
6
6
  /**
7
7
  * State accessors / mutators the bridge needs from the host. The host owns