@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
+ {
3
+ "id": "settings",
4
+ "authority": "viewer-owned",
5
+ "scope": "viewer",
6
+ "schemaVersion": 1,
7
+ "recordSchema": {
8
+ "type": "object",
9
+ "properties": {
10
+ "count": {
11
+ "type": "number"
12
+ },
13
+ "hold": {
14
+ "type": "number"
15
+ },
16
+ "morph": {
17
+ "type": "number"
18
+ },
19
+ "autoRotate": {
20
+ "type": "number"
21
+ },
22
+ "pointSize": {
23
+ "type": "number"
24
+ },
25
+ "sweep": {
26
+ "type": "boolean"
27
+ },
28
+ "interactive": {
29
+ "type": "boolean"
30
+ },
31
+ "headline": {
32
+ "type": "boolean"
33
+ }
34
+ },
35
+ "required": [
36
+ "count",
37
+ "hold",
38
+ "morph",
39
+ "autoRotate",
40
+ "pointSize",
41
+ "sweep",
42
+ "interactive",
43
+ "headline"
44
+ ]
45
+ }
46
+ }
47
+ ]
@@ -0,0 +1,14 @@
1
+ import * as z from 'zod/v4';
2
+
3
+ export const settingsSchema = z.object({
4
+ count: z.number().default(24000),
5
+ hold: z.number().default(11),
6
+ morph: z.number().default(8),
7
+ autoRotate: z.number().default(0.08),
8
+ pointSize: z.number().default(2.1),
9
+ sweep: z.boolean().default(true),
10
+ interactive: z.boolean().default(true),
11
+ headline: z.boolean().default(true)
12
+ });
13
+
14
+ export type Settings = z.infer<typeof settingsSchema>;
@@ -0,0 +1,32 @@
1
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
2
+ import { settingsSchema, type Settings } from './schemas/settings.ts';
3
+
4
+ /** Per-mount editing state; the supplied surface owns all persistence. */
5
+ export function createAssemblySettings(vibes: AppletRootSurface, changed: (value: Settings) => void) {
6
+ let value = settingsSchema.parse({});
7
+ let pending = Promise.resolve();
8
+
9
+ // Hydration never writes. Edits wait for it, then merge against saved state.
10
+ const ready = vibes.storageGet('settings', 'current').then(saved => {
11
+ value = settingsSchema.parse(saved ?? {});
12
+ changed(value);
13
+ });
14
+
15
+ async function update(patch: Partial<Settings>) {
16
+ await ready;
17
+ value = settingsSchema.parse({ ...value, ...patch });
18
+ changed(value);
19
+ const snapshot = value;
20
+
21
+ // Each immutable snapshot follows the preceding write, even if it failed.
22
+ const write = Promise.allSettled([pending]).then(() => vibes.storagePut('settings', 'current', snapshot));
23
+ pending = write;
24
+ await write;
25
+ }
26
+
27
+ return {
28
+ ready,
29
+ update,
30
+ reset: () => update(settingsSchema.parse({}))
31
+ };
32
+ }
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { RunbookSection } from '@vibesdotdev/runbooks/svelte';
5
+ import { BenchmarkComparisonSection, SameInputComparisonSection } from '@vibesdotdev/benchmarks/svelte';
6
+ let { vibes }: { vibes?: AppletRootSurface } = $props();
7
+ </script>
8
+
9
+ <RunnableTracker {vibes} title="Benchmark comparisons" projection="catalog">
10
+ {#snippet sections(snapshot, store)}
11
+ <BenchmarkComparisonSection {snapshot} />
12
+ {#if store}
13
+ <SameInputComparisonSection {snapshot} snapshots={store.listRows} onselect={id => store.select(id)} />
14
+ <RunbookSection {snapshot} {store} />
15
+ {/if}
16
+ {/snippet}
17
+ </RunnableTracker>
@@ -0,0 +1,7 @@
1
+ export default {
2
+ id: 'benchmark-comparison',
3
+ title: 'Benchmark comparisons',
4
+ description: 'Actual recorded candidate judgments, input digests, admitted scopes and linked run evidence.',
5
+ entry: 'Applet.svelte',
6
+ contributes: {}
7
+ };
@@ -0,0 +1,91 @@
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+ import * as z from 'zod/v4';
4
+ import { diffLines, diffStats } from './diff.ts';
5
+
6
+ const diffMessageSchema = z.object({
7
+ type: z.literal('diff'),
8
+ path: z.string(),
9
+ before: z.string(),
10
+ after: z.string()
11
+ });
12
+
13
+ interface DiffPair { path: string; before: string; after: string }
14
+ let pair: DiffPair = {
15
+ path: 'demo/hello.md',
16
+ before: '# Hello\n\nOne line.\nTwo lines.\nThree lines.\n',
17
+ after: '# Hello\n\nOne line kept.\nTwo lines.\nA new line here.\nThree lines.\n'
18
+ };
19
+ let mode: 'unified' | 'split' = 'unified';
20
+
21
+ function receive(event: MessageEvent) {
22
+ const parsed = diffMessageSchema.safeParse(event.data);
23
+ if (parsed.success) {
24
+ pair = { path: parsed.data.path, before: parsed.data.before, after: parsed.data.after };
25
+ }
26
+ }
27
+ onMount(() => {
28
+ window.addEventListener('message', receive);
29
+ return () => window.removeEventListener('message', receive);
30
+ });
31
+
32
+ $: rows = diffLines(pair.before, pair.after);
33
+ $: stats = diffStats(rows);
34
+ </script>
35
+
36
+ <style>
37
+ :host, .root { display: block; height: 100%; font: 13px/1.5 ui-monospace, 'SF Mono', Menlo, monospace; background: #0d1117; color: #e6edf3; }
38
+ .root { display: flex; flex-direction: column; }
39
+ .bar { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; background: #161b22; border-bottom: 1px solid #30363d; font-size: 11px; color: #8b949e; }
40
+ .bar button { background: #21262d; color: #e6edf3; border: 1px solid #30363d; border-radius: 6px; padding: 3px 10px; cursor: pointer; font: inherit; margin-left: 6px; }
41
+ .bar button.on { background: #388bfd33; border-color: #388bfd; }
42
+ .added { color: #3fb950; }
43
+ .removed { color: #f85149; }
44
+ .body { flex: 1; overflow: auto; padding: 8px 0; }
45
+ .row { display: flex; white-space: pre-wrap; }
46
+ .no { width: 40px; text-align: right; padding-right: 8px; color: #484f58; user-select: none; flex: none; }
47
+ .row.same .ct { color: #8b949e; }
48
+ .row.add { background: #0d442933; }
49
+ .row.del { background: #67060c33; }
50
+ .row .sign { width: 18px; flex: none; text-align: center; }
51
+ .cols { display: flex; flex: 1; }
52
+ .col { flex: 1; min-width: 0; }
53
+ </style>
54
+
55
+ <div class="root">
56
+ <div class="bar">
57
+ <span>{pair.path} · <span class="added">+{stats.added}</span> <span class="removed">−{stats.removed}</span></span>
58
+ <span>
59
+ <button class:on={mode === 'unified'} onclick={() => (mode = 'unified')}>Unified</button>
60
+ <button class:on={mode === 'split'} onclick={() => (mode = 'split')}>Split</button>
61
+ </span>
62
+ </div>
63
+ <div class="body">
64
+ {#if mode === 'unified'}
65
+ {#each rows as row}
66
+ <div class="row {row.kind}">
67
+ {#if row.kind === 'same'}
68
+ <span class="no">{row.beforeNo}</span><span class="sign"> </span><span class="ct">{row.before || ' '}</span>
69
+ {:else if row.kind === 'del'}
70
+ <span class="no">{row.beforeNo}</span><span class="sign removed">−</span><span class="ct removed">{row.before || ' '}</span>
71
+ {:else}
72
+ <span class="no">{row.afterNo}</span><span class="sign added">+</span><span class="ct added">{row.after || ' '}</span>
73
+ {/if}
74
+ </div>
75
+ {/each}
76
+ {:else}
77
+ {#each rows as row}
78
+ <div class="row {row.kind}">
79
+ <div class="cols">
80
+ <div class="col">
81
+ {#if row.before !== undefined}<span class="no">{row.beforeNo}</span><span class="sign removed">{row.kind === 'del' ? '−' : ' '}</span><span class="ct">{row.before || ' '}</span>{/if}
82
+ </div>
83
+ <div class="col">
84
+ {#if row.after !== undefined}<span class="no">{row.afterNo}</span><span class="sign added">{row.kind === 'add' ? '+' : ' '}</span><span class="ct">{row.after || ' '}</span>{/if}
85
+ </div>
86
+ </div>
87
+ </div>
88
+ {/each}
89
+ {/if}
90
+ </div>
91
+ </div>
@@ -0,0 +1,14 @@
1
+ /**
2
+ * FileDiffViewer applet — authoring descriptor (not published).
3
+ *
4
+ * Template #2 of the 2026-08-23 applet effort. The diff core lives in
5
+ * diff.ts (LCS-based, self-contained); the Applet renders side-by-side and
6
+ * unified views of handed {path, before, after} pairs.
7
+ */
8
+ export default {
9
+ id: 'file-diff-viewer',
10
+ title: 'File Diff Viewer',
11
+ description: 'Side-by-side and unified diff for handed file pairs.',
12
+ entry: 'Applet.svelte',
13
+ contributes: {}
14
+ };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Self-contained line-diff core for the FileDiffViewer applet.
3
+ *
4
+ * Classic LCS table over line arrays; produces aligned row pairs suitable for
5
+ * both unified and side-by-side rendering. No dependencies by design: an
6
+ * applet is source, not a CDN.
7
+ */
8
+ export interface DiffRow {
9
+ kind: 'same' | 'add' | 'del';
10
+ before?: string;
11
+ after?: string;
12
+ beforeNo?: number;
13
+ afterNo?: number;
14
+ }
15
+
16
+ export function diffLines(before: string, after: string): DiffRow[] {
17
+ const a = before.split('\n');
18
+ const b = after.split('\n');
19
+ const n = a.length;
20
+ const m = b.length;
21
+
22
+ // LCS lengths table.
23
+ const table: number[][] = Array.from({ length: n + 1 }, () => Array.from({ length: m + 1 }, () => 0));
24
+ for (let i = n - 1; i >= 0; i--) {
25
+ for (let j = m - 1; j >= 0; j--) {
26
+ table[i][j] = a[i] === b[j] ? table[i + 1][j + 1] + 1 : Math.max(table[i + 1][j], table[i][j + 1]);
27
+ }
28
+ }
29
+
30
+ const rows: DiffRow[] = [];
31
+ let i = 0;
32
+ let j = 0;
33
+ while (i < n && j < m) {
34
+ if (a[i] === b[j]) {
35
+ rows.push({ kind: 'same', before: a[i], after: b[j], beforeNo: i + 1, afterNo: j + 1 });
36
+ i++; j++;
37
+ } else if (table[i + 1][j] >= table[i][j + 1]) {
38
+ rows.push({ kind: 'del', before: a[i], beforeNo: i + 1 });
39
+ i++;
40
+ } else {
41
+ rows.push({ kind: 'add', after: b[j], afterNo: j + 1 });
42
+ j++;
43
+ }
44
+ }
45
+ while (i < n) { rows.push({ kind: 'del', before: a[i], beforeNo: i + 1 }); i++; }
46
+ while (j < m) { rows.push({ kind: 'add', after: b[j], afterNo: j + 1 }); j++; }
47
+ return rows;
48
+ }
49
+
50
+ export interface DiffStats {
51
+ added: number;
52
+ removed: number;
53
+ }
54
+
55
+ export function diffStats(rows: DiffRow[]): DiffStats {
56
+ let added = 0;
57
+ let removed = 0;
58
+ for (const row of rows) {
59
+ if (row.kind === 'add') added++;
60
+ if (row.kind === 'del') removed++;
61
+ }
62
+ return { added, removed };
63
+ }
@@ -0,0 +1,80 @@
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+ import { Card, CardContent, CardHeader, CardTitle } from '@vibesdotdev/kit/svelte';
4
+ import { Tabs, TabsList, TabsTrigger } from '@vibesdotdev/kit/svelte';
5
+ import { Button } from '@vibesdotdev/kit/svelte';
6
+ import { Badge } from '@vibesdotdev/kit/svelte';
7
+ import { Textarea } from '@vibesdotdev/kit/svelte';
8
+ import { filesMessageSchema, type FilesMessage } from '@vibesdotdev/applets/messages';
9
+
10
+ let files: { path: string; content: string }[] = [
11
+ { path: 'README.md', content: '# Demo\n\nHanded files render here. Edit, and the tab dot goes dirty.\n' },
12
+ { path: 'src/main.ts', content: 'console.log("applet");\n' }
13
+ ];
14
+ let active = files[0]?.path ?? '';
15
+ let editing = false;
16
+ let drafts: Record<string, string> = {};
17
+
18
+ function receive(event: MessageEvent) {
19
+ const parsed = filesMessageSchema.safeParse(event.data);
20
+ if (parsed.success) {
21
+ const msg: FilesMessage = parsed.data;
22
+ files = msg.files;
23
+ active = msg.files[0]?.path ?? '';
24
+ drafts = {};
25
+ }
26
+ }
27
+ onMount(() => {
28
+ window.addEventListener('message', receive);
29
+ return () => window.removeEventListener('message', receive);
30
+ });
31
+
32
+ function isDirty(path: string): boolean {
33
+ return path in drafts && drafts[path] !== (files.find((f) => f.path === path)?.content ?? null);
34
+ }
35
+ function current(): string {
36
+ return active in drafts ? drafts[active] : (files.find((f) => f.path === active)?.content ?? '');
37
+ }
38
+ function onEdit(event: Event) {
39
+ if (event.target instanceof HTMLTextAreaElement) {
40
+ drafts[active] = event.target.value;
41
+ }
42
+ }
43
+ $: dirtyCount = files.filter((f) => isDirty(f.path)).length;
44
+ </script>
45
+
46
+ <div class="h-full p-2">
47
+ <Card class="h-full flex flex-col">
48
+ <CardHeader class="flex-row items-center justify-between space-y-0 py-2">
49
+ <CardTitle class="text-sm font-mono">file-viewer</CardTitle>
50
+ <div class="flex items-center gap-2">
51
+ {#if dirtyCount > 0}<Badge variant="secondary">{dirtyCount} dirty</Badge>{/if}
52
+ <Button size="sm" variant={editing ? 'default' : 'outline'} onclick={() => (editing = !editing)}>
53
+ {editing ? 'Done' : 'Edit'}
54
+ </Button>
55
+ </div>
56
+ </CardHeader>
57
+ <CardContent class="flex-1 min-h-0 pt-0">
58
+ <Tabs value={active} onValueChange={(v) => (active = v)}>
59
+ <TabsList>
60
+ {#each files as f (f.path)}
61
+ <TabsTrigger value={f.path}>
62
+ {f.path}{#if isDirty(f.path)}&nbsp;•{/if}
63
+ </TabsTrigger>
64
+ {/each}
65
+ </TabsList>
66
+ {#if active}
67
+ {#if editing}
68
+ <Textarea
69
+ class="h-[calc(100%-2.75rem)] font-mono text-xs"
70
+ value={current()}
71
+ oninput={onEdit}
72
+ />
73
+ {:else}
74
+ <pre class="h-[calc(100%-2.75rem)] overflow-auto rounded-md border bg-muted/40 p-3 font-mono text-xs leading-5">{current()}</pre>
75
+ {/if}
76
+ {/if}
77
+ </Tabs>
78
+ </CardContent>
79
+ </Card>
80
+ </div>
@@ -0,0 +1,14 @@
1
+ /**
2
+ * FileViewer applet — authoring descriptor (not published; authoring metadata only).
3
+ *
4
+ * The first template of the 2026-08-23 applet effort. Self-contained by the
5
+ * local file-set contract: the host canvas owns chrome; this applet owns
6
+ * tabbed view/edit of the files it is handed (or its embedded demo set).
7
+ */
8
+ export default {
9
+ id: 'file-viewer',
10
+ title: 'File Viewer',
11
+ description: 'Tabbed read/edit viewer for a handed file set.',
12
+ entry: 'Applet.svelte',
13
+ contributes: {}
14
+ };
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { FleetRuns } from '@vibesdotdev/runnable/svelte';
5
+ import { RunbookSection } from '@vibesdotdev/runbooks/svelte';
6
+ let { vibes }: { vibes?: AppletRootSurface } = $props();
7
+ </script>
8
+
9
+ <RunnableTracker {vibes} title="Fleet runs">
10
+ {#snippet overview(store)}<FleetRuns {store} />{/snippet}
11
+ {#snippet sections(snapshot, store)}
12
+ {#if store}<RunbookSection {snapshot} {store} />{/if}
13
+ {/snippet}
14
+ </RunnableTracker>
@@ -0,0 +1,7 @@
1
+ export default {
2
+ id: 'fleet-runs',
3
+ title: 'Fleet runs',
4
+ description: 'Admitted run records grouped and filtered by their recorded execution host.',
5
+ entry: 'Applet.svelte',
6
+ contributes: {}
7
+ };
@@ -0,0 +1,13 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { GraphRunSection, RunbookSection } from '@vibesdotdev/runbooks/svelte';
5
+ let { vibes }: { vibes?: AppletRootSurface } = $props();
6
+ </script>
7
+
8
+ <RunnableTracker {vibes} title="Graph runbook tracker" projection="catalog">
9
+ {#snippet overview(store)}<GraphRunSection {store} />{/snippet}
10
+ {#snippet sections(snapshot, store)}
11
+ {#if store}<RunbookSection {snapshot} {store} />{/if}
12
+ {/snippet}
13
+ </RunnableTracker>
@@ -0,0 +1,7 @@
1
+ export default {
2
+ id: 'graph-runbook-tracker',
3
+ title: 'Graph runbook tracker',
4
+ description: 'Recorded traversal plans, attempts, coordinators and dependency outcomes over the shared live run view.',
5
+ entry: 'Applet.svelte',
6
+ contributes: {}
7
+ };
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { RunbookSection } from '@vibesdotdev/runbooks/svelte';
5
+ let { vibes }: { vibes?: AppletRootSurface } = $props();
6
+ </script>
7
+
8
+ <RunnableTracker {vibes} title="Runbook tracker">
9
+ {#snippet sections(snapshot, store)}
10
+ {#if store}<RunbookSection {snapshot} {store} />{/if}
11
+ {/snippet}
12
+ </RunnableTracker>
@@ -0,0 +1,7 @@
1
+ export default {
2
+ id: 'runbook-tracker',
3
+ title: 'Runbook tracker',
4
+ description: 'Recorded Runbook inputs, outputs and declared child roles over the shared live run view.',
5
+ entry: 'Applet.svelte',
6
+ contributes: {}
7
+ };
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { RunIssueReportSchema } from '@vibesdotdev/runnable/schemas';
5
+ import { RunnableReadQuerySchema } from '@vibesdotdev/runnable/schemas/runs';
6
+ import { RunbookIssueQuerySchema } from '@vibesdotdev/runbooks/schemas';
7
+ import { RunbookIssues } from '@vibesdotdev/runbooks/svelte';
8
+ import type { RunsStore } from '@vibesdotdev/runnable/svelte';
9
+ import type { JsonObject } from '@vibesdotdev/kernel/schemas/json';
10
+ let { vibes, input = {} }: { vibes?: AppletRootSurface; input?: JsonObject } = $props();
11
+ </script>
12
+
13
+ {#snippet issues(store: RunsStore, onselect: (id: string) => void, onbrowse: () => void)}
14
+ {#if vibes}{@const surface = vibes}<RunbookIssues runs={store.listRows.map(row => row.run)} query={store.query} load={async query => RunIssueReportSchema.parse(await surface.runtimeCall('runtime/client', 'runbooks', 'investigateIssues', RunbookIssueQuerySchema.parse({ ...query, triageSessionId: input.triageSessionId })))} {onselect} {onbrowse} />{/if}
15
+ {/snippet}
16
+ <RunnableTracker {vibes} {issues} query={RunnableReadQuerySchema.parse(input)} title="Runnable tracker" projection="catalog" />
@@ -0,0 +1,10 @@
1
+ import { runbookIssueQueryForm } from '@vibesdotdev/runbooks/svelte/forms';
2
+
3
+ export default {
4
+ id: 'runnable-tracker',
5
+ title: 'Runnable tracker',
6
+ description: 'Live owner snapshots, run relationships, controls and recorded evidence.',
7
+ entry: 'Applet.svelte',
8
+ inputs: runbookIssueQueryForm,
9
+ contributes: {}
10
+ };
@@ -0,0 +1,90 @@
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+ import * as z from 'zod/v4';
4
+
5
+ interface TreeEntry { path: string; kind: 'dir' | 'file'; size?: number }
6
+ let root = 'demo/drive';
7
+ let entries: TreeEntry[] = [
8
+ { path: 'docs', kind: 'dir' },
9
+ { path: 'docs/constitution.md', kind: 'file', size: 40213 },
10
+ { path: 'docs/agents.md', kind: 'file', size: 7104 },
11
+ { path: 'src', kind: 'dir' },
12
+ { path: 'src/main.ts', kind: 'file', size: 1204 },
13
+ { path: 'package.json', kind: 'file', size: 312 }
14
+ ];
15
+ interface ExpandedFolderMap {
16
+ [folderPath: string]: boolean;
17
+ }
18
+ let expanded: ExpandedFolderMap = { 'docs': true };
19
+ let selected = 'docs/constitution.md';
20
+
21
+ function receive(event: MessageEvent) {
22
+ const data = event.data;
23
+ if (data && data.type === 'tree' && Array.isArray(data.entries)) {
24
+ const parsedRoot = z.string().safeParse(data.root);
25
+ if (parsedRoot.success) root = parsedRoot.data;
26
+ const valid = data.entries.filter(
27
+ (e): e is TreeEntry => typeof e?.path === 'string' && (e?.kind === 'dir' || e?.kind === 'file')
28
+ );
29
+ if (valid.length > 0) { entries = valid; selected = valid[0].path; }
30
+ }
31
+ }
32
+ onMount(() => {
33
+ window.addEventListener('message', receive);
34
+ return () => window.removeEventListener('message', receive);
35
+ });
36
+
37
+ function depth(path: string): number {
38
+ return path.split('/').length - 1;
39
+ }
40
+ function isShown(path: string): boolean {
41
+ const parts = path.split('/');
42
+ for (let i = 1; i < parts.length; i++) {
43
+ const ancestor = parts.slice(0, i).join('/');
44
+ if (!expanded[ancestor]) return false;
45
+ }
46
+ return true;
47
+ }
48
+ $: files = entries.filter((e) => e.kind === 'file');
49
+ function fmtSize(bytes?: number): string {
50
+ if (bytes === undefined) return '';
51
+ if (bytes < 1024) return `${bytes} B`;
52
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
53
+ return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
54
+ }
55
+ </script>
56
+
57
+ <style>
58
+ :host, .root { display: block; height: 100%; font: 13px/1.5 ui-monospace, 'SF Mono', Menlo, monospace; background: #0d1117; color: #e6edf3; }
59
+ .root { display: flex; flex-direction: column; }
60
+ .bar { display: flex; justify-content: space-between; padding: 6px 10px; background: #161b22; border-bottom: 1px solid #30363d; font-size: 11px; color: #8b949e; }
61
+ .body { flex: 1; overflow: auto; padding: 6px 0; }
62
+ .entry { display: flex; align-items: center; padding: 2px 10px; cursor: pointer; white-space: pre; }
63
+ .entry:hover { background: #1c2128; }
64
+ .entry.selected { background: #388bfd33; }
65
+ .caret { width: 16px; flex: none; color: #8b949e; }
66
+ .indent { display: inline-block; }
67
+ .name { margin-right: 8px; }
68
+ .dir .name { color: #79c0ff; font-weight: 600; }
69
+ .size { color: #484f58; margin-left: auto; }
70
+ </style>
71
+
72
+ <div class="root">
73
+ <div class="bar">
74
+ <span>{root}</span>
75
+ <span>{files.length} files · {entries.length} entries</span>
76
+ </div>
77
+ <div class="body">
78
+ {#each entries as e (e.path)}
79
+ {#if isShown(e.path)}
80
+ <div class="entry {e.kind}" class:selected={selected === e.path}
81
+ style="padding-left: {10 + depth(e.path) * 14}px"
82
+ onclick={() => { if (e.kind === 'dir') expanded[e.path] = !expanded[e.path]; else selected = e.path; }}>
83
+ <span class="caret">{e.kind === 'dir' ? (expanded[e.path] ? '▾' : '▸') : ' '}</span>
84
+ <span class="name">{e.path.split('/').pop()}</span>
85
+ {#if e.kind === 'file'}<span class="size">{fmtSize(e.size)}</span>{/if}
86
+ </div>
87
+ {/if}
88
+ {/each}
89
+ </div>
90
+ </div>
@@ -0,0 +1,15 @@
1
+ /**
2
+ * StorageViewer applet — authoring descriptor (not published).
3
+ *
4
+ * Template #3 of the 2026-08-23 applet effort. Self-contained v1: renders a
5
+ * handed {type:'tree', root, entries:[{path,kind,size}]} payload (host or
6
+ * demo). The host fetches through the platform storage browse runtime when
7
+ * composed with a real drive — see the message contract in Applet.svelte.
8
+ */
9
+ export default {
10
+ id: 'storage-viewer',
11
+ title: 'Storage Viewer',
12
+ description: 'Directory tree viewer for consumer/cloud drives (handed payload v1).',
13
+ entry: 'Applet.svelte',
14
+ contributes: {}
15
+ };
@@ -0,0 +1,13 @@
1
+ <script lang="ts">
2
+ import type { AppletRootSurface } from '@vibesdotdev/applets';
3
+ import RunnableTracker from '@vibesdotdev/applets/svelte/RunnableTracker.svelte';
4
+ import { GraphRunSection, RunbookSection } from '@vibesdotdev/runbooks/svelte';
5
+ let { vibes }: { vibes?: AppletRootSurface } = $props();
6
+ </script>
7
+
8
+ <RunnableTracker {vibes} title="Workspace graph runbook tracker" projection="catalog">
9
+ {#snippet overview(store)}<GraphRunSection {store} />{/snippet}
10
+ {#snippet sections(snapshot, store)}
11
+ {#if store}<RunbookSection {snapshot} {store} />{/if}
12
+ {/snippet}
13
+ </RunnableTracker>
@@ -0,0 +1,7 @@
1
+ export default {
2
+ id: 'workspace-graph-runbook-tracker',
3
+ title: 'Workspace graph runbook tracker',
4
+ description: 'Workspace package impacts, file walks, correction attempts and sign-offs over the shared live graph run view.',
5
+ entry: 'Applet.svelte',
6
+ contributes: {}
7
+ };