skybridge 0.0.0-dev.d8b52a9 → 0.0.0-dev.d91554c

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 (427) hide show
  1. package/LICENSE +21 -674
  2. package/README.md +95 -265
  3. package/bin/run.js +5 -0
  4. package/dist/cli/detect-port.d.ts +18 -0
  5. package/dist/cli/detect-port.js +61 -0
  6. package/dist/cli/detect-port.js.map +1 -0
  7. package/dist/cli/header.d.ts +4 -0
  8. package/dist/cli/header.js +6 -0
  9. package/dist/cli/header.js.map +1 -0
  10. package/dist/cli/run-command.d.ts +2 -0
  11. package/dist/cli/run-command.js +43 -0
  12. package/dist/cli/run-command.js.map +1 -0
  13. package/dist/cli/telemetry.d.ts +7 -0
  14. package/dist/cli/telemetry.js +123 -0
  15. package/dist/cli/telemetry.js.map +1 -0
  16. package/dist/cli/tunnel-control-server.d.ts +9 -0
  17. package/dist/cli/tunnel-control-server.js +31 -0
  18. package/dist/cli/tunnel-control-server.js.map +1 -0
  19. package/dist/cli/tunnel-control-server.test.js +39 -0
  20. package/dist/cli/tunnel-control-server.test.js.map +1 -0
  21. package/dist/cli/tunnel-handler.d.ts +3 -0
  22. package/dist/cli/tunnel-handler.js +48 -0
  23. package/dist/cli/tunnel-handler.js.map +1 -0
  24. package/dist/cli/tunnel-handler.test.js +105 -0
  25. package/dist/cli/tunnel-handler.test.js.map +1 -0
  26. package/dist/cli/tunnel.d.ts +57 -0
  27. package/dist/cli/tunnel.js +154 -0
  28. package/dist/cli/tunnel.js.map +1 -0
  29. package/dist/cli/tunnel.test.js +190 -0
  30. package/dist/cli/tunnel.test.js.map +1 -0
  31. package/dist/cli/types.d.ts +5 -0
  32. package/dist/cli/types.js +2 -0
  33. package/dist/cli/types.js.map +1 -0
  34. package/dist/cli/use-execute-steps.d.ts +11 -0
  35. package/dist/cli/use-execute-steps.js +36 -0
  36. package/dist/cli/use-execute-steps.js.map +1 -0
  37. package/dist/cli/use-messages.d.ts +3 -0
  38. package/dist/cli/use-messages.js +11 -0
  39. package/dist/cli/use-messages.js.map +1 -0
  40. package/dist/cli/use-nodemon.d.ts +2 -0
  41. package/dist/cli/use-nodemon.js +73 -0
  42. package/dist/cli/use-nodemon.js.map +1 -0
  43. package/dist/cli/use-open-browser.d.ts +1 -0
  44. package/dist/cli/use-open-browser.js +44 -0
  45. package/dist/cli/use-open-browser.js.map +1 -0
  46. package/dist/cli/use-tunnel.d.ts +14 -0
  47. package/dist/cli/use-tunnel.js +131 -0
  48. package/dist/cli/use-tunnel.js.map +1 -0
  49. package/dist/cli/use-typescript-check.d.ts +9 -0
  50. package/dist/cli/use-typescript-check.js +94 -0
  51. package/dist/cli/use-typescript-check.js.map +1 -0
  52. package/dist/commands/build.d.ts +9 -0
  53. package/dist/commands/build.js +102 -0
  54. package/dist/commands/build.js.map +1 -0
  55. package/dist/commands/dev.d.ts +12 -0
  56. package/dist/commands/dev.js +80 -0
  57. package/dist/commands/dev.js.map +1 -0
  58. package/dist/commands/start.d.ts +9 -0
  59. package/dist/commands/start.js +49 -0
  60. package/dist/commands/start.js.map +1 -0
  61. package/dist/commands/telemetry/disable.d.ts +5 -0
  62. package/dist/commands/telemetry/disable.js +14 -0
  63. package/dist/commands/telemetry/disable.js.map +1 -0
  64. package/dist/commands/telemetry/enable.d.ts +5 -0
  65. package/dist/commands/telemetry/enable.js +14 -0
  66. package/dist/commands/telemetry/enable.js.map +1 -0
  67. package/dist/commands/telemetry/status.d.ts +5 -0
  68. package/dist/commands/telemetry/status.js +14 -0
  69. package/dist/commands/telemetry/status.js.map +1 -0
  70. package/dist/server/asset-base-url-transform-plugin.d.ts +10 -0
  71. package/dist/server/asset-base-url-transform-plugin.js +33 -0
  72. package/dist/server/asset-base-url-transform-plugin.js.map +1 -0
  73. package/dist/server/asset-base-url-transform-plugin.test.js +84 -0
  74. package/dist/server/asset-base-url-transform-plugin.test.js.map +1 -0
  75. package/dist/server/content-helpers.d.ts +27 -0
  76. package/dist/server/content-helpers.js +46 -0
  77. package/dist/server/content-helpers.js.map +1 -0
  78. package/dist/server/content-helpers.test.js +70 -0
  79. package/dist/server/content-helpers.test.js.map +1 -0
  80. package/dist/server/express.d.ts +11 -0
  81. package/dist/server/express.js +101 -0
  82. package/dist/server/express.js.map +1 -0
  83. package/dist/server/express.test.js +430 -0
  84. package/dist/server/express.test.js.map +1 -0
  85. package/dist/server/index.d.ts +6 -0
  86. package/dist/server/index.js +4 -0
  87. package/dist/server/index.js.map +1 -0
  88. package/dist/server/inferUtilityTypes.d.ts +64 -0
  89. package/dist/server/inferUtilityTypes.js.map +1 -0
  90. package/dist/server/metric.d.ts +14 -0
  91. package/dist/server/metric.js +62 -0
  92. package/dist/server/metric.js.map +1 -0
  93. package/dist/server/middleware.d.ts +124 -0
  94. package/dist/server/middleware.js +93 -0
  95. package/dist/server/middleware.js.map +1 -0
  96. package/dist/server/middleware.test-d.js +75 -0
  97. package/dist/server/middleware.test-d.js.map +1 -0
  98. package/dist/server/middleware.test.js +493 -0
  99. package/dist/server/middleware.test.js.map +1 -0
  100. package/dist/server/server.d.ts +196 -0
  101. package/dist/server/server.js +468 -0
  102. package/dist/server/server.js.map +1 -0
  103. package/dist/{src/server → server}/templateHelper.d.ts +5 -4
  104. package/dist/server/templateHelper.js +11 -0
  105. package/dist/server/templateHelper.js.map +1 -0
  106. package/dist/server/templates.generated.d.ts +4 -0
  107. package/dist/server/templates.generated.js +47 -0
  108. package/dist/server/templates.generated.js.map +1 -0
  109. package/dist/server/tunnel-proxy-router.d.ts +7 -0
  110. package/dist/server/tunnel-proxy-router.js +110 -0
  111. package/dist/server/tunnel-proxy-router.js.map +1 -0
  112. package/dist/server/tunnel-proxy-router.test.js +229 -0
  113. package/dist/server/tunnel-proxy-router.test.js.map +1 -0
  114. package/dist/server/viewsDevServer.d.ts +14 -0
  115. package/dist/server/viewsDevServer.js +45 -0
  116. package/dist/server/viewsDevServer.js.map +1 -0
  117. package/dist/test/utils.d.ts +127 -0
  118. package/dist/test/utils.js +247 -0
  119. package/dist/test/utils.js.map +1 -0
  120. package/dist/test/view.test.js +523 -0
  121. package/dist/test/view.test.js.map +1 -0
  122. package/dist/version.d.ts +1 -0
  123. package/dist/version.js +3 -0
  124. package/dist/version.js.map +1 -0
  125. package/dist/web/bridges/apps-sdk/adaptor.d.ts +24 -0
  126. package/dist/web/bridges/apps-sdk/adaptor.js +93 -0
  127. package/dist/web/bridges/apps-sdk/adaptor.js.map +1 -0
  128. package/dist/web/bridges/apps-sdk/bridge.d.ts +10 -0
  129. package/dist/web/bridges/apps-sdk/bridge.js +46 -0
  130. package/dist/web/bridges/apps-sdk/bridge.js.map +1 -0
  131. package/dist/web/bridges/apps-sdk/index.d.ts +5 -0
  132. package/dist/web/bridges/apps-sdk/index.js +5 -0
  133. package/dist/web/bridges/apps-sdk/index.js.map +1 -0
  134. package/dist/web/bridges/apps-sdk/types.d.ts +126 -0
  135. package/dist/web/bridges/apps-sdk/types.js.map +1 -0
  136. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.d.ts +2 -0
  137. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.js +7 -0
  138. package/dist/web/bridges/apps-sdk/use-apps-sdk-context.js.map +1 -0
  139. package/dist/web/bridges/get-adaptor.d.ts +2 -0
  140. package/dist/web/bridges/get-adaptor.js +8 -0
  141. package/dist/web/bridges/get-adaptor.js.map +1 -0
  142. package/dist/web/bridges/index.d.ts +5 -0
  143. package/dist/web/bridges/index.js +6 -0
  144. package/dist/web/bridges/index.js.map +1 -0
  145. package/dist/web/bridges/mcp-app/adaptor.d.ts +48 -0
  146. package/dist/web/bridges/mcp-app/adaptor.js +268 -0
  147. package/dist/web/bridges/mcp-app/adaptor.js.map +1 -0
  148. package/dist/web/bridges/mcp-app/bridge.d.ts +26 -0
  149. package/dist/web/bridges/mcp-app/bridge.js +102 -0
  150. package/dist/web/bridges/mcp-app/bridge.js.map +1 -0
  151. package/dist/web/bridges/mcp-app/index.d.ts +4 -0
  152. package/dist/web/bridges/mcp-app/index.js +4 -0
  153. package/dist/web/bridges/mcp-app/index.js.map +1 -0
  154. package/dist/web/bridges/mcp-app/types.d.ts +8 -0
  155. package/dist/web/bridges/mcp-app/types.js +2 -0
  156. package/dist/web/bridges/mcp-app/types.js.map +1 -0
  157. package/dist/web/bridges/mcp-app/use-mcp-app-context.d.ts +7 -0
  158. package/dist/web/bridges/mcp-app/use-mcp-app-context.js +7 -0
  159. package/dist/web/bridges/mcp-app/use-mcp-app-context.js.map +1 -0
  160. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js +26 -0
  161. package/dist/web/bridges/mcp-app/use-mcp-app-context.test.js.map +1 -0
  162. package/dist/web/bridges/types.d.ts +109 -0
  163. package/dist/web/bridges/types.js +2 -0
  164. package/dist/web/bridges/types.js.map +1 -0
  165. package/dist/web/bridges/use-host-context.d.ts +2 -0
  166. package/dist/web/bridges/use-host-context.js +8 -0
  167. package/dist/web/bridges/use-host-context.js.map +1 -0
  168. package/dist/web/components/modal-provider.d.ts +4 -0
  169. package/dist/web/components/modal-provider.js +45 -0
  170. package/dist/web/components/modal-provider.js.map +1 -0
  171. package/dist/web/create-store.d.ts +3 -0
  172. package/dist/web/create-store.js +38 -0
  173. package/dist/web/create-store.js.map +1 -0
  174. package/dist/web/create-store.test.js +129 -0
  175. package/dist/web/create-store.test.js.map +1 -0
  176. package/dist/web/data-llm.d.ts +14 -0
  177. package/dist/web/data-llm.js +72 -0
  178. package/dist/web/data-llm.js.map +1 -0
  179. package/dist/web/data-llm.test.js +142 -0
  180. package/dist/web/data-llm.test.js.map +1 -0
  181. package/dist/web/generate-helpers.d.ts +118 -0
  182. package/dist/{src/web/typed-hooks.js → web/generate-helpers.js} +33 -31
  183. package/dist/web/generate-helpers.js.map +1 -0
  184. package/dist/web/generate-helpers.test-d.js +209 -0
  185. package/dist/web/generate-helpers.test-d.js.map +1 -0
  186. package/dist/web/generate-helpers.test.d.ts +1 -0
  187. package/dist/web/generate-helpers.test.js +17 -0
  188. package/dist/web/generate-helpers.test.js.map +1 -0
  189. package/dist/web/helpers/state.d.ts +7 -0
  190. package/dist/web/helpers/state.js +45 -0
  191. package/dist/web/helpers/state.js.map +1 -0
  192. package/dist/web/helpers/state.test.d.ts +1 -0
  193. package/dist/web/helpers/state.test.js +53 -0
  194. package/dist/web/helpers/state.test.js.map +1 -0
  195. package/dist/web/hooks/index.d.ts +11 -0
  196. package/dist/web/hooks/index.js +12 -0
  197. package/dist/web/hooks/index.js.map +1 -0
  198. package/dist/web/hooks/test/utils.d.ts +16 -0
  199. package/dist/web/hooks/test/utils.js +64 -0
  200. package/dist/web/hooks/test/utils.js.map +1 -0
  201. package/dist/web/hooks/use-call-tool.d.ts +101 -0
  202. package/dist/{src/web → web}/hooks/use-call-tool.js +19 -19
  203. package/dist/web/hooks/use-call-tool.js.map +1 -0
  204. package/dist/web/hooks/use-call-tool.test-d.d.ts +1 -0
  205. package/dist/web/hooks/use-call-tool.test-d.js +104 -0
  206. package/dist/web/hooks/use-call-tool.test-d.js.map +1 -0
  207. package/dist/web/hooks/use-call-tool.test.d.ts +1 -0
  208. package/dist/{src/web → web}/hooks/use-call-tool.test.js +40 -13
  209. package/dist/web/hooks/use-call-tool.test.js.map +1 -0
  210. package/dist/web/hooks/use-display-mode.d.ts +4 -0
  211. package/dist/web/hooks/use-display-mode.js +9 -0
  212. package/dist/web/hooks/use-display-mode.js.map +1 -0
  213. package/dist/web/hooks/use-display-mode.test-d.d.ts +1 -0
  214. package/dist/web/hooks/use-display-mode.test-d.js +8 -0
  215. package/dist/web/hooks/use-display-mode.test-d.js.map +1 -0
  216. package/dist/web/hooks/use-display-mode.test.d.ts +1 -0
  217. package/dist/{src/web → web}/hooks/use-display-mode.test.js +3 -2
  218. package/dist/web/hooks/use-display-mode.test.js.map +1 -0
  219. package/dist/web/hooks/use-files.d.ts +7 -0
  220. package/dist/web/hooks/use-files.js +10 -0
  221. package/dist/web/hooks/use-files.js.map +1 -0
  222. package/dist/web/hooks/use-files.test.d.ts +1 -0
  223. package/dist/web/hooks/use-files.test.js +54 -0
  224. package/dist/web/hooks/use-files.test.js.map +1 -0
  225. package/dist/web/hooks/use-layout.d.ts +22 -0
  226. package/dist/web/hooks/use-layout.js +23 -0
  227. package/dist/web/hooks/use-layout.js.map +1 -0
  228. package/dist/web/hooks/use-layout.test.d.ts +1 -0
  229. package/dist/web/hooks/use-layout.test.js +96 -0
  230. package/dist/web/hooks/use-layout.test.js.map +1 -0
  231. package/dist/web/hooks/use-open-external.d.ts +3 -0
  232. package/dist/web/hooks/use-open-external.js +8 -0
  233. package/dist/web/hooks/use-open-external.js.map +1 -0
  234. package/dist/web/hooks/use-open-external.test.d.ts +1 -0
  235. package/dist/web/hooks/use-open-external.test.js +65 -0
  236. package/dist/web/hooks/use-open-external.test.js.map +1 -0
  237. package/dist/web/hooks/use-request-modal.d.ts +9 -0
  238. package/dist/web/hooks/use-request-modal.js +16 -0
  239. package/dist/web/hooks/use-request-modal.js.map +1 -0
  240. package/dist/web/hooks/use-request-modal.test.d.ts +1 -0
  241. package/dist/web/hooks/use-request-modal.test.js +61 -0
  242. package/dist/web/hooks/use-request-modal.test.js.map +1 -0
  243. package/dist/web/hooks/use-send-follow-up-message.js +8 -0
  244. package/dist/web/hooks/use-send-follow-up-message.js.map +1 -0
  245. package/dist/web/hooks/use-set-open-in-app-url.d.ts +1 -0
  246. package/dist/web/hooks/use-set-open-in-app-url.js +8 -0
  247. package/dist/web/hooks/use-set-open-in-app-url.js.map +1 -0
  248. package/dist/web/hooks/use-set-open-in-app-url.test.d.ts +1 -0
  249. package/dist/web/hooks/use-set-open-in-app-url.test.js +43 -0
  250. package/dist/web/hooks/use-set-open-in-app-url.test.js.map +1 -0
  251. package/dist/{src/web → web}/hooks/use-tool-info.d.ts +13 -2
  252. package/dist/web/hooks/use-tool-info.js +26 -0
  253. package/dist/web/hooks/use-tool-info.js.map +1 -0
  254. package/dist/web/hooks/use-tool-info.test-d.d.ts +1 -0
  255. package/dist/{src/web → web}/hooks/use-tool-info.test-d.js +40 -5
  256. package/dist/web/hooks/use-tool-info.test-d.js.map +1 -0
  257. package/dist/web/hooks/use-tool-info.test.d.ts +1 -0
  258. package/dist/web/hooks/use-tool-info.test.js +130 -0
  259. package/dist/web/hooks/use-tool-info.test.js.map +1 -0
  260. package/dist/web/hooks/use-user.d.ts +18 -0
  261. package/dist/web/hooks/use-user.js +35 -0
  262. package/dist/web/hooks/use-user.js.map +1 -0
  263. package/dist/web/hooks/use-user.test.d.ts +1 -0
  264. package/dist/web/hooks/use-user.test.js +122 -0
  265. package/dist/web/hooks/use-user.test.js.map +1 -0
  266. package/dist/web/hooks/use-view-state.d.ts +4 -0
  267. package/dist/web/hooks/use-view-state.js +32 -0
  268. package/dist/web/hooks/use-view-state.js.map +1 -0
  269. package/dist/web/hooks/use-view-state.test.d.ts +1 -0
  270. package/dist/web/hooks/use-view-state.test.js +177 -0
  271. package/dist/web/hooks/use-view-state.test.js.map +1 -0
  272. package/dist/web/index.d.ts +7 -0
  273. package/dist/web/index.js +8 -0
  274. package/dist/web/index.js.map +1 -0
  275. package/dist/web/mount-view.d.ts +1 -0
  276. package/dist/{src/web/mount-widget.js → web/mount-view.js} +11 -3
  277. package/dist/web/mount-view.js.map +1 -0
  278. package/dist/web/plugin/data-llm.test.d.ts +1 -0
  279. package/dist/web/plugin/data-llm.test.js +81 -0
  280. package/dist/web/plugin/data-llm.test.js.map +1 -0
  281. package/dist/web/plugin/plugin.d.ts +5 -0
  282. package/dist/web/plugin/plugin.js +156 -0
  283. package/dist/web/plugin/plugin.js.map +1 -0
  284. package/dist/web/plugin/scan-views.d.ts +16 -0
  285. package/dist/web/plugin/scan-views.js +88 -0
  286. package/dist/web/plugin/scan-views.js.map +1 -0
  287. package/dist/web/plugin/scan-views.test.d.ts +1 -0
  288. package/dist/web/plugin/scan-views.test.js +99 -0
  289. package/dist/web/plugin/scan-views.test.js.map +1 -0
  290. package/dist/web/plugin/transform-data-llm.d.ts +12 -0
  291. package/dist/web/plugin/transform-data-llm.js +96 -0
  292. package/dist/web/plugin/transform-data-llm.js.map +1 -0
  293. package/dist/web/plugin/transform-data-llm.test.d.ts +1 -0
  294. package/dist/web/plugin/transform-data-llm.test.js +81 -0
  295. package/dist/web/plugin/transform-data-llm.test.js.map +1 -0
  296. package/dist/web/plugin/validate-view.d.ts +1 -0
  297. package/dist/web/plugin/validate-view.js +9 -0
  298. package/dist/web/plugin/validate-view.js.map +1 -0
  299. package/dist/web/plugin/validate-view.test.d.ts +1 -0
  300. package/dist/web/plugin/validate-view.test.js +24 -0
  301. package/dist/web/plugin/validate-view.test.js.map +1 -0
  302. package/dist/{src/web → web}/proxy.js +6 -2
  303. package/dist/web/proxy.js.map +1 -0
  304. package/dist/web/types.d.ts +16 -0
  305. package/dist/web/types.js +2 -0
  306. package/dist/web/types.js.map +1 -0
  307. package/package.json +81 -36
  308. package/tsconfig.base.json +33 -0
  309. package/dist/src/server/index.d.ts +0 -4
  310. package/dist/src/server/index.js +0 -3
  311. package/dist/src/server/index.js.map +0 -1
  312. package/dist/src/server/inferUtilityTypes.d.ts +0 -44
  313. package/dist/src/server/inferUtilityTypes.js.map +0 -1
  314. package/dist/src/server/server.d.ts +0 -19
  315. package/dist/src/server/server.js +0 -58
  316. package/dist/src/server/server.js.map +0 -1
  317. package/dist/src/server/templateHelper.js +0 -29
  318. package/dist/src/server/templateHelper.js.map +0 -1
  319. package/dist/src/server/templates/development.hbs +0 -12
  320. package/dist/src/server/templates/production.hbs +0 -6
  321. package/dist/src/server/widgetsDevServer.d.ts +0 -12
  322. package/dist/src/server/widgetsDevServer.js +0 -39
  323. package/dist/src/server/widgetsDevServer.js.map +0 -1
  324. package/dist/src/test/utils.d.ts +0 -28
  325. package/dist/src/test/utils.js +0 -43
  326. package/dist/src/test/utils.js.map +0 -1
  327. package/dist/src/test/widget.test.js +0 -90
  328. package/dist/src/test/widget.test.js.map +0 -1
  329. package/dist/src/web/hooks/index.d.ts +0 -14
  330. package/dist/src/web/hooks/index.js +0 -15
  331. package/dist/src/web/hooks/index.js.map +0 -1
  332. package/dist/src/web/hooks/use-call-tool.d.ts +0 -62
  333. package/dist/src/web/hooks/use-call-tool.js.map +0 -1
  334. package/dist/src/web/hooks/use-call-tool.test.js.map +0 -1
  335. package/dist/src/web/hooks/use-display-mode.d.ts +0 -4
  336. package/dist/src/web/hooks/use-display-mode.js +0 -7
  337. package/dist/src/web/hooks/use-display-mode.js.map +0 -1
  338. package/dist/src/web/hooks/use-display-mode.test.js.map +0 -1
  339. package/dist/src/web/hooks/use-files.d.ts +0 -10
  340. package/dist/src/web/hooks/use-files.js +0 -7
  341. package/dist/src/web/hooks/use-files.js.map +0 -1
  342. package/dist/src/web/hooks/use-files.test.js +0 -29
  343. package/dist/src/web/hooks/use-files.test.js.map +0 -1
  344. package/dist/src/web/hooks/use-locale.d.ts +0 -1
  345. package/dist/src/web/hooks/use-locale.js +0 -5
  346. package/dist/src/web/hooks/use-locale.js.map +0 -1
  347. package/dist/src/web/hooks/use-locale.test.js +0 -21
  348. package/dist/src/web/hooks/use-locale.test.js.map +0 -1
  349. package/dist/src/web/hooks/use-open-external.d.ts +0 -1
  350. package/dist/src/web/hooks/use-open-external.js +0 -6
  351. package/dist/src/web/hooks/use-open-external.js.map +0 -1
  352. package/dist/src/web/hooks/use-open-external.test.js +0 -24
  353. package/dist/src/web/hooks/use-open-external.test.js.map +0 -1
  354. package/dist/src/web/hooks/use-openai-global.d.ts +0 -2
  355. package/dist/src/web/hooks/use-openai-global.js +0 -23
  356. package/dist/src/web/hooks/use-openai-global.js.map +0 -1
  357. package/dist/src/web/hooks/use-request-modal.d.ts +0 -6
  358. package/dist/src/web/hooks/use-request-modal.js +0 -9
  359. package/dist/src/web/hooks/use-request-modal.js.map +0 -1
  360. package/dist/src/web/hooks/use-request-modal.test.js +0 -24
  361. package/dist/src/web/hooks/use-request-modal.test.js.map +0 -1
  362. package/dist/src/web/hooks/use-send-follow-up-message.js +0 -11
  363. package/dist/src/web/hooks/use-send-follow-up-message.js.map +0 -1
  364. package/dist/src/web/hooks/use-theme.d.ts +0 -1
  365. package/dist/src/web/hooks/use-theme.js +0 -5
  366. package/dist/src/web/hooks/use-theme.js.map +0 -1
  367. package/dist/src/web/hooks/use-theme.test.js +0 -26
  368. package/dist/src/web/hooks/use-theme.test.js.map +0 -1
  369. package/dist/src/web/hooks/use-tool-info.js +0 -22
  370. package/dist/src/web/hooks/use-tool-info.js.map +0 -1
  371. package/dist/src/web/hooks/use-tool-info.test-d.js.map +0 -1
  372. package/dist/src/web/hooks/use-tool-info.test.js +0 -59
  373. package/dist/src/web/hooks/use-tool-info.test.js.map +0 -1
  374. package/dist/src/web/hooks/use-tool-output.d.ts +0 -4
  375. package/dist/src/web/hooks/use-tool-output.js +0 -9
  376. package/dist/src/web/hooks/use-tool-output.js.map +0 -1
  377. package/dist/src/web/hooks/use-tool-response-metadata.d.ts +0 -4
  378. package/dist/src/web/hooks/use-tool-response-metadata.js +0 -8
  379. package/dist/src/web/hooks/use-tool-response-metadata.js.map +0 -1
  380. package/dist/src/web/hooks/use-user-agent.d.ts +0 -1
  381. package/dist/src/web/hooks/use-user-agent.js +0 -5
  382. package/dist/src/web/hooks/use-user-agent.js.map +0 -1
  383. package/dist/src/web/hooks/use-user-agent.test.js +0 -31
  384. package/dist/src/web/hooks/use-user-agent.test.js.map +0 -1
  385. package/dist/src/web/hooks/use-widget-state.d.ts +0 -4
  386. package/dist/src/web/hooks/use-widget-state.js +0 -30
  387. package/dist/src/web/hooks/use-widget-state.js.map +0 -1
  388. package/dist/src/web/hooks/use-widget-state.test.js +0 -60
  389. package/dist/src/web/hooks/use-widget-state.test.js.map +0 -1
  390. package/dist/src/web/index.d.ts +0 -5
  391. package/dist/src/web/index.js +0 -6
  392. package/dist/src/web/index.js.map +0 -1
  393. package/dist/src/web/mount-widget.d.ts +0 -1
  394. package/dist/src/web/mount-widget.js.map +0 -1
  395. package/dist/src/web/plugin.d.ts +0 -2
  396. package/dist/src/web/plugin.js +0 -28
  397. package/dist/src/web/plugin.js.map +0 -1
  398. package/dist/src/web/proxy.js.map +0 -1
  399. package/dist/src/web/typed-hooks.d.ts +0 -107
  400. package/dist/src/web/typed-hooks.js.map +0 -1
  401. package/dist/src/web/typed-hooks.test-d.js +0 -72
  402. package/dist/src/web/typed-hooks.test-d.js.map +0 -1
  403. package/dist/src/web/typed-hooks.test.js +0 -10
  404. package/dist/src/web/typed-hooks.test.js.map +0 -1
  405. package/dist/src/web/types.d.ts +0 -119
  406. package/dist/src/web/types.js.map +0 -1
  407. package/dist/vitest.config.d.ts +0 -2
  408. package/dist/vitest.config.js +0 -8
  409. package/dist/vitest.config.js.map +0 -1
  410. /package/dist/{src/test/widget.test.d.ts → cli/tunnel-control-server.test.d.ts} +0 -0
  411. /package/dist/{src/web/hooks/use-call-tool.test.d.ts → cli/tunnel-handler.test.d.ts} +0 -0
  412. /package/dist/{src/web/hooks/use-display-mode.test.d.ts → cli/tunnel.test.d.ts} +0 -0
  413. /package/dist/{src/web/hooks/use-files.test.d.ts → server/asset-base-url-transform-plugin.test.d.ts} +0 -0
  414. /package/dist/{src/web/hooks/use-locale.test.d.ts → server/content-helpers.test.d.ts} +0 -0
  415. /package/dist/{src/web/hooks/use-open-external.test.d.ts → server/express.test.d.ts} +0 -0
  416. /package/dist/{src/server → server}/inferUtilityTypes.js +0 -0
  417. /package/dist/{src/web/hooks/use-request-modal.test.d.ts → server/middleware.test-d.d.ts} +0 -0
  418. /package/dist/{src/web/hooks/use-theme.test.d.ts → server/middleware.test.d.ts} +0 -0
  419. /package/dist/{src/web/hooks/use-tool-info.test-d.d.ts → server/tunnel-proxy-router.test.d.ts} +0 -0
  420. /package/dist/{src/web/hooks/use-tool-info.test.d.ts → test/view.test.d.ts} +0 -0
  421. /package/dist/{src/web → web/bridges/apps-sdk}/types.js +0 -0
  422. /package/dist/{src/web/hooks/use-user-agent.test.d.ts → web/bridges/mcp-app/use-mcp-app-context.test.d.ts} +0 -0
  423. /package/dist/{src/web/hooks/use-widget-state.test.d.ts → web/create-store.test.d.ts} +0 -0
  424. /package/dist/{src/web/typed-hooks.test-d.d.ts → web/data-llm.test.d.ts} +0 -0
  425. /package/dist/{src/web/typed-hooks.test.d.ts → web/generate-helpers.test-d.d.ts} +0 -0
  426. /package/dist/{src/web → web}/hooks/use-send-follow-up-message.d.ts +0 -0
  427. /package/dist/{src/web → web}/proxy.d.ts +0 -0
@@ -1,31 +0,0 @@
1
- import { useUserAgent } from "./use-user-agent.js";
2
- import { describe, it, expect, vi, beforeEach, afterEach, } from "vitest";
3
- import { renderHook } from "@testing-library/react";
4
- describe("useUserAgent", () => {
5
- let OpenaiMock;
6
- beforeEach(() => {
7
- OpenaiMock = {
8
- userAgent: {
9
- device: { type: "mobile" },
10
- capabilities: { hover: false, touch: true },
11
- },
12
- };
13
- vi.stubGlobal("openai", OpenaiMock);
14
- });
15
- afterEach(() => {
16
- vi.unstubAllGlobals();
17
- vi.resetAllMocks();
18
- });
19
- it("should return the current user agent from window.openai.userAgent", () => {
20
- OpenaiMock.userAgent = {
21
- device: { type: "mobile" },
22
- capabilities: { hover: false, touch: true },
23
- };
24
- const { result } = renderHook(() => useUserAgent());
25
- expect(result.current).toEqual({
26
- device: { type: "mobile" },
27
- capabilities: { hover: false, touch: true },
28
- });
29
- });
30
- });
31
- //# sourceMappingURL=use-user-agent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-user-agent.test.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-user-agent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,EAAE,EACF,MAAM,EACN,EAAE,EACF,UAAU,EACV,SAAS,GAEV,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,UAEH,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG;YACX,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5C;SACF,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACtB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,UAAU,CAAC,SAAS,GAAG;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;SAC5C,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type SetStateAction } from "react";
2
- import type { UnknownObject } from "../types.js";
3
- export declare function useWidgetState<T extends UnknownObject>(defaultState: T | (() => T)): readonly [T, (state: SetStateAction<T>) => void];
4
- export declare function useWidgetState<T extends UnknownObject>(defaultState?: T | (() => T | null) | null): readonly [T | null, (state: SetStateAction<T | null>) => void];
@@ -1,30 +0,0 @@
1
- import { useCallback, useEffect, useState } from "react";
2
- import { useOpenAiGlobal } from "./use-openai-global.js";
3
- export function useWidgetState(defaultState) {
4
- const widgetStateFromWindow = useOpenAiGlobal("widgetState");
5
- const [widgetState, _setWidgetState] = useState(() => {
6
- if (widgetStateFromWindow !== null) {
7
- return widgetStateFromWindow;
8
- }
9
- return typeof defaultState === "function"
10
- ? defaultState()
11
- : defaultState ?? null;
12
- });
13
- useEffect(() => {
14
- // Fixes openai implementation bug
15
- if (widgetStateFromWindow !== null) {
16
- _setWidgetState(widgetStateFromWindow);
17
- }
18
- }, [widgetStateFromWindow]);
19
- const setWidgetState = useCallback((state) => {
20
- _setWidgetState((prevState) => {
21
- const newState = typeof state === "function" ? state(prevState) : state;
22
- if (newState !== null) {
23
- window.openai.setWidgetState(newState);
24
- }
25
- return newState;
26
- });
27
- }, [window.openai.setWidgetState]);
28
- return [widgetState, setWidgetState];
29
- }
30
- //# sourceMappingURL=use-widget-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-widget-state.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-widget-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAuB,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,MAAM,UAAU,cAAc,CAC5B,YAA0C;IAE1C,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAM,CAAC;IAElE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE;QAC7D,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,OAAO,OAAO,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,YAAY,EAAE;YAChB,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACnC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,KAA+B,EAAE,EAAE;QAClC,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAExE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAC/B,CAAC;IAEF,OAAO,CAAC,WAAW,EAAE,cAAc,CAAU,CAAC;AAChD,CAAC"}
@@ -1,60 +0,0 @@
1
- import { useWidgetState } from "./use-widget-state.js";
2
- import { describe, it, expect, vi, beforeEach, afterEach, } from "vitest";
3
- import { renderHook, act } from "@testing-library/react";
4
- describe("useWidgetState", () => {
5
- let OpenaiMock;
6
- beforeEach(() => {
7
- OpenaiMock = {
8
- widgetState: null,
9
- setWidgetState: vi.fn().mockResolvedValue(undefined),
10
- };
11
- vi.stubGlobal("openai", OpenaiMock);
12
- });
13
- afterEach(() => {
14
- vi.unstubAllGlobals();
15
- vi.resetAllMocks();
16
- });
17
- const defaultState = { count: 0, name: "test" };
18
- const windowState = { count: 5, name: "window" };
19
- it("should initialize with default state when window.openai.widgetState is null", () => {
20
- OpenaiMock.widgetState = null;
21
- const { result } = renderHook(() => useWidgetState(defaultState));
22
- expect(result.current[0]).toEqual(defaultState);
23
- });
24
- it("should initialize with window.openai.widgetState when available", () => {
25
- OpenaiMock.widgetState = windowState;
26
- const { result } = renderHook(() => useWidgetState(defaultState));
27
- expect(result.current[0]).toEqual(windowState);
28
- });
29
- it("should call window.openai.setWidgetState when setWidgetState is called with a new state", async () => {
30
- const { result } = renderHook(() => useWidgetState(defaultState));
31
- const newState = { count: 10, name: "updated" };
32
- act(() => {
33
- result.current[1](newState);
34
- });
35
- expect(OpenaiMock.setWidgetState).toHaveBeenCalledWith(newState);
36
- expect(result.current[0]).toEqual(newState);
37
- });
38
- it("should call window.openai.setWidgetState when setWidgetState is called with a function updater", async () => {
39
- const { result } = renderHook(() => useWidgetState(defaultState));
40
- act(() => {
41
- result.current[1]((prev) => ({ ...prev, count: prev.count + 1 }));
42
- });
43
- expect(OpenaiMock.setWidgetState).toHaveBeenCalledWith({
44
- count: 1,
45
- name: "test",
46
- });
47
- expect(result.current[0]).toEqual({ count: 1, name: "test" });
48
- });
49
- it("should update state when window.openai.widgetState changes", () => {
50
- OpenaiMock.widgetState = defaultState;
51
- const { result, rerender } = renderHook(() => useWidgetState(defaultState));
52
- expect(result.current[0]).toEqual(defaultState);
53
- // Simulate window.openai.widgetState changing
54
- OpenaiMock.widgetState = windowState;
55
- // Trigger re-render to simulate the useEffect running
56
- rerender();
57
- expect(result.current[0]).toEqual(windowState);
58
- });
59
- });
60
- //# sourceMappingURL=use-widget-state.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-widget-state.test.js","sourceRoot":"","sources":["../../../../src/web/hooks/use-widget-state.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from "./types.js";
2
- export { mountWidget } from "./mount-widget.js";
3
- export { skybridge } from "./plugin.js";
4
- export * from "./hooks/index.js";
5
- export { createTypedHooks } from "./typed-hooks.js";
@@ -1,6 +0,0 @@
1
- export * from "./types.js";
2
- export { mountWidget } from "./mount-widget.js";
3
- export { skybridge } from "./plugin.js";
4
- export * from "./hooks/index.js";
5
- export { createTypedHooks } from "./typed-hooks.js";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- export declare const mountWidget: (component: React.ReactNode) => void;
@@ -1 +0,0 @@
1
- {"version":3,"file":"mount-widget.js","sourceRoot":"","sources":["../../../src/web/mount-widget.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,IAAI,YAAY,GAAgB,IAAI,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAA0B,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Plugin } from "vite";
2
- export declare function skybridge(): Plugin;
@@ -1,28 +0,0 @@
1
- export function skybridge() {
2
- return {
3
- name: "skybridge",
4
- async config(config) {
5
- // Dynamic imports to ensure Node modules are only loaded in Node.js context
6
- const { globSync } = await import("node:fs");
7
- const { resolve } = await import("node:path");
8
- const projectRoot = config.root || process.cwd();
9
- const widgetsPattern = resolve(projectRoot, "src/widgets/*.{js,ts,jsx,tsx,html}");
10
- const input = Object.fromEntries(globSync(widgetsPattern).map((file) => [
11
- file.match(/src\/widgets\/(.+)\.tsx$/)?.[1],
12
- file,
13
- ]));
14
- return {
15
- base: "/assets",
16
- build: {
17
- manifest: true,
18
- minify: true,
19
- cssCodeSplit: false,
20
- rollupOptions: {
21
- input,
22
- },
23
- },
24
- };
25
- },
26
- };
27
- }
28
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/web/plugin.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,IAAI,EAAE,WAAW;QAEjB,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,4EAA4E;YAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAE9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACjD,MAAM,cAAc,GAAG,OAAO,CAC5B,WAAW,EACX,oCAAoC,CACrC,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3C,IAAI;aACL,CAAC,CACH,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,KAAK;oBACnB,aAAa,EAAE;wBACb,KAAK;qBACN;iBACF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/web/proxy.ts"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import { useCallTool } from "./hooks/use-call-tool.js";
2
- import type { ToolPendingState, ToolSuccessState } from "./hooks/use-tool-info.js";
3
- import type { McpServer, InferWidgets, AnyWidgetRegistry, WidgetInput, WidgetOutput } from "../server/index.js";
4
- import type { CallToolArgs, UnknownObject } from "./types.js";
5
- type TypedCallToolReturn<TInput, TOutput> = ReturnType<typeof useCallTool<TInput & CallToolArgs, {
6
- structuredContent: TOutput & UnknownObject;
7
- }>>;
8
- type TypedToolInfoReturn<TInput extends UnknownObject, TOutput extends UnknownObject, TResponseMetadata extends UnknownObject> = ToolPendingState<TInput> | ToolSuccessState<TInput, TOutput, TResponseMetadata>;
9
- /**
10
- * Creates typed versions of skybridge hooks with full type inference
11
- * for tool names, inputs, and outputs.
12
- *
13
- * This is the recommended way to use skybridge hooks in your widgets.
14
- * Set this up once in a dedicated file and export the typed hooks for use across your app.
15
- *
16
- * @typeParam T - The type of your McpServer instance. Use `typeof server`.
17
- *
18
- * @example
19
- * ```typescript
20
- * // server/src/index.ts
21
- * const server = new McpServer({ name: "my-app", version: "1.0" }, {})
22
- * .widget("search-voyage", {}, {
23
- * inputSchema: { destination: z.string() },
24
- * outputSchema: { results: z.array(z.string()) },
25
- * }, async ({ destination }) => {
26
- * return { content: [{ type: "text", text: `Found trips to ${destination}` }] };
27
- * });
28
- *
29
- * export type AppType = typeof server;
30
- * ```
31
- *
32
- * @example
33
- * ```typescript
34
- * // web/src/skybridge.ts (one-time setup)
35
- * import type { AppType } from "../server";
36
- * import { createTypedHooks } from "skybridge/web";
37
- *
38
- * export const { useCallTool, useToolInfo } = createTypedHooks<AppType>();
39
- * ```
40
- *
41
- * @example
42
- * ```typescript
43
- * // web/src/widgets/search.tsx (usage)
44
- * import { useCallTool, useToolInfo } from "../skybridge";
45
- *
46
- * export function SearchWidget() {
47
- * const { callTool, data } = useCallTool("search-voyage");
48
- * // ^ autocomplete for tool names
49
- * callTool({ destination: "Spain" });
50
- * // ^ autocomplete for input fields
51
- *
52
- * const toolInfo = useToolInfo<"search-voyage">();
53
- * // ^ autocomplete for widget names
54
- * // toolInfo.input is typed based on widget input schema
55
- * // toolInfo.output is typed based on widget output schema
56
- * }
57
- * ```
58
- */
59
- export declare function createTypedHooks<T extends McpServer<AnyWidgetRegistry>>(): {
60
- /**
61
- * Typed version of `useCallTool` that provides autocomplete for tool names
62
- * and type inference for inputs and outputs.
63
- *
64
- * @param name - The name of the widget to call. Autocompletes based on your server's widget registry.
65
- * @returns A hook with typed `callTool` function and `data` property.
66
- *
67
- * @example
68
- * ```typescript
69
- * const { callTool, data, isPending } = useCallTool("search-voyage");
70
- * // TypeScript knows callTool expects { destination: string }
71
- * callTool({ destination: "Spain" });
72
- *
73
- * // data.structuredContent is typed based on your outputSchema
74
- * if (data) {
75
- * console.log(data.structuredContent.results);
76
- * }
77
- * ```
78
- */
79
- useCallTool: <K extends keyof InferWidgets<T> & string>(name: K) => TypedCallToolReturn<InferWidgets<T>[K]["input"], InferWidgets<T>[K]["output"]>;
80
- /**
81
- * Typed version of `useToolInfo` that provides autocomplete for widget names
82
- * and type inference for inputs, outputs, and responseMetadata.
83
- *
84
- * @typeParam K - The name of the widget. Autocompletes based on your server's widget registry.
85
- * @returns A discriminated union with `status: "pending" | "success"` that narrows correctly.
86
- *
87
- * @example
88
- * ```typescript
89
- * const toolInfo = useToolInfo<"search-voyage">();
90
- * // toolInfo.input is typed as { destination: string; ... }
91
- * // toolInfo.output is typed as { results: Array<...>; ... } | undefined
92
- * // toolInfo.status narrows correctly: "pending" | "success"
93
- *
94
- * if (toolInfo.isPending) {
95
- * // TypeScript knows output is undefined here
96
- * console.log(toolInfo.input.destination);
97
- * }
98
- *
99
- * if (toolInfo.isSuccess) {
100
- * // TypeScript knows output is defined here
101
- * console.log(toolInfo.output.results);
102
- * }
103
- * ```
104
- */
105
- useToolInfo: <K extends keyof InferWidgets<T> & string>() => TypedToolInfoReturn<WidgetInput<T, K> & UnknownObject, WidgetOutput<T, K> & UnknownObject, UnknownObject>;
106
- };
107
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-hooks.js","sourceRoot":"","sources":["../../../src/web/typed-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAgCvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,gBAAgB;IAI9B,OAAO;QACL;;;;;;;;;;;;;;;;;;WAkBG;QACH,WAAW,EAAE,CACX,IAAO,EAIP,EAAE;YACF,wEAAwE;YACxE,0FAA0F;YAC1F,OAAO,WAAW,CAGhB,IAAI,CAGL,CAAC;QACJ,CAAC;QACD;;;;;;;;;;;;;;;;;;;;;;;;WAwBG;QACH,WAAW,EAAE,GAIX,EAAE;YACF,wEAAwE;YACxE,0FAA0F;YAC1F,OAAO,WAAW,EAQjB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,72 +0,0 @@
1
- import { expectTypeOf, test } from "vitest";
2
- import { createTypedHooks } from "./typed-hooks.js";
3
- test("InferWidgets extracts the widget registry type", () => {
4
- expectTypeOf().toHaveProperty("search-voyage");
5
- expectTypeOf().toHaveProperty("get-trip-details");
6
- expectTypeOf().toHaveProperty("no-input-widget");
7
- });
8
- test("WidgetNames returns a union of widget name literals", () => {
9
- expectTypeOf().toEqualTypeOf();
10
- });
11
- test("WidgetInput extracts the correct input type from Zod schema", () => {
12
- expectTypeOf().toEqualTypeOf();
13
- expectTypeOf().toEqualTypeOf();
14
- });
15
- test("WidgetOutput extracts the correct output type from Zod schema", () => {
16
- expectTypeOf().toEqualTypeOf();
17
- expectTypeOf().toEqualTypeOf();
18
- });
19
- test("createTypedHooks provides autocomplete for widget names", () => {
20
- const { useCallTool } = createTypedHooks();
21
- useCallTool("search-voyage");
22
- useCallTool("get-trip-details");
23
- useCallTool("no-input-widget");
24
- // @ts-expect-error - "invalid-name" is not a valid widget name
25
- useCallTool("invalid-name");
26
- });
27
- test("useCallTool returns correctly typed callTool function", () => {
28
- const { useCallTool } = createTypedHooks();
29
- const { callTool } = useCallTool("search-voyage");
30
- callTool({ destination: "Spain" });
31
- callTool({ destination: "France", departureDate: "2024-06-01" });
32
- callTool({ destination: "Italy", maxPrice: 1000 });
33
- });
34
- test("useCallTool returns correctly typed data", () => {
35
- const { useCallTool } = createTypedHooks();
36
- const { data } = useCallTool("search-voyage");
37
- if (data) {
38
- expectTypeOf(data.structuredContent).toExtend();
39
- expectTypeOf(data.structuredContent.results).toBeArray();
40
- expectTypeOf(data.structuredContent.totalCount).toBeNumber();
41
- }
42
- });
43
- test("widgets with no outputSchema have empty object output type", () => {
44
- expectTypeOf().toEqualTypeOf();
45
- });
46
- test("createTypedHooks provides autocomplete for widget names in useToolInfo", () => {
47
- const { useToolInfo } = createTypedHooks();
48
- useToolInfo();
49
- useToolInfo();
50
- useToolInfo();
51
- // @ts-expect-error - "invalid-name" is not a valid widget name
52
- useToolInfo();
53
- });
54
- test("useToolInfo infers input types from WidgetInput utility", () => {
55
- const { useToolInfo } = createTypedHooks();
56
- const toolInfo = useToolInfo();
57
- expectTypeOf(toolInfo.input).toExtend();
58
- const detailsInfo = useToolInfo();
59
- expectTypeOf(detailsInfo.input).toExtend();
60
- });
61
- test("useToolInfo infers output types from WidgetOutput utility", () => {
62
- const { useToolInfo } = createTypedHooks();
63
- const toolInfo = useToolInfo();
64
- if (toolInfo.status === "success") {
65
- expectTypeOf(toolInfo.output).toExtend();
66
- }
67
- const detailsInfo = useToolInfo();
68
- if (detailsInfo.status === "success") {
69
- expectTypeOf(detailsInfo.output).toExtend();
70
- }
71
- });
72
- //# sourceMappingURL=typed-hooks.test-d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-hooks.test-d.js","sourceRoot":"","sources":["../../../src/web/typed-hooks.test-d.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { createTypedHooks } from "./typed-hooks.js";
3
- describe("createTypedHooks", () => {
4
- it("should return an object with useCallTool hook", () => {
5
- const hooks = createTypedHooks();
6
- expect(hooks).toHaveProperty("useCallTool");
7
- expect(typeof hooks.useCallTool).toBe("function");
8
- });
9
- });
10
- //# sourceMappingURL=typed-hooks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-hooks.test.js","sourceRoot":"","sources":["../../../src/web/typed-hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAYpD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,gBAAgB,EAAc,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,119 +0,0 @@
1
- export type UnknownObject = Record<string, unknown>;
2
- type WidgetState = UnknownObject;
3
- type FileMetadata = {
4
- fileId: string;
5
- };
6
- export declare const TOOL_RESPONSE_EVENT_TYPE = "openai:tool_response";
7
- export declare class ToolResponseEvent extends CustomEvent<{
8
- tool: {
9
- name: string;
10
- args: UnknownObject;
11
- };
12
- }> {
13
- readonly type = "openai:tool_response";
14
- }
15
- declare global {
16
- interface Window {
17
- openai: API<WidgetState> & OpenAiGlobals;
18
- }
19
- interface WindowEventMap {
20
- [SET_GLOBALS_EVENT_TYPE]: SetGlobalsEvent;
21
- }
22
- }
23
- export type OpenAiGlobals<ToolInput extends UnknownObject = {}, ToolOutput extends UnknownObject = UnknownObject, ToolResponseMetadata extends UnknownObject = UnknownObject, WidgetState extends UnknownObject = UnknownObject> = {
24
- theme: Theme;
25
- userAgent: UserAgent;
26
- locale: string;
27
- maxHeight: number;
28
- displayMode: DisplayMode;
29
- safeArea: SafeArea;
30
- toolInput: ToolInput;
31
- toolOutput: ToolOutput | {
32
- text: string;
33
- } | null;
34
- toolResponseMetadata: ToolResponseMetadata | null;
35
- widgetState: WidgetState | null;
36
- };
37
- export type CallToolArgs = Record<string, unknown> | null;
38
- export type CallToolResponse = {
39
- content: {
40
- type: "text";
41
- text: string;
42
- }[];
43
- structuredContent: Record<string, unknown>;
44
- isError: boolean;
45
- result: string;
46
- meta: Record<string, unknown>;
47
- };
48
- type API<WidgetState extends UnknownObject> = {
49
- /** Calls a tool on your MCP. Returns the full response. */
50
- callTool: <ToolArgs extends CallToolArgs = null, ToolResponse extends CallToolResponse = CallToolResponse>(name: string, args: ToolArgs) => Promise<ToolResponse>;
51
- /** Triggers a followup turn in the ChatGPT conversation */
52
- sendFollowUpMessage: (args: {
53
- prompt: string;
54
- }) => Promise<void>;
55
- /** Opens an external link, redirects web page or mobile app */
56
- openExternal(args: {
57
- href: string;
58
- }): void;
59
- /** For transitioning an app from inline to fullscreen or pip */
60
- requestDisplayMode: (args: {
61
- mode: DisplayMode;
62
- }) => Promise<{
63
- /**
64
- * The granted display mode. The host may reject the request.
65
- * For mobile, PiP is always coerced to fullscreen.
66
- */
67
- mode: DisplayMode;
68
- }>;
69
- /**
70
- * Sets the widget state.
71
- * This state is persisted across widget renders.
72
- */
73
- setWidgetState: (state: WidgetState) => Promise<void>;
74
- /**
75
- * Opens a modal portaled outside of the widget iFrame.
76
- * This ensures the modal is correctly displayed and not limited to the widget's area.
77
- */
78
- requestModal: (args: {
79
- title: string;
80
- }) => Promise<void>;
81
- /** Uploads a new file to the host */
82
- uploadFile: (file: File) => Promise<FileMetadata>;
83
- /**
84
- * Downloads a file from the host that was previously uploaded.
85
- * Only files uploaded by the same connector instance can be downloaded.
86
- */
87
- downloadFile: (file: FileMetadata) => Promise<{
88
- downloadUrl: string;
89
- }>;
90
- };
91
- export declare const SET_GLOBALS_EVENT_TYPE = "openai:set_globals";
92
- export declare class SetGlobalsEvent extends CustomEvent<{
93
- globals: Partial<OpenAiGlobals>;
94
- }> {
95
- readonly type = "openai:set_globals";
96
- }
97
- export type CallTool = (name: string, args: Record<string, unknown>) => Promise<CallToolResponse>;
98
- export type DisplayMode = "pip" | "inline" | "fullscreen";
99
- export type Theme = "light" | "dark";
100
- export type SafeAreaInsets = {
101
- top: number;
102
- bottom: number;
103
- left: number;
104
- right: number;
105
- };
106
- export type SafeArea = {
107
- insets: SafeAreaInsets;
108
- };
109
- export type DeviceType = "mobile" | "tablet" | "desktop" | "unknown";
110
- export type UserAgent = {
111
- device: {
112
- type: DeviceType;
113
- };
114
- capabilities: {
115
- hover: boolean;
116
- touch: boolean;
117
- };
118
- };
119
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,WAErC;IACkB,IAAI,GAAG,wBAAwB,CAAC;CACnD;AA8FD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,OAAO,eAAgB,SAAQ,WAEnC;IACkB,IAAI,GAAG,sBAAsB,CAAC;CACjD"}
@@ -1,2 +0,0 @@
1
- declare const _default: import("vite").UserConfig;
2
- export default _default;
@@ -1,8 +0,0 @@
1
- import { defineConfig } from "vitest/config";
2
- export default defineConfig({
3
- test: {
4
- environment: "jsdom",
5
- globals: true,
6
- },
7
- });
8
- //# sourceMappingURL=vitest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC"}
File without changes
File without changes