@opencx/widget-react 5.0.0-beta.6 → 5.0.0-beta.9

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 (217) hide show
  1. package/dist/Chart.impl-BOItNccb.js +207 -0
  2. package/dist/Chart.impl-BOItNccb.js.map +1 -0
  3. package/dist/Chart.impl-DfwpmxVg.cjs +2 -0
  4. package/dist/Chart.impl-DfwpmxVg.cjs.map +1 -0
  5. package/dist/index-BQvciEuH.cjs +347 -0
  6. package/dist/index-BQvciEuH.cjs.map +1 -0
  7. package/dist/{index-CYkoYO0G.js → index-CYVpvKPr.js} +5224 -3945
  8. package/dist/index-CYVpvKPr.js.map +1 -0
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/package.json.d.ts +1 -1
  12. package/dist/src/companion/ChatPicker.d.ts.map +1 -1
  13. package/dist/src/components/ConnectionCard.d.ts +6 -0
  14. package/dist/src/components/ConnectionCard.d.ts.map +1 -0
  15. package/dist/src/components/ConnectionsSettings.d.ts +5 -0
  16. package/dist/src/components/ConnectionsSettings.d.ts.map +1 -0
  17. package/dist/src/components/ElicitationForm.d.ts +11 -0
  18. package/dist/src/components/ElicitationForm.d.ts.map +1 -0
  19. package/dist/src/components/MessageActions.d.ts +2 -2
  20. package/dist/src/components/MessageActions.d.ts.map +1 -1
  21. package/dist/src/components/PageActionCard.d.ts +17 -0
  22. package/dist/src/components/PageActionCard.d.ts.map +1 -0
  23. package/dist/src/components/StreamingTurn.d.ts +7 -1
  24. package/dist/src/components/StreamingTurn.d.ts.map +1 -1
  25. package/dist/src/components/lib/McpIcon.d.ts +4 -0
  26. package/dist/src/components/lib/McpIcon.d.ts.map +1 -0
  27. package/dist/src/components/lib/button.d.ts +2 -0
  28. package/dist/src/components/lib/button.d.ts.map +1 -1
  29. package/dist/src/components/lib/wobble.d.ts +3 -3
  30. package/dist/src/components/lib/wobble.d.ts.map +1 -1
  31. package/dist/src/hooks/useCanHover.d.ts.map +1 -1
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/json-render/Chart.impl.d.ts.map +1 -1
  34. package/dist/src/json-render/SpecRenderer.d.ts +6 -1
  35. package/dist/src/json-render/SpecRenderer.d.ts.map +1 -1
  36. package/dist/src/json-render/StreamingShimmer.d.ts +12 -0
  37. package/dist/src/json-render/StreamingShimmer.d.ts.map +1 -0
  38. package/dist/src/json-render/chart-axis.d.ts +30 -0
  39. package/dist/src/json-render/chart-axis.d.ts.map +1 -0
  40. package/dist/src/json-render/registry.d.ts.map +1 -1
  41. package/dist/src/json-render/segment-content.d.ts +14 -6
  42. package/dist/src/json-render/segment-content.d.ts.map +1 -1
  43. package/dist/src/page-controls/accessible-name.d.ts +23 -0
  44. package/dist/src/page-controls/accessible-name.d.ts.map +1 -0
  45. package/dist/src/page-controls/act-input.d.ts +18 -0
  46. package/dist/src/page-controls/act-input.d.ts.map +1 -0
  47. package/dist/src/page-controls/act-types.d.ts +43 -0
  48. package/dist/src/page-controls/act-types.d.ts.map +1 -0
  49. package/dist/src/page-controls/act.d.ts +8 -0
  50. package/dist/src/page-controls/act.d.ts.map +1 -0
  51. package/dist/src/page-controls/control-ref.d.ts +28 -0
  52. package/dist/src/page-controls/control-ref.d.ts.map +1 -0
  53. package/dist/src/page-controls/cursor.d.ts +72 -0
  54. package/dist/src/page-controls/cursor.d.ts.map +1 -0
  55. package/dist/src/page-controls/guard.d.ts +47 -0
  56. package/dist/src/page-controls/guard.d.ts.map +1 -0
  57. package/dist/src/page-controls/native-setter.d.ts +16 -0
  58. package/dist/src/page-controls/native-setter.d.ts.map +1 -0
  59. package/dist/src/page-controls/needs-consent.d.ts +15 -0
  60. package/dist/src/page-controls/needs-consent.d.ts.map +1 -0
  61. package/dist/src/page-controls/off-limits.d.ts +16 -0
  62. package/dist/src/page-controls/off-limits.d.ts.map +1 -0
  63. package/dist/src/page-controls/pointer-sequence.d.ts +14 -0
  64. package/dist/src/page-controls/pointer-sequence.d.ts.map +1 -0
  65. package/dist/src/page-controls/read-controls.d.ts +4 -0
  66. package/dist/src/page-controls/read-controls.d.ts.map +1 -0
  67. package/dist/src/page-controls/send-context.d.ts +20 -0
  68. package/dist/src/page-controls/send-context.d.ts.map +1 -0
  69. package/dist/src/page-controls/types.d.ts +52 -0
  70. package/dist/src/page-controls/types.d.ts.map +1 -0
  71. package/dist/src/page-marks/agent-mark.d.ts +6 -5
  72. package/dist/src/page-marks/agent-mark.d.ts.map +1 -1
  73. package/dist/src/screens/chat/ChatInput.d.ts.map +1 -1
  74. package/dist/src/screens/chat/agent/AgentChatPageActions.d.ts +13 -0
  75. package/dist/src/screens/chat/agent/AgentChatPageActions.d.ts.map +1 -0
  76. package/dist/src/screens/chat/agent/AgentChatPageEffects.d.ts.map +1 -1
  77. package/dist/src/screens/chat/agent/useStreamFollow.d.ts +4 -0
  78. package/dist/src/screens/chat/agent/useStreamFollow.d.ts.map +1 -1
  79. package/dist/src/screens/sessions/index.d.ts.map +1 -1
  80. package/package.json +3 -3
  81. package/dist/Chart.impl-GVOKqjeW.cjs +0 -2
  82. package/dist/Chart.impl-GVOKqjeW.cjs.map +0 -1
  83. package/dist/Chart.impl-mssp6x6e.js +0 -153
  84. package/dist/Chart.impl-mssp6x6e.js.map +0 -1
  85. package/dist/index-BBzL0SrG.cjs +0 -343
  86. package/dist/index-BBzL0SrG.cjs.map +0 -1
  87. package/dist/index-CYkoYO0G.js.map +0 -1
  88. package/dist/src/__tests__/WidgetImperativeHandler.spec.d.ts +0 -2
  89. package/dist/src/__tests__/WidgetImperativeHandler.spec.d.ts.map +0 -1
  90. package/dist/src/__tests__/motion-contract.spec.d.ts +0 -2
  91. package/dist/src/__tests__/motion-contract.spec.d.ts.map +0 -1
  92. package/dist/src/__tests__/question-capabilities.spec.d.ts +0 -2
  93. package/dist/src/__tests__/question-capabilities.spec.d.ts.map +0 -1
  94. package/dist/src/companion/__tests__/app-frame.spec.d.ts +0 -2
  95. package/dist/src/companion/__tests__/app-frame.spec.d.ts.map +0 -1
  96. package/dist/src/companion/__tests__/companion-chats.spec.d.ts +0 -2
  97. package/dist/src/companion/__tests__/companion-chats.spec.d.ts.map +0 -1
  98. package/dist/src/companion/__tests__/companion-dismissal.spec.d.ts +0 -2
  99. package/dist/src/companion/__tests__/companion-dismissal.spec.d.ts.map +0 -1
  100. package/dist/src/companion/__tests__/companion-focus.spec.d.ts +0 -2
  101. package/dist/src/companion/__tests__/companion-focus.spec.d.ts.map +0 -1
  102. package/dist/src/companion/__tests__/companion-frame.spec.d.ts +0 -2
  103. package/dist/src/companion/__tests__/companion-frame.spec.d.ts.map +0 -1
  104. package/dist/src/companion/__tests__/companion-geometry.spec.d.ts +0 -2
  105. package/dist/src/companion/__tests__/companion-geometry.spec.d.ts.map +0 -1
  106. package/dist/src/companion/__tests__/companion-keyboard.spec.d.ts +0 -2
  107. package/dist/src/companion/__tests__/companion-keyboard.spec.d.ts.map +0 -1
  108. package/dist/src/companion/__tests__/companion-open-sync.spec.d.ts +0 -2
  109. package/dist/src/companion/__tests__/companion-open-sync.spec.d.ts.map +0 -1
  110. package/dist/src/companion/__tests__/host-scroll-lock.spec.d.ts +0 -2
  111. package/dist/src/companion/__tests__/host-scroll-lock.spec.d.ts.map +0 -1
  112. package/dist/src/companion/__tests__/layout-picker.spec.d.ts +0 -2
  113. package/dist/src/companion/__tests__/layout-picker.spec.d.ts.map +0 -1
  114. package/dist/src/companion/__tests__/message-styles.spec.d.ts +0 -2
  115. package/dist/src/companion/__tests__/message-styles.spec.d.ts.map +0 -1
  116. package/dist/src/companion/__tests__/use-companion-host-effects.spec.d.ts +0 -2
  117. package/dist/src/companion/__tests__/use-companion-host-effects.spec.d.ts.map +0 -1
  118. package/dist/src/companion/__tests__/use-companion-measurements.spec.d.ts +0 -2
  119. package/dist/src/companion/__tests__/use-companion-measurements.spec.d.ts.map +0 -1
  120. package/dist/src/companion/__tests__/use-host-portal.spec.d.ts +0 -2
  121. package/dist/src/companion/__tests__/use-host-portal.spec.d.ts.map +0 -1
  122. package/dist/src/companion/__tests__/use-persisted-pill-drag.spec.d.ts +0 -2
  123. package/dist/src/companion/__tests__/use-persisted-pill-drag.spec.d.ts.map +0 -1
  124. package/dist/src/components/__tests__/clarification-questions.spec.d.ts +0 -2
  125. package/dist/src/components/__tests__/clarification-questions.spec.d.ts.map +0 -1
  126. package/dist/src/components/__tests__/dialoger-escape.spec.d.ts +0 -2
  127. package/dist/src/components/__tests__/dialoger-escape.spec.d.ts.map +0 -1
  128. package/dist/src/components/__tests__/header-title.spec.d.ts +0 -2
  129. package/dist/src/components/__tests__/header-title.spec.d.ts.map +0 -1
  130. package/dist/src/components/__tests__/message-actions.spec.d.ts +0 -2
  131. package/dist/src/components/__tests__/message-actions.spec.d.ts.map +0 -1
  132. package/dist/src/components/__tests__/rich-text-sanitize.spec.d.ts +0 -2
  133. package/dist/src/components/__tests__/rich-text-sanitize.spec.d.ts.map +0 -1
  134. package/dist/src/components/__tests__/steps-group-collapse.spec.d.ts +0 -2
  135. package/dist/src/components/__tests__/steps-group-collapse.spec.d.ts.map +0 -1
  136. package/dist/src/components/__tests__/steps-reasoning-markdown.spec.d.ts +0 -2
  137. package/dist/src/components/__tests__/steps-reasoning-markdown.spec.d.ts.map +0 -1
  138. package/dist/src/components/__tests__/steps-tool-io.spec.d.ts +0 -2
  139. package/dist/src/components/__tests__/steps-tool-io.spec.d.ts.map +0 -1
  140. package/dist/src/components/__tests__/streaming-turn-customization.spec.d.ts +0 -2
  141. package/dist/src/components/__tests__/streaming-turn-customization.spec.d.ts.map +0 -1
  142. package/dist/src/components/__tests__/streaming-turn-working.spec.d.ts +0 -2
  143. package/dist/src/components/__tests__/streaming-turn-working.spec.d.ts.map +0 -1
  144. package/dist/src/components/__tests__/task-plan-motion.spec.d.ts +0 -2
  145. package/dist/src/components/__tests__/task-plan-motion.spec.d.ts.map +0 -1
  146. package/dist/src/components/custom-components/__tests__/agent-message-spec-history.spec.d.ts +0 -2
  147. package/dist/src/components/custom-components/__tests__/agent-message-spec-history.spec.d.ts.map +0 -1
  148. package/dist/src/json-render/__tests__/catalog.spec.d.ts +0 -2
  149. package/dist/src/json-render/__tests__/catalog.spec.d.ts.map +0 -1
  150. package/dist/src/json-render/__tests__/chart.spec.d.ts +0 -2
  151. package/dist/src/json-render/__tests__/chart.spec.d.ts.map +0 -1
  152. package/dist/src/json-render/__tests__/json-render-error-boundary.spec.d.ts +0 -2
  153. package/dist/src/json-render/__tests__/json-render-error-boundary.spec.d.ts.map +0 -1
  154. package/dist/src/json-render/__tests__/normalize-spec.spec.d.ts +0 -2
  155. package/dist/src/json-render/__tests__/normalize-spec.spec.d.ts.map +0 -1
  156. package/dist/src/json-render/__tests__/phone-agent-card.spec.d.ts +0 -2
  157. package/dist/src/json-render/__tests__/phone-agent-card.spec.d.ts.map +0 -1
  158. package/dist/src/json-render/__tests__/props.spec.d.ts +0 -2
  159. package/dist/src/json-render/__tests__/props.spec.d.ts.map +0 -1
  160. package/dist/src/json-render/__tests__/segment-content.spec.d.ts +0 -2
  161. package/dist/src/json-render/__tests__/segment-content.spec.d.ts.map +0 -1
  162. package/dist/src/json-render/__tests__/spec-renderer.spec.d.ts +0 -2
  163. package/dist/src/json-render/__tests__/spec-renderer.spec.d.ts.map +0 -1
  164. package/dist/src/page-marks/__tests__/agent-mark.spec.d.ts +0 -2
  165. package/dist/src/page-marks/__tests__/agent-mark.spec.d.ts.map +0 -1
  166. package/dist/src/page-marks/__tests__/mark-snapshot-upload.spec.d.ts +0 -2
  167. package/dist/src/page-marks/__tests__/mark-snapshot-upload.spec.d.ts.map +0 -1
  168. package/dist/src/page-marks/__tests__/page-element-name.spec.d.ts +0 -2
  169. package/dist/src/page-marks/__tests__/page-element-name.spec.d.ts.map +0 -1
  170. package/dist/src/page-marks/__tests__/page-element.spec.d.ts +0 -2
  171. package/dist/src/page-marks/__tests__/page-element.spec.d.ts.map +0 -1
  172. package/dist/src/page-marks/__tests__/page-mark-pill.spec.d.ts +0 -2
  173. package/dist/src/page-marks/__tests__/page-mark-pill.spec.d.ts.map +0 -1
  174. package/dist/src/page-marks/__tests__/page-mark-theme.spec.d.ts +0 -2
  175. package/dist/src/page-marks/__tests__/page-mark-theme.spec.d.ts.map +0 -1
  176. package/dist/src/page-marks/__tests__/page-mark-tile.spec.d.ts +0 -2
  177. package/dist/src/page-marks/__tests__/page-mark-tile.spec.d.ts.map +0 -1
  178. package/dist/src/page-marks/__tests__/page-marks-provider.spec.d.ts +0 -2
  179. package/dist/src/page-marks/__tests__/page-marks-provider.spec.d.ts.map +0 -1
  180. package/dist/src/page-marks/__tests__/picked-elements.spec.d.ts +0 -2
  181. package/dist/src/page-marks/__tests__/picked-elements.spec.d.ts.map +0 -1
  182. package/dist/src/page-marks/__tests__/sent-mark-chip.spec.d.ts +0 -2
  183. package/dist/src/page-marks/__tests__/sent-mark-chip.spec.d.ts.map +0 -1
  184. package/dist/src/page-marks/__tests__/use-page-marking.spec.d.ts +0 -2
  185. package/dist/src/page-marks/__tests__/use-page-marking.spec.d.ts.map +0 -1
  186. package/dist/src/screens/chat/__tests__/chat-input-clarification.spec.d.ts +0 -2
  187. package/dist/src/screens/chat/__tests__/chat-input-clarification.spec.d.ts.map +0 -1
  188. package/dist/src/screens/chat/__tests__/chat-main.polling-progress.spec.d.ts +0 -2
  189. package/dist/src/screens/chat/__tests__/chat-main.polling-progress.spec.d.ts.map +0 -1
  190. package/dist/src/screens/chat/__tests__/chatInput.spec.d.ts +0 -2
  191. package/dist/src/screens/chat/__tests__/chatInput.spec.d.ts.map +0 -1
  192. package/dist/src/screens/chat/__tests__/composer-draft.d.ts +0 -17
  193. package/dist/src/screens/chat/__tests__/composer-draft.d.ts.map +0 -1
  194. package/dist/src/screens/chat/__tests__/use-mentions.spec.d.ts +0 -2
  195. package/dist/src/screens/chat/__tests__/use-mentions.spec.d.ts.map +0 -1
  196. package/dist/src/screens/chat/__tests__/useSentTextRecall.spec.d.ts +0 -2
  197. package/dist/src/screens/chat/__tests__/useSentTextRecall.spec.d.ts.map +0 -1
  198. package/dist/src/screens/chat/agent/__tests__/agent-chat-main.promotion.spec.d.ts +0 -2
  199. package/dist/src/screens/chat/agent/__tests__/agent-chat-main.promotion.spec.d.ts.map +0 -1
  200. package/dist/src/screens/chat/agent/__tests__/agent-chat-page-effects.spec.d.ts +0 -2
  201. package/dist/src/screens/chat/agent/__tests__/agent-chat-page-effects.spec.d.ts.map +0 -1
  202. package/dist/src/screens/chat/agent/__tests__/scroll-follow.utils.spec.d.ts +0 -2
  203. package/dist/src/screens/chat/agent/__tests__/scroll-follow.utils.spec.d.ts.map +0 -1
  204. package/dist/src/screens/chat/agent/__tests__/useStreamFollow.spec.d.ts +0 -2
  205. package/dist/src/screens/chat/agent/__tests__/useStreamFollow.spec.d.ts.map +0 -1
  206. package/dist/src/utils/__tests__/attachment-kind.spec.d.ts +0 -2
  207. package/dist/src/utils/__tests__/attachment-kind.spec.d.ts.map +0 -1
  208. package/dist/src/utils/__tests__/keybindings.spec.d.ts +0 -2
  209. package/dist/src/utils/__tests__/keybindings.spec.d.ts.map +0 -1
  210. package/dist/src/utils/__tests__/resolve-trigger-side.spec.d.ts +0 -2
  211. package/dist/src/utils/__tests__/resolve-trigger-side.spec.d.ts.map +0 -1
  212. package/dist/src/utils/__tests__/strip-citation-refs.spec.d.ts +0 -2
  213. package/dist/src/utils/__tests__/strip-citation-refs.spec.d.ts.map +0 -1
  214. package/dist/src/utils/__tests__/strip-inline-markdown.spec.d.ts +0 -2
  215. package/dist/src/utils/__tests__/strip-inline-markdown.spec.d.ts.map +0 -1
  216. package/dist/src/utils/__tests__/svg-mask-url.spec.d.ts +0 -2
  217. package/dist/src/utils/__tests__/svg-mask-url.spec.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@radix-ui/react-popover");require("framer-motion");require("react");require("@opencx/widget-react-headless");const e=require("./index-BBzL0SrG.cjs");exports.HostedSpecRenderer=e.HostedSpecRenderer;exports.Widget=e.Widget;exports.segmentContent=e.segmentContent;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@radix-ui/react-popover");require("framer-motion");require("react");require("@opencx/widget-react-headless");const e=require("./index-BQvciEuH.cjs");exports.HostedSpecRenderer=e.HostedSpecRenderer;exports.Widget=e.Widget;exports.segmentContent=e.segmentContent;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import "@radix-ui/react-popover";
3
3
  import "framer-motion";
4
4
  import "react";
5
5
  import "@opencx/widget-react-headless";
6
- import { H as s, W as n, s as a } from "./index-CYkoYO0G.js";
6
+ import { H as s, W as n, s as a } from "./index-CYVpvKPr.js";
7
7
  export {
8
8
  s as HostedSpecRenderer,
9
9
  n as Widget,
@@ -1,7 +1,7 @@
1
1
  declare const _default: {
2
2
  "name": "@opencx/widget-react",
3
3
  "private": false,
4
- "version": "5.0.0-beta.6",
4
+ "version": "5.0.0-beta.9",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPicker.d.ts","sourceRoot":"","sources":["../../../src/companion/ChatPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAKf,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,GAAG,KAAK,EACT,EAAE,WAAW,GAAG;IACf,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;CAC1C,qBA2BA;AA+ED,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,4BAShD"}
1
+ {"version":3,"file":"ChatPicker.d.ts","sourceRoot":"","sources":["../../../src/companion/ChatPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAKf,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,GAAG,KAAK,EACT,EAAE,WAAW,GAAG;IACf,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;CAC1C,qBAgCA;AA+ED,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACzC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,4BAShD"}
@@ -0,0 +1,6 @@
1
+ import { ConnectionRequest } from '@opencx/widget-react-headless';
2
+ import { default as React } from 'react';
3
+ export declare function ConnectionCard({ request }: {
4
+ request: ConnectionRequest;
5
+ }): React.JSX.Element;
6
+ //# sourceMappingURL=ConnectionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionCard.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,qBA0HzE"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ export declare function ConnectionsSettings({ children, }: {
3
+ children: React.ReactNode;
4
+ }): React.JSX.Element;
5
+ //# sourceMappingURL=ConnectionsSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionsSettings.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectionsSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAqPA"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { ElicitationRequest, ElicitationResponse } from '@opencx/widget-core';
3
+ export declare function ElicitationForm({ sessionId, active, }: {
4
+ sessionId: string;
5
+ active: boolean;
6
+ }): React.JSX.Element;
7
+ export declare function RequestForm({ request, onAnswer, }: {
8
+ request: ElicitationRequest;
9
+ onAnswer: (answer: ElicitationResponse) => Promise<void>;
10
+ }): React.JSX.Element;
11
+ //# sourceMappingURL=ElicitationForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElicitationForm.d.ts","sourceRoot":"","sources":["../../../src/components/ElicitationForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAK7B,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,qBA+CA;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,qBA4OA"}
@@ -1,7 +1,7 @@
1
1
  import { WidgetAiMessage } from '@opencx/widget-core';
2
2
  import { default as React } from 'react';
3
3
  /** The reply as text: every message of the group, citation tags removed. */
4
- export declare function replyText(messages: readonly WidgetAiMessage[]): string;
4
+ export declare function replyText(messages: readonly Pick<WidgetAiMessage, 'data'>[]): string;
5
5
  /**
6
6
  * Whether the copy button shows. The companion is the v5-native surface and
7
7
  * gets it out of the box; the popover is what a v4 embed upgrades into and
@@ -16,6 +16,6 @@ export declare function useShowsCopyAction(): boolean;
16
16
  * insecure-origin host page — rather than showing a button that fails.
17
17
  */
18
18
  export declare function MessageActions({ messages, }: {
19
- messages: readonly WidgetAiMessage[];
19
+ messages: readonly Pick<WidgetAiMessage, 'data'>[];
20
20
  }): React.JSX.Element | null;
21
21
  //# sourceMappingURL=MessageActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAsC,MAAM,OAAO,CAAC;AAU3D,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CACtC,4BAoEA"}
1
+ {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../src/components/MessageActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAsC,MAAM,OAAO,CAAC;AAU3D,4EAA4E;AAC5E,wBAAgB,SAAS,CACvB,QAAQ,EAAE,SAAS,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,GACjD,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC;CACpD,4BAoEA"}
@@ -0,0 +1,17 @@
1
+ import { PendingPageAction } from '@opencx/widget-react-headless';
2
+ import { default as React } from 'react';
3
+ /**
4
+ * The moment the visitor decides.
5
+ *
6
+ * It names the control — the control's own name, read off their page, not
7
+ * anything the agent wrote — because "Allow this action?" is a question
8
+ * nobody reads, and "Allow the agent to click Cancel subscription?" is a
9
+ * question everybody reads.
10
+ *
11
+ * One chip at a time, and No is final: the agent is told it was declined
12
+ * and does not get to ask again or reach the same control another way.
13
+ */
14
+ export declare function PageActionCard({ request }: {
15
+ request: PendingPageAction;
16
+ }): React.JSX.Element;
17
+ //# sourceMappingURL=PageActionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageActionCard.d.ts","sourceRoot":"","sources":["../../../src/components/PageActionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,qBAiCzE"}
@@ -25,9 +25,15 @@ export declare function StreamingTurn({ turn, agent, timestamp, }: {
25
25
  * Assembles the accumulating spec from the turn's `data-spec` patches and
26
26
  * renders it through the shared `SpecRenderer` seam (same defenses as the
27
27
  * persisted-history path).
28
+ *
29
+ * `active` is the turn's own flag: while it streams, containers whose content
30
+ * has not arrived show a shimmer; once the turn settles they show their
31
+ * ordinary empty state. Optional so an embedder's custom spec component (and
32
+ * a direct render) keeps compiling without it.
28
33
  */
29
34
  export type StreamingSpecComponentProps = {
30
35
  parts: SpecDataPart[];
36
+ active?: boolean;
31
37
  };
32
- export declare function StreamingSpec({ parts }: StreamingSpecComponentProps): React.JSX.Element;
38
+ export declare function StreamingSpec({ parts, active, }: StreamingSpecComponentProps): React.JSX.Element;
33
39
  //# sourceMappingURL=StreamingTurn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingTurn.d.ts","sourceRoot":"","sources":["../../../src/components/StreamingTurn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,YAAY,EAEZ,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,SAAS,GACV,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,qBAgFA;AAOD;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAEpE,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,2BAA2B,qBAKnE"}
1
+ {"version":3,"file":"StreamingTurn.d.ts","sourceRoot":"","sources":["../../../src/components/StreamingTurn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,YAAY,EAEZ,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,SAAS,GACV,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,qBAiGA;AAOD;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAc,GACf,EAAE,2BAA2B,qBAK7B"}
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ /** Official MCP mark: https://github.com/modelcontextprotocol/docs/blob/main/favicon.svg */
3
+ export declare function McpIcon(): React.JSX.Element;
4
+ //# sourceMappingURL=McpIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/lib/McpIcon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;EAsBE;AACF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,4FAA4F;AAC5F,wBAAgB,OAAO,sBAgBtB"}
@@ -6,6 +6,8 @@ declare const buttonVariants: (props?: ({
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
8
  asChild?: boolean;
9
+ /** Disable decorative pointer-follow movement for stable action targets. */
10
+ wobble?: boolean;
9
11
  }
10
12
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
13
  export { Button, buttonVariants };
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/lib/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,cAAc;;;8EAuCnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,uFAiBX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/lib/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,cAAc;;;8EAuCnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,MAAM,uFAwBX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -9,9 +9,9 @@ export declare const WOBBLE_MAX_MOVEMENT_PIXELS: {
9
9
  y: number;
10
10
  };
11
11
  type ChildProps = {
12
- onMouseMove?: (event: React.MouseEvent<HTMLElement>) => void;
13
- onMouseEnter?: () => void;
14
- onMouseLeave?: () => void;
12
+ onMouseMove?: React.MouseEventHandler<HTMLElement>;
13
+ onMouseEnter?: React.MouseEventHandler<HTMLElement>;
14
+ onMouseLeave?: React.MouseEventHandler<HTMLElement>;
15
15
  style?: React.CSSProperties;
16
16
  className?: string;
17
17
  ref: React.ForwardedRef<HTMLElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"wobble.d.ts","sourceRoot":"","sources":["../../../../src/components/lib/wobble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,KAAK,YAAY,EAElB,MAAM,OAAO,CAAC;AAIf;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAIF,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,QAAA,MAAM,MAAM,4EAgFX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"wobble.d.ts","sourceRoot":"","sources":["../../../../src/components/lib/wobble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,KAAK,YAAY,EAElB,MAAM,OAAO,CAAC;AAMf;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAIF,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnD,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,QAAA,MAAM,MAAM,4EAoFX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCanHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCanHover.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAOrC"}
1
+ {"version":3,"file":"useCanHover.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCanHover.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAQrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAML,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAUvC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAC;AA6EnC,QAAA,MAAM,MAAM;aAGC,YAAY;iBACR,mBAAmB,EAAE;uBACf,KAAK,CAAC,SAAS;qBACjB,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS;mCAgDpD,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB;;;;;GAKG;AACH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,SAAS,GACV,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAML,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAWvC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAC;AA6EnC,QAAA,MAAM,MAAM;aAGC,YAAY;iBACR,mBAAmB,EAAE;uBACf,KAAK,CAAC,SAAS;qBACjB,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS;mCAkDpD,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB;;;;;GAKG;AACH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,SAAS,GACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.impl.d.ts","sourceRoot":"","sources":["../../../src/json-render/Chart.impl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAuD1C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,WAAW,GACZ,EAAE,UAAU,qBAsGZ"}
1
+ {"version":3,"file":"Chart.impl.d.ts","sourceRoot":"","sources":["../../../src/json-render/Chart.impl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA2F1C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,WAAW,GACZ,EAAE,UAAU,qBAwHZ"}
@@ -9,9 +9,14 @@ import { default as React } from 'react';
9
9
  * Applies leaf-`repeat` recovery, guards empty/partial specs, and renders under
10
10
  * a per-spec state provider (so `{ "$state": "/path" }` refs resolve against
11
11
  * THIS spec's own state) wrapped in an error boundary.
12
+ *
13
+ * `active` says the spec is still being streamed: containers with nothing to
14
+ * paint yet show a shimmer instead of their settled empty state. History and
15
+ * settled turns leave it off.
12
16
  */
13
- export declare function SpecRenderer({ spec }: {
17
+ export declare function SpecRenderer({ spec, active, }: {
14
18
  spec: Spec | null;
19
+ active?: boolean;
15
20
  }): React.JSX.Element;
16
21
  /**
17
22
  * The same renderer for a page that is not the widget but shows what the
@@ -1 +1 @@
1
- {"version":3,"file":"SpecRenderer.d.ts","sourceRoot":"","sources":["../../../src/json-render/SpecRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAkB,MAAM,OAAO,CAAC;AAWvC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,qBAQ3D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAY,GACb,EAAE;IACD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,qBAGA"}
1
+ {"version":3,"file":"SpecRenderer.d.ts","sourceRoot":"","sources":["../../../src/json-render/SpecRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAkB,MAAM,OAAO,CAAC;AAWvC;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,MAAc,GACf,EAAE;IACD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,qBAQA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAY,GACb,EAAE;IACD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,qBAGA"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * The placeholder a container shows while its spec is still streaming and it
4
+ * has nothing to paint yet — the same pulse the lazy Chart holds its space
5
+ * with (`ChartShimmer` in `Chart.tsx`), so an empty Card, List, Table, Grid or
6
+ * Stack mid-stream reads as "loading" rather than as a bare frame or an "empty"
7
+ * message that flips to content a moment later.
8
+ */
9
+ export declare function StreamingShimmer({ height }: {
10
+ height?: number;
11
+ }): React.JSX.Element;
12
+ //# sourceMappingURL=StreamingShimmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingShimmer.d.ts","sourceRoot":"","sources":["../../../src/json-render/StreamingShimmer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAW,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,qBAQpE"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Y-axis sizing for the cartesian charts.
3
+ *
4
+ * recharts 2.x has no auto-width axis: `YAxis.width` is a fixed number, and a
5
+ * tick label wider than the room left of its tick pokes out past the svg's
6
+ * left edge, where the viewport clips it. That is how a 120/80/150/90/200 bar
7
+ * chart rendered "0" for every tick in the 400px chat panel — only the last
8
+ * digit of each label survived. The axis is sized from the labels recharts
9
+ * actually painted instead: measured in a browser, estimated where the text
10
+ * cannot be measured (jsdom, a hidden embed).
11
+ */
12
+ /** recharts' painted Y tick labels (`<text>`, right-anchored at their `x`). */
13
+ export declare const Y_TICK_LABEL_SELECTOR = ".recharts-yAxis .recharts-cartesian-axis-tick-value";
14
+ export declare function estimateTextWidth(text: string, fontSize: number): number;
15
+ /**
16
+ * The painted width of an svg text node: the browser's glyph run when it can
17
+ * report one (a non-positive length means not laid out — a hidden embed), the
18
+ * estimate otherwise.
19
+ */
20
+ export declare function measureSvgTextWidth(node: Element, fontSize: number): number;
21
+ /**
22
+ * The narrowest `YAxis.width` that keeps every painted tick label inside the
23
+ * svg, or `null` when no Y ticks are in the DOM (a pie, or nothing painted
24
+ * yet). Derived from geometry, not from recharts constants: each label's
25
+ * right edge sits at its tick's `x`, and `currentWidth - x` is whatever gap
26
+ * the axis reserves between label and plot — so the requirement is the widest
27
+ * label plus that gap, whichever tick size/margin recharts applied.
28
+ */
29
+ export declare function requiredYAxisWidth(container: ParentNode, currentWidth: number, fontSize: number): number | null;
30
+ //# sourceMappingURL=chart-axis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-axis.d.ts","sourceRoot":"","sources":["../../../src/json-render/chart-axis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,wDACqB,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAYD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAaf"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/json-render/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAkE5E,eAAO,MAAQ,QAAQ,gDAsOrB,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,EAAE,iBAOhC,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/json-render/registry.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwE5E,eAAO,MAAQ,QAAQ,gDA4OrB,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,EAAE,iBAOhC,CAAC"}
@@ -14,12 +14,20 @@ export type ContentSegment = {
14
14
  * fence (persist raw, transform on serve). So the history path re-derives the
15
15
  * spec from the stored text here.
16
16
  *
17
- * There is exactly ONE spec format: JSONL patch lines inside a ` ```spec `
18
- * fence — what the prompt instructs the model to emit and what every tool
19
- * that hands back a card emits. Everything else is markdown. A fence is consumed only after its patches compile to nonempty UI;
20
- * malformed, unsupported, empty, and incomplete-only fences remain visible as
21
- * their original fenced markdown. An unclosed fence (turn cut mid-stream)
22
- * still compiles when enough valid patches arrived.
17
+ * There is exactly ONE spec format: JSONL patch lines — what the prompt
18
+ * instructs the model to emit inside a ` ```spec ` fence and what every tool
19
+ * that hands back a card emits. A model that forgets the fence still emits the
20
+ * same lines, and the live stream renders them as UI regardless (its transform
21
+ * drains every patch-shaped line, fenced or not), so a run of consecutive bare
22
+ * patch lines outside any fence is a spec block too — otherwise a reloaded
23
+ * transcript shows raw JSON where the customer watched a card.
24
+ *
25
+ * Everything else is markdown. A spec block (fenced or bare) is consumed only
26
+ * after its patches compile to renderable UI; malformed, unsupported, empty,
27
+ * and incomplete-only blocks remain visible as their original text. An
28
+ * unclosed fence (turn cut mid-stream) still compiles when enough valid
29
+ * patches arrived, and a cut-off patch line ending a bare run at the very end
30
+ * of the text is the run's tail, never a stray `{"op":...` bubble.
23
31
  */
24
32
  export declare function segmentContent(text: string): ContentSegment[];
25
33
  //# sourceMappingURL=segment-content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segment-content.d.ts","sourceRoot":"","sources":["../../../src/json-render/segment-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAmF7D"}
1
+ {"version":3,"file":"segment-content.d.ts","sourceRoot":"","sources":["../../../src/json-render/segment-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAoH7D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The accessible name of a control — the words a screen reader would say.
3
+ *
4
+ * This is the whole point of reading the page: a customer says "the Change
5
+ * plan button", and the only way that matches a node is if we resolved the
6
+ * name the same way their browser does. A CSS class or a tag name is not a
7
+ * name; `aria-label`, a `<label>`, a `placeholder` and the visible text are.
8
+ *
9
+ * A trimmed-down accname resolution, in spec order for the cases that occur
10
+ * on real pages: aria-labelledby → aria-label → the native label (label
11
+ * element, legend, alt, title-of-image) → visible text → placeholder →
12
+ * title. `value` is NEVER a name source, even where the spec allows it for
13
+ * buttons, because an `<input type="submit" value="…">` is the one place
14
+ * where a field's value and its name are the same string, and letting it
15
+ * through would make "no values" depend on an input type.
16
+ */
17
+ /**
18
+ * Resolve the name. Returns '' when the control has none — a nameless
19
+ * control is one the agent cannot talk about, so the reader drops it rather
20
+ * than inventing a name out of markup.
21
+ */
22
+ export declare function accessibleName(el: HTMLElement): string;
23
+ //# sourceMappingURL=accessible-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessible-name.d.ts","sourceRoot":"","sources":["../../../src/page-controls/accessible-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqDH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAwCtD"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * What the agent is allowed to ask for. `ref` is the only way to name a
4
+ * control — there is no selector and no text — and the action set is closed,
5
+ * so an invented verb is refused rather than interpreted.
6
+ */
7
+ export declare const actOnPageInputSchema: z.ZodObject<{
8
+ ref: z.ZodString;
9
+ action: z.ZodEnum<{
10
+ fill: "fill";
11
+ select: "select";
12
+ check: "check";
13
+ click: "click";
14
+ uncheck: "uncheck";
15
+ }>;
16
+ value: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strip>;
18
+ //# sourceMappingURL=act-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-input.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAK/B,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Doing something on the customer's page, and knowing whether it happened.
3
+ *
4
+ * The rule that shapes all of this: the agent may only report what the page
5
+ * actually did. Firing a click is easy; knowing whether the click DID
6
+ * anything is the work, and it is the difference between "I've cancelled
7
+ * your subscription" and the truth.
8
+ */
9
+ /** What the agent can do to a control. Deliberately small. */
10
+ export declare const PAGE_ACTIONS: readonly ["click", "fill", "select", "check", "uncheck"];
11
+ export type PageAction = (typeof PAGE_ACTIONS)[number];
12
+ /**
13
+ * Actions that COMMIT something on the customer's behalf — money moves, a
14
+ * record is destroyed, a form is submitted. These never happen without the
15
+ * visitor saying yes to that exact control, first.
16
+ *
17
+ * Recognised from what the control IS and what it SAYS, because that is all
18
+ * a page reliably tells us. It over-includes on purpose: asking about a
19
+ * harmless "Apply filters" button costs one chip, and not asking about
20
+ * "Delete account" costs an account.
21
+ */
22
+ export declare const COMMITTING_WORDS: RegExp;
23
+ /** The answer, in the same words the server and the agent use. */
24
+ export type ActOutcome = 'done' | 'covered' | 'gone' | 'hidden' | 'unsupported' | 'no_change' | 'declined';
25
+ export type ActResult = {
26
+ outcome: ActOutcome;
27
+ /** One short sentence for the agent to pass on. Never page text. */
28
+ detail?: string;
29
+ };
30
+ /**
31
+ * How long the page gets to react before we look at what changed. Long
32
+ * enough for a re-render, a menu to open or a fetch to come back on a local
33
+ * network; short enough that the turn's round trip stays under its budget.
34
+ */
35
+ export declare const SETTLE_MS = 500;
36
+ /**
37
+ * Controls the widget will never act on, whatever the agent asks and
38
+ * whatever the visitor allows. A password or a file picker is not something
39
+ * an agent types into, and a control inside a cross-origin frame is not
40
+ * something this page can honestly report on.
41
+ */
42
+ export declare const NEVER_ACT_INPUT_TYPES: Set<string>;
43
+ //# sourceMappingURL=act-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act-types.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,0DAMf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,QAC4M,CAAC;AAE1O,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAA0C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ActResult, PageAction } from './act-types';
2
+ export declare function actOnPage(input: {
3
+ ref: string;
4
+ action: PageAction;
5
+ value?: string;
6
+ settleMs?: number;
7
+ }): Promise<ActResult>;
8
+ //# sourceMappingURL=act.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AA+FrB,wBAAsB,SAAS,CAAC,KAAK,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,SAAS,CAAC,CAerB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The table behind the references — held here, in the page, never sent.
3
+ *
4
+ * Every control the agent can talk about is one the reader put in this table
5
+ * in this turn. The wire carries `c7`; only this module knows which node
6
+ * that is. Three properties fall out of that, and they are the reason the
7
+ * table exists instead of the agent authoring CSS selectors:
8
+ *
9
+ * - The agent cannot reach a node we did not offer it. There is no selector
10
+ * to widen, no text to guess at, no way to name the password field we
11
+ * skipped.
12
+ * - A reference is checkable. Before drawing or clicking, `resolve` says
13
+ * whether that exact node is still in the document — a stale reference
14
+ * after a re-render is a "no", not a click on whatever moved into place.
15
+ * - The nodes are held weakly, so a table entry never keeps a detached
16
+ * subtree of the customer's page alive.
17
+ */
18
+ /** Open a new reading. Returns the mint function for its references. */
19
+ export declare function beginSnapshot(): (el: HTMLElement) => string;
20
+ /**
21
+ * The element behind a reference, or null — gone from the table, collected,
22
+ * or no longer in the document. "No longer the same node" and "not found"
23
+ * are deliberately the same answer: both mean do not act.
24
+ */
25
+ export declare function resolveRef(ref: string): HTMLElement | null;
26
+ /** Test seam: forget every reading. */
27
+ export declare function resetRefsForTest(): void;
28
+ //# sourceMappingURL=control-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-ref.d.ts","sourceRoot":"","sources":["../../../src/page-controls/control-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,wEAAwE;AACxE,wBAAgB,aAAa,IAAI,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAM1D;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The pointer the visitor watches.
3
+ *
4
+ * Without it the page simply changes: a menu opens, a field fills, and the
5
+ * customer is left to work out whether they did that or something did it to
6
+ * them. A cursor that travels to the control and presses it answers that
7
+ * before they have to ask.
8
+ *
9
+ * It is drawn, never simulated input — the real events still come from
10
+ * `firePointerSequence`. The two are kept in step by aiming both at the same
11
+ * point: the control's centre. If the gesture and the event were allowed to
12
+ * drift apart this would be theatre, and theatre about what an agent did to
13
+ * someone's account is worse than no animation at all.
14
+ *
15
+ * Widget-owned and `pointer-events: none` throughout. It lives inside a
16
+ * fixed, clipped, full-viewport layer so travelling near an edge cannot
17
+ * grow the host page's scroll area, and it never touches a customer
18
+ * element or intercepts a click.
19
+ */
20
+ export declare const CURSOR_APPEAR_MS = 260;
21
+ /** The long haul. A hand crossing a dashboard takes about this. */
22
+ export declare const CURSOR_TRAVEL_MS = 1600;
23
+ /** A hand stops before it presses; without this the two moves read as one jerk. */
24
+ export declare const CURSOR_REST_MS = 180;
25
+ export declare const CURSOR_PRESS_MS = 240;
26
+ type Cursor = {
27
+ /** Travel to a viewport point and stop there. */
28
+ moveTo(x: number, y: number): Promise<void>;
29
+ /** The squash and ring that read as a press. */
30
+ press(): Promise<void>;
31
+ /** Fade out and release the node. */
32
+ release(): void;
33
+ };
34
+ /**
35
+ * Take the pointer off the page NOW.
36
+ *
37
+ * `release` fades, which is right at the end of the work and wrong when
38
+ * something else is starting: the fade outlives the call, so effects in
39
+ * quick succession left ghosts drifting behind the live one. Anything still
40
+ * carrying the marker is removed outright here.
41
+ */
42
+ export declare function dismissAgentCursor(): void;
43
+ /**
44
+ * Put a pointer on the page, or hand back the one already there.
45
+ *
46
+ * Returns null when the document will not have it — the caller then does
47
+ * its own thing silently, because a missing animation must never stop the
48
+ * actual work.
49
+ */
50
+ export declare function showAgentCursor(from?: {
51
+ x: number;
52
+ y: number;
53
+ }): Cursor | null;
54
+ /** The point both the gesture and the real event aim at. */
55
+ export declare function centreOf(el: HTMLElement): {
56
+ x: number;
57
+ y: number;
58
+ };
59
+ /**
60
+ * Bring the control into view and walk the pointer to it.
61
+ *
62
+ * Every failure here is swallowed on purpose. The caller owes the waiting
63
+ * turn an answer, and an animation that cannot run is not a reason to
64
+ * withhold one — the work still happens, it just happens unaccompanied.
65
+ */
66
+ export declare function travelTo(el: HTMLElement, { press }?: {
67
+ press?: boolean;
68
+ }): Promise<{
69
+ done: () => void;
70
+ }>;
71
+ export {};
72
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/page-controls/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,mFAAmF;AACnF,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AAqFnC,KAAK,MAAM,GAAG;IACZ,iDAAiD;IACjD,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,gDAAgD;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,qCAAqC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAwBF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAOzC;AAQD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,MAAM,GAAG,IAAI,CAgIhB;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAGlE;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,WAAW,EACf,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAkB/B"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The check that runs immediately before the widget touches a control —
3
+ * before it draws a mark, and (later) before it clicks.
4
+ *
5
+ * Between the reading that produced a reference and the tool call that uses
6
+ * it, a page can do anything: re-render, scroll, open a modal over the top.
7
+ * So the reference is not trusted as a permission to act; it is looked up,
8
+ * and then the element itself is asked three questions. Each "no" is a
9
+ * distinct answer, because the agent has to be able to say which one
10
+ * happened — "it is behind the dialog that just opened" is useful, "it
11
+ * didn't work" is not.
12
+ */
13
+ export type GuardOutcome =
14
+ /** The element is there, visible, and the topmost thing at its own centre. */
15
+ {
16
+ ok: true;
17
+ element: HTMLElement;
18
+ }
19
+ /** The reference means nothing here: never minted, expired, or detached. */
20
+ | {
21
+ ok: false;
22
+ reason: 'gone';
23
+ }
24
+ /** Still in the document, but not on screen. */
25
+ | {
26
+ ok: false;
27
+ reason: 'hidden';
28
+ }
29
+ /** On screen, but something else is in front of it. */
30
+ | {
31
+ ok: false;
32
+ reason: 'covered';
33
+ }
34
+ /**
35
+ * The page says hands off — a region marked private, something hidden
36
+ * from assistive tech, a credential field, our own UI. Re-checked HERE
37
+ * and not only when the page was read, because a page can mark a region
38
+ * private after the reference to it was handed out.
39
+ */
40
+ | {
41
+ ok: false;
42
+ reason: 'off-limits';
43
+ detail: string;
44
+ };
45
+ /** Look a reference up and ask the element whether it can be touched. */
46
+ export declare function guardRef(ref: string): GuardOutcome;
47
+ //# sourceMappingURL=guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/page-controls/guard.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY;AACtB,8EAA8E;AAC5E;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE;AACpC,4EAA4E;GAC1E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC/B,gDAAgD;GAC9C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE;AACjC,uDAAuD;GACrD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE;AAClC;;;;;GAKG;GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA6BxD,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA6BlD"}