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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +358 -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
@@ -0,0 +1,31 @@
1
+ import type { CommandExecutionStartInfo } from '@vibesdotdev/cli/schemas/surface';
2
+ import type { CLICommandAssetDescriptor } from '@vibesdotdev/cli/schemas/types';
3
+ import { PluginsCLICommand, type PluginsCLIContext } from './context.ts';
4
+ /**
5
+ * `vibes plugins link <glob>` — Drew's requirement 2, implemented with the one
6
+ * mechanism bun actually has for path linking.
7
+ *
8
+ * A glob is written to `package.json#workspaces` and `bun install` does the
9
+ * rest. No custom link command, no hand-made symlink, no `file:` redirect
10
+ * (which copies) and no `link:` (which is a name in a global registry, not a
11
+ * path) — AGENTS.md forbids all three and P6 measured why: bun-native
12
+ * `workspaces` is the only path-glob link mechanism that exists.
13
+ *
14
+ * Two refusals, both loud, both before anything is written:
15
+ *
16
+ * - **A glob whose static parent is missing** cannot link anything, and a
17
+ * manifest carrying one makes every later `bun install` in that scope a
18
+ * guessing game.
19
+ * - **A glob whose members are already owned by another bun root.** This is
20
+ * the single-owner rule (plan §4). Co-ownership of a member farm is the only
21
+ * measured route to two `@vibesdotdev/kernel` copies in one process, and it
22
+ * surfaces later as a fatal `PluginGraphMismatch` at plugin-load time — a far
23
+ * worse moment than now. The refusal names the owning root and the remedy
24
+ * (`vibes plugins host --global <owner>`).
25
+ */
26
+ export default class PluginsLinkCLICommand extends PluginsCLICommand {
27
+ constructor(descriptor: CLICommandAssetDescriptor, context: PluginsCLIContext);
28
+ execute(args: CommandExecutionStartInfo['args'], options: CommandExecutionStartInfo['options']): Promise<void>;
29
+ private report;
30
+ }
31
+ //# sourceMappingURL=plugins.link.cli-command.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.link.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.link.cli-command.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAKhF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;gBACvD,UAAU,EAAE,yBAAyB,EAAE,OAAO,EAAE,iBAAiB;IAIvE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DpH,OAAO,CAAC,MAAM;CAkBd"}
@@ -0,0 +1,104 @@
1
+ import { resolveFileSystemAdapter } from '@vibesdotdev/filesystem/client/resolve-adapter';
2
+ import { getRuntimePath } from '@vibesdotdev/paths';
3
+ import { getRuntimePackagePlugins, requireRuntimeCwd } from '@vibesdotdev/kernel';
4
+ import { z } from 'zod/v4';
5
+ import { PluginsCLICommand } from "./context.js";
6
+ import { runBunOrThrow } from "./package-manager.consumer.js";
7
+ import { resolveSingleScope } from "./scopes.js";
8
+ import { seedGlobalScope, workspaceGlobParent } from "./seed.js";
9
+ /** The command's inputs, each read on its own: a missing or non-text glob is empty, a missing flag is off. */
10
+ const LinkInputSchema = z.object({
11
+ glob: z.string().trim().catch(''),
12
+ dryRun: z.boolean().catch(false)
13
+ });
14
+ /**
15
+ * `vibes plugins link <glob>` — Drew's requirement 2, implemented with the one
16
+ * mechanism bun actually has for path linking.
17
+ *
18
+ * A glob is written to `package.json#workspaces` and `bun install` does the
19
+ * rest. No custom link command, no hand-made symlink, no `file:` redirect
20
+ * (which copies) and no `link:` (which is a name in a global registry, not a
21
+ * path) — AGENTS.md forbids all three and P6 measured why: bun-native
22
+ * `workspaces` is the only path-glob link mechanism that exists.
23
+ *
24
+ * Two refusals, both loud, both before anything is written:
25
+ *
26
+ * - **A glob whose static parent is missing** cannot link anything, and a
27
+ * manifest carrying one makes every later `bun install` in that scope a
28
+ * guessing game.
29
+ * - **A glob whose members are already owned by another bun root.** This is
30
+ * the single-owner rule (plan §4). Co-ownership of a member farm is the only
31
+ * measured route to two `@vibesdotdev/kernel` copies in one process, and it
32
+ * surfaces later as a fatal `PluginGraphMismatch` at plugin-load time — a far
33
+ * worse moment than now. The refusal names the owning root and the remedy
34
+ * (`vibes plugins host --global <owner>`).
35
+ */
36
+ export default class PluginsLinkCLICommand extends PluginsCLICommand {
37
+ constructor(descriptor, context) {
38
+ super(descriptor, context);
39
+ }
40
+ async execute(args, options) {
41
+ const flags = { ...args, ...options };
42
+ const input = LinkInputSchema.parse({ ...flags, glob: args.glob });
43
+ const raw = input.glob;
44
+ if (!raw)
45
+ throw new Error('plugins link requires a path glob');
46
+ const scope = await resolveSingleScope(this.runtime, flags, { fallback: 'global' });
47
+ const paths = await getRuntimePath(this.runtime);
48
+ // Global link globs are absolute by contract ($VIBES_HOME has no tree of
49
+ // its own); workspace globs stay in-tree and relative, which is what bun
50
+ // and every existing root manifest already use.
51
+ const glob = scope.kind === 'global'
52
+ ? paths.isAbsolute(raw)
53
+ ? raw
54
+ : paths.resolve(requireRuntimeCwd(this.runtime), raw)
55
+ : paths.isAbsolute(raw)
56
+ ? paths.relative(scope.root, raw)
57
+ : raw;
58
+ if (scope.kind === 'workspace' && (glob.startsWith('..') || paths.isAbsolute(glob))) {
59
+ throw new Error(`'${raw}' is outside ${scope.root}. A workspace link glob must stay in-tree; ` +
60
+ 'use --global for a provider path elsewhere on the machine.');
61
+ }
62
+ const parent = workspaceGlobParent(paths, glob, scope.root);
63
+ const filesystem = await resolveFileSystemAdapter(this.runtime, { binding: false });
64
+ if (!(await filesystem.exists(parent))) {
65
+ throw new Error(`workspaces glob '${glob}' has no static parent on disk (${parent}). ` +
66
+ 'Create the directory or fix the glob before linking it.');
67
+ }
68
+ const plugins = await getRuntimePackagePlugins(this.runtime);
69
+ const ownership = plugins.describeGlobOwnership(scope.root, glob);
70
+ if (ownership.owner)
71
+ throw new Error(plugins.formatGlobOwnershipRefusal(ownership));
72
+ const members = [...ownership.members.keys()].sort();
73
+ if (input.dryRun) {
74
+ this.report(plugins, {
75
+ scope: scope.kind,
76
+ root: scope.root,
77
+ glob,
78
+ members,
79
+ linked: false,
80
+ dryRun: true
81
+ });
82
+ return;
83
+ }
84
+ if (scope.kind === 'global')
85
+ await seedGlobalScope(this.runtime, { home: scope.root });
86
+ const added = await plugins.addWorkspaceGlob(scope.root, glob, () => ({
87
+ name: scope.kind === 'global' ? 'vibes-global' : 'vibes-workspace',
88
+ private: true,
89
+ vibes: { plugins: [] }
90
+ }));
91
+ await runBunOrThrow({ runtime: this.runtime, action: 'install', cwd: scope.root });
92
+ this.report(plugins, { scope: scope.kind, root: scope.root, glob, members, linked: added });
93
+ }
94
+ report(plugins, payload) {
95
+ if (this.format === 'json') {
96
+ this.ui.json({ ...payload, globs: plugins.readWorkspaceGlobs(payload.root) });
97
+ return;
98
+ }
99
+ const verb = payload.dryRun ? 'Would link' : payload.linked ? 'Linked' : 'Already linked';
100
+ this.ui.success(`${verb} ${payload.glob} into the ${payload.scope} scope (${payload.root}) — ` +
101
+ `${payload.members.length} member(s): ${payload.members.join(', ') || 'none yet'}`);
102
+ }
103
+ }
104
+ //# sourceMappingURL=plugins.link.cli-command.impl.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.link.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../src/cli/plugins.link.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ declare const _default: {
2
+ readonly id: "plugins.list";
3
+ readonly kind: "cli/command";
4
+ readonly name: "list";
5
+ readonly description: "List enabled package plugin exports, their versions and their composition status";
6
+ readonly group: "plugins";
7
+ readonly surfaces: ["cli"];
8
+ readonly hardware: ["consumer"];
9
+ readonly requiredContext: ["cli/ui", "cli/output-format"];
10
+ readonly effects: {
11
+ readonly homeWrite: "none";
12
+ };
13
+ readonly options: [{
14
+ readonly flags: "--global";
15
+ readonly description: "List the global scope ($VIBES_HOME) only";
16
+ }, {
17
+ readonly flags: "--workspace";
18
+ readonly description: "List the current workspace scope only";
19
+ }, {
20
+ readonly flags: "--scope <kind>";
21
+ readonly description: "Scope to list: global | workspace";
22
+ readonly choices: ["global", "workspace"];
23
+ }];
24
+ };
25
+ export default _default;
26
+ //# sourceMappingURL=plugins.list.cli-command.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.list.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.descriptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAmBG"}
@@ -0,0 +1,22 @@
1
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
2
+ export default createRuntimeAsset({
3
+ id: 'plugins.list',
4
+ kind: 'cli/command',
5
+ name: 'list',
6
+ description: 'List enabled package plugin exports, their versions and their composition status',
7
+ group: 'plugins',
8
+ surfaces: ['cli'],
9
+ hardware: ['consumer'],
10
+ requiredContext: ['cli/ui', 'cli/output-format'],
11
+ effects: { homeWrite: 'none' },
12
+ options: [
13
+ { flags: '--global', description: 'List the global scope ($VIBES_HOME) only' },
14
+ { flags: '--workspace', description: 'List the current workspace scope only' },
15
+ {
16
+ flags: '--scope <kind>',
17
+ description: 'Scope to list: global | workspace',
18
+ choices: ['global', 'workspace']
19
+ }
20
+ ]
21
+ });
22
+ //# sourceMappingURL=plugins.list.cli-command.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.list.cli-command.descriptor.js","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,kFAAkF;IAC/F,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,eAAe,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAChD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;IAC9B,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;QAC9E,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAC9E;YACC,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;SAChC;KACD;CACD,CAAC,CAAC"}
@@ -0,0 +1,116 @@
1
+ import type { CommandExecutionStartInfo } from '@vibesdotdev/cli/schemas/surface';
2
+ import type { CLICommandAssetDescriptor } from '@vibesdotdev/cli/schemas/types';
3
+ import type { PluginCompositionReport } from '@vibesdotdev/kernel/schemas/package-plugins';
4
+ import { PluginsCLICommand, type PluginsCLIContext } from './context.ts';
5
+ import type { SelectedScope } from './schemas/scopes.ts';
6
+ /**
7
+ * DELEGATION DELEGATES THE LIST, TOO (plan §3) — the root whose own manifest
8
+ * supplies this process' GLOBAL list, or `null` when `$VIBES_HOME` owns it.
9
+ *
10
+ * TWO SCOPES REACH HERE, and they are the same shape: a home delegating through
11
+ * `vibes.hostWorkspace` (`global→hostWorkspace`), and an app BUNDLE whose CLI
12
+ * resolved `<dirname(realpath(execPath))>/../vibes-home` as R (`bundle`, plan
13
+ * §2.2 step 2c, added WU-12). In both, R is not `$VIBES_HOME`, R holds the
14
+ * packages, and R's manifest holds the list the loader actually composed as the
15
+ * global batch — so reading `$VIBES_HOME/package.json` reports an empty list
16
+ * for a process that is running nine umbrellas. For the bundle that is not a
17
+ * cosmetic gap: the user's `$VIBES_HOME` on a packaged-app machine is normally
18
+ * empty, so `plugins list --global` would have described a CLI that does not
19
+ * exist.
20
+ *
21
+ * When `$VIBES_HOME/package.json#vibes.hostWorkspace` is set the schema forces
22
+ * the home's own `vibes.plugins` empty (the workspace it delegates to owns the
23
+ * list) and the loader composes that root's list AS the global batch
24
+ * (`composition.consumer.ts`: `scope: host.scope === 'global→hostWorkspace' ?
25
+ * 'global' : 'workspace'`). Reading only `$VIBES_HOME/package.json` therefore
26
+ * reported `plugins: []` from a delegating home while `resolutions` listed
27
+ * every one of them `loaded` — the command whose whole job is to say what is
28
+ * installed said nothing was.
29
+ *
30
+ * R comes from the composition report, never re-derived: that is the root THIS
31
+ * process delegated to, established once by the host (the shim) and captured by the environment, so there is no
32
+ * second resolver to drift. `hostScope` is the discriminator because
33
+ * delegation is only IN EFFECT when the graph actually followed it — from
34
+ * inside a workspace, R is that workspace and the home's `hostWorkspace` key is
35
+ * inert for this process.
36
+ *
37
+ * Suppressed when a selected workspace scope already sits on R: that mirrors
38
+ * the loader's own `workspaceRoot !== host.root` guard, and reporting the rows
39
+ * twice would invent a second selection out of one list.
40
+ */
41
+ export declare function resolveDelegatedGlobalRoot(report: Pick<PluginCompositionReport, 'hostRoot' | 'hostScope'> | null, scopes: ReadonlyArray<Pick<SelectedScope, 'kind' | 'root'>>): string | null;
42
+ /**
43
+ * `vibes plugins list` — what this host composed, and from which roots.
44
+ *
45
+ * Reports BOTH roots because they are different concepts with different
46
+ * readers and a user debugging composition needs to see them disagree:
47
+ *
48
+ * - `hostRoot` (R) is the module-graph root the host declared — the
49
+ * outermost bun root that materializes `@vibesdotdev/plugins`. It decides
50
+ * which framework copy runs.
51
+ * - `workspaceRoot` is the identity/state root (`findWorkspaceRoot`) that
52
+ * anchors PM socket ids, per-workspace `.vibes` state and config discovery.
53
+ *
54
+ * From a linked provider checkout they legitimately differ (`hostRoot` = the
55
+ * developer root that links the member, `workspaceRoot` = the member's own
56
+ * repository), and nothing derives one from the other.
57
+ *
58
+ * Scoping: `--global` / `--workspace`, or `--scope <kind>` — which is the form
59
+ * `vibes update` spawns when it verifies a scope through the shipping path.
60
+ * A scope selection narrows the ROWS only; the two roots and the resolution
61
+ * table describe the PROCESS, not a scope, and are always reported in full.
62
+ *
63
+ * Every row carries the composition `status` for its specifier when this host
64
+ * actually loaded it (`loaded`, `shadowed`, `missing`, `failed`, …), which is
65
+ * what makes `plugins list --json --scope global` a real verification instead
66
+ * of an echo of the manifest: `vibes update` requires every row to be `loaded`.
67
+ * A row this process did not compose reads `not-composed` rather than being
68
+ * silently omitted or reported as healthy.
69
+ *
70
+ * `plugins` IS THE HUMAN-FACING ANSWER, `resolutions` IS THE PROCESS RECORD.
71
+ * `plugins` is the addressable selection — one row per specifier some list
72
+ * declares, which is exactly the set `plugins add|remove` and `vibes update`
73
+ * act on — and the table printed in non-JSON mode is that same array, column
74
+ * for column, so the two formats cannot report different counts for one
75
+ * question. `resolutions` additionally carries the executable's own host floor
76
+ * (the repair kernel, selected by no list and removable by nobody) and the
77
+ * per-import realpath/linkage a doctor needs. The difference is stated in the
78
+ * `composed` line rather than left for a reader to discover as a discrepancy.
79
+ *
80
+ * The delegated case is the reason both had to be reconciled: from a home with
81
+ * `vibes.hostWorkspace`, `plugins` used to read `[]` while `resolutions`
82
+ * reported ten plugins `loaded` — two fields disagreeing about one fact.
83
+ */
84
+ export default class PluginsListCLICommand extends PluginsCLICommand {
85
+ constructor(descriptor: CLICommandAssetDescriptor, context: PluginsCLIContext);
86
+ execute(args: CommandExecutionStartInfo['args'], options: CommandExecutionStartInfo['options']): Promise<void>;
87
+ /**
88
+ * The list a scope root declares, read through the SAME resolution the
89
+ * bootstrap loader composes from.
90
+ *
91
+ * The workspace half used to call `resolveWorkspaceListTarget`, the WRITER's
92
+ * target resolver, which reports an empty list for a `vibes.config.ts`
93
+ * because it refuses to rewrite a module. That made this command blind to
94
+ * plan §3's PRIMARY workspace surface — the one the docs tell users to use —
95
+ * so a config with a plugin list printed an empty table. It now reads
96
+ * Runtime's `readWorkspacePluginSurfaces` (`@vibesdotdev/kernel/bootstrap`,
97
+ * the owner of workspace composition formats) over the handed runtime's
98
+ * selected `runtime/loader` — the same reader the workspace composition
99
+ * reads, in the same precedence: `vibes.config.{ts,js,json}#plugins`
100
+ * primary, `package.json#vibes.plugins` fallback.
101
+ *
102
+ * `delegatedGlobalRoot` is R for a home that delegates through
103
+ * `vibes.hostWorkspace`: the global scope then has no list of its own and the
104
+ * delegated root's config surfaces ARE the global list (plan §3). Same reader,
105
+ * same precedence, different root — not a second resolution.
106
+ */
107
+ private readScope;
108
+ /**
109
+ * `<root>/vibes.config.{ts,js,json}#plugins`, else
110
+ * `<root>/package.json#vibes.plugins` — one root, read once, shadowing
111
+ * reported. Both the workspace scope and a delegating global scope resolve
112
+ * their list this way; the only difference is which root they point at.
113
+ */
114
+ private readConfigSurfaces;
115
+ }
116
+ //# sourceMappingURL=plugins.list.cli-command.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.list.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAGhF,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,6CAA6C,CAAC;AAS7G,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmF1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,EACtE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GACzD,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;gBACvD,UAAU,EAAE,yBAAyB,EAAE,OAAO,EAAE,iBAAiB;IAIvE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiKpH;;;;;;;;;;;;;;;;;;;OAmBG;YACW,SAAS;IA8BvB;;;;;OAKG;YACW,kBAAkB;CAoChC"}