sygnal 7.0.0 → 7.2.0-preview.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 (343) hide show
  1. package/CHANGELOG.md +632 -0
  2. package/dist/agent-ui.cjs.js +592 -0
  3. package/dist/agent-ui.cjs.js.map +1 -0
  4. package/dist/agent-ui.esm.js +582 -0
  5. package/dist/agent-ui.esm.js.map +1 -0
  6. package/dist/api.cjs.js +63 -0
  7. package/dist/api.cjs.js.map +1 -0
  8. package/dist/api.esm.js +2 -0
  9. package/dist/api.esm.js.map +1 -0
  10. package/dist/astro/index.cjs.js +968 -4
  11. package/dist/astro/index.cjs.js.map +1 -1
  12. package/dist/astro/index.mjs +968 -4
  13. package/dist/astro/index.mjs.map +1 -1
  14. package/dist/astro/server.cjs.js +73 -45
  15. package/dist/astro/server.cjs.js.map +1 -1
  16. package/dist/astro/server.mjs +73 -45
  17. package/dist/astro/server.mjs.map +1 -1
  18. package/dist/canvas.cjs.js +2919 -0
  19. package/dist/canvas.cjs.js.map +1 -0
  20. package/dist/canvas.esm.js +2866 -0
  21. package/dist/canvas.esm.js.map +1 -0
  22. package/dist/devtools.cjs.js +38 -6
  23. package/dist/devtools.cjs.js.map +1 -1
  24. package/dist/devtools.esm.js +38 -6
  25. package/dist/devtools.esm.js.map +1 -1
  26. package/dist/diagnostics.cjs.js +224 -20
  27. package/dist/diagnostics.cjs.js.map +1 -1
  28. package/dist/diagnostics.esm.js +224 -20
  29. package/dist/diagnostics.esm.js.map +1 -1
  30. package/dist/guide/accessibility.md +1 -1
  31. package/dist/guide/ai-compose.md +150 -0
  32. package/dist/guide/behaviors.md +2 -1
  33. package/dist/guide/collaborative-state.md +265 -0
  34. package/dist/guide/element-commands.md +36 -2
  35. package/dist/guide/forms-reference.md +5 -5
  36. package/dist/guide/forms.md +3 -2
  37. package/dist/guide/http.md +28 -1
  38. package/dist/guide/islands.md +240 -0
  39. package/dist/guide/recipes/code-editor.md +1 -1
  40. package/dist/guide/renderers/agent-ui.md +138 -0
  41. package/dist/guide/renderers/custom-targets.md +126 -0
  42. package/dist/guide/renderers/overview.md +120 -0
  43. package/dist/guide/renderers/react-native.md +128 -0
  44. package/dist/guide/renderers/terminal.md +306 -0
  45. package/dist/guide/renderers/three.md +332 -0
  46. package/dist/guide/renderers/write-once.md +137 -0
  47. package/dist/guide/resources.md +2 -0
  48. package/dist/guide/sandboxed-components.md +223 -0
  49. package/dist/guide/timers.md +32 -5
  50. package/dist/guide/typed-apis.md +442 -0
  51. package/dist/guide/ui/accordion.md +11 -0
  52. package/dist/guide/ui/combobox.md +112 -8
  53. package/dist/guide/ui/dialog.md +96 -20
  54. package/dist/guide/ui/menu.md +57 -5
  55. package/dist/guide/ui/overview.md +8 -4
  56. package/dist/guide/ui/popover.md +69 -9
  57. package/dist/guide/ui/select.md +54 -4
  58. package/dist/guide/ui/tabs.md +1 -1
  59. package/dist/guide/ui/tooltip.md +7 -5
  60. package/dist/guide/virtual-collections.md +3 -0
  61. package/dist/guide/widgets.md +90 -1
  62. package/dist/host.cjs.js +2181 -0
  63. package/dist/host.cjs.js.map +1 -0
  64. package/dist/host.esm.js +2146 -0
  65. package/dist/host.esm.js.map +1 -0
  66. package/dist/index.cjs.js +3948 -586
  67. package/dist/index.cjs.js.map +1 -1
  68. package/dist/index.d.ts +584 -44
  69. package/dist/index.esm.js +3918 -586
  70. package/dist/index.esm.js.map +1 -1
  71. package/dist/primitives.cjs.js +143 -0
  72. package/dist/primitives.cjs.js.map +1 -0
  73. package/dist/primitives.esm.js +133 -0
  74. package/dist/primitives.esm.js.map +1 -0
  75. package/dist/react-native.cjs.js +248 -0
  76. package/dist/react-native.cjs.js.map +1 -0
  77. package/dist/react-native.esm.js +244 -0
  78. package/dist/react-native.esm.js.map +1 -0
  79. package/dist/replay.cjs.js +39 -0
  80. package/dist/replay.cjs.js.map +1 -0
  81. package/dist/replay.esm.js +2 -0
  82. package/dist/replay.esm.js.map +1 -0
  83. package/dist/sandbox-build.cjs.js +140 -0
  84. package/dist/sandbox-build.cjs.js.map +1 -0
  85. package/dist/sandbox-build.esm.js +137 -0
  86. package/dist/sandbox-build.esm.js.map +1 -0
  87. package/dist/sandbox-kernel.esm.js +212 -0
  88. package/dist/sandbox-kernel.esm.js.map +1 -0
  89. package/dist/sandbox-worker.cjs.js +857 -0
  90. package/dist/sandbox-worker.cjs.js.map +1 -0
  91. package/dist/sandbox-worker.esm.js +854 -0
  92. package/dist/sandbox-worker.esm.js.map +1 -0
  93. package/dist/sandbox.cjs.js +1425 -0
  94. package/dist/sandbox.cjs.js.map +1 -0
  95. package/dist/sandbox.esm.js +1406 -0
  96. package/dist/sandbox.esm.js.map +1 -0
  97. package/dist/sygnal.min.js +1 -1
  98. package/dist/sygnal.min.js.map +1 -1
  99. package/dist/terminal.cjs.js +1314 -0
  100. package/dist/terminal.cjs.js.map +1 -0
  101. package/dist/terminal.esm.js +1304 -0
  102. package/dist/terminal.esm.js.map +1 -0
  103. package/dist/three.cjs.js +1111 -0
  104. package/dist/three.cjs.js.map +1 -0
  105. package/dist/three.esm.js +1079 -0
  106. package/dist/three.esm.js.map +1 -0
  107. package/dist/ui-combobox.cjs.js +256 -18
  108. package/dist/ui-combobox.cjs.js.map +1 -1
  109. package/dist/ui-combobox.esm.js +256 -18
  110. package/dist/ui-combobox.esm.js.map +1 -1
  111. package/dist/ui-menu.cjs.js +150 -16
  112. package/dist/ui-menu.cjs.js.map +1 -1
  113. package/dist/ui-menu.esm.js +151 -17
  114. package/dist/ui-menu.esm.js.map +1 -1
  115. package/dist/ui-select.cjs.js +95 -9
  116. package/dist/ui-select.cjs.js.map +1 -1
  117. package/dist/ui-select.esm.js +95 -9
  118. package/dist/ui-select.esm.js.map +1 -1
  119. package/dist/ui.cjs.js +679 -173
  120. package/dist/ui.cjs.js.map +1 -1
  121. package/dist/ui.esm.js +679 -175
  122. package/dist/ui.esm.js.map +1 -1
  123. package/dist/vike/config/package.json +1 -1
  124. package/dist/vite/plugin.cjs.js +968 -4
  125. package/dist/vite/plugin.cjs.js.map +1 -1
  126. package/dist/vite/plugin.mjs +968 -4
  127. package/dist/vite/plugin.mjs.map +1 -1
  128. package/dist/worker-page.cjs.js +669 -0
  129. package/dist/worker-page.cjs.js.map +1 -0
  130. package/dist/worker-page.esm.js +665 -0
  131. package/dist/worker-page.esm.js.map +1 -0
  132. package/dist/worker.cjs.js +377 -0
  133. package/dist/worker.cjs.js.map +1 -0
  134. package/dist/worker.esm.js +374 -0
  135. package/dist/worker.esm.js.map +1 -0
  136. package/dist/yjs-testing.cjs.js +98 -0
  137. package/dist/yjs-testing.cjs.js.map +1 -0
  138. package/dist/yjs-testing.esm.js +77 -0
  139. package/dist/yjs-testing.esm.js.map +1 -0
  140. package/dist/yjs.cjs.js +923 -0
  141. package/dist/yjs.cjs.js.map +1 -0
  142. package/dist/yjs.esm.js +900 -0
  143. package/dist/yjs.esm.js.map +1 -0
  144. package/dist/zag.cjs.js +11 -1
  145. package/dist/zag.cjs.js.map +1 -1
  146. package/dist/zag.esm.js +11 -1
  147. package/dist/zag.esm.js.map +1 -1
  148. package/llms/ai.md +65 -0
  149. package/llms/collaboration.md +5 -0
  150. package/llms/graphics.md +10 -0
  151. package/llms/renderers.md +7 -0
  152. package/llms/replay.md +5 -0
  153. package/llms/sandbox.md +5 -0
  154. package/llms/typed-apis.md +5 -0
  155. package/llms/ui.md +10 -0
  156. package/llms-full.txt +444 -0
  157. package/llms.txt +37 -35
  158. package/package.json +139 -3
  159. package/src/agent-ui/mcp.ts +152 -0
  160. package/src/agent-ui/snapshot.ts +212 -0
  161. package/src/agent-ui.d.ts +106 -0
  162. package/src/agent-ui.ts +249 -0
  163. package/src/ai.d.ts +95 -2
  164. package/src/api.d.ts +303 -0
  165. package/src/api.ts +9 -0
  166. package/src/canvas/Canvas.ts +585 -0
  167. package/src/canvas/backend.ts +627 -0
  168. package/src/canvas/geometry.ts +187 -0
  169. package/src/canvas/gesture.ts +23 -0
  170. package/src/canvas/image.ts +197 -0
  171. package/src/canvas/kit.ts +130 -0
  172. package/src/canvas/paint.ts +260 -0
  173. package/src/canvas/pointer.ts +25 -0
  174. package/src/canvas/snap.ts +68 -0
  175. package/src/canvas/svg.ts +99 -0
  176. package/src/canvas.d.ts +373 -0
  177. package/src/canvas.ts +46 -0
  178. package/src/core/actions.ts +14 -3
  179. package/src/core/cell.ts +12 -4
  180. package/src/core/debug.ts +8 -3
  181. package/src/core/hooks.ts +16 -2
  182. package/src/core/hosts/collection.ts +1 -1
  183. package/src/core/hosts/switchable.ts +26 -8
  184. package/src/core/instance.ts +98 -45
  185. package/src/core/markers/portal.ts +4 -0
  186. package/src/core/registry.ts +4 -0
  187. package/src/core/runtime.ts +34 -25
  188. package/src/core/statics.ts +5 -5
  189. package/src/cycle/dom/EventDelegator.ts +37 -33
  190. package/src/cycle/dom/MainDOMSource.ts +16 -14
  191. package/src/cycle/dom/enrichEventStream.ts +13 -9
  192. package/src/cycle/dom/fromEvent.ts +6 -10
  193. package/src/cycle/dom/index.ts +11 -7
  194. package/src/cycle/dom/isolate.ts +13 -6
  195. package/src/cycle/dom/makeDOMDriver.ts +6 -2
  196. package/src/cycle/dom/utils.ts +9 -2
  197. package/src/cycle/run/adapt.ts +4 -12
  198. package/src/devtools.d.ts +9 -0
  199. package/src/devtools.ts +2 -1
  200. package/src/extra/ai/compose/catalog.ts +2 -1
  201. package/src/extra/ai/compose/decisions.ts +1 -2
  202. package/src/extra/ai/compose/generated.ts +234 -0
  203. package/src/extra/ai/compose/index.ts +6 -2
  204. package/src/extra/ai/compose/layout.ts +3 -1
  205. package/src/extra/ai/compose/llm.ts +7 -3
  206. package/src/extra/ai/compose/types.ts +2 -2
  207. package/src/extra/ai/transports/shared.ts +3 -1
  208. package/src/extra/api/contract.ts +485 -0
  209. package/src/extra/api/index.ts +26 -0
  210. package/src/extra/behaviors.ts +3 -3
  211. package/src/extra/controlled.ts +44 -0
  212. package/src/extra/copyAsTest.ts +22 -0
  213. package/src/extra/devtools.ts +5 -3
  214. package/src/extra/devtoolsActions.ts +8 -0
  215. package/src/extra/devtoolsNext.ts +1 -1
  216. package/src/extra/diagnostics/checks/actionLog.ts +8 -3
  217. package/src/extra/diagnostics/checks/behaviors.ts +25 -0
  218. package/src/extra/diagnostics/checks/elementCommands.ts +17 -5
  219. package/src/extra/diagnostics/checks/index.ts +1 -1
  220. package/src/extra/diagnostics/checks/next.ts +78 -4
  221. package/src/extra/diagnostics/checks/props.ts +6 -1
  222. package/src/extra/diagnostics/checks/replies.ts +11 -7
  223. package/src/extra/diagnostics/checks/timers.ts +8 -2
  224. package/src/extra/diagnostics/checks/virtual.ts +11 -0
  225. package/src/extra/diagnostics/codes.ts +51 -1
  226. package/src/extra/elementCommands.ts +20 -4
  227. package/src/extra/fetchDriver.ts +4 -1
  228. package/src/extra/fetchEventSource.ts +6 -2
  229. package/src/extra/field.ts +29 -0
  230. package/src/extra/form.ts +42 -16
  231. package/src/extra/frame.ts +54 -0
  232. package/src/extra/keymap.ts +41 -0
  233. package/src/extra/pager.ts +2 -0
  234. package/src/extra/persist.ts +2 -1
  235. package/src/extra/pointer.ts +262 -0
  236. package/src/extra/processForm.ts +34 -1
  237. package/src/extra/replay/address.ts +49 -0
  238. package/src/extra/replay/entropy.ts +99 -0
  239. package/src/extra/replay/format.ts +263 -0
  240. package/src/extra/replay/index.ts +8 -0
  241. package/src/extra/replay/inert.ts +22 -0
  242. package/src/extra/replay/recorder.ts +247 -0
  243. package/src/extra/replay/replayer.ts +234 -0
  244. package/src/extra/replay/report.ts +126 -0
  245. package/src/extra/replay/schema.ts +52 -0
  246. package/src/extra/replay/version.ts +3 -0
  247. package/src/extra/router.ts +7 -3
  248. package/src/extra/selection.ts +2 -0
  249. package/src/extra/socketDriver.ts +51 -6
  250. package/src/extra/ssr.ts +128 -42
  251. package/src/extra/testing.ts +295 -39
  252. package/src/extra/timers.ts +96 -7
  253. package/src/extra/undo.ts +2 -0
  254. package/src/extra/virtual.ts +25 -2
  255. package/src/extra/widget.ts +106 -17
  256. package/src/host/actions.ts +383 -0
  257. package/src/host/delegation.ts +101 -0
  258. package/src/host/dom.ts +553 -0
  259. package/src/host/driver.ts +185 -0
  260. package/src/host/selector.ts +119 -0
  261. package/src/host/style.ts +51 -0
  262. package/src/host.d.ts +298 -0
  263. package/src/host.ts +46 -0
  264. package/src/index.d.ts +302 -38
  265. package/src/index.ts +15 -3
  266. package/src/pragma/blocks.ts +211 -0
  267. package/src/pragma/index.ts +44 -10
  268. package/src/primitives.d.ts +54 -0
  269. package/src/primitives.ts +136 -0
  270. package/src/react-native.d.ts +57 -0
  271. package/src/react-native.ts +285 -0
  272. package/src/react-peers.d.ts +21 -3
  273. package/src/replay.d.ts +185 -0
  274. package/src/replay.ts +6 -0
  275. package/src/sandbox/build.ts +119 -0
  276. package/src/sandbox/create.ts +187 -0
  277. package/src/sandbox/engine.ts +267 -0
  278. package/src/sandbox/generated.ts +195 -0
  279. package/src/sandbox/kernel.ts +180 -0
  280. package/src/sandbox/mirror.ts +269 -0
  281. package/src/sandbox/protocol.ts +128 -0
  282. package/src/sandbox/quickjs.ts +74 -0
  283. package/src/sandbox/ssr.ts +41 -0
  284. package/src/sandbox/widget.ts +60 -0
  285. package/src/sandbox/worker-entry.ts +59 -0
  286. package/src/sandbox/worker.ts +137 -0
  287. package/src/sandbox-build.d.ts +12 -0
  288. package/src/sandbox-build.ts +6 -0
  289. package/src/sandbox.d.ts +299 -0
  290. package/src/sandbox.ts +25 -0
  291. package/src/shared.ts +12 -0
  292. package/src/terminal/paint.ts +712 -0
  293. package/src/terminal.d.ts +167 -0
  294. package/src/terminal.ts +530 -0
  295. package/src/three/assets.ts +170 -0
  296. package/src/three/host.ts +36 -0
  297. package/src/three/scene.ts +217 -0
  298. package/src/three/target.ts +252 -0
  299. package/src/three.d.ts +221 -0
  300. package/src/three.ts +30 -0
  301. package/src/ui/accordion.ts +21 -7
  302. package/src/ui/dialog.ts +192 -90
  303. package/src/ui/disclosure.ts +2 -0
  304. package/src/ui/dom.ts +30 -0
  305. package/src/ui/layers.ts +132 -0
  306. package/src/ui/popover.ts +120 -21
  307. package/src/ui/shared.ts +98 -12
  308. package/src/ui/stack.ts +18 -0
  309. package/src/ui/tabs.ts +2 -0
  310. package/src/ui/toaster.ts +16 -15
  311. package/src/ui/tooltip.ts +24 -8
  312. package/src/ui/tooltips.ts +26 -14
  313. package/src/ui/zag/combobox.ts +180 -13
  314. package/src/ui/zag/menu.ts +97 -17
  315. package/src/ui/zag/select.ts +15 -4
  316. package/src/ui/zag/shared.ts +60 -8
  317. package/src/ui-combobox.d.ts +16 -1
  318. package/src/ui-menu.d.ts +22 -7
  319. package/src/ui-zag-types.d.ts +13 -5
  320. package/src/ui.d.ts +62 -7
  321. package/src/ui.ts +2 -2
  322. package/src/vite/api.ts +186 -0
  323. package/src/vite/compile.ts +280 -0
  324. package/src/vite/plugin.d.ts +34 -0
  325. package/src/vite/plugin.ts +78 -4
  326. package/src/vite/sandbox.ts +16 -0
  327. package/src/worker/page.ts +396 -0
  328. package/src/worker/protocol.ts +48 -0
  329. package/src/worker/target.ts +282 -0
  330. package/src/worker-page.d.ts +42 -0
  331. package/src/worker-page.ts +12 -0
  332. package/src/worker.d.ts +65 -0
  333. package/src/worker.ts +16 -0
  334. package/src/yjs/driver.ts +253 -0
  335. package/src/yjs/mapping.ts +389 -0
  336. package/src/yjs/shared.ts +138 -0
  337. package/src/yjs/testing.ts +91 -0
  338. package/src/yjs-testing.d.ts +34 -0
  339. package/src/yjs-testing.ts +7 -0
  340. package/src/yjs.d.ts +109 -0
  341. package/src/yjs.ts +18 -0
  342. package/src/zag.d.ts +2 -0
  343. package/src/zag.ts +8 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-ui.esm.js","sources":["../src/agent-ui/snapshot.ts","../src/agent-ui/mcp.ts","../src/agent-ui.ts"],"sourcesContent":["/**\n * sygnal/agent-ui: the accessibility snapshot. The host tree as an LLM agent reads a page: roles,\n * accessible names, states and values, with a ref on each element it can act on. The format is\n * the YAML-like aria snapshot browser agents already know (Playwright's, Claude in Chrome's\n * read_page):\n *\n * - heading \"todos\" [level=1]\n * - textbox \"What needs to be done?\" [ref=e4]\n * - list:\n * - listitem:\n * - checkbox \"Toggle\" [checked] [ref=e9]\n * - generic \"Write the spike\" [ref=e10] [on=dblclick]\n * - button \"Delete\" [ref=e11]\n * - text: 1 item left\n *\n * What a browser can't give an agent: `on=…` lists the events the app's intents listen for on an\n * element that isn't a native control (Sygnal's intents are selectors, so the renderer knows\n * exactly which elements are interactive).\n */\nimport type {HostDocument, HostElement, HostNode, HostStyleRule} from '../host'\nimport {computeStyle, isInteractive, isTextField, isCheckable, labelTarget, nodeId, optionValue} from '../host'\n\nexport interface AgentNode {\n role: string\n name?: string\n /** `e<id>`: the element tools act on */\n ref?: string\n value?: string\n /** checked, disabled, expanded, pressed, selected, focused, required, level=n */\n states?: string[]\n /** events the app listens for on a non-native element */\n on?: string[]\n /** a text node's text */\n text?: string\n children?: AgentNode[]\n}\n\nconst BLOCK = /^(root|div|section|header|footer|main|nav|article|aside|ul|ol|li|form|fieldset|h[1-6]|p|pre|table|tr|td|th|details|summary|dialog|blockquote|figure|figcaption|dl|dt|dd|hr|br|menu|search|label)$/\nconst NATIVE = /^(input|textarea|select|button|a|summary|option)$/\nconst LANDMARKS: Record<string, string> = {nav: 'navigation', main: 'main', aside: 'complementary', search: 'search', dialog: 'dialog'}\n\nexport function roleOf(el: HostElement): string | null {\n const r = el.getAttribute('role')\n if (r) return r.split(/\\s+/)[0]\n const t = el.localName\n // a target's own field tags (registerFieldTags)\n if (t != 'input' && t != 'textarea' && isCheckable(el)) return 'checkbox'\n if (t != 'input' && t != 'textarea' && isTextField(el)) return 'textbox'\n if (t == 'a') return el.hasAttribute('href') ? 'link' : null\n if (t == 'button' || t == 'summary') return 'button'\n if (t == 'input') {\n const ty = el.type || 'text'\n if (/^(button|submit|reset|image)$/.test(ty)) return 'button'\n if (ty == 'checkbox' || ty == 'radio') return ty\n if (ty == 'range') return 'slider'\n if (ty == 'number') return 'spinbutton'\n if (ty == 'search') return 'searchbox'\n if (ty == 'hidden' || ty == 'file') return null\n return 'textbox'\n }\n if (t == 'textarea') return 'textbox'\n if (t == 'select') return el.multiple ? 'listbox' : 'combobox'\n if (t == 'option') return 'option'\n if (/^h[1-6]$/.test(t)) return 'heading'\n if (t == 'ul' || t == 'ol' || t == 'menu') return 'list'\n if (t == 'li') return 'listitem'\n if (t == 'img') return el.getAttribute('alt') === '' ? null : 'img'\n if (t == 'table') return 'table'\n if (t == 'tr') return 'row'\n if (t == 'td') return 'cell'\n if (t == 'th') return 'columnheader'\n if (t == 'progress') return 'progressbar'\n if (t == 'fieldset' || t == 'details') return 'group'\n if (t == 'form') return el.getAttribute('aria-label') || el.getAttribute('name') ? 'form' : null\n if (t == 'section') return el.getAttribute('aria-label') ? 'region' : null\n return LANDMARKS[t] || null\n}\n\nconst squash = (s: string) => s.replace(/\\s+/g, ' ').trim()\n/** visible text, without hidden subtrees */\nfunction textOf(n: HostNode, rules: readonly HostStyleRule[], skip?: HostElement): string {\n if (n.nodeType === 3) return (n as any).data\n const el = n as HostElement\n if (el === skip || computeStyle(el, rules).display == 'none' || el.getAttribute('aria-hidden') == 'true') return ''\n if (el.localName == 'input' || el.localName == 'select' || el.localName == 'textarea') return ''\n return el.childNodes.map(c => textOf(c, rules, skip)).join(BLOCK.test(el.localName) ? ' ' : '')\n}\n\n/** the accessible name: aria-label, aria-labelledby, a label, contents, alt / value / placeholder / title */\nexport function nameOf(el: HostElement, rules: readonly HostStyleRule[] = []): string {\n const a = el.getAttribute('aria-label')\n if (a) return squash(a)\n const by = el.getAttribute('aria-labelledby')\n if (by) return squash(by.split(/\\s+/).map(id => { const t = el.ownerDocument.getElementById(id); return t ? textOf(t, rules) : '' }).join(' '))\n const t = el.localName\n if (t == 'input' || t == 'textarea' || t == 'select') {\n const id = el.id\n const lab = (id && el.ownerDocument.querySelector(`label[for=\"${id}\"]`)) || el.closest('label')\n // (a label names its control even when it's visually hidden, as the browser's accessible name)\n const l = lab ? squash(textOf(lab, [], el)) : ''\n if (l) return l\n if (t == 'input' && /^(button|submit|reset)$/.test(el.type)) return el.getAttribute('value') || (el.type == 'reset' ? 'Reset' : 'Submit')\n return squash(el.placeholder || el.title || '')\n }\n if (t == 'img') return squash(el.getAttribute('alt') || el.title || '')\n return squash(textOf(el, rules)) || squash(el.title || '')\n}\n\nconst CONTENT_NAMED = /^(button|link|heading|checkbox|radio|switch|textbox|searchbox|combobox|listbox|slider|spinbutton|option|img|columnheader|cell|tab|menuitem|treeitem|tooltip|progressbar)$/\nconst labelOnly = (el: HostElement, rules: readonly HostStyleRule[]) => {\n const a = el.getAttribute('aria-label')\n if (a) return squash(a)\n const by = el.getAttribute('aria-labelledby')\n if (by) return squash(by.split(/\\s+/).map(id => { const t = el.ownerDocument.getElementById(id); return t ? textOf(t, rules) : '' }).join(' '))\n return squash(el.title || '')\n}\n\nexport interface SnapshotOptions {\n rules?: readonly HostStyleRule[]\n}\n\n/** the host tree as agent nodes (generic containers flattened, their text merged into text nodes) */\nexport function snapshotTree(doc: HostDocument, options: SnapshotOptions = {}): AgentNode[] {\n const rules = options.rules || []\n // labels that name a control are read as that control's name, not again as text\n const naming = new Set<HostElement>()\n for (const l of doc.body.querySelectorAll('label')) {\n const t = labelTarget(l)\n if (t && t.localName != 'button') naming.add(l)\n }\n const kids = (el: HostElement): AgentNode[] => {\n const out: AgentNode[] = []\n let text = ''\n const flushText = () => { const t = squash(text); if (t) out.push({role: 'text', text: t}); text = '' }\n // a flex container's children are separate items (a column's lines, a row's gap): their text doesn't run together\n const visit = (n: HostNode, inFlex = false) => {\n if (n.nodeType === 3) { text += (n as any).data; return }\n const c = n as HostElement\n const st = computeStyle(c, rules)\n if (st.display == 'none' || c.getAttribute('aria-hidden') == 'true') return\n const node = nodeFor(c)\n if (node) { flushText(); out.push(node); return }\n if (naming.has(c)) {\n // the label's own text names its control; any other content stays\n for (const x of c.childNodes) if (x.nodeType === 1) visit(x)\n return\n }\n const block = inFlex || BLOCK.test(c.localName)\n const flex = /flex$/.test(st.display || '')\n if (block) flushText()\n for (const x of c.childNodes) visit(x, flex)\n if (block) flushText()\n }\n for (const c of el.childNodes) visit(c, /flex$/.test(computeStyle(el, rules).display || ''))\n flushText()\n return out\n }\n const nodeFor = (el: HostElement): AgentNode | null => {\n const role = roleOf(el)\n const interactive = isInteractive(el, rules)\n const listened = NATIVE.test(el.localName) ? [] : el.ownerDocument.listenedTypes(el).filter(t => !/^(focus|blur|focusin|focusout)$/.test(t))\n if (!role && !(interactive && listened.length)) return null\n const node: AgentNode = {role: role || 'generic'}\n // a role-less element the app listens to is one control (its contents its name), unless\n // interactive elements are inside it: a scene-graph group with a click intent (canvas-three F1)\n // keeps its children\n const leaf = /^(textbox|searchbox|checkbox|radio|switch|slider|spinbutton|combobox|listbox|button|link|img|heading|option|progressbar)$/.test(node.role) || !role && !el.querySelectorAll('*').some(d => isInteractive(d, rules))\n // a name from contents only for the roles that take one (ARIA \"name from content\"); a\n // landmark, list or group (or such a container) is named by aria-label / aria-labelledby / title only\n const name = !role && leaf || CONTENT_NAMED.test(node.role) ? nameOf(el, rules) : labelOnly(el, rules)\n if (name) node.name = name\n if (interactive) node.ref = 'e' + nodeId(el)\n if (listened.length) node.on = listened\n const states: string[] = []\n if (/^(checkbox|radio|switch)$/.test(node.role)) { if (isCheckable(el) ? el.checked : el.getAttribute('aria-checked') == 'true') states.push('checked') }\n if (el.disabled || el.getAttribute('aria-disabled') == 'true') states.push('disabled')\n for (const s of ['expanded', 'pressed', 'selected']) { const v = el.getAttribute('aria-' + s); if (v) states.push(v == 'true' ? s : `${s}=${v}`) }\n if (node.role == 'option' && el.selected) states.push('selected')\n if (el.required) states.push('required')\n if (node.role == 'heading') states.push('level=' + (+(el.getAttribute('aria-level') || el.localName.slice(1)) || 2))\n if (el.ownerDocument.activeElement === el) states.push('focused')\n if (states.length) node.states = states\n if (isTextField(el)) node.value = el.type == 'password' ? '•'.repeat([...el.value].length) : el.value\n if (el.localName == 'select') {\n const o = el.options.find(x => optionValue(x) == el.value)\n if (o) node.value = squash(o.textContent)\n node.children = el.options.map(x => ({role: 'option', name: squash(x.textContent), ...(x === o ? {states: ['selected']} : {})}))\n return node\n }\n if (!leaf) { const c = kids(el); if (c.length) node.children = c }\n return node\n }\n return kids(doc.body)\n}\n\nconst q = (s: string) => JSON.stringify(s)\n/** agent nodes as the YAML-like text */\nexport function formatSnapshot(nodes: AgentNode[], indent = ''): string {\n const lines: string[] = []\n for (const n of nodes) {\n if (n.role == 'text') { lines.push(`${indent}- text: ${n.text}`); continue }\n let line = `${indent}- ${n.role}`\n if (n.name) line += ' ' + q(n.name)\n for (const s of n.states || []) line += ` [${s}]`\n if (n.ref) line += ` [ref=${n.ref}]`\n if (n.on?.length) line += ` [on=${n.on.join(',')}]`\n if (n.value !== undefined && n.value !== '') line += ': ' + q(n.value)\n if (n.children?.length) lines.push(line + ':', formatSnapshot(n.children, indent + ' '))\n else lines.push(line)\n }\n return lines.join('\\n')\n}\n","/**\n * sygnal/agent-ui: a minimal Model Context Protocol server (tools only), as sygnal-check's\n * (sygnal-check/src/mcp.js) and sygnal/vite's dev endpoint (src/vite/mcp.ts): hand-rolled, no\n * dependency, both protocol eras answered per request.\n *\n * - legacy, the `initialize` revisions (2024-11-05 … 2025-11-25): initialize, ping, tools/list,\n * tools/call; JSON-RPC batches answered. tools.listChanged is true: the tool set can change\n * when extra tools (sygnal/ai agentTools) do, and notifications/tools/list_changed is sent.\n * - modern, the stateless 2026-07-28 revision (`_meta['io.modelcontextprotocol/protocolVersion']`\n * with client capabilities): server/discover, tools/list, tools/call; results carry\n * `resultType: 'complete'` and the server info in `_meta`.\n * Transport: newline-delimited JSON over any stream pair with `on('data')` and `write()` (Node's\n * stdin / stdout); messages are handled one at a time, in order.\n */\nexport const MODERN_VERSIONS = ['2026-07-28']\nexport const LEGACY_VERSIONS = ['2025-11-25', '2025-06-18', '2025-03-26', '2024-11-05']\nconst SUPPORTED = [...MODERN_VERSIONS, ...LEGACY_VERSIONS]\nconst META = 'io.modelcontextprotocol/'\n\nexport interface McpTool {\n name: string\n description: string\n inputSchema: Record<string, any>\n annotations?: Record<string, any>\n}\nexport interface McpToolResult {\n /** the text the model reads */\n text: string\n /** structured content (an object) */\n value?: Record<string, any>\n isError?: boolean\n}\nexport interface McpServerSpec {\n name: string\n version: string\n instructions?: string\n tools(): McpTool[]\n call(name: string, args: Record<string, any>): Promise<McpToolResult>\n}\n\nconst isObj = (v: any): v is Record<string, any> => !!v && typeof v == 'object' && !Array.isArray(v)\n\nexport function createMcpHandler(spec: McpServerSpec) {\n const serverInfo = {name: spec.name, version: spec.version}\n const result = (id: any, value: any) => ({jsonrpc: '2.0', id, result: value})\n const error = (id: any, code: number, message: string, data?: any) => ({jsonrpc: '2.0', id, error: {code, message, ...(data !== undefined ? {data} : {})}})\n\n async function route(id: any, method: string, params: Record<string, any>, modern: boolean): Promise<any> {\n if (modern && (method == 'initialize' || method == 'ping')) return error(id, -32601, `Method not found: ${method} is not in 2026-07-28`)\n switch (method) {\n case 'initialize':\n return result(id, {\n protocolVersion: LEGACY_VERSIONS.includes(params.protocolVersion) ? params.protocolVersion : LEGACY_VERSIONS[0],\n capabilities: {tools: {listChanged: true}},\n serverInfo,\n ...(spec.instructions ? {instructions: spec.instructions} : {}),\n })\n case 'server/discover':\n if (!modern) return error(id, -32602, 'Invalid params: server/discover is a 2026-07-28 request')\n return result(id, {supportedVersions: SUPPORTED, capabilities: {tools: {}}, ...(spec.instructions ? {instructions: spec.instructions} : {})})\n case 'ping':\n return result(id, {})\n case 'tools/list':\n return result(id, {tools: spec.tools()})\n case 'tools/call': {\n const name = params.name\n if (!spec.tools().some(t => t.name == name)) return error(id, -32602, `Unknown tool: ${name}`)\n try {\n const r = await spec.call(name, isObj(params.arguments) ? params.arguments : {})\n return result(id, {content: [{type: 'text', text: r.text}], ...(r.value ? {structuredContent: r.value} : {}), isError: !!r.isError})\n } catch (e: any) {\n return result(id, {content: [{type: 'text', text: `${name} failed: ${e?.message || e}`}], isError: true})\n }\n }\n default:\n return error(id, -32601, `Method not found: ${method}`)\n }\n }\n\n /** one message → its response (null for a notification); never throws */\n async function handle(msg: any, inBatch = false): Promise<any> {\n try {\n if (!isObj(msg) || msg.jsonrpc !== '2.0' || typeof msg.method != 'string') {\n return isObj(msg) && 'id' in msg && !('result' in msg || 'error' in msg) ? error(msg.id ?? null, -32600, 'Invalid Request') : null\n }\n if (!('id' in msg) || msg.id === null) return null\n const {id, method} = msg\n const params = isObj(msg.params) ? msg.params : {}\n const meta = isObj(params._meta) ? params._meta : {}\n let modern = false\n if (META + 'protocolVersion' in meta) {\n const v = meta[META + 'protocolVersion']\n if (!SUPPORTED.includes(v)) return error(id, -32022, 'Unsupported protocol version', {supported: SUPPORTED, requested: v})\n if (MODERN_VERSIONS.includes(v)) {\n if (!isObj(meta[META + 'clientCapabilities'])) return error(id, -32602, `Invalid params: _meta[\"${META}clientCapabilities\"] is required`)\n if (inBatch) return error(id, -32600, 'Invalid Request: 2026-07-28 messages are sent one per line, not in a batch')\n modern = true\n }\n }\n const out = await route(id, method, params, modern)\n if (modern && isObj(out.result)) out.result = {resultType: 'complete', ...out.result, _meta: {...(out.result._meta || {}), [META + 'serverInfo']: serverInfo}}\n return out\n } catch (e: any) {\n return error(isObj(msg) ? msg.id ?? null : null, -32603, `Internal error: ${e?.message || e}`)\n }\n }\n return {handle}\n}\n\nexport interface McpStdio {\n /** notifications/tools/list_changed to the client */\n listChanged(): void\n /** stop reading */\n stop(): void\n /** resolves when the input ends */\n done: Promise<void>\n}\n\n/** serve over a newline-delimited JSON stream pair (default: process.stdin / process.stdout) */\nexport function serveMcpStream(spec: McpServerSpec, input?: any, output?: any): McpStdio {\n const proc: any = (globalThis as any).process\n input ||= proc?.stdin\n output ||= proc?.stdout\n const {handle} = createMcpHandler(spec)\n const send = (m: any) => { if (m && !(Array.isArray(m) && !m.length)) output.write(JSON.stringify(m) + '\\n') }\n let buf = '', queue = Promise.resolve(), end!: () => void\n const done = new Promise<void>(r => end = r)\n const line = (l: string) => {\n if (!l.trim()) return\n queue = queue.then(async () => {\n let msg: any\n try { msg = JSON.parse(l) } catch { return send({jsonrpc: '2.0', id: null, error: {code: -32700, message: 'Parse error'}}) }\n if (Array.isArray(msg)) send((await Promise.all(msg.map(m => handle(m, true)))).filter(Boolean))\n else send(await handle(msg))\n })\n }\n const onData = (chunk: any) => {\n buf += String(chunk)\n let i\n while ((i = buf.indexOf('\\n')) >= 0) { line(buf.slice(0, i)); buf = buf.slice(i + 1) }\n }\n const onEnd = () => { if (buf) line(buf); buf = ''; queue.then(end) }\n input.setEncoding?.('utf8')\n input.on('data', onData)\n input.on('end', onEnd)\n input.resume?.()\n return {\n listChanged: () => send({jsonrpc: '2.0', method: 'notifications/tools/list_changed'}),\n stop: () => { input.off?.('data', onData); input.off?.('end', onEnd); end() },\n done,\n }\n}\n","/*\n * 'sygnal/agent-ui': a Sygnal app rendered for an LLM agent. The app renders into a sygnal/host\n * tree; this target's \"screen\" is an accessibility snapshot (roles, names, states, values, refs:\n * the format browser agents read), and its \"input\" is tool calls: ui_click, ui_type, ui_press,\n * ui_select, ui_check, which become the same DOM events a user's input makes. The app's views,\n * intents and models don't change: an agent operates the app the way a person does, without a\n * browser, deterministically, and in a test.\n *\n * const {app, ui} = runAgentUI(App)\n * ui.snapshot() // what the agent sees\n * await ui.call('ui_click', { ref: 'e12' }) // → { ok: true, snapshot }\n * serveMcp(ui, { name: 'my-app' }) // the same tools over MCP (stdio)\n *\n * With sygnal/ai: `agentTools(app)` (the semantic tools of the app's `agent` declarations) can be\n * served alongside (`serveMcp(ui, { tools: agentTools(app) })`); `ui.chatTools()` gives the tools\n * in the chat driver's format. Separate entry: './index' and './host' become the external\n * 'sygnal' and 'sygnal/host'.\n */\nimport {run} from './index'\nimport type {HostElement, HostStyleRule} from './host'\nimport {\n HostDocument, makeHostDriver, nodeId,\n activate, doubleClick, pressKey, typeText, fill, chooseOption, isInteractive, isTextField, isCheckable,\n} from './host'\nimport {snapshotTree, formatSnapshot, AgentNode} from './agent-ui/snapshot'\nimport {serveMcpStream, McpStdio, McpTool} from './agent-ui/mcp'\n\nexport {snapshotTree, formatSnapshot, roleOf, nameOf} from './agent-ui/snapshot'\nexport type {AgentNode} from './agent-ui/snapshot'\nexport {createMcpHandler, serveMcpStream} from './agent-ui/mcp'\nexport type {McpTool, McpToolResult, McpServerSpec, McpStdio} from './agent-ui/mcp'\n\nexport interface AgentUIOptions {\n /** the app's stylesheet for what is shown (CSS that hides things: `['.todo .edit', { display: 'none' }]`) */\n styles?: readonly HostStyleRule[]\n /** a link's default action: an <a href> clicked and not prevented (a router driver's go) */\n onNavigate?: (href: string, el: HostElement) => void\n /** how long the app must stay unchanged before a tool call answers (ms, default 20: covers next()'s 10 ms) */\n quietMs?: number\n /** the longest a tool call waits for the app to settle (ms, default 2000) */\n maxWaitMs?: number\n /** the host document (default: a new one) */\n document?: HostDocument\n}\n\nexport interface AgentUITool extends McpTool {\n annotations: {readOnlyHint?: boolean, destructiveHint?: boolean}\n}\nexport type AgentUIResult =\n | {ok: true, snapshot: string}\n | {ok: false, error: string, snapshot?: string}\n\nexport interface AgentUI {\n readonly doc: HostDocument\n /** the DOM driver: run(App, { DOM: ui.driver }) */\n readonly driver: ReturnType<typeof makeHostDriver>\n /** the snapshot text */\n snapshot(): string\n /** the snapshot as nodes */\n tree(): AgentNode[]\n /** the element a ref names (null: gone) */\n element(ref: string): HostElement | null\n /** the tools (MCP / sygnal/ai AgentTool shape) */\n tools(): AgentUITool[]\n /** the tools in the chat driver's format: ChatRequest.tools */\n chatTools(): Record<string, {description: string, inputSchema: Record<string, any>}>\n /** run a tool; answers once the app has settled, with the new snapshot */\n call(name: string, args?: Record<string, any>): Promise<AgentUIResult>\n /** the app's runtime (run()'s result) to wait on its flushes; runAgentUI attaches it */\n attach(app: any): void\n /** resolves once the app has been quiet for quietMs */\n settle(): Promise<void>\n /** called after each change of the tree (returns unsubscribe) */\n subscribe(listener: () => void): () => void\n}\n\nconst REF = {type: 'string', description: 'The element\\'s ref from the snapshot, like \"e12\"'}\nconst TOOLS: AgentUITool[] = [\n {name: 'ui_snapshot', description: 'Read the app\\'s current screen: an accessibility snapshot with a ref on each element you can act on. [on=…] lists events the app handles on that element.', inputSchema: {type: 'object', properties: {}, additionalProperties: false}, annotations: {readOnlyHint: true}},\n {name: 'ui_click', description: 'Click an element (a button, link, checkbox, or an element with [on=click]). double: true for a double click ([on=dblclick]).', inputSchema: {type: 'object', properties: {ref: REF, double: {type: 'boolean', description: 'A double click'}}, required: ['ref'], additionalProperties: false}, annotations: {}},\n {name: 'ui_type', description: 'Type into a text field. Replaces its value unless append is true; submit: true presses Enter afterwards (submits its form).', inputSchema: {type: 'object', properties: {ref: REF, text: {type: 'string'}, append: {type: 'boolean'}, submit: {type: 'boolean'}}, required: ['ref', 'text'], additionalProperties: false}, annotations: {}},\n {name: 'ui_press', description: 'Press a key (\"Enter\", \"Escape\", \"Tab\", \"ArrowDown\", \"a\", modifiers as \"Control+s\") on an element, or on the focused element / the whole app without a ref.', inputSchema: {type: 'object', properties: {key: {type: 'string'}, ref: REF}, required: ['key'], additionalProperties: false}, annotations: {}},\n {name: 'ui_select', description: 'Choose an option of a combobox (<select>) by its label or value.', inputSchema: {type: 'object', properties: {ref: REF, option: {type: 'string'}}, required: ['ref', 'option'], additionalProperties: false}, annotations: {}},\n {name: 'ui_check', description: 'Set a checkbox or radio to checked (true) or unchecked (false); does nothing when it already is.', inputSchema: {type: 'object', properties: {ref: REF, checked: {type: 'boolean'}}, required: ['ref', 'checked'], additionalProperties: false}, annotations: {}},\n]\n\nexport function createAgentUI(options: AgentUIOptions = {}): AgentUI {\n const doc = options.document || new HostDocument()\n const rules = options.styles || []\n const ua = {onNavigate: options.onNavigate}\n const quiet = options.quietMs ?? 20, maxWait = options.maxWaitMs ?? 2000\n const listeners = new Set<() => void>()\n let changes = 0, runtime: any = null\n doc.onChange = () => { changes++; for (const l of [...listeners]) l() }\n const sleep = (ms: number) => new Promise(r => setTimeout(r, ms))\n\n const find = (ref: unknown): HostElement | null => {\n const id = typeof ref == 'string' && /^e(\\d+)$/.exec(ref.trim())\n if (!id) return null\n return [doc.body, ...doc.body.querySelectorAll('*')].find(el => nodeId(el) == +id[1]) || null\n }\n const target = (ref: unknown): HostElement => {\n const el = find(ref)\n if (!el) throw new Error(`no element with ref ${JSON.stringify(ref)}: take a new ui_snapshot (refs of elements that left the screen are gone)`)\n if (!el.isConnected) throw new Error(`ref ${ref} is no longer on the screen`)\n if (!isInteractive(el, rules) && !/^(input|textarea|select)$/.test(el.localName) && !isTextField(el) && !isCheckable(el)) throw new Error(`ref ${ref} is not interactive (no ref in the snapshot)`)\n if (el.disabled) throw new Error(`ref ${ref} is disabled`)\n return el\n }\n const parseKey = (k: string) => {\n const parts = k.split('+').filter(Boolean)\n const key = parts.pop() || k\n const m = new Set(parts.map(p => p.toLowerCase()))\n return {key: key == 'Space' ? ' ' : key, init: {ctrlKey: m.has('control') || m.has('ctrl'), shiftKey: m.has('shift'), altKey: m.has('alt'), metaKey: m.has('meta') || m.has('cmd')}}\n }\n\n const ui: AgentUI = {\n doc,\n driver: makeHostDriver(doc),\n tree: () => snapshotTree(doc, {rules}),\n snapshot: () => formatSnapshot(ui.tree()) || '(the screen is empty)',\n element: find,\n tools: () => TOOLS.map(t => ({...t})),\n chatTools: () => Object.fromEntries(TOOLS.map(t => [t.name, {description: t.description, inputSchema: t.inputSchema}])),\n attach(app) { runtime = app?.__runtime || app || null },\n subscribe(l) { listeners.add(l); return () => { listeners.delete(l) } },\n async settle() {\n const end = Date.now() + maxWait\n for (;;) {\n const n = changes\n if (runtime?.flushed) await runtime.flushed()\n await sleep(quiet)\n if (changes === n || Date.now() > end) return\n }\n },\n async call(name, args = {}) {\n try {\n switch (name) {\n case 'ui_snapshot': break\n case 'ui_click': {\n const el = target(args.ref)\n args.double ? doubleClick(el, ua) : (el.focus(), activate(el, ua))\n break\n }\n case 'ui_type': {\n const el = target(args.ref)\n if (typeof args.text != 'string') throw new Error('text must be a string')\n if (!isTextField(el)) throw new Error(`ref ${args.ref} is not a text field`)\n args.append ? typeText(el, args.text, ua) : fill(el, args.text)\n if (args.submit) pressKey(el, 'Enter', {}, ua)\n break\n }\n case 'ui_press': {\n if (typeof args.key != 'string' || !args.key) throw new Error('key must be a key name, like \"Enter\"')\n const el = args.ref != null ? target(args.ref) : doc.activeElement || doc.body\n if (args.ref != null) el.focus()\n const {key, init} = parseKey(args.key)\n pressKey(el, key, init, ua)\n break\n }\n case 'ui_select': {\n const el = target(args.ref)\n if (el.localName != 'select') throw new Error(`ref ${args.ref} is not a combobox`)\n el.focus()\n if (!chooseOption(el, String(args.option))) throw new Error(`no option ${JSON.stringify(args.option)}; options: ${el.options.map(o => JSON.stringify(o.textContent.trim())).join(', ')}`)\n break\n }\n case 'ui_check': {\n const el = target(args.ref)\n if (!isCheckable(el)) throw new Error(`ref ${args.ref} is not a checkbox, switch or radio`)\n if (el.checked !== !!args.checked) { el.focus(); activate(el, ua) }\n break\n }\n default:\n throw new Error(`unknown tool ${name}`)\n }\n } catch (e: any) {\n await ui.settle()\n return {ok: false, error: e?.message || String(e), snapshot: ui.snapshot()}\n }\n await ui.settle()\n return {ok: true, snapshot: ui.snapshot()}\n },\n }\n return ui\n}\n\nexport interface RunAgentUIOptions extends AgentUIOptions {\n /** the app's other drivers (DOM is the agent UI's) */\n drivers?: Record<string, any>\n /** run() options (onError, diagnostics, …) */\n runOptions?: Record<string, any>\n}\n\n/** run an app for an agent: `{ app, ui }`, the ui attached to the app's flushes */\nexport function runAgentUI(App: any, options: RunAgentUIOptions = {}): {app: any, ui: AgentUI} {\n const ui = createAgentUI(options)\n const app = run(App, {...options.drivers, DOM: ui.driver}, options.runOptions)\n ui.attach(app)\n return {app, ui}\n}\n\n/** a tool set to serve alongside the UI tools: sygnal/ai's agentTools(app), or your own */\nexport interface ExtraTools {\n list(): {name: string, description: string, inputSchema: Record<string, any>, annotations?: Record<string, any>}[]\n call(name: string, args?: unknown): Promise<unknown>\n subscribe?(listener: (change: any) => void): () => void\n}\nexport interface ServeMcpOptions {\n name?: string\n version?: string\n /** what the server tells the agent first (default: how to use the UI tools) */\n instructions?: string\n /** more tools: sygnal/ai's agentTools(app) (the app's `agent` declarations) */\n tools?: ExtraTools\n input?: any\n output?: any\n}\n\nconst INSTRUCTIONS = 'This server is an app\\'s user interface. Call ui_snapshot to see the screen, then act on elements by their ref (ui_click, ui_type, ui_press, ui_select, ui_check); every action answers with the new snapshot. Refs change when elements are re-created: use the latest snapshot.'\n\n/** the agent UI's tools (and any extra tools) as an MCP server on a stream pair (default stdio) */\nexport function serveMcp(ui: AgentUI, options: ServeMcpOptions = {}): McpStdio {\n const extra = options.tools\n const server = serveMcpStream({\n name: options.name || 'sygnal-agent-ui',\n version: options.version || '0.0.0',\n instructions: options.instructions ?? INSTRUCTIONS,\n tools: () => [...ui.tools(), ...(extra ? extra.list().map(t => ({name: t.name, description: t.description, inputSchema: t.inputSchema, annotations: t.annotations})) : [])],\n async call(name, args) {\n if (name.startsWith('ui_')) {\n const r = await ui.call(name, args)\n return r.ok ? {text: r.snapshot, value: r} : {text: `Error: ${r.error}\\n\\n${r.snapshot ?? ''}`, value: r, isError: true}\n }\n const r: any = await extra!.call(name, args)\n await ui.settle()\n return {text: JSON.stringify(r), value: r && typeof r == 'object' ? r : {result: r}, isError: r?.ok === false}\n },\n }, options.input, options.output)\n // only a change of the tool set is announced (agentTools' listener also fires for context changes)\n let names = extra ? extra.list().map(t => t.name).join() : ''\n const off = extra?.subscribe?.(() => {\n const now = extra.list().map(t => t.name).join()\n if (now !== names) { names = now; server.listChanged() }\n })\n const stop = server.stop\n server.stop = () => { off?.(); stop() }\n return server\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ var sygnal = require('sygnal');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, '__serverFunction', {
8
+ enumerable: true,
9
+ get: function () { return sygnal.__serverFunction; }
10
+ });
11
+ Object.defineProperty(exports, 'contractFetch', {
12
+ enumerable: true,
13
+ get: function () { return sygnal.contractFetch; }
14
+ });
15
+ Object.defineProperty(exports, 'contractHash', {
16
+ enumerable: true,
17
+ get: function () { return sygnal.contractHash; }
18
+ });
19
+ Object.defineProperty(exports, 'contractSkew', {
20
+ enumerable: true,
21
+ get: function () { return sygnal.contractSkew; }
22
+ });
23
+ Object.defineProperty(exports, 'errorFixture', {
24
+ enumerable: true,
25
+ get: function () { return sygnal.errorFixture; }
26
+ });
27
+ Object.defineProperty(exports, 'fixture', {
28
+ enumerable: true,
29
+ get: function () { return sygnal.fixture; }
30
+ });
31
+ Object.defineProperty(exports, 'honoClient', {
32
+ enumerable: true,
33
+ get: function () { return sygnal.honoClient; }
34
+ });
35
+ Object.defineProperty(exports, 'isContractSkew', {
36
+ enumerable: true,
37
+ get: function () { return sygnal.isContractSkew; }
38
+ });
39
+ Object.defineProperty(exports, 'mutation', {
40
+ enumerable: true,
41
+ get: function () { return sygnal.serverMutation; }
42
+ });
43
+ Object.defineProperty(exports, 'openApiClient', {
44
+ enumerable: true,
45
+ get: function () { return sygnal.openApiClient; }
46
+ });
47
+ Object.defineProperty(exports, 'orpcClient', {
48
+ enumerable: true,
49
+ get: function () { return sygnal.orpcClient; }
50
+ });
51
+ Object.defineProperty(exports, 'query', {
52
+ enumerable: true,
53
+ get: function () { return sygnal.serverQuery; }
54
+ });
55
+ Object.defineProperty(exports, 'serverFunctions', {
56
+ enumerable: true,
57
+ get: function () { return sygnal.serverFunctions; }
58
+ });
59
+ Object.defineProperty(exports, 'stream', {
60
+ enumerable: true,
61
+ get: function () { return sygnal.serverStream; }
62
+ });
63
+ //# sourceMappingURL=api.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { __serverFunction, contractFetch, contractHash, contractSkew, errorFixture, fixture, honoClient, isContractSkew, serverMutation as mutation, openApiClient, orpcClient, serverQuery as query, serverFunctions, serverStream as stream } from 'sygnal';
2
+ //# sourceMappingURL=api.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}