@vibesdotdev/plugins 0.0.0-stage → 1.0.0-rc.1

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 (330) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +54 -2
  3. package/VIBES.md +165 -0
  4. package/dist/ai/index.d.ts +4 -0
  5. package/dist/ai/index.d.ts.map +1 -0
  6. package/dist/ai/index.js +3 -0
  7. package/dist/ai/index.js.map +1 -0
  8. package/dist/ai/plugin.impl.cloud.d.ts +4 -0
  9. package/dist/ai/plugin.impl.cloud.d.ts.map +1 -0
  10. package/dist/ai/plugin.impl.cloud.js +32 -0
  11. package/dist/ai/plugin.impl.cloud.js.map +1 -0
  12. package/dist/ai/plugin.impl.consumer.d.ts +7 -0
  13. package/dist/ai/plugin.impl.consumer.d.ts.map +1 -0
  14. package/dist/ai/plugin.impl.consumer.js +222 -0
  15. package/dist/ai/plugin.impl.consumer.js.map +1 -0
  16. package/dist/auth/consumer.plugin.d.ts +3 -0
  17. package/dist/auth/consumer.plugin.d.ts.map +1 -0
  18. package/dist/auth/consumer.plugin.js +105 -0
  19. package/dist/auth/consumer.plugin.js.map +1 -0
  20. package/dist/auth/index.d.ts +2 -0
  21. package/dist/auth/index.d.ts.map +1 -0
  22. package/dist/auth/index.js +2 -0
  23. package/dist/auth/index.js.map +1 -0
  24. package/dist/auth/plugin.d.ts +4 -0
  25. package/dist/auth/plugin.d.ts.map +1 -0
  26. package/dist/auth/plugin.js +33 -0
  27. package/dist/auth/plugin.js.map +1 -0
  28. package/dist/automation/consumer.plugin.d.ts +3 -0
  29. package/dist/automation/consumer.plugin.d.ts.map +1 -0
  30. package/dist/automation/consumer.plugin.js +92 -0
  31. package/dist/automation/consumer.plugin.js.map +1 -0
  32. package/dist/automation/index.d.ts +2 -0
  33. package/dist/automation/index.d.ts.map +1 -0
  34. package/dist/automation/index.js +2 -0
  35. package/dist/automation/index.js.map +1 -0
  36. package/dist/automation/plugin.d.ts +4 -0
  37. package/dist/automation/plugin.d.ts.map +1 -0
  38. package/dist/automation/plugin.js +30 -0
  39. package/dist/automation/plugin.js.map +1 -0
  40. package/dist/bun/host.d.ts +44 -0
  41. package/dist/bun/host.d.ts.map +1 -0
  42. package/dist/bun/host.js +71 -0
  43. package/dist/bun/host.js.map +1 -0
  44. package/dist/cli/child-failure.d.ts +37 -0
  45. package/dist/cli/child-failure.d.ts.map +1 -0
  46. package/dist/cli/child-failure.js +86 -0
  47. package/dist/cli/child-failure.js.map +1 -0
  48. package/dist/cli/context.d.ts +12 -0
  49. package/dist/cli/context.d.ts.map +1 -0
  50. package/dist/cli/context.js +11 -0
  51. package/dist/cli/context.js.map +1 -0
  52. package/dist/cli/execution.d.ts +10 -0
  53. package/dist/cli/execution.d.ts.map +1 -0
  54. package/dist/cli/execution.js +20 -0
  55. package/dist/cli/execution.js.map +1 -0
  56. package/dist/cli/failure-facts.d.ts +16 -0
  57. package/dist/cli/failure-facts.d.ts.map +1 -0
  58. package/dist/cli/failure-facts.js +39 -0
  59. package/dist/cli/failure-facts.js.map +1 -0
  60. package/dist/cli/package-manager.consumer.d.ts +106 -0
  61. package/dist/cli/package-manager.consumer.d.ts.map +1 -0
  62. package/dist/cli/package-manager.consumer.js +258 -0
  63. package/dist/cli/package-manager.consumer.js.map +1 -0
  64. package/dist/cli/plugin.d.ts +9 -0
  65. package/dist/cli/plugin.d.ts.map +1 -0
  66. package/dist/cli/plugin.js +34 -0
  67. package/dist/cli/plugin.js.map +1 -0
  68. package/dist/cli/plugins.add.cli-command.descriptor.d.ts +36 -0
  69. package/dist/cli/plugins.add.cli-command.descriptor.d.ts.map +1 -0
  70. package/dist/cli/plugins.add.cli-command.descriptor.js +31 -0
  71. package/dist/cli/plugins.add.cli-command.descriptor.js.map +1 -0
  72. package/dist/cli/plugins.add.cli-command.impl.consumer.d.ts +63 -0
  73. package/dist/cli/plugins.add.cli-command.impl.consumer.d.ts.map +1 -0
  74. package/dist/cli/plugins.add.cli-command.impl.consumer.js +206 -0
  75. package/dist/cli/plugins.add.cli-command.impl.consumer.js.map +1 -0
  76. package/dist/cli/plugins.cli-group.descriptor.d.ts +4 -0
  77. package/dist/cli/plugins.cli-group.descriptor.d.ts.map +1 -0
  78. package/dist/cli/plugins.cli-group.descriptor.js +10 -0
  79. package/dist/cli/plugins.cli-group.descriptor.js.map +1 -0
  80. package/dist/cli/plugins.host.cli-command.descriptor.d.ts +31 -0
  81. package/dist/cli/plugins.host.cli-command.descriptor.d.ts.map +1 -0
  82. package/dist/cli/plugins.host.cli-command.descriptor.js +37 -0
  83. package/dist/cli/plugins.host.cli-command.descriptor.js.map +1 -0
  84. package/dist/cli/plugins.host.cli-command.impl.consumer.d.ts +29 -0
  85. package/dist/cli/plugins.host.cli-command.impl.consumer.d.ts.map +1 -0
  86. package/dist/cli/plugins.host.cli-command.impl.consumer.js +109 -0
  87. package/dist/cli/plugins.host.cli-command.impl.consumer.js.map +1 -0
  88. package/dist/cli/plugins.link.cli-command.descriptor.d.ts +35 -0
  89. package/dist/cli/plugins.link.cli-command.descriptor.d.ts.map +1 -0
  90. package/dist/cli/plugins.link.cli-command.descriptor.js +32 -0
  91. package/dist/cli/plugins.link.cli-command.descriptor.js.map +1 -0
  92. package/dist/cli/plugins.link.cli-command.impl.consumer.d.ts +31 -0
  93. package/dist/cli/plugins.link.cli-command.impl.consumer.d.ts.map +1 -0
  94. package/dist/cli/plugins.link.cli-command.impl.consumer.js +104 -0
  95. package/dist/cli/plugins.link.cli-command.impl.consumer.js.map +1 -0
  96. package/dist/cli/plugins.list.cli-command.descriptor.d.ts +26 -0
  97. package/dist/cli/plugins.list.cli-command.descriptor.d.ts.map +1 -0
  98. package/dist/cli/plugins.list.cli-command.descriptor.js +22 -0
  99. package/dist/cli/plugins.list.cli-command.descriptor.js.map +1 -0
  100. package/dist/cli/plugins.list.cli-command.impl.consumer.d.ts +116 -0
  101. package/dist/cli/plugins.list.cli-command.impl.consumer.d.ts.map +1 -0
  102. package/dist/cli/plugins.list.cli-command.impl.consumer.js +343 -0
  103. package/dist/cli/plugins.list.cli-command.impl.consumer.js.map +1 -0
  104. package/dist/cli/plugins.remove.cli-command.descriptor.d.ts +31 -0
  105. package/dist/cli/plugins.remove.cli-command.descriptor.d.ts.map +1 -0
  106. package/dist/cli/plugins.remove.cli-command.descriptor.js +26 -0
  107. package/dist/cli/plugins.remove.cli-command.descriptor.js.map +1 -0
  108. package/dist/cli/plugins.remove.cli-command.impl.consumer.d.ts +30 -0
  109. package/dist/cli/plugins.remove.cli-command.impl.consumer.d.ts.map +1 -0
  110. package/dist/cli/plugins.remove.cli-command.impl.consumer.js +80 -0
  111. package/dist/cli/plugins.remove.cli-command.impl.consumer.js.map +1 -0
  112. package/dist/cli/plugins.unlink.cli-command.descriptor.d.ts +31 -0
  113. package/dist/cli/plugins.unlink.cli-command.descriptor.d.ts.map +1 -0
  114. package/dist/cli/plugins.unlink.cli-command.descriptor.js +21 -0
  115. package/dist/cli/plugins.unlink.cli-command.descriptor.js.map +1 -0
  116. package/dist/cli/plugins.unlink.cli-command.impl.consumer.d.ts +76 -0
  117. package/dist/cli/plugins.unlink.cli-command.impl.consumer.d.ts.map +1 -0
  118. package/dist/cli/plugins.unlink.cli-command.impl.consumer.js +190 -0
  119. package/dist/cli/plugins.unlink.cli-command.impl.consumer.js.map +1 -0
  120. package/dist/cli/registry-sign-in.consumer.d.ts +80 -0
  121. package/dist/cli/registry-sign-in.consumer.d.ts.map +1 -0
  122. package/dist/cli/registry-sign-in.consumer.js +199 -0
  123. package/dist/cli/registry-sign-in.consumer.js.map +1 -0
  124. package/dist/cli/roll.d.ts +230 -0
  125. package/dist/cli/roll.d.ts.map +1 -0
  126. package/dist/cli/roll.js +569 -0
  127. package/dist/cli/roll.js.map +1 -0
  128. package/dist/cli/schemas/context.d.ts +10 -0
  129. package/dist/cli/schemas/context.d.ts.map +1 -0
  130. package/dist/cli/schemas/context.js +3 -0
  131. package/dist/cli/schemas/context.js.map +1 -0
  132. package/dist/cli/schemas/scopes.d.ts +37 -0
  133. package/dist/cli/schemas/scopes.d.ts.map +1 -0
  134. package/dist/cli/schemas/scopes.js +11 -0
  135. package/dist/cli/schemas/scopes.js.map +1 -0
  136. package/dist/cli/schemas/unlink.d.ts +18 -0
  137. package/dist/cli/schemas/unlink.d.ts.map +1 -0
  138. package/dist/cli/schemas/unlink.js +3 -0
  139. package/dist/cli/schemas/unlink.js.map +1 -0
  140. package/dist/cli/schemas/update.d.ts +77 -0
  141. package/dist/cli/schemas/update.d.ts.map +1 -0
  142. package/dist/cli/schemas/update.js +3 -0
  143. package/dist/cli/schemas/update.js.map +1 -0
  144. package/dist/cli/scopes.d.ts +50 -0
  145. package/dist/cli/scopes.d.ts.map +1 -0
  146. package/dist/cli/scopes.js +90 -0
  147. package/dist/cli/scopes.js.map +1 -0
  148. package/dist/cli/seed.d.ts +232 -0
  149. package/dist/cli/seed.d.ts.map +1 -0
  150. package/dist/cli/seed.js +590 -0
  151. package/dist/cli/seed.js.map +1 -0
  152. package/dist/cli/self-update.d.ts +120 -0
  153. package/dist/cli/self-update.d.ts.map +1 -0
  154. package/dist/cli/self-update.js +274 -0
  155. package/dist/cli/self-update.js.map +1 -0
  156. package/dist/cli/update.cli-command.descriptor.d.ts +62 -0
  157. package/dist/cli/update.cli-command.descriptor.d.ts.map +1 -0
  158. package/dist/cli/update.cli-command.descriptor.js +49 -0
  159. package/dist/cli/update.cli-command.descriptor.js.map +1 -0
  160. package/dist/cli/update.cli-command.impl.consumer.d.ts +178 -0
  161. package/dist/cli/update.cli-command.impl.consumer.d.ts.map +1 -0
  162. package/dist/cli/update.cli-command.impl.consumer.js +750 -0
  163. package/dist/cli/update.cli-command.impl.consumer.js.map +1 -0
  164. package/dist/comms/consumer.plugin.d.ts +3 -0
  165. package/dist/comms/consumer.plugin.d.ts.map +1 -0
  166. package/dist/comms/consumer.plugin.js +108 -0
  167. package/dist/comms/consumer.plugin.js.map +1 -0
  168. package/dist/comms/index.d.ts +2 -0
  169. package/dist/comms/index.d.ts.map +1 -0
  170. package/dist/comms/index.js +2 -0
  171. package/dist/comms/index.js.map +1 -0
  172. package/dist/comms/plugin.d.ts +4 -0
  173. package/dist/comms/plugin.d.ts.map +1 -0
  174. package/dist/comms/plugin.js +30 -0
  175. package/dist/comms/plugin.js.map +1 -0
  176. package/dist/consumer.d.ts +3 -0
  177. package/dist/consumer.d.ts.map +1 -0
  178. package/dist/consumer.js +3 -0
  179. package/dist/consumer.js.map +1 -0
  180. package/dist/consumer.plugin.d.ts +63 -0
  181. package/dist/consumer.plugin.d.ts.map +1 -0
  182. package/dist/consumer.plugin.js +89 -0
  183. package/dist/consumer.plugin.js.map +1 -0
  184. package/dist/core/consumer.plugin.d.ts +4 -0
  185. package/dist/core/consumer.plugin.d.ts.map +1 -0
  186. package/dist/core/consumer.plugin.js +364 -0
  187. package/dist/core/consumer.plugin.js.map +1 -0
  188. package/dist/core/index.d.ts +2 -0
  189. package/dist/core/index.d.ts.map +1 -0
  190. package/dist/core/index.js +2 -0
  191. package/dist/core/index.js.map +1 -0
  192. package/dist/core/optional-member.d.ts +11 -0
  193. package/dist/core/optional-member.d.ts.map +1 -0
  194. package/dist/core/optional-member.js +68 -0
  195. package/dist/core/optional-member.js.map +1 -0
  196. package/dist/core/optional-plugin.d.ts +40 -0
  197. package/dist/core/optional-plugin.d.ts.map +1 -0
  198. package/dist/core/optional-plugin.js +107 -0
  199. package/dist/core/optional-plugin.js.map +1 -0
  200. package/dist/core/plugin.d.ts +10 -0
  201. package/dist/core/plugin.d.ts.map +1 -0
  202. package/dist/core/plugin.js +64 -0
  203. package/dist/core/plugin.js.map +1 -0
  204. package/dist/core/setup-requirements.descriptors.d.ts +7 -0
  205. package/dist/core/setup-requirements.descriptors.d.ts.map +1 -0
  206. package/dist/core/setup-requirements.descriptors.js +117 -0
  207. package/dist/core/setup-requirements.descriptors.js.map +1 -0
  208. package/dist/data/consumer.plugin.d.ts +3 -0
  209. package/dist/data/consumer.plugin.d.ts.map +1 -0
  210. package/dist/data/consumer.plugin.js +99 -0
  211. package/dist/data/consumer.plugin.js.map +1 -0
  212. package/dist/data/index.d.ts +2 -0
  213. package/dist/data/index.d.ts.map +1 -0
  214. package/dist/data/index.js +2 -0
  215. package/dist/data/index.js.map +1 -0
  216. package/dist/data/plugin.d.ts +4 -0
  217. package/dist/data/plugin.d.ts.map +1 -0
  218. package/dist/data/plugin.js +37 -0
  219. package/dist/data/plugin.js.map +1 -0
  220. package/dist/devtools/consumer.plugin.d.ts +3 -0
  221. package/dist/devtools/consumer.plugin.d.ts.map +1 -0
  222. package/dist/devtools/consumer.plugin.js +323 -0
  223. package/dist/devtools/consumer.plugin.js.map +1 -0
  224. package/dist/devtools/index.d.ts +2 -0
  225. package/dist/devtools/index.d.ts.map +1 -0
  226. package/dist/devtools/index.js +2 -0
  227. package/dist/devtools/index.js.map +1 -0
  228. package/dist/devtools/plugin.d.ts +4 -0
  229. package/dist/devtools/plugin.d.ts.map +1 -0
  230. package/dist/devtools/plugin.js +34 -0
  231. package/dist/devtools/plugin.js.map +1 -0
  232. package/dist/filesystem/index.d.ts +2 -0
  233. package/dist/filesystem/index.d.ts.map +1 -0
  234. package/dist/filesystem/index.js +2 -0
  235. package/dist/filesystem/index.js.map +1 -0
  236. package/dist/filesystem/plugin.d.ts +4 -0
  237. package/dist/filesystem/plugin.d.ts.map +1 -0
  238. package/dist/filesystem/plugin.js +21 -0
  239. package/dist/filesystem/plugin.js.map +1 -0
  240. package/dist/index.d.ts +3 -0
  241. package/dist/index.d.ts.map +1 -0
  242. package/dist/index.js +4 -0
  243. package/dist/index.js.map +1 -0
  244. package/dist/plugin.d.ts +7 -0
  245. package/dist/plugin.d.ts.map +1 -0
  246. package/dist/plugin.js +16 -0
  247. package/dist/plugin.js.map +1 -0
  248. package/dist/schemas/ai.d.ts +119 -0
  249. package/dist/schemas/ai.d.ts.map +1 -0
  250. package/dist/schemas/ai.js +84 -0
  251. package/dist/schemas/ai.js.map +1 -0
  252. package/dist/schemas/auth.d.ts +15 -0
  253. package/dist/schemas/auth.d.ts.map +1 -0
  254. package/dist/schemas/auth.js +19 -0
  255. package/dist/schemas/auth.js.map +1 -0
  256. package/dist/schemas/automation.d.ts +66 -0
  257. package/dist/schemas/automation.d.ts.map +1 -0
  258. package/dist/schemas/automation.js +36 -0
  259. package/dist/schemas/automation.js.map +1 -0
  260. package/dist/schemas/comms.d.ts +13 -0
  261. package/dist/schemas/comms.d.ts.map +1 -0
  262. package/dist/schemas/comms.js +27 -0
  263. package/dist/schemas/comms.js.map +1 -0
  264. package/dist/schemas/core.d.ts +102 -0
  265. package/dist/schemas/core.d.ts.map +1 -0
  266. package/dist/schemas/core.js +124 -0
  267. package/dist/schemas/core.js.map +1 -0
  268. package/dist/schemas/data.d.ts +13 -0
  269. package/dist/schemas/data.d.ts.map +1 -0
  270. package/dist/schemas/data.js +25 -0
  271. package/dist/schemas/data.js.map +1 -0
  272. package/dist/schemas/devtools.d.ts +33 -0
  273. package/dist/schemas/devtools.d.ts.map +1 -0
  274. package/dist/schemas/devtools.js +56 -0
  275. package/dist/schemas/devtools.js.map +1 -0
  276. package/dist/schemas/family.d.ts +11 -0
  277. package/dist/schemas/family.d.ts.map +1 -0
  278. package/dist/schemas/family.js +21 -0
  279. package/dist/schemas/family.js.map +1 -0
  280. package/dist/schemas/filesystem.d.ts +25 -0
  281. package/dist/schemas/filesystem.d.ts.map +1 -0
  282. package/dist/schemas/filesystem.js +24 -0
  283. package/dist/schemas/filesystem.js.map +1 -0
  284. package/dist/schemas/host.d.ts +10 -0
  285. package/dist/schemas/host.d.ts.map +1 -0
  286. package/dist/schemas/host.js +2 -0
  287. package/dist/schemas/host.js.map +1 -0
  288. package/dist/schemas/optional-member.d.ts +67 -0
  289. package/dist/schemas/optional-member.d.ts.map +1 -0
  290. package/dist/schemas/optional-member.js +31 -0
  291. package/dist/schemas/optional-member.js.map +1 -0
  292. package/dist/schemas/roll.d.ts +47 -0
  293. package/dist/schemas/roll.d.ts.map +1 -0
  294. package/dist/schemas/roll.js +18 -0
  295. package/dist/schemas/roll.js.map +1 -0
  296. package/dist/schemas/tui.d.ts +33 -0
  297. package/dist/schemas/tui.d.ts.map +1 -0
  298. package/dist/schemas/tui.js +95 -0
  299. package/dist/schemas/tui.js.map +1 -0
  300. package/dist/schemas/ui.d.ts +15 -0
  301. package/dist/schemas/ui.d.ts.map +1 -0
  302. package/dist/schemas/ui.js +45 -0
  303. package/dist/schemas/ui.js.map +1 -0
  304. package/dist/tui/code-sessions-tui-plugin-shim.d.ts +7 -0
  305. package/dist/tui/code-sessions-tui-plugin-shim.d.ts.map +1 -0
  306. package/dist/tui/code-sessions-tui-plugin-shim.js +2 -0
  307. package/dist/tui/code-sessions-tui-plugin-shim.js.map +1 -0
  308. package/dist/tui/index.d.ts +8 -0
  309. package/dist/tui/index.d.ts.map +1 -0
  310. package/dist/tui/index.js +8 -0
  311. package/dist/tui/index.js.map +1 -0
  312. package/dist/tui/plugin.d.ts +53 -0
  313. package/dist/tui/plugin.d.ts.map +1 -0
  314. package/dist/tui/plugin.js +350 -0
  315. package/dist/tui/plugin.js.map +1 -0
  316. package/dist/ui/consumer.plugin.d.ts +3 -0
  317. package/dist/ui/consumer.plugin.d.ts.map +1 -0
  318. package/dist/ui/consumer.plugin.js +75 -0
  319. package/dist/ui/consumer.plugin.js.map +1 -0
  320. package/dist/ui/index.d.ts +2 -0
  321. package/dist/ui/index.d.ts.map +1 -0
  322. package/dist/ui/index.js +2 -0
  323. package/dist/ui/index.js.map +1 -0
  324. package/dist/ui/plugin.d.ts +4 -0
  325. package/dist/ui/plugin.d.ts.map +1 -0
  326. package/dist/ui/plugin.js +35 -0
  327. package/dist/ui/plugin.js.map +1 -0
  328. package/host-start.mjs +39 -0
  329. package/host.mjs +24 -0
  330. package/package.json +437 -4
package/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VIBES DEV LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
6
+ associated documentation files (the "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
9
+ following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial
12
+ portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
15
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
16
+ EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
18
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,55 @@
1
- # Temporary Holding Version
1
+ # @vibesdotdev/plugins
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Compose the scope-neutral core with the root array or selectable plugin:
4
+
5
+ ```ts
6
+ import plugins from '@vibesdotdev/plugins';
7
+ // Or select '@vibesdotdev/plugins/plugin' in a string plugin list.
8
+ ```
9
+
10
+ Consumer hosts use the full nine-family graph through explicit consumer entries:
11
+
12
+ ```ts
13
+ import plugins from '@vibesdotdev/plugins/consumer';
14
+ // Or select '@vibesdotdev/plugins/consumer.plugin'.
15
+ ```
16
+
17
+ Both forms preserve dependency order. Choose one graph per runtime; both
18
+ selectable plugins retain the same public plugin id. Native filesystem adapters
19
+ come from the host environment. Core-only consumers select
20
+ `@vibesdotdev/plugins/core/consumer.plugin`.
21
+
22
+ `./schemas/core` owns core validation, adapter forms and scope defaults.
23
+ Malformed fields refuse typed; installed optional-plugin defects retain their
24
+ stage and cause instead of being skipped. Storage ids (`cloud-api`, `json`,
25
+ `localdb`) and filesystem ids (`platform` framework-loaded; `bun`,
26
+ `cloudflare`, `artifacts`, `s3` host-composed) resolve through a declared
27
+ lookup. Unknown ids refuse `UNAVAILABLE` / `storage-adapter-unknown` or
28
+ `filesystem-adapter-unknown`; there is no silent fallback. Dynamic imports are
29
+ still static bundler edges: consumer and CLI composition belongs on explicit
30
+ entrypoints.
31
+
32
+ Family roots (`./auth`, `./automation`, `./comms`, `./data`, `./devtools`,
33
+ `./ui`, and `./ai`) compose scope-neutral contracts and narrow clients.
34
+ Use `./<family>/consumer.plugin` for a family's full native graph;
35
+ `./ai/plugin` also retains its consumer compatibility meaning. TUI applications
36
+ remain behind `./tui/plugin`.
37
+
38
+ Family schemas live under `./schemas/<family>`. Malformed present fields refuse
39
+ `INVALID_INPUT` with reason `plugins-<family>-config-invalid` and the field name.
40
+ Filesystem exposes its validated open-string connector selection
41
+ (`providers: string[]`, scope default `[]`) as
42
+ the `plugins/filesystem/config` descriptor `plugins.filesystem`; hosts query it
43
+ and compose the provider owners.
44
+
45
+ See [SPEC.md](SPEC.md) for contracts and package verification commands.
46
+
47
+ Importing `./bun/host` or `host-start.mjs` boots nothing; call `startHost(options)`.
48
+ The legacy `host.mjs` trampoline starts immediately. Discovery prefers
49
+ `src/bun/host.ts` in a checkout and `dist/bun/host.js` in an install, through the
50
+ host-owned loader. CLI process duties belong to `surface-cli`.
51
+
52
+ Seed/repair obtains the registry origin from Config's active environment by default; callers may name an environment explicitly or supply a registry URL. Self-update verifies the digest and requires the filesystem adapter's chmod capability before atomic replacement. A refusal preserves the target and removes the temporary download.
53
+
54
+ Verify with `bun run check`, `bun run test`, `bun run build`, the package oxlint
55
+ ratchet and `workspace-rules`. Check includes tests; build emits production only.
package/VIBES.md ADDED
@@ -0,0 +1,165 @@
1
+ ---
2
+ slice: repos/platform/framework/plugins
3
+ name: plugins
4
+ generated: 2026-10-27T02:46:14.839Z
5
+ branches: [origin/main, v1/correctness]
6
+ policy:
7
+ lifecycle: "active"
8
+ changeResistance: "none"
9
+ frozen: false
10
+ frozenAt: null
11
+ frozenBy: null
12
+ freezeReason: null
13
+ enforcement: "error"
14
+ scope: "all"
15
+ exceptions: []
16
+ expiresAt: null
17
+ expired: false
18
+ requiresApproval: []
19
+ violationCount: 0
20
+ violations: []
21
+ ---
22
+
23
+ # plugins
24
+
25
+ ## Ownership
26
+
27
+ **owners:** none
28
+ **source:** "none"
29
+ **confidence:** 0
30
+
31
+ ## Dependencies
32
+
33
+ | sliceId | paths |
34
+ | --- | --- |
35
+ | account | @vibesdotdev/account |
36
+ | agent-execution | @vibesdotdev/agent-execution |
37
+ | agents | @vibesdotdev/agents |
38
+ | ai | @vibesdotdev/ai |
39
+ | ai-schemas | @vibesdotdev/ai-schemas |
40
+ | applets | @vibesdotdev/applets |
41
+ | bridge | @vibesdotdev/bridge |
42
+ | cache | @vibesdotdev/cache |
43
+ | canvas | @vibesdotdev/canvas |
44
+ | chat | @vibesdotdev/chat |
45
+ | client | @vibesdotdev/client |
46
+ | code-sessions | @vibesdotdev/code-sessions |
47
+ | command-palette | @vibesdotdev/command-palette |
48
+ | config | @vibesdotdev/config |
49
+ | control | @vibesdotdev/control |
50
+ | docs | @vibesdotdev/docs |
51
+ | editor | @vibesdotdev/editor |
52
+ | external | @vibesdotdev/external |
53
+ | filesystem | @vibesdotdev/filesystem |
54
+ | forge | @vibesdotdev/forge |
55
+ | git-operations | @vibesdotdev/git-operations |
56
+ | host-bun | @vibesdotdev/host-bun |
57
+ | host-node | @vibesdotdev/host-node |
58
+ | hq | @vibesdotdev/hq |
59
+ | infra-deploy | @vibesdotdev/infra-deploy |
60
+ | kernel | @vibesdotdev/kernel |
61
+ | kernel-rpc | @vibesdotdev/kernel-rpc |
62
+ | knowledge | @vibesdotdev/knowledge |
63
+ | localdb | @vibesdotdev/localdb |
64
+ | logging | @vibesdotdev/logging |
65
+ | mcp | @vibesdotdev/mcp |
66
+ | media | @vibesdotdev/media |
67
+ | notifications | @vibesdotdev/notifications |
68
+ | paths | @vibesdotdev/paths |
69
+ | platform | @vibesdotdev/platform |
70
+ | pm | @vibesdotdev/pm |
71
+ | projects | @vibesdotdev/projects |
72
+ | prompts | @vibesdotdev/prompts |
73
+ | realtime | @vibesdotdev/realtime |
74
+ | runbooks | @vibesdotdev/runbooks |
75
+ | runnable | @vibesdotdev/runnable |
76
+ | scope | @vibesdotdev/scope |
77
+ | secrets | @vibesdotdev/secrets |
78
+ | session | @vibesdotdev/session |
79
+ | shared | @vibesdotdev/shared |
80
+ | studio | @vibesdotdev/studio |
81
+ | surface-cli | @vibesdotdev/surface-cli |
82
+ | surface-sveltekit | @vibesdotdev/surface-sveltekit |
83
+ | terminal-client | @vibesdotdev/terminal-client |
84
+ | testing | @vibesdotdev/testing |
85
+ | tools | @vibesdotdev/tools |
86
+ | tui | @vibesdotdev/tui |
87
+ | vessel | @vibesdotdev/vessel |
88
+ | vibesdotdev.auth | @vibesdotdev/auth |
89
+ | vibesdotdev.cli | @vibesdotdev/cli |
90
+ | vibesdotdev.storage | @vibesdotdev/storage |
91
+ | vibesdotdev.sync | @vibesdotdev/sync |
92
+ | workboard | @vibesdotdev/workboard |
93
+ | workers | @vibesdotdev/workers |
94
+ | workspace | @vibesdotdev/workspace |
95
+ **importedBy:** none
96
+ **external:** @opentui/react, @types/bun, @types/react, @vibesdotdev/plugins, bun:test, node:fs, node:os, node:path, react, typescript, zod
97
+ **source:** "both"
98
+
99
+ ## Health
100
+
101
+ **ruleViolations:** none
102
+ | package | check | status | findings |
103
+ | --- | --- | --- | --- |
104
+ | @vibesdotdev/developer-bootstrap | import-exports | failed | 22806 |
105
+ | @vibesdotdev/developer-bootstrap | dependency-specs | failed | 182 |
106
+ | @vibesdotdev/plugins | check | failed | 17 |
107
+ | @vibesdotdev/plugins | build | failed | 15 |
108
+ | @vibesdotdev/plugins | test | failed | 1 |
109
+ **typeErrors:** 0
110
+ **warnings:** 0
111
+ **indexCoverage:** 0
112
+
113
+ ## Index State
114
+
115
+ **dirtyFiles:** 0
116
+ **signalCoverage:** {"workspace.signal.file-stats":0.9235668789808917}
117
+
118
+ ## Lock State
119
+
120
+ ### origin/main
121
+
122
+ **uncommittedFiles:** none
123
+ **hasConflicts:** false
124
+ **conflictFiles:** none
125
+ **aheadBehind:** {"ahead":0,"behind":0}
126
+
127
+ ### v1/correctness
128
+
129
+ **uncommittedFiles:** none
130
+ **hasConflicts:** false
131
+ **conflictFiles:** none
132
+ **aheadBehind:** {"ahead":0,"behind":0}
133
+
134
+
135
+ ## Change Summary
136
+
137
+ ### origin/main
138
+
139
+ **baseBranch:** "origin/main"
140
+ **filesChanged:** 0
141
+ **insertions:** 0
142
+ **deletions:** 0
143
+ **changedFiles:** none
144
+ **unavailable:** {"reason":"slice-git-unavailable","message":"The slice's Git facts could not be read."}
145
+
146
+ ### v1/correctness
147
+
148
+ **baseBranch:** "v1/correctness"
149
+ **filesChanged:** 0
150
+ **insertions:** 0
151
+ **deletions:** 0
152
+ **changedFiles:** none
153
+
154
+
155
+ ## Children
156
+
157
+ **children:** none
158
+ **totalChildren:** 0
159
+ **frozenChildren:** 0
160
+ **healthyChildren:** 0
161
+ **degradedChildren:** 0
162
+ **totalViolations:** 0
163
+
164
+ ---
165
+ *Generated by vibes workspace slices*
@@ -0,0 +1,4 @@
1
+ export { aiCloudProvidersPlugin as aiPluginsPlugin, default } from './plugin.impl.cloud.ts';
2
+ export { AIPluginsConfigSchema } from '../schemas/ai.ts';
3
+ export type { AIPluginsConfig, AIPluginsInput } from '../schemas/ai.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { aiCloudProvidersPlugin as aiPluginsPlugin, default } from "./plugin.impl.cloud.js";
2
+ export { AIPluginsConfigSchema } from "../schemas/ai.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Scope-pure AI contracts; provider plugins are selected by the host. */
2
+ export declare const aiCloudProvidersPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
3
+ export default aiCloudProvidersPlugin;
4
+ //# sourceMappingURL=plugin.impl.cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.impl.cloud.d.ts","sourceRoot":"","sources":["../../src/ai/plugin.impl.cloud.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,6CAuBjC,CAAC;AACH,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import aiCloudPlugin from '@vibesdotdev/ai/ai.cloud.plugin';
2
+ import { createRuntimePlugin, createRuntimeKind } from '@vibesdotdev/kernel';
3
+ import { z } from 'zod/v4';
4
+ import { AIPluginsConfigSchema, mergeConfig } from "../schemas/ai.js";
5
+ /** Scope-pure AI contracts; provider plugins are selected by the host. */
6
+ export const aiCloudProvidersPlugin = createRuntimePlugin({
7
+ id: '@vibesdotdev/plugins-ai',
8
+ name: 'AI Plugins Umbrella (Cloud)',
9
+ kinds: [createRuntimeKind({
10
+ id: 'plugins/ai/config',
11
+ descriptorSchema: z.object({
12
+ kind: z.literal('plugins/ai/config'), id: z.literal('plugins.ai'), config: AIPluginsConfigSchema
13
+ })
14
+ })],
15
+ async onRegister(runtime) {
16
+ const input = runtime.hasContext('plugins.ai')
17
+ ? await runtime.context('plugins.ai') : {};
18
+ const config = mergeConfig(input, runtime.scope);
19
+ runtime.registerDescriptor('plugins/ai/config', { kind: 'plugins/ai/config', id: 'plugins.ai', config });
20
+ if (!config.core)
21
+ return;
22
+ await runtime.registerPlugin(aiCloudPlugin);
23
+ const [{ default: video }, { default: direct }] = await Promise.all([
24
+ import('@vibesdotdev/ai/generation-video/plugin'),
25
+ import('@vibesdotdev/ai/executor-direct/cloud.plugin')
26
+ ]);
27
+ await runtime.registerPlugin(video);
28
+ await runtime.registerPlugin(direct);
29
+ }
30
+ });
31
+ export default aiCloudProvidersPlugin;
32
+ //# sourceMappingURL=plugin.impl.cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.impl.cloud.js","sourceRoot":"","sources":["../../src/ai/plugin.impl.cloud.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;IACzD,EAAE,EAAE,yBAAyB;IAC7B,IAAI,EAAE,6BAA6B;IACnC,KAAK,EAAE,CAAC,iBAAiB,CAAC;YACzB,EAAE,EAAE,mBAAmB;YACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;gBAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,qBAAqB;aAChG,CAAC;SACF,CAAC,CAAC;IACH,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAoB,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QACzB,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnE,MAAM,CAAC,yCAAyC,CAAC;YACjD,MAAM,CAAC,8CAA8C,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACD,CAAC,CAAC;AACH,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { RuntimePlugin } from '@vibesdotdev/kernel';
2
+ import { AIPluginsConfigSchema, type AIPluginsInput } from '../schemas/ai.ts';
3
+ export declare function createAIPlugins(customConfig?: AIPluginsInput): RuntimePlugin;
4
+ export declare const aiPluginsPlugin: RuntimePlugin;
5
+ export { AIPluginsConfigSchema };
6
+ export default aiPluginsPlugin;
7
+ //# sourceMappingURL=plugin.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/ai/plugin.impl.consumer.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,qBAAqB,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAmC,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/G,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,cAAc,GAAG,aAAa,CAoL5E;AACD,eAAO,MAAM,eAAe,eAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,eAAe,eAAe,CAAC"}
@@ -0,0 +1,222 @@
1
+ import { optionalMemberRegistrar } from "../core/optional-member.js";
2
+ /**
3
+ * AI Plugins Umbrella
4
+ *
5
+ * Registers a config descriptor under `plugins.ai` that controls
6
+ * which AI provider plugins are enabled. Provides intelligent defaults
7
+ * based on runtime scope and available credentials.
8
+ *
9
+ * Vision: Background workers are the default execution mode for consumer hardware.
10
+ * PM daemon and workers auto-launch when needed for parallel, non-blocking generation.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // vibes.config.ts
15
+ * export default {
16
+ * plugins: [() => import('../ai/plugin')],
17
+ * config: {
18
+ * plugins: {
19
+ * ai: {
20
+ * core: true,
21
+ * providers: {
22
+ * anthropic: true,
23
+ * fireworks: true,
24
+ * lmstudio: false
25
+ * },
26
+ * defaultProvider: 'anthropic',
27
+ * executionMode: 'background' // 'background' | 'single-threaded' | 'cloud'
28
+ * }
29
+ * }
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ import { createRuntimePlugin, createRuntimeKind } from '@vibesdotdev/kernel';
35
+ import { getLogger } from '@vibesdotdev/logging';
36
+ import { z } from 'zod/v4';
37
+ import { AIPluginsConfigSchema, mergeConfig, mergeUserAndCustom } from "../schemas/ai.js";
38
+ export function createAIPlugins(customConfig) {
39
+ return createRuntimePlugin({
40
+ id: '@vibesdotdev/plugins-ai',
41
+ name: 'AI Plugins Umbrella',
42
+ description: 'AI provider plugins with config-driven enablement',
43
+ dependencies: ['context', '@vibesdotdev/plugins-core'],
44
+ kinds: [
45
+ createRuntimeKind({
46
+ id: 'plugins/ai/config',
47
+ descriptorSchema: z.object({
48
+ kind: z.literal('plugins/ai/config'),
49
+ id: z.literal('plugins.ai'),
50
+ config: AIPluginsConfigSchema
51
+ })
52
+ })
53
+ ],
54
+ async onRegister(runtime) {
55
+ const member = optionalMemberRegistrar('plugins-ai', runtime);
56
+ const log = getLogger('plugins-ai', runtime);
57
+ const configId = 'plugins.ai';
58
+ const userConfig = runtime.hasContext(configId)
59
+ ? await runtime.context(configId)
60
+ : {};
61
+ const combined = mergeUserAndCustom(userConfig, customConfig);
62
+ const effectiveConfig = mergeConfig(combined, runtime.scope);
63
+ if (effectiveConfig.core) {
64
+ const aiModule = await import('@vibesdotdev/ai/ai.plugin');
65
+ const aiPlugin = aiModule.default;
66
+ await runtime.registerPlugin(aiPlugin);
67
+ if (runtime.scope.surface === 'cli') {
68
+ await member('@vibesdotdev/ai/cli/plugin', async () => (await import('@vibesdotdev/ai/cli/plugin')).default);
69
+ }
70
+ const { default: videoGenerationPlugin } = await import('@vibesdotdev/ai/generation-video/plugin');
71
+ await runtime.registerPlugin(videoGenerationPlugin);
72
+ // AI-domain tools (ai-generate, ai-ocr-document) — extracted from
73
+ // @vibesdotdev/ai into @vibesdotdev/tools/ai so ai stays pure framework
74
+ // (CORE kinds/descriptors/base-impl). They register against the
75
+ // tools/tool kind owned by @vibesdotdev/tools (composed by plugins-core,
76
+ // a declared dependency of this umbrella). Skip gracefully if tools is
77
+ // not active in this slice — the AI tools simply aren't available.
78
+ if (runtime.hasKind('tools/tool')) {
79
+ // Core AI-router data model: the `ai/router*` kinds + the
80
+ // `ai.routers` storage manifest (localdb/json/cloud-api adapters →
81
+ // ai-web's /api/routers). Registered unconditionally with the AI
82
+ // domain — same posture as the ai.models/ai.providers manifests
83
+ // inside aiPlugin — so `runtime.query('ai/router')` and
84
+ // `query('storage/manifest').withId('ai.routers')` resolve on
85
+ // consumer surfaces. The HTTP router SERVER + CLI stays behind the
86
+ // `router` flag below. Declares `dependencies: ['ai', 'tools']`,
87
+ // hence this tools-gated branch.
88
+ await member('@vibesdotdev/ai/router/plugin', async () => (await import('@vibesdotdev/ai/router/plugin')).default);
89
+ await member('@vibesdotdev/ai/tools-impl/plugin', async () => (await import('@vibesdotdev/ai/tools-impl/plugin')).default);
90
+ // The Bun/FS-backed ai-generate / generate-image impls are consumer-only
91
+ // (split out of ai-tools.plugin to keep their static edge out of cloud
92
+ // bundles). Restore them for consumer/CLI/TUI surfaces here.
93
+ if (runtime.scope.hardware === 'consumer') {
94
+ const { default: aiToolsConsumerPlugin } = await import('@vibesdotdev/ai/tools-impl/consumer.plugin');
95
+ await runtime.registerPlugin(aiToolsConsumerPlugin);
96
+ }
97
+ }
98
+ else {
99
+ log.debug('AI tools not composed: tools/tool kind absent', { pluginId: '@vibesdotdev/tools/ai' });
100
+ }
101
+ {
102
+ await member('@vibesdotdev/ai/scorecard/plugin', async () => (await import('@vibesdotdev/ai/scorecard/plugin')).default);
103
+ await member('@vibesdotdev/ai/scorecard/plugin/api-client', async () => (await import('@vibesdotdev/ai/scorecard/plugin/api-client')).default);
104
+ {
105
+ await member('@vibesdotdev/ai/scorecard/adapters/pier/plugin', async () => (await import('@vibesdotdev/ai/scorecard/adapters/pier/plugin')).default);
106
+ }
107
+ }
108
+ {
109
+ await member('@vibesdotdev/ai/routing/plugin', async () => (await import('@vibesdotdev/ai/routing/plugin')).default);
110
+ }
111
+ // Canonical sibling -cli surface for the tools package
112
+ // (SURFACE-PACKAGE-CONVENTIONS §3). Registers the full end-user
113
+ // `vibes tools` surface: list|inspect|run|scan|init|export-*|agents.*.
114
+ // Residual `vibes dev` commands stay on tools.cli.plugin.
115
+ // CLI-only by surface; cli/group + cli/command kinds exist when
116
+ // @vibesdotdev/cli is composed (cli-bin does this unconditionally).
117
+ if (runtime.scope.surface === 'cli') {
118
+ {
119
+ await member('@vibesdotdev/tools/cli/plugin', async () => (await import('@vibesdotdev/tools/cli/plugin')).default);
120
+ }
121
+ {
122
+ await member('@vibesdotdev/prompts/cli/plugin', async () => (await import('@vibesdotdev/prompts/cli/plugin')).default);
123
+ }
124
+ {
125
+ await member('@vibesdotdev/ai/scorecard/cli/plugin', async () => (await import('@vibesdotdev/ai/scorecard/cli/plugin')).default);
126
+ }
127
+ }
128
+ // Vision: Auto-start infrastructure for background execution
129
+ // PM daemon and workers launch automatically when needed
130
+ if (effectiveConfig.executionMode === 'background' &&
131
+ runtime.scope.hardware === 'consumer') {
132
+ // Register PM plugin for process management
133
+ await member('@vibesdotdev/pm/plugin', async () => (await import('@vibesdotdev/pm/plugin')).default);
134
+ // Register workers plugin for job queue
135
+ await member('@vibesdotdev/workers/plugin', async () => (await import('@vibesdotdev/workers/plugin')).default);
136
+ }
137
+ // Map execution mode to executor plugin
138
+ // - background → worker executor (queue-based, parallel) + direct executor (used inside worker)
139
+ // - single-threaded → direct executor (in-process, immediate)
140
+ // - cloud → api-sse executor (cloud API with SSE streaming)
141
+ //
142
+ // In background mode both executors are registered so the worker job
143
+ // handler can resolve generation.direct inside the worker process.
144
+ //
145
+ // The USER's configured mode wins over the scope default.
146
+ //
147
+ // `plugins.ai.executionMode` (this plugin's config, consumer default
148
+ // 'background') decides which executor plugin is REGISTERED, while
149
+ // `ai.core.generationExecutionMode` — what `vibes ai mode set` and
150
+ // `vibes ai config set generationExecutionMode` actually write, and what
151
+ // `resolve-generation-executor.ts` reads to pick the executor that
152
+ // DECLARES it fulfils that mode on its executing host — was
153
+ // never consulted here. The two disagreed silently: a consumer could set
154
+ // cloud mode and still only ever get `generation.worker`, because
155
+ // `generation.api-sse` was never registered on consumer hardware. That
156
+ // made cloud execution unreachable from the CLI, which in turn forced
157
+ // users to hold provider credentials (e.g. a Cloudflare account id and
158
+ // token) on their own machine to generate anything. Reading the user's
159
+ // setting here is what makes `vibes ai mode set cloud` mean something.
160
+ // Plugin registration is metadata composition and must never resolve
161
+ // persisted `ai.core` state: doing so eagerly opens LocalDB even for
162
+ // `vibes --help` and completion. Register every executor supported by
163
+ // this consumer surface; request-time resolution reads the configured
164
+ // execution mode and selects the executor declaring it (descriptor
165
+ // `executionModes`, judged on the executing host's scope).
166
+ const [{ default: workerPlugin }, { default: directPlugin }, { default: apiSSEPlugin }] = await Promise.all([
167
+ import('@vibesdotdev/ai/executor-worker/plugin'),
168
+ import('@vibesdotdev/ai/executor-direct/plugin'),
169
+ import('@vibesdotdev/ai/executor-api-sse/consumer.plugin')
170
+ ]);
171
+ await runtime.registerPlugin(workerPlugin);
172
+ await runtime.registerPlugin(directPlugin);
173
+ await runtime.registerPlugin(apiSSEPlugin);
174
+ }
175
+ // THE CLI SURFACE ALWAYS MOUNTS THE ROUTER COMMAND GROUP.
176
+ //
177
+ // `router` defaults to FALSE, and that default is correct for app hosts:
178
+ // nothing should register an HTTP router server's kinds because a page
179
+ // imported the AI umbrella. It is wrong for the CLI, and the monolith
180
+ // hid it — `cli-bin/src/default-plugins.ts:45-46` loaded
181
+ // `@vibesdotdev/ai/router-server/plugin` and
182
+ // `@vibesdotdev/ai/cli/router-server/plugin` UNCONDITIONALLY, so every
183
+ // shipped `vibes` has always carried `ai router` + its nine
184
+ // subcommands. Under the thin host the CLI obeys the config, and those
185
+ // ten command paths disappeared from any workspace that does not set
186
+ // `plugins.ai.router` — measured by `smoke:shipping`'s
187
+ // `help.command-diff` as "10 of 828 reference command path(s) are
188
+ // ABSENT". Plan §11 promises every command id in today's `--help`
189
+ // survives, so that was a capability removal.
190
+ //
191
+ // The narrowest repair is the surface, not the default: no app host
192
+ // changes behaviour, and REGISTERING the server plugin does not START a
193
+ // server — `ai router serve` does. Flipping the default to `true`
194
+ // instead would have changed what `runtime.query('ai/router-server')`
195
+ // resolves on every ai-web surface, which is a product decision this
196
+ // clause does not need.
197
+ if (effectiveConfig.router || runtime.scope.surface === 'cli') {
198
+ {
199
+ await member('@vibesdotdev/ai/router/plugin', async () => (await import('@vibesdotdev/ai/router/plugin')).aiRouterPlugin);
200
+ }
201
+ {
202
+ await member('@vibesdotdev/ai/router-server/plugin', async () => (await import('@vibesdotdev/ai/router-server/plugin')).default);
203
+ await member('@vibesdotdev/ai/cli/router-server/plugin', async () => (await import('@vibesdotdev/ai/cli/router-server/plugin')).aiRouterServerCliPlugin);
204
+ }
205
+ }
206
+ if (effectiveConfig.training && runtime.scope.hardware === 'consumer') {
207
+ // Consumer-local classifier training and model export surface. Local
208
+ // training installs a non-trivial Python toolchain, so it stays opt-in
209
+ // via the `training` config flag.
210
+ const { default: localTrainingPlugin } = await import('@vibesdotdev/ai/training-local/plugin');
211
+ if (!localTrainingPlugin) {
212
+ throw new Error('Missing local AI training plugin default export');
213
+ }
214
+ await runtime.registerPlugin(localTrainingPlugin);
215
+ }
216
+ }
217
+ });
218
+ }
219
+ export const aiPluginsPlugin = createAIPlugins();
220
+ export { AIPluginsConfigSchema };
221
+ export default aiPluginsPlugin;
222
+ //# sourceMappingURL=plugin.impl.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.impl.consumer.js","sourceRoot":"","sources":["../../src/ai/plugin.impl.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const authPluginsPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
2
+ export default authPluginsPlugin;
3
+ //# sourceMappingURL=consumer.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.plugin.d.ts","sourceRoot":"","sources":["../../src/auth/consumer.plugin.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,iBAAiB,6CA+E5B,CAAC;AACH,eAAe,iBAAiB,CAAC"}