@vendoai/ui 0.4.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 (525) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +7 -0
  3. package/dist/chrome/activity-ledger.d.ts +14 -0
  4. package/dist/chrome/activity-ledger.d.ts.map +1 -0
  5. package/dist/chrome/activity-ledger.js +40 -0
  6. package/dist/chrome/activity-ledger.js.map +1 -0
  7. package/dist/chrome/activity-panel.d.ts +7 -0
  8. package/dist/chrome/activity-panel.d.ts.map +1 -0
  9. package/dist/chrome/activity-panel.js +27 -0
  10. package/dist/chrome/activity-panel.js.map +1 -0
  11. package/dist/chrome/activity-semantics.d.ts +42 -0
  12. package/dist/chrome/activity-semantics.d.ts.map +1 -0
  13. package/dist/chrome/activity-semantics.js +119 -0
  14. package/dist/chrome/activity-semantics.js.map +1 -0
  15. package/dist/chrome/approval-card.d.ts +22 -0
  16. package/dist/chrome/approval-card.d.ts.map +1 -0
  17. package/dist/chrome/approval-card.js +95 -0
  18. package/dist/chrome/approval-card.js.map +1 -0
  19. package/dist/chrome/approval-sheet.d.ts +23 -0
  20. package/dist/chrome/approval-sheet.d.ts.map +1 -0
  21. package/dist/chrome/approval-sheet.js +72 -0
  22. package/dist/chrome/approval-sheet.js.map +1 -0
  23. package/dist/chrome/automations-panel.d.ts +3 -0
  24. package/dist/chrome/automations-panel.d.ts.map +1 -0
  25. package/dist/chrome/automations-panel.js +305 -0
  26. package/dist/chrome/automations-panel.js.map +1 -0
  27. package/dist/chrome/build-beat.d.ts +70 -0
  28. package/dist/chrome/build-beat.d.ts.map +1 -0
  29. package/dist/chrome/build-beat.js +101 -0
  30. package/dist/chrome/build-beat.js.map +1 -0
  31. package/dist/chrome/chrome-css.d.ts +7 -0
  32. package/dist/chrome/chrome-css.d.ts.map +1 -0
  33. package/dist/chrome/chrome-css.js +2042 -0
  34. package/dist/chrome/chrome-css.js.map +1 -0
  35. package/dist/chrome/chrome-root.d.ts +13 -0
  36. package/dist/chrome/chrome-root.d.ts.map +1 -0
  37. package/dist/chrome/chrome-root.js +39 -0
  38. package/dist/chrome/chrome-root.js.map +1 -0
  39. package/dist/chrome/clipboard.d.ts +4 -0
  40. package/dist/chrome/clipboard.d.ts.map +1 -0
  41. package/dist/chrome/clipboard.js +49 -0
  42. package/dist/chrome/clipboard.js.map +1 -0
  43. package/dist/chrome/connect-card.d.ts +19 -0
  44. package/dist/chrome/connect-card.d.ts.map +1 -0
  45. package/dist/chrome/connect-card.js +57 -0
  46. package/dist/chrome/connect-card.js.map +1 -0
  47. package/dist/chrome/connect-dock.d.ts +25 -0
  48. package/dist/chrome/connect-dock.d.ts.map +1 -0
  49. package/dist/chrome/connect-dock.js +192 -0
  50. package/dist/chrome/connect-dock.js.map +1 -0
  51. package/dist/chrome/connected-accounts-panel.d.ts +14 -0
  52. package/dist/chrome/connected-accounts-panel.d.ts.map +1 -0
  53. package/dist/chrome/connected-accounts-panel.js +157 -0
  54. package/dist/chrome/connected-accounts-panel.js.map +1 -0
  55. package/dist/chrome/dev-mode.d.ts +5 -0
  56. package/dist/chrome/dev-mode.d.ts.map +1 -0
  57. package/dist/chrome/dev-mode.js +7 -0
  58. package/dist/chrome/dev-mode.js.map +1 -0
  59. package/dist/chrome/discoverability.d.ts +33 -0
  60. package/dist/chrome/discoverability.d.ts.map +1 -0
  61. package/dist/chrome/discoverability.js +63 -0
  62. package/dist/chrome/discoverability.js.map +1 -0
  63. package/dist/chrome/embeds.d.ts +21 -0
  64. package/dist/chrome/embeds.d.ts.map +1 -0
  65. package/dist/chrome/embeds.js +181 -0
  66. package/dist/chrome/embeds.js.map +1 -0
  67. package/dist/chrome/fluid-thinking.d.ts +15 -0
  68. package/dist/chrome/fluid-thinking.d.ts.map +1 -0
  69. package/dist/chrome/fluid-thinking.js +37 -0
  70. package/dist/chrome/fluid-thinking.js.map +1 -0
  71. package/dist/chrome/humanize.d.ts +46 -0
  72. package/dist/chrome/humanize.d.ts.map +1 -0
  73. package/dist/chrome/humanize.js +104 -0
  74. package/dist/chrome/humanize.js.map +1 -0
  75. package/dist/chrome/index.d.ts +39 -0
  76. package/dist/chrome/index.d.ts.map +1 -0
  77. package/dist/chrome/index.js +38 -0
  78. package/dist/chrome/index.js.map +1 -0
  79. package/dist/chrome/markdown.d.ts +23 -0
  80. package/dist/chrome/markdown.d.ts.map +1 -0
  81. package/dist/chrome/markdown.js +149 -0
  82. package/dist/chrome/markdown.js.map +1 -0
  83. package/dist/chrome/morph-toast.d.ts +43 -0
  84. package/dist/chrome/morph-toast.d.ts.map +1 -0
  85. package/dist/chrome/morph-toast.js +89 -0
  86. package/dist/chrome/morph-toast.js.map +1 -0
  87. package/dist/chrome/no-policy-notice.d.ts +8 -0
  88. package/dist/chrome/no-policy-notice.d.ts.map +1 -0
  89. package/dist/chrome/no-policy-notice.js +18 -0
  90. package/dist/chrome/no-policy-notice.js.map +1 -0
  91. package/dist/chrome/onest-font.gen.d.ts +10 -0
  92. package/dist/chrome/onest-font.gen.d.ts.map +1 -0
  93. package/dist/chrome/onest-font.gen.js +10 -0
  94. package/dist/chrome/onest-font.gen.js.map +1 -0
  95. package/dist/chrome/overlay-registry.d.ts +66 -0
  96. package/dist/chrome/overlay-registry.d.ts.map +1 -0
  97. package/dist/chrome/overlay-registry.js +103 -0
  98. package/dist/chrome/overlay-registry.js.map +1 -0
  99. package/dist/chrome/palette-hotkey.d.ts +42 -0
  100. package/dist/chrome/palette-hotkey.d.ts.map +1 -0
  101. package/dist/chrome/palette-hotkey.js +91 -0
  102. package/dist/chrome/palette-hotkey.js.map +1 -0
  103. package/dist/chrome/policy-notice-body.d.ts +3 -0
  104. package/dist/chrome/policy-notice-body.d.ts.map +1 -0
  105. package/dist/chrome/policy-notice-body.js +6 -0
  106. package/dist/chrome/policy-notice-body.js.map +1 -0
  107. package/dist/chrome/takeover-portal.d.ts +16 -0
  108. package/dist/chrome/takeover-portal.d.ts.map +1 -0
  109. package/dist/chrome/takeover-portal.js +21 -0
  110. package/dist/chrome/takeover-portal.js.map +1 -0
  111. package/dist/chrome/thread/attachments.d.ts +24 -0
  112. package/dist/chrome/thread/attachments.d.ts.map +1 -0
  113. package/dist/chrome/thread/attachments.js +50 -0
  114. package/dist/chrome/thread/attachments.js.map +1 -0
  115. package/dist/chrome/thread/composer.d.ts +63 -0
  116. package/dist/chrome/thread/composer.d.ts.map +1 -0
  117. package/dist/chrome/thread/composer.js +259 -0
  118. package/dist/chrome/thread/composer.js.map +1 -0
  119. package/dist/chrome/thread/index.d.ts +41 -0
  120. package/dist/chrome/thread/index.d.ts.map +1 -0
  121. package/dist/chrome/thread/index.js +258 -0
  122. package/dist/chrome/thread/index.js.map +1 -0
  123. package/dist/chrome/thread/message-data.d.ts +35 -0
  124. package/dist/chrome/thread/message-data.d.ts.map +1 -0
  125. package/dist/chrome/thread/message-data.js +127 -0
  126. package/dist/chrome/thread/message-data.js.map +1 -0
  127. package/dist/chrome/thread/message-list.d.ts +30 -0
  128. package/dist/chrome/thread/message-list.d.ts.map +1 -0
  129. package/dist/chrome/thread/message-list.js +11 -0
  130. package/dist/chrome/thread/message-list.js.map +1 -0
  131. package/dist/chrome/thread/message.d.ts +18 -0
  132. package/dist/chrome/thread/message.d.ts.map +1 -0
  133. package/dist/chrome/thread/message.js +57 -0
  134. package/dist/chrome/thread/message.js.map +1 -0
  135. package/dist/chrome/thread/parts.d.ts +53 -0
  136. package/dist/chrome/thread/parts.d.ts.map +1 -0
  137. package/dist/chrome/thread/parts.js +184 -0
  138. package/dist/chrome/thread/parts.js.map +1 -0
  139. package/dist/chrome/thread/scrolling.d.ts +26 -0
  140. package/dist/chrome/thread/scrolling.d.ts.map +1 -0
  141. package/dist/chrome/thread/scrolling.js +214 -0
  142. package/dist/chrome/thread/scrolling.js.map +1 -0
  143. package/dist/chrome/truncate.d.ts +12 -0
  144. package/dist/chrome/truncate.d.ts.map +1 -0
  145. package/dist/chrome/truncate.js +18 -0
  146. package/dist/chrome/truncate.js.map +1 -0
  147. package/dist/chrome/vendo-activities.d.ts +24 -0
  148. package/dist/chrome/vendo-activities.d.ts.map +1 -0
  149. package/dist/chrome/vendo-activities.js +38 -0
  150. package/dist/chrome/vendo-activities.js.map +1 -0
  151. package/dist/chrome/vendo-overlay.d.ts +63 -0
  152. package/dist/chrome/vendo-overlay.d.ts.map +1 -0
  153. package/dist/chrome/vendo-overlay.js +256 -0
  154. package/dist/chrome/vendo-overlay.js.map +1 -0
  155. package/dist/chrome/vendo-page.d.ts +3 -0
  156. package/dist/chrome/vendo-page.d.ts.map +1 -0
  157. package/dist/chrome/vendo-page.js +162 -0
  158. package/dist/chrome/vendo-page.js.map +1 -0
  159. package/dist/chrome/vendo-palette.d.ts +29 -0
  160. package/dist/chrome/vendo-palette.d.ts.map +1 -0
  161. package/dist/chrome/vendo-palette.js +95 -0
  162. package/dist/chrome/vendo-palette.js.map +1 -0
  163. package/dist/chrome/vendo-slot.d.ts +79 -0
  164. package/dist/chrome/vendo-slot.d.ts.map +1 -0
  165. package/dist/chrome/vendo-slot.js +153 -0
  166. package/dist/chrome/vendo-slot.js.map +1 -0
  167. package/dist/chrome/vendo-toasts.d.ts +40 -0
  168. package/dist/chrome/vendo-toasts.d.ts.map +1 -0
  169. package/dist/chrome/vendo-toasts.js +135 -0
  170. package/dist/chrome/vendo-toasts.js.map +1 -0
  171. package/dist/chrome/vendo-trigger.d.ts +24 -0
  172. package/dist/chrome/vendo-trigger.d.ts.map +1 -0
  173. package/dist/chrome/vendo-trigger.js +30 -0
  174. package/dist/chrome/vendo-trigger.js.map +1 -0
  175. package/dist/chrome/waiting-queue.d.ts +8 -0
  176. package/dist/chrome/waiting-queue.d.ts.map +1 -0
  177. package/dist/chrome/waiting-queue.js +21 -0
  178. package/dist/chrome/waiting-queue.js.map +1 -0
  179. package/dist/client-impl.d.ts +4 -0
  180. package/dist/client-impl.d.ts.map +1 -0
  181. package/dist/client-impl.js +160 -0
  182. package/dist/client-impl.js.map +1 -0
  183. package/dist/client.d.ts +136 -0
  184. package/dist/client.d.ts.map +1 -0
  185. package/dist/client.js +2 -0
  186. package/dist/client.js.map +1 -0
  187. package/dist/context.d.ts +97 -0
  188. package/dist/context.d.ts.map +1 -0
  189. package/dist/context.js +71 -0
  190. package/dist/context.js.map +1 -0
  191. package/dist/eject-templates/activities/index.tsx +113 -0
  192. package/dist/eject-templates/templates.json +29 -0
  193. package/dist/eject-templates/thread/attachments.tsx +69 -0
  194. package/dist/eject-templates/thread/composer.tsx +409 -0
  195. package/dist/eject-templates/thread/index.tsx +422 -0
  196. package/dist/eject-templates/thread/message-data.ts +151 -0
  197. package/dist/eject-templates/thread/message-list.tsx +123 -0
  198. package/dist/eject-templates/thread/message.tsx +149 -0
  199. package/dist/eject-templates/thread/parts.tsx +293 -0
  200. package/dist/eject-templates/thread/scrolling.ts +223 -0
  201. package/dist/embeds.d.ts +28 -0
  202. package/dist/embeds.d.ts.map +1 -0
  203. package/dist/embeds.js +2 -0
  204. package/dist/embeds.js.map +1 -0
  205. package/dist/hooks/index.d.ts +18 -0
  206. package/dist/hooks/index.d.ts.map +1 -0
  207. package/dist/hooks/index.js +19 -0
  208. package/dist/hooks/index.js.map +1 -0
  209. package/dist/hooks/scripted-transport.d.ts +44 -0
  210. package/dist/hooks/scripted-transport.d.ts.map +1 -0
  211. package/dist/hooks/scripted-transport.js +58 -0
  212. package/dist/hooks/scripted-transport.js.map +1 -0
  213. package/dist/hooks/use-activity.d.ts +17 -0
  214. package/dist/hooks/use-activity.d.ts.map +1 -0
  215. package/dist/hooks/use-activity.js +50 -0
  216. package/dist/hooks/use-activity.js.map +1 -0
  217. package/dist/hooks/use-app.d.ts +19 -0
  218. package/dist/hooks/use-app.d.ts.map +1 -0
  219. package/dist/hooks/use-app.js +66 -0
  220. package/dist/hooks/use-app.js.map +1 -0
  221. package/dist/hooks/use-approvals.d.ts +13 -0
  222. package/dist/hooks/use-approvals.d.ts.map +1 -0
  223. package/dist/hooks/use-approvals.js +14 -0
  224. package/dist/hooks/use-approvals.js.map +1 -0
  225. package/dist/hooks/use-apps.d.ts +17 -0
  226. package/dist/hooks/use-apps.d.ts.map +1 -0
  227. package/dist/hooks/use-apps.js +30 -0
  228. package/dist/hooks/use-apps.js.map +1 -0
  229. package/dist/hooks/use-automations.d.ts +25 -0
  230. package/dist/hooks/use-automations.d.ts.map +1 -0
  231. package/dist/hooks/use-automations.js +30 -0
  232. package/dist/hooks/use-automations.js.map +1 -0
  233. package/dist/hooks/use-connections.d.ts +12 -0
  234. package/dist/hooks/use-connections.d.ts.map +1 -0
  235. package/dist/hooks/use-connections.js +15 -0
  236. package/dist/hooks/use-connections.js.map +1 -0
  237. package/dist/hooks/use-connector-catalog.d.ts +8 -0
  238. package/dist/hooks/use-connector-catalog.d.ts.map +1 -0
  239. package/dist/hooks/use-connector-catalog.js +52 -0
  240. package/dist/hooks/use-connector-catalog.js.map +1 -0
  241. package/dist/hooks/use-grants.d.ts +13 -0
  242. package/dist/hooks/use-grants.d.ts.map +1 -0
  243. package/dist/hooks/use-grants.js +14 -0
  244. package/dist/hooks/use-grants.js.map +1 -0
  245. package/dist/hooks/use-mobile-takeover.d.ts +22 -0
  246. package/dist/hooks/use-mobile-takeover.d.ts.map +1 -0
  247. package/dist/hooks/use-mobile-takeover.js +66 -0
  248. package/dist/hooks/use-mobile-takeover.js.map +1 -0
  249. package/dist/hooks/use-resource.d.ts +21 -0
  250. package/dist/hooks/use-resource.d.ts.map +1 -0
  251. package/dist/hooks/use-resource.js +79 -0
  252. package/dist/hooks/use-resource.js.map +1 -0
  253. package/dist/hooks/use-slot-app.d.ts +19 -0
  254. package/dist/hooks/use-slot-app.d.ts.map +1 -0
  255. package/dist/hooks/use-slot-app.js +18 -0
  256. package/dist/hooks/use-slot-app.js.map +1 -0
  257. package/dist/hooks/use-threads.d.ts +16 -0
  258. package/dist/hooks/use-threads.d.ts.map +1 -0
  259. package/dist/hooks/use-threads.js +15 -0
  260. package/dist/hooks/use-threads.js.map +1 -0
  261. package/dist/hooks/use-vendo-overlay.d.ts +31 -0
  262. package/dist/hooks/use-vendo-overlay.d.ts.map +1 -0
  263. package/dist/hooks/use-vendo-overlay.js +23 -0
  264. package/dist/hooks/use-vendo-overlay.js.map +1 -0
  265. package/dist/hooks/use-vendo-status.d.ts +6 -0
  266. package/dist/hooks/use-vendo-status.d.ts.map +1 -0
  267. package/dist/hooks/use-vendo-status.js +28 -0
  268. package/dist/hooks/use-vendo-status.js.map +1 -0
  269. package/dist/hooks/use-vendo-thread.d.ts +39 -0
  270. package/dist/hooks/use-vendo-thread.d.ts.map +1 -0
  271. package/dist/hooks/use-vendo-thread.js +185 -0
  272. package/dist/hooks/use-vendo-thread.js.map +1 -0
  273. package/dist/index.d.ts +12 -0
  274. package/dist/index.d.ts.map +1 -0
  275. package/dist/index.js +12 -0
  276. package/dist/index.js.map +1 -0
  277. package/dist/kit/charts/bar.d.ts +16 -0
  278. package/dist/kit/charts/bar.d.ts.map +1 -0
  279. package/dist/kit/charts/bar.js +21 -0
  280. package/dist/kit/charts/bar.js.map +1 -0
  281. package/dist/kit/charts/donut.d.ts +16 -0
  282. package/dist/kit/charts/donut.d.ts.map +1 -0
  283. package/dist/kit/charts/donut.js +17 -0
  284. package/dist/kit/charts/donut.js.map +1 -0
  285. package/dist/kit/charts/line.d.ts +19 -0
  286. package/dist/kit/charts/line.d.ts.map +1 -0
  287. package/dist/kit/charts/line.js +21 -0
  288. package/dist/kit/charts/line.js.map +1 -0
  289. package/dist/kit/charts/progress.d.ts +12 -0
  290. package/dist/kit/charts/progress.d.ts.map +1 -0
  291. package/dist/kit/charts/progress.js +25 -0
  292. package/dist/kit/charts/progress.js.map +1 -0
  293. package/dist/kit/charts/sanitize.d.ts +24 -0
  294. package/dist/kit/charts/sanitize.d.ts.map +1 -0
  295. package/dist/kit/charts/sanitize.js +50 -0
  296. package/dist/kit/charts/sanitize.js.map +1 -0
  297. package/dist/kit/charts/sparkline.d.ts +11 -0
  298. package/dist/kit/charts/sparkline.d.ts.map +1 -0
  299. package/dist/kit/charts/sparkline.js +17 -0
  300. package/dist/kit/charts/sparkline.js.map +1 -0
  301. package/dist/kit/data/badge.d.ts +13 -0
  302. package/dist/kit/data/badge.d.ts.map +1 -0
  303. package/dist/kit/data/badge.js +12 -0
  304. package/dist/kit/data/badge.js.map +1 -0
  305. package/dist/kit/data/card-list.d.ts +23 -0
  306. package/dist/kit/data/card-list.d.ts.map +1 -0
  307. package/dist/kit/data/card-list.js +43 -0
  308. package/dist/kit/data/card-list.js.map +1 -0
  309. package/dist/kit/data/data-table.d.ts +32 -0
  310. package/dist/kit/data/data-table.d.ts.map +1 -0
  311. package/dist/kit/data/data-table.js +153 -0
  312. package/dist/kit/data/data-table.js.map +1 -0
  313. package/dist/kit/data/stat.d.ts +15 -0
  314. package/dist/kit/data/stat.d.ts.map +1 -0
  315. package/dist/kit/data/stat.js +28 -0
  316. package/dist/kit/data/stat.js.map +1 -0
  317. package/dist/kit/feedback/accordion.d.ts +15 -0
  318. package/dist/kit/feedback/accordion.d.ts.map +1 -0
  319. package/dist/kit/feedback/accordion.js +33 -0
  320. package/dist/kit/feedback/accordion.js.map +1 -0
  321. package/dist/kit/feedback/callout.d.ts +13 -0
  322. package/dist/kit/feedback/callout.d.ts.map +1 -0
  323. package/dist/kit/feedback/callout.js +24 -0
  324. package/dist/kit/feedback/callout.js.map +1 -0
  325. package/dist/kit/feedback/tabs.d.ts +14 -0
  326. package/dist/kit/feedback/tabs.d.ts.map +1 -0
  327. package/dist/kit/feedback/tabs.js +37 -0
  328. package/dist/kit/feedback/tabs.js.map +1 -0
  329. package/dist/kit/format.d.ts +60 -0
  330. package/dist/kit/format.d.ts.map +1 -0
  331. package/dist/kit/format.js +123 -0
  332. package/dist/kit/format.js.map +1 -0
  333. package/dist/kit/forms/button.d.ts +17 -0
  334. package/dist/kit/forms/button.d.ts.map +1 -0
  335. package/dist/kit/forms/button.js +33 -0
  336. package/dist/kit/forms/button.js.map +1 -0
  337. package/dist/kit/forms/checkbox.d.ts +9 -0
  338. package/dist/kit/forms/checkbox.d.ts.map +1 -0
  339. package/dist/kit/forms/checkbox.js +9 -0
  340. package/dist/kit/forms/checkbox.js.map +1 -0
  341. package/dist/kit/forms/date-picker.d.ts +13 -0
  342. package/dist/kit/forms/date-picker.d.ts.map +1 -0
  343. package/dist/kit/forms/date-picker.js +9 -0
  344. package/dist/kit/forms/date-picker.js.map +1 -0
  345. package/dist/kit/forms/disclaimer.d.ts +8 -0
  346. package/dist/kit/forms/disclaimer.d.ts.map +1 -0
  347. package/dist/kit/forms/disclaimer.js +20 -0
  348. package/dist/kit/forms/disclaimer.js.map +1 -0
  349. package/dist/kit/forms/field.d.ts +18 -0
  350. package/dist/kit/forms/field.d.ts.map +1 -0
  351. package/dist/kit/forms/field.js +19 -0
  352. package/dist/kit/forms/field.js.map +1 -0
  353. package/dist/kit/forms/form.d.ts +10 -0
  354. package/dist/kit/forms/form.d.ts.map +1 -0
  355. package/dist/kit/forms/form.js +9 -0
  356. package/dist/kit/forms/form.js.map +1 -0
  357. package/dist/kit/forms/input.d.ts +14 -0
  358. package/dist/kit/forms/input.d.ts.map +1 -0
  359. package/dist/kit/forms/input.js +9 -0
  360. package/dist/kit/forms/input.js.map +1 -0
  361. package/dist/kit/forms/select.d.ts +21 -0
  362. package/dist/kit/forms/select.d.ts.map +1 -0
  363. package/dist/kit/forms/select.js +35 -0
  364. package/dist/kit/forms/select.js.map +1 -0
  365. package/dist/kit/forms/textarea.d.ts +12 -0
  366. package/dist/kit/forms/textarea.d.ts.map +1 -0
  367. package/dist/kit/forms/textarea.js +9 -0
  368. package/dist/kit/forms/textarea.js.map +1 -0
  369. package/dist/kit/index.d.ts +42 -0
  370. package/dist/kit/index.d.ts.map +1 -0
  371. package/dist/kit/index.js +45 -0
  372. package/dist/kit/index.js.map +1 -0
  373. package/dist/kit/kit-prompt.d.ts +7 -0
  374. package/dist/kit/kit-prompt.d.ts.map +1 -0
  375. package/dist/kit/kit-prompt.js +7 -0
  376. package/dist/kit/kit-prompt.js.map +1 -0
  377. package/dist/kit/layout.d.ts +29 -0
  378. package/dist/kit/layout.d.ts.map +1 -0
  379. package/dist/kit/layout.js +64 -0
  380. package/dist/kit/layout.js.map +1 -0
  381. package/dist/kit/registry.d.ts +11 -0
  382. package/dist/kit/registry.d.ts.map +1 -0
  383. package/dist/kit/registry.js +34 -0
  384. package/dist/kit/registry.js.map +1 -0
  385. package/dist/kit/schema.d.ts +9 -0
  386. package/dist/kit/schema.d.ts.map +1 -0
  387. package/dist/kit/schema.js +9 -0
  388. package/dist/kit/schema.js.map +1 -0
  389. package/dist/kit/tokens.d.ts +33 -0
  390. package/dist/kit/tokens.d.ts.map +1 -0
  391. package/dist/kit/tokens.js +48 -0
  392. package/dist/kit/tokens.js.map +1 -0
  393. package/dist/kit/values.d.ts +55 -0
  394. package/dist/kit/values.d.ts.map +1 -0
  395. package/dist/kit/values.js +108 -0
  396. package/dist/kit/values.js.map +1 -0
  397. package/dist/theme.d.ts +25 -0
  398. package/dist/theme.d.ts.map +1 -0
  399. package/dist/theme.js +100 -0
  400. package/dist/theme.js.map +1 -0
  401. package/dist/tree/bindings.d.ts +4 -0
  402. package/dist/tree/bindings.d.ts.map +1 -0
  403. package/dist/tree/bindings.js +20 -0
  404. package/dist/tree/bindings.js.map +1 -0
  405. package/dist/tree/branded.d.ts +124 -0
  406. package/dist/tree/branded.d.ts.map +1 -0
  407. package/dist/tree/branded.js +319 -0
  408. package/dist/tree/branded.js.map +1 -0
  409. package/dist/tree/error-boundary.d.ts +22 -0
  410. package/dist/tree/error-boundary.d.ts.map +1 -0
  411. package/dist/tree/error-boundary.js +25 -0
  412. package/dist/tree/error-boundary.js.map +1 -0
  413. package/dist/tree/fluid-reveal.d.ts +22 -0
  414. package/dist/tree/fluid-reveal.d.ts.map +1 -0
  415. package/dist/tree/fluid-reveal.js +28 -0
  416. package/dist/tree/fluid-reveal.js.map +1 -0
  417. package/dist/tree/forming-skeleton.d.ts +14 -0
  418. package/dist/tree/forming-skeleton.d.ts.map +1 -0
  419. package/dist/tree/forming-skeleton.js +36 -0
  420. package/dist/tree/forming-skeleton.js.map +1 -0
  421. package/dist/tree/frames.d.ts +52 -0
  422. package/dist/tree/frames.d.ts.map +1 -0
  423. package/dist/tree/frames.js +143 -0
  424. package/dist/tree/frames.js.map +1 -0
  425. package/dist/tree/host-mount.d.ts +24 -0
  426. package/dist/tree/host-mount.d.ts.map +1 -0
  427. package/dist/tree/host-mount.js +0 -0
  428. package/dist/tree/host-mount.js.map +1 -0
  429. package/dist/tree/index.d.ts +9 -0
  430. package/dist/tree/index.d.ts.map +1 -0
  431. package/dist/tree/index.js +9 -0
  432. package/dist/tree/index.js.map +1 -0
  433. package/dist/tree/jail/JailedComponent.d.ts +41 -0
  434. package/dist/tree/jail/JailedComponent.d.ts.map +1 -0
  435. package/dist/tree/jail/JailedComponent.js +269 -0
  436. package/dist/tree/jail/JailedComponent.js.map +1 -0
  437. package/dist/tree/jail/runtime-bundle.gen.d.ts +3 -0
  438. package/dist/tree/jail/runtime-bundle.gen.d.ts.map +1 -0
  439. package/dist/tree/jail/runtime-bundle.gen.js +3 -0
  440. package/dist/tree/jail/runtime-bundle.gen.js.map +1 -0
  441. package/dist/tree/jail/runtime-entry.d.ts +18 -0
  442. package/dist/tree/jail/runtime-entry.d.ts.map +1 -0
  443. package/dist/tree/jail/runtime-entry.js +440 -0
  444. package/dist/tree/jail/runtime-entry.js.map +1 -0
  445. package/dist/tree/jail/viewport-css.d.ts +17 -0
  446. package/dist/tree/jail/viewport-css.d.ts.map +1 -0
  447. package/dist/tree/jail/viewport-css.js +32 -0
  448. package/dist/tree/jail/viewport-css.js.map +1 -0
  449. package/dist/tree/mcp-shim/entry.d.ts +2 -0
  450. package/dist/tree/mcp-shim/entry.d.ts.map +1 -0
  451. package/dist/tree/mcp-shim/entry.js +45 -0
  452. package/dist/tree/mcp-shim/entry.js.map +1 -0
  453. package/dist/tree/mcp-shim/http-open-card.d.ts +5 -0
  454. package/dist/tree/mcp-shim/http-open-card.d.ts.map +1 -0
  455. package/dist/tree/mcp-shim/http-open-card.js +61 -0
  456. package/dist/tree/mcp-shim/http-open-card.js.map +1 -0
  457. package/dist/tree/mcp-shim/shim-core.d.ts +58 -0
  458. package/dist/tree/mcp-shim/shim-core.d.ts.map +1 -0
  459. package/dist/tree/mcp-shim/shim-core.js +176 -0
  460. package/dist/tree/mcp-shim/shim-core.js.map +1 -0
  461. package/dist/tree/mcp-shim/theme.d.ts +8 -0
  462. package/dist/tree/mcp-shim/theme.d.ts.map +1 -0
  463. package/dist/tree/mcp-shim/theme.js +36 -0
  464. package/dist/tree/mcp-shim/theme.js.map +1 -0
  465. package/dist/tree/notice.d.ts +8 -0
  466. package/dist/tree/notice.d.ts.map +1 -0
  467. package/dist/tree/notice.js +30 -0
  468. package/dist/tree/notice.js.map +1 -0
  469. package/dist/tree/primitives.d.ts +30 -0
  470. package/dist/tree/primitives.d.ts.map +1 -0
  471. package/dist/tree/primitives.js +105 -0
  472. package/dist/tree/primitives.js.map +1 -0
  473. package/dist/tree/renderer-v2.d.ts +15 -0
  474. package/dist/tree/renderer-v2.d.ts.map +1 -0
  475. package/dist/tree/renderer-v2.js +71 -0
  476. package/dist/tree/renderer-v2.js.map +1 -0
  477. package/dist/tree/renderer.d.ts +77 -0
  478. package/dist/tree/renderer.d.ts.map +1 -0
  479. package/dist/tree/renderer.js +376 -0
  480. package/dist/tree/renderer.js.map +1 -0
  481. package/dist/voice/driver.d.ts +94 -0
  482. package/dist/voice/driver.d.ts.map +1 -0
  483. package/dist/voice/driver.js +2 -0
  484. package/dist/voice/driver.js.map +1 -0
  485. package/dist/voice/index.d.ts +7 -0
  486. package/dist/voice/index.d.ts.map +1 -0
  487. package/dist/voice/index.js +5 -0
  488. package/dist/voice/index.js.map +1 -0
  489. package/dist/voice/realtime-driver.d.ts +57 -0
  490. package/dist/voice/realtime-driver.d.ts.map +1 -0
  491. package/dist/voice/realtime-driver.js +592 -0
  492. package/dist/voice/realtime-driver.js.map +1 -0
  493. package/dist/voice/stage.d.ts +12 -0
  494. package/dist/voice/stage.d.ts.map +1 -0
  495. package/dist/voice/stage.js +259 -0
  496. package/dist/voice/stage.js.map +1 -0
  497. package/dist/voice/use-voice-approvals.d.ts +16 -0
  498. package/dist/voice/use-voice-approvals.d.ts.map +1 -0
  499. package/dist/voice/use-voice-approvals.js +77 -0
  500. package/dist/voice/use-voice-approvals.js.map +1 -0
  501. package/dist/voice/use-voice.d.ts +26 -0
  502. package/dist/voice/use-voice.d.ts.map +1 -0
  503. package/dist/voice/use-voice.js +201 -0
  504. package/dist/voice/use-voice.js.map +1 -0
  505. package/dist/voice/voice-act.d.ts +13 -0
  506. package/dist/voice/voice-act.d.ts.map +1 -0
  507. package/dist/voice/voice-act.js +301 -0
  508. package/dist/voice/voice-act.js.map +1 -0
  509. package/dist/voice/voice-blob.d.ts +17 -0
  510. package/dist/voice/voice-blob.d.ts.map +1 -0
  511. package/dist/voice/voice-blob.js +67 -0
  512. package/dist/voice/voice-blob.js.map +1 -0
  513. package/dist/voice/voice-consent.d.ts +17 -0
  514. package/dist/voice/voice-consent.d.ts.map +1 -0
  515. package/dist/voice/voice-consent.js +45 -0
  516. package/dist/voice/voice-consent.js.map +1 -0
  517. package/dist/voice/voice-drawer.d.ts +10 -0
  518. package/dist/voice/voice-drawer.d.ts.map +1 -0
  519. package/dist/voice/voice-drawer.js +22 -0
  520. package/dist/voice/voice-drawer.js.map +1 -0
  521. package/dist/wire-types.d.ts +238 -0
  522. package/dist/wire-types.d.ts.map +1 -0
  523. package/dist/wire-types.js +2 -0
  524. package/dist/wire-types.js.map +1 -0
  525. package/package.json +106 -0
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChromeRoot } from "./chrome-root.js";
3
+ import { developmentMode } from "./dev-mode.js";
4
+ import { openVendoConversation } from "./overlay-registry.js";
5
+ /**
6
+ * The shelf's "do it with AI" button (ui-usage-dx §2): every host affordance
7
+ * that hands a task to the agent is this piece. Activation opens the most
8
+ * recently mounted conversation surface (the VendoOverlay) with the prompt
9
+ * seeded into the composer.
10
+ *
11
+ * Hosts that want their own element as the trigger skip this component and
12
+ * call `openVendoConversation({ prompt })` from it directly — the same
13
+ * programmatic seam this button uses (the repo's idiom; there is deliberately
14
+ * no render-prop API on chrome, ui-usage-dx §4).
15
+ */
16
+ export function VendoTrigger({ prompt, context, children }) {
17
+ return (
18
+ // automaticPolicyNotice={false}: a bare button must never grow the
19
+ // "running without a policy" banner beside itself — the surfaces the
20
+ // trigger opens carry that warning.
21
+ _jsx(ChromeRoot, { automaticPolicyNotice: false, children: _jsxs("button", { type: "button", className: "fl-btn", style: { display: "inline-flex", alignItems: "center", gap: "7px" }, onClick: () => {
22
+ // Prefill only — never `send`, so a trigger is safe on destructive
23
+ // prompts; the user presses Send themselves.
24
+ const opened = openVendoConversation({ prompt: context ? `${prompt}\n\n${context}` : prompt });
25
+ if (!opened && developmentMode()) {
26
+ console.warn("[vendo] VendoTrigger: no <VendoOverlay /> is mounted to open — this button is a no-op.");
27
+ }
28
+ }, children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "m12 3 1.4 4.1L17.5 8.5l-4.1 1.4L12 14l-1.4-4.1-4.1-1.4 4.1-1.4L12 3Z" }), _jsx("path", { d: "m18 14 .8 2.2L21 17l-2.2.8L18 20l-.8-2.2L15 17l2.2-.8L18 14Z" })] }), children ?? "Ask Vendo"] }) }));
29
+ }
30
+ //# sourceMappingURL=vendo-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendo-trigger.js","sourceRoot":"","sources":["../../src/chrome/vendo-trigger.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAa9D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAqB;IAC3E,OAAO;IACL,mEAAmE;IACnE,qEAAqE;IACrE,oCAAoC;IACpC,KAAC,UAAU,IAAC,qBAAqB,EAAE,KAAK,YACtC,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EACnE,OAAO,EAAE,GAAG,EAAE;gBACZ,mEAAmE;gBACnE,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,EAAE,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;gBACzG,CAAC;YACH,CAAC,aAED,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,iBAAa,MAAM,aAC/J,eAAM,CAAC,EAAC,sEAAsE,GAAG,EACjF,eAAM,CAAC,EAAC,8DAA8D,GAAG,IACrE,EACL,QAAQ,IAAI,WAAW,IACjB,GACE,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface WaitingQueueProps {
2
+ /** Poll cadence for pending approvals; 0 disables polling. */
3
+ pollMs?: number;
4
+ }
5
+ /** The waiting-on-you queue (08-ui §4 chrome; mounted by VendoPage's chat
6
+ workspace, exportable for any host placement). */
7
+ export declare function WaitingQueue({ pollMs }?: WaitingQueueProps): import("react").JSX.Element | null;
8
+ //# sourceMappingURL=waiting-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waiting-queue.d.ts","sourceRoot":"","sources":["../../src/chrome/waiting-queue.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+BD;qDACqD;AACrD,wBAAgB,YAAY,CAAC,EAAE,MAAc,EAAE,GAAE,iBAAsB,sCAiBtE"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useVendoContext } from "../context.js";
3
+ import { useApprovals } from "../hooks/use-approvals.js";
4
+ import { formatAuditTime } from "./activity-semantics.js";
5
+ import { ChromeRoot } from "./chrome-root.js";
6
+ import { toolTitle } from "./humanize.js";
7
+ function WaitingRow({ approval, onDecide }) {
8
+ const { tools } = useVendoContext();
9
+ // A destructive ask reads as ceremony — the warm wash + warn title.
10
+ const ceremony = approval.descriptor.risk === "destructive";
11
+ return (_jsxs("div", { className: `fl-waiting-row${ceremony ? " fl-waiting-row--ceremony" : ""}`, children: [_jsxs("div", { className: "fl-waiting-row-main", children: [_jsx("span", { className: "fl-waiting-ic", "aria-hidden": "true", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 6v6l4 2" })] }) }), _jsxs("div", { children: [_jsx("div", { className: "fl-waiting-row-title", children: toolTitle(approval.call.tool, tools[approval.call.tool]) }), approval.inputPreview ? _jsx("div", { className: "fl-waiting-row-preview", children: approval.inputPreview }) : null, _jsxs("div", { className: "fl-waiting-row-meta", children: ["Asked ", formatAuditTime(approval.createdAt)] })] })] }), _jsxs("div", { className: "fl-waiting-actions", children: [_jsx("button", { type: "button", className: "fl-btn", onClick: () => onDecide(false), children: "Deny" }), _jsx("button", { type: "button", className: "fl-btn fl-btn-primary", onClick: () => onDecide(true), children: "Approve" })] })] }));
12
+ }
13
+ /** The waiting-on-you queue (08-ui §4 chrome; mounted by VendoPage's chat
14
+ workspace, exportable for any host placement). */
15
+ export function WaitingQueue({ pollMs = 5_000 } = {}) {
16
+ const { pending, decide } = useApprovals(pollMs > 0 ? { pollMs } : {});
17
+ if (pending.length === 0)
18
+ return null;
19
+ return (_jsx(ChromeRoot, { children: _jsxs("section", { className: "fl-waiting", "aria-label": "Waiting on you", children: [_jsxs("div", { className: "fl-waiting-head", children: ["Waiting on you \u00B7 ", pending.length] }), pending.map(approval => (_jsx(WaitingRow, { approval: approval, onDecide: approve => void decide(approval.id, { approve }) }, approval.id)))] }) }));
20
+ }
21
+ //# sourceMappingURL=waiting-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waiting-queue.js","sourceRoot":"","sources":["../../src/chrome/waiting-queue.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO1C,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAGvC;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IACpC,oEAAoE;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC;IAC5D,OAAO,CACL,eAAK,SAAS,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,EAAE,aAC5E,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,eAAe,iBAAa,MAAM,YAChD,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,aAC5I,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EAAA,eAAM,CAAC,EAAC,aAAa,GAAG,IACrD,GACD,EACP,0BACE,cAAK,SAAS,EAAC,sBAAsB,YAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAO,EACrG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,YAAY,GAAO,CAAC,CAAC,CAAC,IAAI,EACrG,eAAK,SAAS,EAAC,qBAAqB,uBAAQ,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAO,IAClF,IACF,EACN,eAAK,SAAS,EAAC,oBAAoB,aACjC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAe,EACtF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAkB,IACnG,IACF,CACP,CAAC;AACJ,CAAC;AAED;qDACqD;AACrD,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,KAAwB,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,KAAC,UAAU,cACT,mBAAS,SAAS,EAAC,YAAY,gBAAY,gBAAgB,aACzD,eAAK,SAAS,EAAC,iBAAiB,uCAAmB,OAAO,CAAC,MAAM,IAAO,EACvE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CACvB,KAAC,UAAU,IAET,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAFrD,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC,IACM,GACC,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { VendoClient, VendoClientConfig } from "./client.js";
2
+ /** 08-ui §2 */
3
+ export declare function createVendoClient(config: VendoClientConfig): VendoClient;
4
+ //# sourceMappingURL=client-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-impl.d.ts","sourceRoot":"","sources":["../src/client-impl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAuDlE,eAAe;AACf,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAuHxE"}
@@ -0,0 +1,160 @@
1
+ /** Fetch/SSE bindings for the public wire route table (08-ui §2, 09-vendo §3). */
2
+ import { VendoError } from "@vendoai/core";
3
+ const KNOWN_ERROR_CODES = new Set([
4
+ "validation",
5
+ "blocked",
6
+ "not-implemented",
7
+ "sandbox-unavailable",
8
+ "cloud-required",
9
+ "not-found",
10
+ "conflict",
11
+ ]);
12
+ function route(baseUrl, path) {
13
+ return `${baseUrl.replace(/\/$/, "")}${path}`;
14
+ }
15
+ function idPath(id) {
16
+ return encodeURIComponent(id);
17
+ }
18
+ async function throwWireError(response) {
19
+ let parsed;
20
+ try {
21
+ parsed = JSON.parse(await response.text());
22
+ }
23
+ catch {
24
+ parsed = undefined;
25
+ }
26
+ const error = typeof parsed === "object" && parsed !== null && "error" in parsed
27
+ ? parsed.error
28
+ : undefined;
29
+ const code = typeof error === "object" && error !== null && "code" in error && typeof error.code === "string"
30
+ ? error.code
31
+ : "validation";
32
+ const message = typeof error === "object" && error !== null && "message" in error && typeof error.message === "string"
33
+ ? error.message
34
+ : response.statusText || `HTTP ${response.status}`;
35
+ if (KNOWN_ERROR_CODES.has(code)) {
36
+ throw new VendoError(code, message);
37
+ }
38
+ // 01-core §15: unknown codes are generic errors, but keep the wire code available.
39
+ throw Object.assign(new Error(message), { code });
40
+ }
41
+ async function ensureOk(response) {
42
+ if (!response.ok)
43
+ await throwWireError(response);
44
+ return response;
45
+ }
46
+ /** 08-ui §2 */
47
+ export function createVendoClient(config) {
48
+ const baseUrl = config.baseUrl ?? "/api/vendo";
49
+ const headers = { ...(config.headers ?? {}) };
50
+ async function request(path, init) {
51
+ return ensureOk(await fetch(route(baseUrl, path), {
52
+ ...init,
53
+ headers: {
54
+ ...headers,
55
+ ...init?.headers,
56
+ },
57
+ }));
58
+ }
59
+ async function readJson(path, init) {
60
+ const response = await request(path, init);
61
+ if (response.status === 204 || response.headers.get("content-length") === "0") {
62
+ return undefined;
63
+ }
64
+ return (await response.json());
65
+ }
66
+ async function json(path, method, body = {}) {
67
+ return readJson(path, {
68
+ method,
69
+ headers: { "Content-Type": "application/json" },
70
+ body: JSON.stringify(body),
71
+ });
72
+ }
73
+ return {
74
+ baseUrl,
75
+ headers,
76
+ threads: {
77
+ stream: async (input) => request("/threads", {
78
+ method: "POST",
79
+ headers: { "Content-Type": "application/json" },
80
+ body: JSON.stringify(input),
81
+ }),
82
+ list: () => readJson("/threads"),
83
+ get: id => readJson(`/threads/${idPath(id)}`),
84
+ delete: id => json(`/threads/${idPath(id)}`, "DELETE"),
85
+ },
86
+ approvals: {
87
+ pending: () => readJson("/approvals"),
88
+ decide: (ids, decision) => json("/approvals/decide", "POST", { ids: Array.isArray(ids) ? ids : [ids], decision }),
89
+ get: id => readJson(`/approvals/${idPath(id)}`),
90
+ },
91
+ grants: {
92
+ list: () => readJson("/grants"),
93
+ revoke: id => json(`/grants/${idPath(id)}`, "DELETE"),
94
+ },
95
+ connections: {
96
+ list: async () => (await readJson("/connections")).connections,
97
+ catalog: async () => (await readJson("/connections/catalog")).available,
98
+ initiate: input => json("/connections/initiate", "POST", input),
99
+ status: (id, connector) => readJson(`/connections/${idPath(id)}${connector === undefined ? "" : `?connector=${encodeURIComponent(connector)}`}`),
100
+ disconnect: (id, connector) => json(`/connections/${idPath(id)}${connector === undefined ? "" : `?connector=${encodeURIComponent(connector)}`}`, "DELETE"),
101
+ },
102
+ apps: {
103
+ list: () => readJson("/apps"),
104
+ create: input => json("/apps", "POST", input),
105
+ get: id => readJson(`/apps/${idPath(id)}`),
106
+ delete: id => json(`/apps/${idPath(id)}`, "DELETE"),
107
+ // The overloads narrow per call site; one implementation serves both.
108
+ open: ((id, options) => readJson(`/apps/${idPath(id)}/open${options?.pending === true ? "?pending=1" : ""}`)),
109
+ call: (id, ref, args) => json(`/apps/${idPath(id)}/call`, "POST", { ref, args }),
110
+ edit: (id, instruction) => json(`/apps/${idPath(id)}/edit`, "POST", { instruction }),
111
+ history: id => readJson(`/apps/${idPath(id)}/history`),
112
+ undo: id => json(`/apps/${idPath(id)}/history`, "POST", { op: "undo" }),
113
+ exportApp: async (id) => new Uint8Array(await (await request(`/apps/${idPath(id)}/export`)).arrayBuffer()),
114
+ importApp: bytes => readJson("/apps/import", {
115
+ method: "POST",
116
+ headers: { "Content-Type": "application/octet-stream" },
117
+ body: bytes,
118
+ }),
119
+ fork: id => json(`/apps/${idPath(id)}/fork`, "POST"),
120
+ shipDiff: id => readJson(`/apps/${idPath(id)}/ship-diff`),
121
+ pinDrift: id => readJson(`/apps/${idPath(id)}/pin-drift`),
122
+ rebasePin: (id, slot) => json(`/apps/${idPath(id)}/rebase-pin`, "POST", { slot }),
123
+ forkPin: ({ appId, ...body }) => json(appId === undefined ? "/apps/fork-pin" : `/apps/${idPath(appId)}/fork-pin`, "POST", body),
124
+ pingMachine: id => json(`/apps/${idPath(id)}/machine/ping`, "POST"),
125
+ },
126
+ automations: {
127
+ list: () => readJson("/automations"),
128
+ enable: id => json(`/automations/${idPath(id)}/enable`, "POST"),
129
+ disable: id => json(`/automations/${idPath(id)}/disable`, "POST"),
130
+ dryRun: id => json(`/automations/${idPath(id)}/dry-run`, "POST"),
131
+ },
132
+ runs: {
133
+ list: filter => {
134
+ const params = new URLSearchParams();
135
+ if (filter?.appId !== undefined)
136
+ params.set("appId", filter.appId);
137
+ if (filter?.status !== undefined)
138
+ params.set("status", filter.status);
139
+ if (filter?.cursor !== undefined)
140
+ params.set("cursor", filter.cursor);
141
+ const query = params.size > 0 ? `?${params.toString()}` : "";
142
+ return readJson(`/runs${query}`);
143
+ },
144
+ get: id => readJson(`/runs/${idPath(id)}`),
145
+ stop: id => json(`/runs/${idPath(id)}/stop`, "POST"),
146
+ },
147
+ activity: {
148
+ list: params => {
149
+ const query = new URLSearchParams();
150
+ if (params?.cursor !== undefined)
151
+ query.set("cursor", params.cursor);
152
+ if (params?.limit !== undefined)
153
+ query.set("limit", String(params.limit));
154
+ return readJson(`/activity${query.size > 0 ? `?${query.toString()}` : ""}`);
155
+ },
156
+ },
157
+ status: () => readJson("/status"),
158
+ };
159
+ }
160
+ //# sourceMappingURL=client-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-impl.js","sourceRoot":"","sources":["../src/client-impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * createVendoClient — typed fetch/SSE bindings for every wire route (09 §3).
3
+ * Exposed for non-React consumers; every hook rides this.
4
+ *
5
+ * The interface is the coordination artifact between lanes; the
6
+ * implementation lives in client-impl.ts (lane A).
7
+ */
8
+ import type { AppDocument, AppId, ApprovalDecision, ApprovalId, ApprovalRequest, AuditEvent, GrantId, Json, PermissionGrant, RunId, ThreadId, ToolOutcome } from "@vendoai/core";
9
+ import type { UIMessage } from "ai";
10
+ import type { ApprovalResolution, AutomationEntry, ConnectableToolkit, ConnectionAccount, EditResult, EnableResult, InitiatedConnection, OpenSurface, PendingSurface, PinDrift, PinForkResult, PinRebaseResult, RunPlan, RunRecord, RunStatus, ShipDiff, Thread, ThreadSummary, VendoStatus, VersionEntry } from "./wire-types.js";
11
+ export interface VendoClientConfig {
12
+ /** Wire mount point. Default "/api/vendo". */
13
+ baseUrl?: string;
14
+ headers?: Record<string, string>;
15
+ }
16
+ export interface VendoClient {
17
+ readonly baseUrl: string;
18
+ readonly headers: Record<string, string>;
19
+ threads: {
20
+ /** POST /threads — one conversational turn; the ai-SDK UI message stream (SSE) Response. */
21
+ stream(input: {
22
+ threadId?: ThreadId;
23
+ message: UIMessage;
24
+ }): Promise<Response>;
25
+ list(): Promise<ThreadSummary[]>;
26
+ get(id: ThreadId): Promise<Thread>;
27
+ delete(id: ThreadId): Promise<void>;
28
+ };
29
+ approvals: {
30
+ pending(): Promise<ApprovalRequest[]>;
31
+ /** Batch-capable: POST /approvals/decide { ids, decision }. */
32
+ decide(ids: ApprovalId | ApprovalId[], decision: ApprovalDecision): Promise<void>;
33
+ /** Existing-agents — GET /approvals/:id, the per-approval state
34
+ `<VendoApprovalEmbed>` polls (pending/executed/declined/expired). */
35
+ get(id: ApprovalId): Promise<ApprovalResolution>;
36
+ };
37
+ grants: {
38
+ list(): Promise<PermissionGrant[]>;
39
+ revoke(id: GrantId): Promise<void>;
40
+ };
41
+ /** 04-actions §3 — per-principal connected accounts (Composio broker). */
42
+ connections: {
43
+ list(): Promise<ConnectionAccount[]>;
44
+ /** POST /connections/initiate — returns the broker's OAuth redirect URL. */
45
+ initiate(input: {
46
+ toolkit: string;
47
+ connector?: string;
48
+ callbackUrl?: string;
49
+ }): Promise<InitiatedConnection>;
50
+ /** GET /connections/:id — poll while the user completes the redirect. */
51
+ status(id: string, connector?: string): Promise<ConnectionAccount>;
52
+ disconnect(id: string, connector?: string): Promise<void>;
53
+ /** GET /connections/catalog — the host-level connectable toolkits; feeds
54
+ the connect dock when no explicit `connectors` prop is passed. */
55
+ catalog(): Promise<ConnectableToolkit[]>;
56
+ };
57
+ apps: {
58
+ list(): Promise<AppDocument[]>;
59
+ create(input: {
60
+ prompt: string;
61
+ }): Promise<AppDocument>;
62
+ get(id: AppId): Promise<AppDocument>;
63
+ delete(id: AppId): Promise<void>;
64
+ open(id: AppId): Promise<OpenSurface>;
65
+ /** Existing-agents polish — the embed's build-window poll: with
66
+ `pending: true` a not-yet-servable app answers `{ kind: "pending" }`
67
+ over HTTP 200 instead of the contracted 404, so the poll never logs
68
+ browser console errors while the build streams. */
69
+ open(id: AppId, options: {
70
+ pending: true;
71
+ }): Promise<OpenSurface | PendingSurface>;
72
+ call(id: AppId, ref: string, args: Json): Promise<ToolOutcome>;
73
+ edit(id: AppId, instruction: string): Promise<EditResult>;
74
+ history(id: AppId): Promise<VersionEntry[]>;
75
+ undo(id: AppId): Promise<AppDocument>;
76
+ exportApp(id: AppId): Promise<Uint8Array>;
77
+ importApp(bytes: Uint8Array): Promise<AppDocument>;
78
+ fork(id: AppId): Promise<AppDocument>;
79
+ /** GET /apps/:id/ship-diff — the reviewable diff vs the captured host baselines (06 §8–§9). */
80
+ shipDiff(id: AppId): Promise<ShipDiff>;
81
+ /** GET /apps/:id/pin-drift — the pins whose captured host baseline changed under the fork (06 §8). */
82
+ pinDrift(id: AppId): Promise<PinDrift[]>;
83
+ /** POST /apps/:id/rebase-pin — re-fork one drifted pin from the new baseline and replay its recorded intents (06 §8). */
84
+ rebasePin(id: AppId, slot: string): Promise<PinRebaseResult>;
85
+ /**
86
+ * POST /apps/fork-pin (no appId) or /apps/:id/fork-pin — the gesture-owned
87
+ * DETERMINISTIC fork of a remixable host slot (06 §8): the engine copies
88
+ * the captured baseline and records the pin with no model call. Without an
89
+ * appId a minimal app is minted around the fork (the empty-slot Remix
90
+ * gesture). An optional instruction rides the ordinary edit path
91
+ * afterwards, already scoped to the forked component.
92
+ */
93
+ forkPin(input: {
94
+ appId?: AppId;
95
+ slot: string;
96
+ instruction?: string;
97
+ }): Promise<PinForkResult>;
98
+ /**
99
+ * POST /apps/:id/machine/ping — the embed surface's keepalive (Wave 7 H2):
100
+ * user activity on an embedded served app rides one host-proxied HEAD
101
+ * through the machine, keeping it from idling out under the user. "woke"
102
+ * means the machine had slept — the embed's URL is stale; re-open.
103
+ */
104
+ pingMachine(id: AppId): Promise<{
105
+ state: "awake" | "woke";
106
+ }>;
107
+ };
108
+ automations: {
109
+ list(): Promise<AutomationEntry[]>;
110
+ enable(id: AppId): Promise<EnableResult>;
111
+ disable(id: AppId): Promise<void>;
112
+ dryRun(id: AppId): Promise<RunPlan>;
113
+ };
114
+ runs: {
115
+ list(filter?: {
116
+ appId?: AppId;
117
+ status?: RunStatus;
118
+ cursor?: string;
119
+ }): Promise<{
120
+ runs: RunRecord[];
121
+ cursor?: string;
122
+ }>;
123
+ get(id: RunId): Promise<RunRecord>;
124
+ stop(id: RunId): Promise<void>;
125
+ };
126
+ activity: {
127
+ /** GET /activity — self-scoped audit events; cursor = the id of the last seen event. */
128
+ list(params?: {
129
+ cursor?: string;
130
+ limit?: number;
131
+ }): Promise<AuditEvent[]>;
132
+ };
133
+ status(): Promise<VendoStatus>;
134
+ }
135
+ export { createVendoClient } from "./client-impl.js";
136
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,2 @@
1
+ export { createVendoClient } from "./client-impl.js";
2
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAyJA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,97 @@
1
+ /** VendoProvider + the internal context every hook and surface reads (08 §2). */
2
+ import type { ComponentRegistry, VendoTheme } from "@vendoai/core";
3
+ import type { ChatTransport, UIMessage } from "ai";
4
+ import { type ComponentType, type ReactNode } from "react";
5
+ import { type VendoClient } from "./client.js";
6
+ import type { VendoDiscoverability, VendoGreeting } from "./chrome/discoverability.js";
7
+ import type { ToolMetaMap } from "./chrome/humanize.js";
8
+ import type { VoiceDriver } from "./voice/driver.js";
9
+ export interface VendoContextValue {
10
+ client: VendoClient;
11
+ /** Host catalog implementations, by registered name (08 §2). */
12
+ components: Record<string, ComponentType>;
13
+ /** Resolved brand tokens (defaults ⊕ provider overrides). */
14
+ theme: VendoTheme;
15
+ /** Optional host-provided voice transport (08 §3). */
16
+ voice?: {
17
+ driver: VoiceDriver;
18
+ };
19
+ /**
20
+ * Optional chat-transport override (director/replay tooling). When absent,
21
+ * threads use the live wire transport — this is never a default.
22
+ */
23
+ transport?: ChatTransport<UIMessage>;
24
+ /**
25
+ * Optional host handler for pinning a previewed app into the product. When
26
+ * present, generated views show a "Pin to dashboard" action; nothing is
27
+ * saved to the host surface until the user invokes it.
28
+ */
29
+ onPin?(app: {
30
+ appId: string;
31
+ payload: unknown;
32
+ }): void;
33
+ /** Optional host-supplied friendly tool metadata, keyed by tool name/id
34
+ (ENG-216 humanization seam — additive, UI-side, no wire/contract change). */
35
+ tools: ToolMetaMap;
36
+ /** ENG-225 — the connect dock's catalog: which toolkits this host's users
37
+ can connect. An explicit array is used as-is (empty = no dock renders);
38
+ `"auto"` (the omitted-prop default) means surfaces resolve the catalog
39
+ from `GET /connections/catalog` — everything the host's server-side
40
+ connectors advertise. Resolve through useConnectorCatalog, never read
41
+ this raw. */
42
+ connectors: ConnectorOption[] | "auto";
43
+ /** The discoverability dial (ui-usage-dx §6): quiet | default. Default keeps
44
+ the fire-once whisper + greeting; surfaces may override via their own prop. */
45
+ discoverability: VendoDiscoverability;
46
+ /** Host greeting-as-tutorial content (§6): intro + starter prompts, the
47
+ `.vendo/greeting.json` shape. Absent = the built-in generic greeting. */
48
+ greeting?: VendoGreeting;
49
+ }
50
+ /** One connectable toolkit in the connect dock (ENG-225). */
51
+ export interface ConnectorOption {
52
+ toolkit: string;
53
+ /** Broker connector id, when the host pins one (04 §3.1). */
54
+ connector?: string;
55
+ /** Display name; defaults to the capitalized toolkit. */
56
+ label?: string;
57
+ }
58
+ /** 08 §2 (amended 2026-07-18): the components input — the plain name→component
59
+ * map, or the 01 §14 name-keyed ComponentRegistry (the same object the server
60
+ * takes as `catalog`). */
61
+ export type HostComponentsInput = Record<string, ComponentType> | ComponentRegistry;
62
+ /** Extract the name→component map from either components-input form. Registry
63
+ * data fields (description, props schema, examples, remixable) are server-side
64
+ * concerns the client ignores (01 §14). */
65
+ export declare function hostComponentMap(components: HostComponentsInput | undefined): Record<string, ComponentType>;
66
+ export declare function VendoProvider(props: {
67
+ client?: VendoClient;
68
+ components?: HostComponentsInput;
69
+ theme?: Partial<VendoTheme>;
70
+ voice?: {
71
+ driver: VoiceDriver;
72
+ };
73
+ transport?: ChatTransport<UIMessage>;
74
+ onPin?(app: {
75
+ appId: string;
76
+ payload: unknown;
77
+ }): void;
78
+ tools?: ToolMetaMap;
79
+ connectors?: ConnectorOption[];
80
+ discoverability?: VendoDiscoverability;
81
+ greeting?: VendoGreeting;
82
+ children: ReactNode;
83
+ }): ReactNode;
84
+ export declare function useVendoContext(): VendoContextValue;
85
+ /** Resolved brand tokens (08 §3 — the useVendoTheme hook). */
86
+ export declare function useVendoTheme(): VendoTheme;
87
+ /** Host-supplied tool metadata (ENG-216). Provider-optional so surfaces that
88
+ can render standalone still degrade to the pure formatting fallback. */
89
+ export declare function useVendoTools(): ToolMetaMap;
90
+ /** Like useVendoTheme, but provider-optional: surfaces that also work standalone
91
+ (TreeView) fall back to the default brand tokens. */
92
+ export declare function useVendoThemeOrDefault(): VendoTheme;
93
+ /** The discoverability dial, provider-optional (standalone surfaces default on). */
94
+ export declare function useVendoDiscoverability(): VendoDiscoverability;
95
+ /** Host greeting-as-tutorial content, provider-optional (absent = built-in). */
96
+ export declare function useVendoGreeting(): VendoGreeting | undefined;
97
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo } from "react";
3
+ import { createVendoClient } from "./client.js";
4
+ import { defaultVendoTheme, resolveTheme } from "./theme.js";
5
+ const VendoContext = createContext(null);
6
+ /** Safe narrow: a plain-map value is a function/class component or an exotic
7
+ * React component object ($$typeof/render/type — never a `component` field),
8
+ * while a registry entry always carries `component` plus its REQUIRED string
9
+ * `description` (01 §14). Both checks together rule out misdetection. */
10
+ function isRegistryEntry(value) {
11
+ return typeof value === "object" && value !== null
12
+ && "component" in value
13
+ && typeof value.description === "string";
14
+ }
15
+ /** Extract the name→component map from either components-input form. Registry
16
+ * data fields (description, props schema, examples, remixable) are server-side
17
+ * concerns the client ignores (01 §14). */
18
+ export function hostComponentMap(components) {
19
+ if (components === undefined)
20
+ return {};
21
+ const map = {};
22
+ for (const [name, value] of Object.entries(components)) {
23
+ map[name] = isRegistryEntry(value) ? value.component : value;
24
+ }
25
+ return map;
26
+ }
27
+ export function VendoProvider(props) {
28
+ const { client, components, theme, voice, transport, onPin, tools, connectors, discoverability, greeting, children } = props;
29
+ const value = useMemo(() => ({
30
+ client: client ?? createVendoClient({}),
31
+ components: hostComponentMap(components),
32
+ theme: resolveTheme(defaultVendoTheme, theme),
33
+ voice,
34
+ transport,
35
+ onPin,
36
+ tools: tools ?? {},
37
+ connectors: connectors ?? "auto",
38
+ discoverability: discoverability ?? "default",
39
+ greeting,
40
+ }), [client, components, theme, voice, transport, onPin, tools, connectors, discoverability, greeting]);
41
+ return _jsx(VendoContext.Provider, { value: value, children: children });
42
+ }
43
+ export function useVendoContext() {
44
+ const ctx = useContext(VendoContext);
45
+ if (!ctx)
46
+ throw new Error("Vendo hooks and surfaces must be rendered inside <VendoProvider>.");
47
+ return ctx;
48
+ }
49
+ /** Resolved brand tokens (08 §3 — the useVendoTheme hook). */
50
+ export function useVendoTheme() {
51
+ return useVendoContext().theme;
52
+ }
53
+ /** Host-supplied tool metadata (ENG-216). Provider-optional so surfaces that
54
+ can render standalone still degrade to the pure formatting fallback. */
55
+ export function useVendoTools() {
56
+ return useContext(VendoContext)?.tools ?? {};
57
+ }
58
+ /** Like useVendoTheme, but provider-optional: surfaces that also work standalone
59
+ (TreeView) fall back to the default brand tokens. */
60
+ export function useVendoThemeOrDefault() {
61
+ return useContext(VendoContext)?.theme ?? defaultVendoTheme;
62
+ }
63
+ /** The discoverability dial, provider-optional (standalone surfaces default on). */
64
+ export function useVendoDiscoverability() {
65
+ return useContext(VendoContext)?.discoverability ?? "default";
66
+ }
67
+ /** Host greeting-as-tutorial content, provider-optional (absent = built-in). */
68
+ export function useVendoGreeting() {
69
+ return useContext(VendoContext)?.greeting;
70
+ }
71
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}