@vibesdotdev/applets 0.0.0-stage → 1.0.0-rc.3

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 (421) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +43 -2
  3. package/dist/applet-gate.d.ts +47 -0
  4. package/dist/applet-gate.d.ts.map +1 -0
  5. package/dist/applet-gate.js +167 -0
  6. package/dist/applet-gate.js.map +1 -0
  7. package/dist/applet-root-surface.d.ts +135 -0
  8. package/dist/applet-root-surface.d.ts.map +1 -0
  9. package/dist/applet-root-surface.js +222 -0
  10. package/dist/applet-root-surface.js.map +1 -0
  11. package/dist/applet-value-bound.d.ts +24 -0
  12. package/dist/applet-value-bound.d.ts.map +1 -0
  13. package/dist/applet-value-bound.js +46 -0
  14. package/dist/applet-value-bound.js.map +1 -0
  15. package/dist/applets.cloud.plugin.d.ts +4 -0
  16. package/dist/applets.cloud.plugin.d.ts.map +1 -0
  17. package/dist/applets.cloud.plugin.js +11 -0
  18. package/dist/applets.cloud.plugin.js.map +1 -0
  19. package/dist/applets.consumer.plugin.d.ts +4 -0
  20. package/dist/applets.consumer.plugin.d.ts.map +1 -0
  21. package/dist/applets.consumer.plugin.js +11 -0
  22. package/dist/applets.consumer.plugin.js.map +1 -0
  23. package/dist/applets.plugin.d.ts +3 -0
  24. package/dist/applets.plugin.d.ts.map +1 -0
  25. package/dist/applets.plugin.js +30 -0
  26. package/dist/applets.plugin.js.map +1 -0
  27. package/dist/authorization.d.ts +87 -0
  28. package/dist/authorization.d.ts.map +1 -0
  29. package/dist/authorization.js +189 -0
  30. package/dist/authorization.js.map +1 -0
  31. package/dist/browser-runtime.d.ts +34 -0
  32. package/dist/browser-runtime.d.ts.map +1 -0
  33. package/dist/browser-runtime.js +5 -0
  34. package/dist/browser-runtime.js.map +1 -0
  35. package/dist/build-definition.d.ts +34 -0
  36. package/dist/build-definition.d.ts.map +1 -0
  37. package/dist/build-definition.js +44 -0
  38. package/dist/build-definition.js.map +1 -0
  39. package/dist/capabilities/capability.kind.d.ts +44 -0
  40. package/dist/capabilities/capability.kind.d.ts.map +1 -0
  41. package/dist/capabilities/capability.kind.js +17 -0
  42. package/dist/capabilities/capability.kind.js.map +1 -0
  43. package/dist/capabilities/runtime-dispatch.d.ts +9 -0
  44. package/dist/capabilities/runtime-dispatch.d.ts.map +1 -0
  45. package/dist/capabilities/runtime-dispatch.js +62 -0
  46. package/dist/capabilities/runtime-dispatch.js.map +1 -0
  47. package/dist/cli/applet-group.descriptor.d.ts +11 -0
  48. package/dist/cli/applet-group.descriptor.d.ts.map +1 -0
  49. package/dist/cli/applet-group.descriptor.js +19 -0
  50. package/dist/cli/applet-group.descriptor.js.map +1 -0
  51. package/dist/cli/applet-local-store.storage.descriptor.d.ts +66 -0
  52. package/dist/cli/applet-local-store.storage.descriptor.d.ts.map +1 -0
  53. package/dist/cli/applet-local-store.storage.descriptor.js +39 -0
  54. package/dist/cli/applet-local-store.storage.descriptor.js.map +1 -0
  55. package/dist/cli/applet-serve.process.descriptor.d.ts +37 -0
  56. package/dist/cli/applet-serve.process.descriptor.d.ts.map +1 -0
  57. package/dist/cli/applet-serve.process.descriptor.js +41 -0
  58. package/dist/cli/applet-serve.process.descriptor.js.map +1 -0
  59. package/dist/cli/commands/build.command.descriptor.d.ts +40 -0
  60. package/dist/cli/commands/build.command.descriptor.d.ts.map +1 -0
  61. package/dist/cli/commands/build.command.descriptor.js +52 -0
  62. package/dist/cli/commands/build.command.descriptor.js.map +1 -0
  63. package/dist/cli/commands/build.command.impl.d.ts +8 -0
  64. package/dist/cli/commands/build.command.impl.d.ts.map +1 -0
  65. package/dist/cli/commands/build.command.impl.js +116 -0
  66. package/dist/cli/commands/build.command.impl.js.map +1 -0
  67. package/dist/cli/commands/init.command.descriptor.d.ts +29 -0
  68. package/dist/cli/commands/init.command.descriptor.d.ts.map +1 -0
  69. package/dist/cli/commands/init.command.descriptor.js +23 -0
  70. package/dist/cli/commands/init.command.descriptor.js.map +1 -0
  71. package/dist/cli/commands/init.command.impl.d.ts +7 -0
  72. package/dist/cli/commands/init.command.impl.d.ts.map +1 -0
  73. package/dist/cli/commands/init.command.impl.js +64 -0
  74. package/dist/cli/commands/init.command.impl.js.map +1 -0
  75. package/dist/cli/commands/list.command.descriptor.d.ts +26 -0
  76. package/dist/cli/commands/list.command.descriptor.d.ts.map +1 -0
  77. package/dist/cli/commands/list.command.descriptor.js +22 -0
  78. package/dist/cli/commands/list.command.descriptor.js.map +1 -0
  79. package/dist/cli/commands/list.command.impl.d.ts +13 -0
  80. package/dist/cli/commands/list.command.impl.d.ts.map +1 -0
  81. package/dist/cli/commands/list.command.impl.js +47 -0
  82. package/dist/cli/commands/list.command.impl.js.map +1 -0
  83. package/dist/cli/commands/serve-stylesheet.d.ts +11 -0
  84. package/dist/cli/commands/serve-stylesheet.d.ts.map +1 -0
  85. package/dist/cli/commands/serve-stylesheet.js +50 -0
  86. package/dist/cli/commands/serve-stylesheet.js.map +1 -0
  87. package/dist/cli/commands/serve-surface.d.ts +36 -0
  88. package/dist/cli/commands/serve-surface.d.ts.map +1 -0
  89. package/dist/cli/commands/serve-surface.js +410 -0
  90. package/dist/cli/commands/serve-surface.js.map +1 -0
  91. package/dist/cli/commands/serve.command.descriptor.d.ts +42 -0
  92. package/dist/cli/commands/serve.command.descriptor.d.ts.map +1 -0
  93. package/dist/cli/commands/serve.command.descriptor.js +46 -0
  94. package/dist/cli/commands/serve.command.descriptor.js.map +1 -0
  95. package/dist/cli/commands/serve.command.impl.d.ts +110 -0
  96. package/dist/cli/commands/serve.command.impl.d.ts.map +1 -0
  97. package/dist/cli/commands/serve.command.impl.js +1105 -0
  98. package/dist/cli/commands/serve.command.impl.js.map +1 -0
  99. package/dist/cli/commands/serve.schemas.d.ts +127 -0
  100. package/dist/cli/commands/serve.schemas.d.ts.map +1 -0
  101. package/dist/cli/commands/serve.schemas.js +85 -0
  102. package/dist/cli/commands/serve.schemas.js.map +1 -0
  103. package/dist/cli/commands/served-applet-browser.d.ts +12 -0
  104. package/dist/cli/commands/served-applet-browser.d.ts.map +1 -0
  105. package/dist/cli/commands/served-applet-browser.js +48 -0
  106. package/dist/cli/commands/served-applet-browser.js.map +1 -0
  107. package/dist/cli/commands/served-applet-connection.d.ts +15 -0
  108. package/dist/cli/commands/served-applet-connection.d.ts.map +1 -0
  109. package/dist/cli/commands/served-applet-connection.js +25 -0
  110. package/dist/cli/commands/served-applet-connection.js.map +1 -0
  111. package/dist/cli/commands/served-applet-rpc.d.ts +16 -0
  112. package/dist/cli/commands/served-applet-rpc.d.ts.map +1 -0
  113. package/dist/cli/commands/served-applet-rpc.js +108 -0
  114. package/dist/cli/commands/served-applet-rpc.js.map +1 -0
  115. package/dist/cli/commands/served-applet-surface.d.ts +14 -0
  116. package/dist/cli/commands/served-applet-surface.d.ts.map +1 -0
  117. package/dist/cli/commands/served-applet-surface.js +99 -0
  118. package/dist/cli/commands/served-applet-surface.js.map +1 -0
  119. package/dist/cli/commands/templates.command.descriptor.d.ts +22 -0
  120. package/dist/cli/commands/templates.command.descriptor.d.ts.map +1 -0
  121. package/dist/cli/commands/templates.command.descriptor.js +21 -0
  122. package/dist/cli/commands/templates.command.descriptor.js.map +1 -0
  123. package/dist/cli/commands/templates.command.impl.d.ts +35 -0
  124. package/dist/cli/commands/templates.command.impl.d.ts.map +1 -0
  125. package/dist/cli/commands/templates.command.impl.js +59 -0
  126. package/dist/cli/commands/templates.command.impl.js.map +1 -0
  127. package/dist/cli/index.d.ts +7 -0
  128. package/dist/cli/index.d.ts.map +1 -0
  129. package/dist/cli/index.js +7 -0
  130. package/dist/cli/index.js.map +1 -0
  131. package/dist/cli/local-serve.authz-policy.descriptor.d.ts +22 -0
  132. package/dist/cli/local-serve.authz-policy.descriptor.d.ts.map +1 -0
  133. package/dist/cli/local-serve.authz-policy.descriptor.js +13 -0
  134. package/dist/cli/local-serve.authz-policy.descriptor.js.map +1 -0
  135. package/dist/cli/plugin.d.ts +19 -0
  136. package/dist/cli/plugin.d.ts.map +1 -0
  137. package/dist/cli/plugin.js +57 -0
  138. package/dist/cli/plugin.js.map +1 -0
  139. package/dist/cli/project-files.d.ts +48 -0
  140. package/dist/cli/project-files.d.ts.map +1 -0
  141. package/dist/cli/project-files.js +130 -0
  142. package/dist/cli/project-files.js.map +1 -0
  143. package/dist/client/contract.d.ts +113 -0
  144. package/dist/client/contract.d.ts.map +1 -0
  145. package/dist/client/contract.js +17 -0
  146. package/dist/client/contract.js.map +1 -0
  147. package/dist/client/index.d.ts +3 -0
  148. package/dist/client/index.d.ts.map +1 -0
  149. package/dist/client/index.js +3 -0
  150. package/dist/client/index.js.map +1 -0
  151. package/dist/client/repository.context.d.ts +113 -0
  152. package/dist/client/repository.context.d.ts.map +1 -0
  153. package/dist/client/repository.context.js +8 -0
  154. package/dist/client/repository.context.js.map +1 -0
  155. package/dist/client/runtime-client.d.ts +22 -0
  156. package/dist/client/runtime-client.d.ts.map +1 -0
  157. package/dist/client/runtime-client.js +200 -0
  158. package/dist/client/runtime-client.js.map +1 -0
  159. package/dist/companion-path.d.ts +25 -0
  160. package/dist/companion-path.d.ts.map +1 -0
  161. package/dist/companion-path.js +90 -0
  162. package/dist/companion-path.js.map +1 -0
  163. package/dist/component-ref.d.ts +12 -0
  164. package/dist/component-ref.d.ts.map +1 -0
  165. package/dist/component-ref.js +45 -0
  166. package/dist/component-ref.js.map +1 -0
  167. package/dist/composition-plan.d.ts +92 -0
  168. package/dist/composition-plan.d.ts.map +1 -0
  169. package/dist/composition-plan.js +44 -0
  170. package/dist/composition-plan.js.map +1 -0
  171. package/dist/composition.d.ts +97 -0
  172. package/dist/composition.d.ts.map +1 -0
  173. package/dist/composition.js +99 -0
  174. package/dist/composition.js.map +1 -0
  175. package/dist/config/applets.config.descriptor.d.ts +55 -0
  176. package/dist/config/applets.config.descriptor.d.ts.map +1 -0
  177. package/dist/config/applets.config.descriptor.js +37 -0
  178. package/dist/config/applets.config.descriptor.js.map +1 -0
  179. package/dist/config/load.d.ts +4 -0
  180. package/dist/config/load.d.ts.map +1 -0
  181. package/dist/config/load.js +12 -0
  182. package/dist/config/load.js.map +1 -0
  183. package/dist/content-path.d.ts +62 -0
  184. package/dist/content-path.d.ts.map +1 -0
  185. package/dist/content-path.js +121 -0
  186. package/dist/content-path.js.map +1 -0
  187. package/dist/contribution-registry.d.ts +270 -0
  188. package/dist/contribution-registry.d.ts.map +1 -0
  189. package/dist/contribution-registry.js +488 -0
  190. package/dist/contribution-registry.js.map +1 -0
  191. package/dist/docs/applets.docs.descriptor.d.ts +4 -0
  192. package/dist/docs/applets.docs.descriptor.d.ts.map +1 -0
  193. package/dist/docs/applets.docs.descriptor.js +74 -0
  194. package/dist/docs/applets.docs.descriptor.js.map +1 -0
  195. package/dist/host/local-host.contract.d.ts +7 -0
  196. package/dist/host/local-host.contract.d.ts.map +1 -0
  197. package/dist/host/local-host.contract.js +2 -0
  198. package/dist/host/local-host.contract.js.map +1 -0
  199. package/dist/host/local-host.impl.d.ts +9 -0
  200. package/dist/host/local-host.impl.d.ts.map +1 -0
  201. package/dist/host/local-host.impl.js +41 -0
  202. package/dist/host/local-host.impl.js.map +1 -0
  203. package/dist/host/local-host.plugin.d.ts +3 -0
  204. package/dist/host/local-host.plugin.d.ts.map +1 -0
  205. package/dist/host/local-host.plugin.js +16 -0
  206. package/dist/host/local-host.plugin.js.map +1 -0
  207. package/dist/index.d.ts +28 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +27 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/local-project.d.ts +106 -0
  212. package/dist/local-project.d.ts.map +1 -0
  213. package/dist/local-project.js +277 -0
  214. package/dist/local-project.js.map +1 -0
  215. package/dist/manifest-hash.d.ts +12 -0
  216. package/dist/manifest-hash.d.ts.map +1 -0
  217. package/dist/manifest-hash.js +76 -0
  218. package/dist/manifest-hash.js.map +1 -0
  219. package/dist/presentation.d.ts +43 -0
  220. package/dist/presentation.d.ts.map +1 -0
  221. package/dist/presentation.js +36 -0
  222. package/dist/presentation.js.map +1 -0
  223. package/dist/retention.d.ts +34 -0
  224. package/dist/retention.d.ts.map +1 -0
  225. package/dist/retention.js +51 -0
  226. package/dist/retention.js.map +1 -0
  227. package/dist/schemas/applet-messages.d.ts +97 -0
  228. package/dist/schemas/applet-messages.d.ts.map +1 -0
  229. package/dist/schemas/applet-messages.js +51 -0
  230. package/dist/schemas/applet-messages.js.map +1 -0
  231. package/dist/schemas/capabilities.d.ts +37 -0
  232. package/dist/schemas/capabilities.d.ts.map +1 -0
  233. package/dist/schemas/capabilities.js +28 -0
  234. package/dist/schemas/capabilities.js.map +1 -0
  235. package/dist/schemas/component-release-ref.d.ts +13 -0
  236. package/dist/schemas/component-release-ref.d.ts.map +1 -0
  237. package/dist/schemas/component-release-ref.js +21 -0
  238. package/dist/schemas/component-release-ref.js.map +1 -0
  239. package/dist/schemas/contributes.d.ts +306 -0
  240. package/dist/schemas/contributes.d.ts.map +1 -0
  241. package/dist/schemas/contributes.js +184 -0
  242. package/dist/schemas/contributes.js.map +1 -0
  243. package/dist/schemas/definition.d.ts +301 -0
  244. package/dist/schemas/definition.d.ts.map +1 -0
  245. package/dist/schemas/definition.js +457 -0
  246. package/dist/schemas/definition.js.map +1 -0
  247. package/dist/schemas/dispatch.d.ts +52 -0
  248. package/dist/schemas/dispatch.d.ts.map +1 -0
  249. package/dist/schemas/dispatch.js +32 -0
  250. package/dist/schemas/dispatch.js.map +1 -0
  251. package/dist/schemas/grants.d.ts +56 -0
  252. package/dist/schemas/grants.d.ts.map +1 -0
  253. package/dist/schemas/grants.js +64 -0
  254. package/dist/schemas/grants.js.map +1 -0
  255. package/dist/schemas/index.d.ts +16 -0
  256. package/dist/schemas/index.d.ts.map +1 -0
  257. package/dist/schemas/index.js +16 -0
  258. package/dist/schemas/index.js.map +1 -0
  259. package/dist/schemas/instance.d.ts +230 -0
  260. package/dist/schemas/instance.d.ts.map +1 -0
  261. package/dist/schemas/instance.js +44 -0
  262. package/dist/schemas/instance.js.map +1 -0
  263. package/dist/schemas/lineage.d.ts +60 -0
  264. package/dist/schemas/lineage.d.ts.map +1 -0
  265. package/dist/schemas/lineage.js +52 -0
  266. package/dist/schemas/lineage.js.map +1 -0
  267. package/dist/schemas/observation.d.ts +70 -0
  268. package/dist/schemas/observation.d.ts.map +1 -0
  269. package/dist/schemas/observation.js +49 -0
  270. package/dist/schemas/observation.js.map +1 -0
  271. package/dist/schemas/patterns.d.ts +24 -0
  272. package/dist/schemas/patterns.d.ts.map +1 -0
  273. package/dist/schemas/patterns.js +24 -0
  274. package/dist/schemas/patterns.js.map +1 -0
  275. package/dist/schemas/publishing.d.ts +27 -0
  276. package/dist/schemas/publishing.d.ts.map +1 -0
  277. package/dist/schemas/publishing.js +20 -0
  278. package/dist/schemas/publishing.js.map +1 -0
  279. package/dist/schemas/run.d.ts +35 -0
  280. package/dist/schemas/run.d.ts.map +1 -0
  281. package/dist/schemas/run.js +26 -0
  282. package/dist/schemas/run.js.map +1 -0
  283. package/dist/schemas/share-link.d.ts +61 -0
  284. package/dist/schemas/share-link.d.ts.map +1 -0
  285. package/dist/schemas/share-link.js +68 -0
  286. package/dist/schemas/share-link.js.map +1 -0
  287. package/dist/schemas/state-events.d.ts +66 -0
  288. package/dist/schemas/state-events.d.ts.map +1 -0
  289. package/dist/schemas/state-events.js +66 -0
  290. package/dist/schemas/state-events.js.map +1 -0
  291. package/dist/schemas/subscription.d.ts +47 -0
  292. package/dist/schemas/subscription.d.ts.map +1 -0
  293. package/dist/schemas/subscription.js +46 -0
  294. package/dist/schemas/subscription.js.map +1 -0
  295. package/dist/schemas/template-revision.d.ts +53 -0
  296. package/dist/schemas/template-revision.d.ts.map +1 -0
  297. package/dist/schemas/template-revision.js +30 -0
  298. package/dist/schemas/template-revision.js.map +1 -0
  299. package/dist/selection.d.ts +22 -0
  300. package/dist/selection.d.ts.map +1 -0
  301. package/dist/selection.js +21 -0
  302. package/dist/selection.js.map +1 -0
  303. package/dist/storage/index.d.ts +27 -0
  304. package/dist/storage/index.d.ts.map +1 -0
  305. package/dist/storage/index.js +27 -0
  306. package/dist/storage/index.js.map +1 -0
  307. package/dist/storage/records.d.ts +28 -0
  308. package/dist/storage/records.d.ts.map +1 -0
  309. package/dist/storage/records.js +272 -0
  310. package/dist/storage/records.js.map +1 -0
  311. package/dist/svelte/applets-svelte.plugin.d.ts +38 -0
  312. package/dist/svelte/applets-svelte.plugin.d.ts.map +1 -0
  313. package/dist/svelte/applets-svelte.plugin.js +25 -0
  314. package/dist/svelte/components/AppletCanvas.svelte +488 -0
  315. package/dist/svelte/components/AppletCanvas.svelte.d.ts +53 -0
  316. package/dist/svelte/components/AppletCanvas.svelte.d.ts.map +1 -0
  317. package/dist/svelte/components/AppletCatalog.svelte +42 -0
  318. package/dist/svelte/components/AppletCatalog.svelte.d.ts +8 -0
  319. package/dist/svelte/components/AppletCatalog.svelte.d.ts.map +1 -0
  320. package/dist/svelte/components/AppletComposition.svelte +128 -0
  321. package/dist/svelte/components/AppletComposition.svelte.d.ts +30 -0
  322. package/dist/svelte/components/AppletComposition.svelte.d.ts.map +1 -0
  323. package/dist/svelte/components/AppletConsent.svelte +143 -0
  324. package/dist/svelte/components/AppletConsent.svelte.d.ts +12 -0
  325. package/dist/svelte/components/AppletConsent.svelte.d.ts.map +1 -0
  326. package/dist/svelte/components/LocalAppletView.svelte +102 -0
  327. package/dist/svelte/components/LocalAppletView.svelte.d.ts +13 -0
  328. package/dist/svelte/components/LocalAppletView.svelte.d.ts.map +1 -0
  329. package/dist/svelte/components/RunnableTracker.svelte +51 -0
  330. package/dist/svelte/components/RunnableTracker.svelte.d.ts +18 -0
  331. package/dist/svelte/components/RunnableTracker.svelte.d.ts.map +1 -0
  332. package/dist/svelte/index.d.ts +11 -0
  333. package/dist/svelte/index.d.ts.map +1 -0
  334. package/dist/svelte/index.js +10 -0
  335. package/dist/svelte/lib/canvas-lifecycle.d.ts +68 -0
  336. package/dist/svelte/lib/canvas-lifecycle.d.ts.map +1 -0
  337. package/dist/svelte/lib/canvas-lifecycle.js +99 -0
  338. package/dist/svelte/lib/capability-review.d.ts +64 -0
  339. package/dist/svelte/lib/capability-review.d.ts.map +1 -0
  340. package/dist/svelte/lib/capability-review.js +77 -0
  341. package/dist/svelte/lib/message-protocol.d.ts +184 -0
  342. package/dist/svelte/lib/message-protocol.d.ts.map +1 -0
  343. package/dist/svelte/lib/message-protocol.js +251 -0
  344. package/dist/svelte/runnable-source.d.ts +5 -0
  345. package/dist/svelte/runnable-source.d.ts.map +1 -0
  346. package/dist/svelte/runnable-source.js +92 -0
  347. package/dist/svelte/serve-index.svelte +39 -0
  348. package/dist/svelte/serve-index.svelte.d.ts +10 -0
  349. package/dist/svelte/serve-index.svelte.d.ts.map +1 -0
  350. package/dist/svelte/state.svelte.d.ts +26 -0
  351. package/dist/svelte/state.svelte.d.ts.map +1 -0
  352. package/dist/svelte/state.svelte.js +74 -0
  353. package/dist/svelte/styles.css +4 -0
  354. package/dist/svelte/tool-widgets/AppletToolCard.svelte +148 -0
  355. package/dist/svelte/tool-widgets/AppletToolCard.svelte.d.ts +5 -0
  356. package/dist/svelte/tool-widgets/AppletToolCard.svelte.d.ts.map +1 -0
  357. package/dist/svelte/tool-widgets/applet-tool-card.d.ts +41 -0
  358. package/dist/svelte/tool-widgets/applet-tool-card.d.ts.map +1 -0
  359. package/dist/svelte/tool-widgets/applet-tool-card.js +167 -0
  360. package/dist/svelte/tool-widgets/index.d.ts +3 -0
  361. package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
  362. package/dist/svelte/tool-widgets/index.js +2 -0
  363. package/dist/templates/index.d.ts +2 -0
  364. package/dist/templates/index.d.ts.map +1 -0
  365. package/dist/templates/index.js +2 -0
  366. package/dist/templates/index.js.map +1 -0
  367. package/dist/templates/template.kind.d.ts +39 -0
  368. package/dist/templates/template.kind.d.ts.map +1 -0
  369. package/dist/templates/template.kind.js +29 -0
  370. package/dist/templates/template.kind.js.map +1 -0
  371. package/dist/tools/applet.descriptor.d.ts +196 -0
  372. package/dist/tools/applet.descriptor.d.ts.map +1 -0
  373. package/dist/tools/applet.descriptor.js +81 -0
  374. package/dist/tools/applet.descriptor.js.map +1 -0
  375. package/dist/tools/applet.impl.d.ts +32 -0
  376. package/dist/tools/applet.impl.d.ts.map +1 -0
  377. package/dist/tools/applet.impl.js +485 -0
  378. package/dist/tools/applet.impl.js.map +1 -0
  379. package/dist/tools/applet.schemas.d.ts +198 -0
  380. package/dist/tools/applet.schemas.d.ts.map +1 -0
  381. package/dist/tools/applet.schemas.js +136 -0
  382. package/dist/tools/applet.schemas.js.map +1 -0
  383. package/dist/tools/index.d.ts +3 -0
  384. package/dist/tools/index.d.ts.map +1 -0
  385. package/dist/tools/index.js +3 -0
  386. package/dist/tools/index.js.map +1 -0
  387. package/dist/upgrade.d.ts +45 -0
  388. package/dist/upgrade.d.ts.map +1 -0
  389. package/dist/upgrade.js +179 -0
  390. package/dist/upgrade.js.map +1 -0
  391. package/dist/vite.d.ts +26 -0
  392. package/dist/vite.d.ts.map +1 -0
  393. package/dist/vite.js +28 -0
  394. package/dist/vite.js.map +1 -0
  395. package/package.json +264 -4
  396. package/templates/applet-tour/Applet.svelte +95 -0
  397. package/templates/applet-tour/applet.descriptor.ts +15 -0
  398. package/templates/assembly-field/Applet.svelte +242 -0
  399. package/templates/assembly-field/applet.descriptor.ts +7 -0
  400. package/templates/assembly-field/applet.storage.json +47 -0
  401. package/templates/assembly-field/schemas/settings.ts +14 -0
  402. package/templates/assembly-field/settings.ts +32 -0
  403. package/templates/benchmark-comparison/Applet.svelte +17 -0
  404. package/templates/benchmark-comparison/applet.descriptor.ts +7 -0
  405. package/templates/file-diff-viewer/Applet.svelte +91 -0
  406. package/templates/file-diff-viewer/applet.descriptor.ts +14 -0
  407. package/templates/file-diff-viewer/diff.ts +63 -0
  408. package/templates/file-viewer/Applet.svelte +80 -0
  409. package/templates/file-viewer/applet.descriptor.ts +14 -0
  410. package/templates/fleet-runs/Applet.svelte +14 -0
  411. package/templates/fleet-runs/applet.descriptor.ts +7 -0
  412. package/templates/graph-runbook-tracker/Applet.svelte +13 -0
  413. package/templates/graph-runbook-tracker/applet.descriptor.ts +7 -0
  414. package/templates/runbook-tracker/Applet.svelte +12 -0
  415. package/templates/runbook-tracker/applet.descriptor.ts +7 -0
  416. package/templates/runnable-tracker/Applet.svelte +16 -0
  417. package/templates/runnable-tracker/applet.descriptor.ts +10 -0
  418. package/templates/storage-viewer/Applet.svelte +90 -0
  419. package/templates/storage-viewer/applet.descriptor.ts +15 -0
  420. package/templates/workspace-graph-runbook-tracker/Applet.svelte +13 -0
  421. package/templates/workspace-graph-runbook-tracker/applet.descriptor.ts +7 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * `vibes applet list` implementation.
3
+ */
4
+ import { writeJson, writeStdoutLine } from '@vibesdotdev/cli/output';
5
+ import * as z from 'zod/v4';
6
+ import { countAppletProjectFiles, listAppletProjectIds, resolveAppletProjectHost, resolveAppletWorkspaceRoot } from "../project-files.js";
7
+ import { APPLET_PROJECT_ROOT } from '@vibesdotdev/applets';
8
+ const listOptionsSchema = z.object({
9
+ format: z.string().optional()
10
+ }).passthrough();
11
+ async function run(runtime, options = {}) {
12
+ const workspaceRoot = await resolveAppletWorkspaceRoot(runtime);
13
+ const host = await resolveAppletProjectHost(runtime);
14
+ const ids = await listAppletProjectIds(workspaceRoot, host);
15
+ const projects = await Promise.all(ids.map(async (id) => {
16
+ // COUNTED, not read. The previous version read every byte of every file
17
+ // to print two integers — measured at 869 MB peak RSS on a large project
18
+ // — while its own comment claimed to stay cheap.
19
+ const counts = await countAppletProjectFiles(workspaceRoot, id, host);
20
+ return { id, fileCount: counts.total, unsupported: counts.unsupported };
21
+ }));
22
+ if (options.format === 'json') {
23
+ await writeJson(runtime, { root: APPLET_PROJECT_ROOT, projects });
24
+ return;
25
+ }
26
+ if (projects.length === 0) {
27
+ await writeStdoutLine(runtime, `No Applet projects found in ${APPLET_PROJECT_ROOT}/`);
28
+ return;
29
+ }
30
+ await writeStdoutLine(runtime, `Applet projects in ${APPLET_PROJECT_ROOT}/:\n`);
31
+ for (const project of projects) {
32
+ const note = project.unsupported > 0 ? ` (${project.unsupported} unsupported file(s))` : '';
33
+ await writeStdoutLine(runtime, ` ${project.id} — ${project.fileCount} file(s)${note}`);
34
+ }
35
+ }
36
+ /**
37
+ * The CLI resolves an implementation by `impl.execute`, not by a default
38
+ * function. A module whose default IS the function registers fine and then
39
+ * reports "no resolvable implementation" at invoke time — discoverable and
40
+ * broken, which is worse than absent.
41
+ */
42
+ export async function execute(_args, options, context) {
43
+ const parsed = listOptionsSchema.safeParse(options);
44
+ await run(context.runtime, parsed.success ? parsed.data : {});
45
+ }
46
+ export default { execute };
47
+ //# sourceMappingURL=list.command.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.command.impl.js","sourceRoot":"","sources":["../../../src/cli/commands/list.command.impl.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC,WAAW,EAAE,CAAC;AAIjB,KAAK,UAAU,GAAG,CAAC,OAAqB,EAAE,UAAuB,EAAE;IAClE,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACpB,wEAAwE;QACxE,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC,CAAC,CACF,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,EAAE,+BAA+B,mBAAmB,GAAG,CAAC,CAAC;QACtF,OAAO;IACR,CAAC;IAED,MAAM,eAAe,CAAC,OAAO,EAAE,sBAAsB,mBAAmB,MAAM,CAAC,CAAC;IAChF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,SAAS,WAAW,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,KAAqB,EACrB,OAAuB,EACvB,OAAuB;IAEvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,eAAe,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AppletServeHost, AppletStyleContent, AppletStylesheetCompileOptions, AppletStylesheetSource } from '@vibesdotdev/kernel/kinds/applet-serve-host.kind';
2
+ /** Follow the already rewritten browser module graph, not filesystem directories. */
3
+ export declare function collectServedStyleContents(input: {
4
+ entry: string;
5
+ scan(code: string): string[];
6
+ load(url: string): Promise<string | null>;
7
+ }): Promise<AppletStyleContent[]>;
8
+ export declare function compileServedStylesheet(host: Pick<AppletServeHost, 'compileStylesheet'>, input: AppletStylesheetCompileOptions): Promise<string>;
9
+ /** Compile only the component's declared CSS before Svelte applies its scope selectors. */
10
+ export declare function prepareServedSvelte(source: string, location: Pick<AppletStylesheetSource, 'path' | 'base'>, compileStyle?: (entry: AppletStylesheetSource) => Promise<string>): Promise<string>;
11
+ //# sourceMappingURL=serve-stylesheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-stylesheet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve-stylesheet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAEpK,qFAAqF;AACrF,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmBhC;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtJ;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,MAAM,CAAC,EACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,CAajB"}
@@ -0,0 +1,50 @@
1
+ import { CapabilityError } from '@vibesdotdev/kernel';
2
+ import { parse } from 'svelte/compiler';
3
+ /** Follow the already rewritten browser module graph, not filesystem directories. */
4
+ export async function collectServedStyleContents(input) {
5
+ const seen = new Set();
6
+ const pending = [input.entry];
7
+ const sources = [];
8
+ while (pending.length) {
9
+ const path = pending.pop();
10
+ if (seen.has(path))
11
+ continue;
12
+ seen.add(path);
13
+ const content = await input.load(path);
14
+ if (content === null)
15
+ continue;
16
+ sources.push({ path, content, extension: 'js' });
17
+ for (const dependency of input.scan(content)) {
18
+ // Exact vendor imports remain relative in the served module, as in the browser.
19
+ if (!dependency.startsWith('/') && !dependency.startsWith('.'))
20
+ continue;
21
+ const target = new URL(dependency, `http://served.invalid${path}`).pathname;
22
+ if (!seen.has(target))
23
+ pending.push(target);
24
+ }
25
+ }
26
+ return sources.sort((left, right) => left.path.localeCompare(right.path));
27
+ }
28
+ export async function compileServedStylesheet(host, input) {
29
+ if (!host.compileStylesheet) {
30
+ throw new CapabilityError('The selected applet host has no stylesheet compiler.', 'UNAVAILABLE', {
31
+ reason: 'applet-css-compiler-unavailable', retryable: false
32
+ });
33
+ }
34
+ return host.compileStylesheet(input);
35
+ }
36
+ /** Compile only the component's declared CSS before Svelte applies its scope selectors. */
37
+ export async function prepareServedSvelte(source, location, compileStyle) {
38
+ const stylesheet = parse(source, { modern: true, filename: location.path }).css;
39
+ if (!stylesheet)
40
+ return source;
41
+ if (!compileStyle) {
42
+ throw new CapabilityError('The selected applet host has no component stylesheet compiler.', 'UNAVAILABLE', {
43
+ reason: 'applet-css-compiler-unavailable', retryable: false
44
+ });
45
+ }
46
+ const { start, end, styles } = stylesheet.content;
47
+ const css = await compileStyle({ ...location, content: styles });
48
+ return source.slice(0, start) + css + source.slice(end);
49
+ }
50
+ //# sourceMappingURL=serve-stylesheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-stylesheet.js","sourceRoot":"","sources":["../../../src/cli/commands/serve-stylesheet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
2
+ import { type AppletRootSurface, type AppletSurfaceBackend } from '../../applet-root-surface.ts';
3
+ import type { AppletDefinitionManifest } from '../../schemas/definition.ts';
4
+ /**
5
+ * The backend that makes a local applet's declared stores real, on the
6
+ * runtime's storage.
7
+ *
8
+ * Every store is a partition of the `applets.local-store` manifest: first the
9
+ * project (the binding's instance), then the declared store. The local host has
10
+ * one viewer, the workspace's own user, and one instance per project, so the
11
+ * instance partition is also the viewer partition and an author-owned dataset.
12
+ */
13
+ export declare function createLocalAppletStoreBackend(input: {
14
+ runtime: VibesRuntime;
15
+ manifest: AppletDefinitionManifest;
16
+ }): AppletSurfaceBackend;
17
+ /** The same fresh, manifest-bound surface serves JSON and duplex runtime RPC. */
18
+ export declare function createLocalAppletSurface(input: {
19
+ runtime: VibesRuntime;
20
+ workspaceRoot: string;
21
+ projectId: string;
22
+ }): Promise<AppletRootSurface>;
23
+ /**
24
+ * Answer `POST /applet/{projectId}/surface`.
25
+ *
26
+ * A browser on another origin is refused before anything is read: it carries
27
+ * an `Origin` this server did not serve. A caller with no `Origin` (a test, a
28
+ * script on this machine) is not a cross-site browser request.
29
+ */
30
+ export declare function answerServedAppletSurface(input: {
31
+ runtime: VibesRuntime;
32
+ workspaceRoot: string;
33
+ projectId: string;
34
+ request: Request;
35
+ }): Promise<Response>;
36
+ //# sourceMappingURL=serve-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-surface.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve-surface.ts"],"names":[],"mappings":"AAuBA,OAAO,EAIN,KAAK,YAAY,EAEjB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAIN,KAAK,iBAAiB,EAKtB,KAAK,oBAAoB,EAEzB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAA8B,MAAM,6BAA6B,CAAC;AAoCxG;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACpD,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,wBAAwB,CAAC;CACnC,GAAG,oBAAoB,CAoOvB;AAsBD,iFAAiF;AACjF,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CAChE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAO7B;AA+DD;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACtD,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBpB"}
@@ -0,0 +1,410 @@
1
+ /**
2
+ * The root surface `vibes applet serve` gives a local applet, and the route
3
+ * that exposes it.
4
+ *
5
+ * The page used to mount every applet with empty props, so a local applet had
6
+ * no runtime surface at all: no declared-store storage, nothing. This builds the
7
+ * one contract the applets SPEC names, `AppletRootSurface`, from the project's
8
+ * manifest, backs its declared stores with the runtime's storage, and answers
9
+ * calls on it over the serve host's own HTTP origin. The page mounts the client
10
+ * half (`served-applet-browser.ts`) as the `vibes` prop. The JSON route remains
11
+ * available for callers that do not need callback references.
12
+ *
13
+ * The SERVER is the boundary. A page is just a caller — anything on the
14
+ * machine can post here — so every call re-reads the project, rebuilds the
15
+ * manifest, and goes through `createAppletRootSurface`, which binds scope and
16
+ * authority from the manifest and refuses an undeclared store or an unbounded
17
+ * value. Nothing about which store a call means comes off the wire.
18
+ *
19
+ * There is no gate here because there is no grant: a local applet is the
20
+ * workspace's own code, served to its own author. What the surface enforces is
21
+ * the declaration, which is exactly what a published release would be held to.
22
+ */
23
+ import * as z from 'zod/v4';
24
+ import { CapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
25
+ import { getLogger } from '@vibesdotdev/logging';
26
+ import { compileWireSchema } from '@vibesdotdev/shared/schemas';
27
+ import { getVibesToolsClient } from '@vibesdotdev/tools/client';
28
+ import { buildDirectToolCallContext } from '@vibesdotdev/tools/execution/direct-context';
29
+ import { createAppletRootSurface, MAX_RUNTIME_DESCRIPTION, MAX_RUNTIME_DESCRIPTORS, appletRuntimeCallbackSchema } from "../../applet-root-surface.js";
30
+ import { boundAppletValue, parseAppletRuntimeHostValue } from "../../applet-value-bound.js";
31
+ import { buildAppletLocalDefinitionManifest, readAppletLocalProject } from "../../local-project.js";
32
+ import { digestContents, readAppletProjectEntries, resolveAppletProjectHost } from "../project-files.js";
33
+ import { APPLET_LOCAL_STORE_MANIFEST_ID } from "../applet-local-store.storage.descriptor.js";
34
+ import { servedSurfaceFailureSchema, servedSurfaceInvokeSchema, servedSurfaceResponseSchema } from "./serve.schemas.js";
35
+ /** A page asks for one page of keys unless it says otherwise; the surface caps what it says. */
36
+ const DEFAULT_LIST_LIMIT = 100;
37
+ const JSON_HEADERS = { 'content-type': 'application/json', 'cache-control': 'no-store' };
38
+ /** The descriptor text an applet's runtime query may see: a non-empty name and description, when present. */
39
+ const descriptorTextSchema = z.object({ name: z.string().min(1).optional(), description: z.string().min(1).optional() });
40
+ /** A resolved asset's method, read as a callable before the host calls it. */
41
+ const runtimeMethodSchema = z.custom((value) => value instanceof Function);
42
+ function storedByteLength(value) {
43
+ return new TextEncoder().encode(JSON.stringify(value)).length;
44
+ }
45
+ function byKey(left, right) {
46
+ // Codepoint order, like every other ordering a manifest or a cursor depends on.
47
+ return left < right ? -1 : left > right ? 1 : 0;
48
+ }
49
+ /**
50
+ * The backend that makes a local applet's declared stores real, on the
51
+ * runtime's storage.
52
+ *
53
+ * Every store is a partition of the `applets.local-store` manifest: first the
54
+ * project (the binding's instance), then the declared store. The local host has
55
+ * one viewer, the workspace's own user, and one instance per project, so the
56
+ * instance partition is also the viewer partition and an author-owned dataset.
57
+ */
58
+ export function createLocalAppletStoreBackend(input) {
59
+ const { runtime, manifest } = input;
60
+ function declaration(binding) {
61
+ const store = manifest.storage.find((candidate) => candidate.id === binding.descriptorId);
62
+ if (store)
63
+ return store;
64
+ // The surface bound this store from the same manifest, so this is a
65
+ // backend reached some other way; it refuses the same way the surface does.
66
+ throw new CapabilityError(`Store "${binding.descriptorId}" is not declared by this release.`, 'NOT_FOUND', {
67
+ reason: 'applet-store-undeclared',
68
+ details: { store: binding.descriptorId }
69
+ });
70
+ }
71
+ async function partitionFor(binding) {
72
+ const unavailable = new CapabilityError('Applet stores need the runtime storage manifest `applets.local-store`, which this host does not compose.', 'UNAVAILABLE', {
73
+ reason: 'applet-local-store-unavailable',
74
+ retryable: false,
75
+ recoveryHint: 'Compose @vibesdotdev/storage/plugin, its LocalDB adapter, and @vibesdotdev/applets/cli/plugin.',
76
+ details: { manifest: APPLET_LOCAL_STORE_MANIFEST_ID }
77
+ });
78
+ if (!runtime.hasKind('storage/manifest'))
79
+ throw unavailable;
80
+ const query = runtime
81
+ .query('storage/manifest')
82
+ .withId(APPLET_LOCAL_STORE_MANIFEST_ID);
83
+ if (!query.exists())
84
+ throw unavailable;
85
+ const root = await query.resolve();
86
+ return root.partition(binding.instanceId).partition(binding.descriptorId);
87
+ }
88
+ /** A bounded value is admitted only if it matches the record shape the store declares. */
89
+ function admitRecord(store, record) {
90
+ const compiled = compileWireSchema(store.recordSchema);
91
+ if (!compiled.ok) {
92
+ // A declaration that cannot be applied refuses the write: records nothing
93
+ // can validate are how a store becomes unmigratable.
94
+ throw new CapabilityError(`Store "${store.id}" declares a record schema that cannot be applied.`, 'INVALID_INPUT', {
95
+ reason: 'applet-store-schema-invalid',
96
+ details: { store: store.id, violations: compiled.violations.map((violation) => violation.message) }
97
+ });
98
+ }
99
+ const checked = compiled.validate(record);
100
+ if (!checked.ok) {
101
+ throw new CapabilityError(`Record does not match the schema store "${store.id}" declares: ${checked.message}`, 'INVALID_INPUT', {
102
+ reason: 'applet-store-record-invalid',
103
+ details: { store: store.id }
104
+ });
105
+ }
106
+ // A2b P1: the author's write conditions are a second, declarative gate the
107
+ // host evaluates on every write — never author code.
108
+ if (store.writeConditions !== undefined) {
109
+ const conditions = compileWireSchema(store.writeConditions);
110
+ if (!conditions.ok) {
111
+ throw new CapabilityError(`Store "${store.id}" declares write conditions that cannot be applied.`, 'INVALID_INPUT', {
112
+ reason: 'applet-store-write-condition-invalid',
113
+ details: { store: store.id, violations: conditions.violations.map((violation) => violation.message) }
114
+ });
115
+ }
116
+ const admitted = conditions.validate(record);
117
+ if (!admitted.ok) {
118
+ throw new CapabilityError(`Record does not satisfy the write conditions store "${store.id}" declares: ${admitted.message}`, 'INVALID_INPUT', { reason: 'applet-store-write-condition-failed', details: { store: store.id } });
119
+ }
120
+ }
121
+ return record;
122
+ }
123
+ /** The declared quota counts stored value bytes, the way the owner app counts them. */
124
+ function admitQuota(store, document) {
125
+ if (store.quotaBytes === undefined)
126
+ return document;
127
+ const used = Object.values(document).reduce((total, value) => total + storedByteLength(value), 0);
128
+ if (used <= store.quotaBytes)
129
+ return document;
130
+ throw new CapabilityError(`Store "${store.id}" quota exceeded: ${used} of ${store.quotaBytes} bytes.`, 'INVALID_INPUT', {
131
+ reason: 'applet-store-quota-exceeded',
132
+ details: { store: store.id, quotaBytes: store.quotaBytes, usedBytes: used }
133
+ });
134
+ }
135
+ /** The typed unknown-target refusal the runtime surface raises. */
136
+ function runtimeTargetUnknown(target, id) {
137
+ return new CapabilityError(`No runtime ${target} "${id}" is available on this host.`, 'NOT_FOUND', {
138
+ reason: 'applet-runtime-target-unknown',
139
+ details: { target, id }
140
+ });
141
+ }
142
+ return {
143
+ async storageGet(binding, key) {
144
+ declaration(binding);
145
+ const document = await (await partitionFor(binding)).load();
146
+ // A key never written reads as `null`, the same answer the owner app gives.
147
+ if (document === null || !Object.hasOwn(document, key))
148
+ return null;
149
+ return document[key] ?? null;
150
+ },
151
+ async storageList(binding, query) {
152
+ declaration(binding);
153
+ const document = (await (await partitionFor(binding)).load()) ?? {};
154
+ const limit = query.limit ?? DEFAULT_LIST_LIMIT;
155
+ const cursor = query.cursor;
156
+ const keys = Object.keys(document)
157
+ .sort(byKey)
158
+ .filter((key) => cursor === undefined || key > cursor);
159
+ const page = keys.slice(0, limit);
160
+ return {
161
+ results: page.map((key) => ({ key, value: document[key] ?? null })),
162
+ nextCursor: keys.length > limit ? (page.at(-1) ?? null) : null
163
+ };
164
+ },
165
+ async storagePut(binding, key, value) {
166
+ const store = declaration(binding);
167
+ // Bounded again here: this backend is a boundary of its own, whoever calls it — through the one rule.
168
+ const record = admitRecord(store, boundAppletValue(value, 'value'));
169
+ await (await partitionFor(binding)).update((current) => admitQuota(store, { ...current, [key]: record }));
170
+ },
171
+ async storageDelete(binding, key) {
172
+ declaration(binding);
173
+ const partition = await partitionFor(binding);
174
+ const document = await partition.load();
175
+ // Deleting what is not there leaves the store as the caller asked.
176
+ if (document === null || !Object.hasOwn(document, key))
177
+ return;
178
+ await partition.update((current) => Object.fromEntries(Object.entries(current ?? {}).filter(([candidate]) => candidate !== key)));
179
+ },
180
+ async assetUrl() {
181
+ throw new CapabilityError('`vibes applet serve` serves no Asset bytes.', 'UNAVAILABLE', {
182
+ reason: 'applet-serve-assets-unavailable',
183
+ retryable: false
184
+ });
185
+ },
186
+ async capabilityInvoke(capability) {
187
+ throw new CapabilityError(`\`vibes applet serve\` brokers no capabilities ("${capability}").`, 'UNAVAILABLE', {
188
+ reason: 'applet-serve-capabilities-unavailable',
189
+ retryable: false,
190
+ details: { capability }
191
+ });
192
+ },
193
+ async runtimeQuery(kind) {
194
+ if (!runtime.hasKind(kind))
195
+ throw runtimeTargetUnknown('kind', kind);
196
+ const descriptors = runtime.query(kind).enabled().descriptors();
197
+ const view = {
198
+ kind,
199
+ total: descriptors.length,
200
+ truncated: descriptors.length > MAX_RUNTIME_DESCRIPTORS,
201
+ descriptors: descriptors.slice(0, MAX_RUNTIME_DESCRIPTORS).map((descriptor) => {
202
+ const named = descriptorTextSchema.safeParse(descriptor);
203
+ const description = named.success ? named.data.description?.slice(0, MAX_RUNTIME_DESCRIPTION) : undefined;
204
+ return {
205
+ id: descriptor.id,
206
+ name: named.success && named.data.name ? named.data.name : descriptor.id,
207
+ description: description || undefined,
208
+ enabled: descriptor.enabled !== false
209
+ };
210
+ })
211
+ };
212
+ return view;
213
+ },
214
+ async runtimeCall(kind, id, method, args) {
215
+ // The applet names the target; the HOST wraps the call. The wrap runs the
216
+ // method through the runtime's own invoke pipeline, so every authz/friction
217
+ // interceptor the host registered gates it — there is no second path. The
218
+ // principal is the host's (local: the workspace owner), never the applet's;
219
+ // the applet connection itself is governed where it terminates (cloud) or
220
+ // serves only its own author (local serve).
221
+ if (!runtime.hasKind(kind))
222
+ throw runtimeTargetUnknown('kind', kind);
223
+ let resolved;
224
+ try {
225
+ resolved = await runtime.query(kind).withId(id).enabled().resolve();
226
+ }
227
+ catch (cause) {
228
+ // A resolver NOT_FOUND is the same answer as an absent impl: no such target.
229
+ if (cause instanceof CapabilityError && cause.code === 'NOT_FOUND') {
230
+ throw runtimeTargetUnknown('asset', `${kind}/${id}`);
231
+ }
232
+ throw cause;
233
+ }
234
+ if (resolved === undefined || resolved === null)
235
+ throw runtimeTargetUnknown('asset', `${kind}/${id}`);
236
+ const wrapped = runtime.invoke.wrap(resolved, { kind, implId: id, origin: 'local' });
237
+ // The method, read through a one-key schema: a callable or the typed refusal below.
238
+ const member = z.object({ [method]: runtimeMethodSchema }).safeParse(wrapped);
239
+ if (!member.success) {
240
+ throw new CapabilityError(`Runtime asset "${kind}/${id}" has no callable method "${method}".`, 'INVALID_INPUT', {
241
+ reason: 'applet-runtime-call-invalid',
242
+ details: { kind, id, method }
243
+ });
244
+ }
245
+ // A function answer crosses back as a ref; anything else is bounded or refused by the one rule.
246
+ return parseAppletRuntimeHostValue(await member.data[method].apply(wrapped, [...args]));
247
+ },
248
+ async runtimeToolCall(toolId, input) {
249
+ let tools;
250
+ try {
251
+ tools = await getVibesToolsClient(runtime);
252
+ }
253
+ catch (cause) {
254
+ throw new CapabilityError('This host composes no tools client, so applet tool calls cannot run here.', 'UNAVAILABLE', {
255
+ reason: 'applet-runtime-unavailable',
256
+ retryable: false,
257
+ cause
258
+ });
259
+ }
260
+ // The principal the local host binds is the workspace user: the direct
261
+ // context reads identity from THIS runtime, never from the applet call.
262
+ const base = {
263
+ callId: crypto.randomUUID(),
264
+ logger: getLogger('applets:serve-surface', runtime)
265
+ };
266
+ const context = await buildDirectToolCallContext(runtime, base);
267
+ return await tools.invokeSystemTool(toolId, input, context);
268
+ }
269
+ };
270
+ }
271
+ /** The project's manifest, read from disk now, so an edited declaration applies on the next call. */
272
+ async function readLocalManifest(host, workspaceRoot, projectId) {
273
+ // An absent project is the reader's own typed refusal (`applet-project-not-found`).
274
+ const entries = await readAppletProjectEntries(workspaceRoot, projectId, host);
275
+ const invalid = (errors) => new CapabilityError(`Applet project "${projectId}" does not build a manifest.`, 'INVALID_INPUT', {
276
+ reason: 'applet-project-invalid',
277
+ details: { project: projectId, errors }
278
+ });
279
+ const read = await readAppletLocalProject({ id: projectId, entries, digest: digestContents });
280
+ if (!read.ok)
281
+ throw invalid(read.errors.map((error) => `${error.path}: ${error.message}`));
282
+ const built = buildAppletLocalDefinitionManifest(read.project);
283
+ if (!built.ok)
284
+ throw invalid(built.errors);
285
+ return built.manifest;
286
+ }
287
+ /** The same fresh, manifest-bound surface serves JSON and duplex runtime RPC. */
288
+ export async function createLocalAppletSurface(input) {
289
+ const host = await resolveAppletProjectHost(input.runtime);
290
+ const manifest = await readLocalManifest(host, input.workspaceRoot, input.projectId);
291
+ return createAppletRootSurface({
292
+ instanceId: input.projectId, manifest,
293
+ backend: createLocalAppletStoreBackend({ runtime: input.runtime, manifest })
294
+ });
295
+ }
296
+ /** One parsed call, answered by the surface. Every result is JSON the wire can carry. */
297
+ async function dispatch(surface, call) {
298
+ switch (call.method) {
299
+ case 'storageGet':
300
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.storageGet(call.descriptorId, call.key) });
301
+ case 'storageList':
302
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.storageList(call.descriptorId, call.query) });
303
+ case 'storagePut':
304
+ await surface.storagePut(call.descriptorId, call.key, call.value);
305
+ return { ok: true, result: null };
306
+ case 'storageDelete':
307
+ await surface.storageDelete(call.descriptorId, call.key);
308
+ return { ok: true, result: null };
309
+ case 'assetUrl':
310
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.assetUrl(call.assetId) });
311
+ case 'capabilityInvoke':
312
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.capabilityInvoke(call.capability, call.input) });
313
+ case 'runtimeQuery':
314
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.runtimeQuery(call.kind) });
315
+ case 'runtimeCall': {
316
+ const result = await surface.runtimeCall(call.kind, call.id, call.targetMethod, ...(call.args ?? []));
317
+ // JSON POST has no reverse leg: a function answer (an unsubscribe)
318
+ // cannot reach this applet again, so it is refused typed rather than
319
+ // serialized into a broken value. The answer is parsed with the
320
+ // surface's own callback schema, never narrowed by `typeof`.
321
+ if (appletRuntimeCallbackSchema.safeParse(result).success) {
322
+ throw new CapabilityError('The JSON surface route cannot carry the returned function; use the served runtime connection.', 'UNAVAILABLE', { reason: 'applet-runtime-callback-unsupported', retryable: false });
323
+ }
324
+ return servedSurfaceResponseSchema.parse({ ok: true, result });
325
+ }
326
+ case 'runtimeToolCall':
327
+ return servedSurfaceResponseSchema.parse({ ok: true, result: await surface.runtimeToolCall(call.toolId, call.input) });
328
+ }
329
+ }
330
+ function invalidRequest(message, cause) {
331
+ return new CapabilityError(message, 'INVALID_INPUT', { reason: 'applet-surface-request-invalid', cause });
332
+ }
333
+ /** The call a request carries, or a typed refusal of the request itself. */
334
+ async function readCall(request) {
335
+ if (request.method !== 'POST')
336
+ throw invalidRequest(`A surface call is a POST, not ${request.method}.`);
337
+ const text = await request.text();
338
+ let body;
339
+ try {
340
+ body = JSON.parse(text);
341
+ }
342
+ catch (cause) {
343
+ if (!(cause instanceof SyntaxError))
344
+ throw cause;
345
+ throw invalidRequest('A surface call body must be JSON.', cause);
346
+ }
347
+ const call = servedSurfaceInvokeSchema.safeParse(body);
348
+ if (!call.success) {
349
+ throw invalidRequest(`Not a surface call: ${call.error.issues[0]?.message ?? 'unrecognised shape'}.`, call.error);
350
+ }
351
+ return call.data;
352
+ }
353
+ /**
354
+ * Answer `POST /applet/{projectId}/surface`.
355
+ *
356
+ * A browser on another origin is refused before anything is read: it carries
357
+ * an `Origin` this server did not serve. A caller with no `Origin` (a test, a
358
+ * script on this machine) is not a cross-site browser request.
359
+ */
360
+ export async function answerServedAppletSurface(input) {
361
+ const { runtime, workspaceRoot, projectId, request } = input;
362
+ const outcome = await settle(async () => {
363
+ const origin = request.headers.get('origin');
364
+ if (origin !== null && origin !== new URL(request.url).origin) {
365
+ throw new CapabilityError('A page on another origin cannot call this applet surface.', 'PERMISSION_DENIED', {
366
+ reason: 'applet-surface-cross-origin',
367
+ details: { origin }
368
+ });
369
+ }
370
+ const call = await readCall(request);
371
+ const surface = await createLocalAppletSurface({ runtime, workspaceRoot, projectId });
372
+ return dispatch(surface, call);
373
+ });
374
+ if (outcome.ok)
375
+ return respond(outcome.answer, 200);
376
+ const { failure } = outcome;
377
+ // An untyped failure is a defect on this side: the caller gets its typed
378
+ // projection, and the log keeps the original.
379
+ if (failure.reason === 'untyped') {
380
+ getLogger('applets:serve-surface', runtime).error('applet surface call failed', { projectId, error: failure.cause });
381
+ }
382
+ return respond(wireFailure(failure, runtime), failure.httpStatus);
383
+ }
384
+ function respond(answer, status) {
385
+ return new Response(JSON.stringify(answer), { status, headers: JSON_HEADERS });
386
+ }
387
+ /** The answer, or the failure as the runtime's typed error (itself when it already is one). */
388
+ async function settle(work) {
389
+ try {
390
+ return { ok: true, answer: await work() };
391
+ }
392
+ catch (cause) {
393
+ return { ok: false, failure: CapabilityError.from(CaughtFailureSchema.parse(cause)) };
394
+ }
395
+ }
396
+ /**
397
+ * A refusal as the wire carries it. Details another owner attached that are not
398
+ * JSON cannot cross; the code, reason, and message always do.
399
+ */
400
+ function wireFailure(failure, runtime) {
401
+ const envelope = failure.toEnvelope();
402
+ const whole = servedSurfaceFailureSchema.safeParse(envelope);
403
+ if (whole.success)
404
+ return whole.data;
405
+ getLogger('applets:serve-surface', runtime).warn('applet surface refusal details are not JSON; sent without them', {
406
+ reason: envelope.error.reason
407
+ });
408
+ return servedSurfaceFailureSchema.parse({ ok: false, error: { ...envelope.error, details: undefined } });
409
+ }
410
+ //# sourceMappingURL=serve-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-surface.js","sourceRoot":"","sources":["../../../src/cli/commands/serve-surface.ts"],"names":[],"mappings":"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"}