@visulima/vis 1.0.0-alpha.4 → 1.0.0-alpha.41

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 (347) hide show
  1. package/CHANGELOG.md +1243 -78
  2. package/LICENSE.md +13068 -6
  3. package/README.md +388 -26
  4. package/dashboard/dist/index.html +152 -0
  5. package/dist/bin.js +1 -853
  6. package/dist/binx.js +3 -0
  7. package/dist/config/index.d.ts +3276 -0
  8. package/dist/config/index.js +1 -0
  9. package/dist/generate/index.d.ts +157 -0
  10. package/dist/generate/index.js +1 -0
  11. package/dist/packem_chunks/DEFAULT_CLEAN_KEEP.js +1 -0
  12. package/dist/packem_chunks/bin.js +1198 -0
  13. package/dist/packem_chunks/bloom-status.js +2 -0
  14. package/dist/packem_chunks/bloom-sync.js +2 -0
  15. package/dist/packem_chunks/cache-attestation.js +1 -0
  16. package/dist/packem_chunks/catalog-detector.js +1 -0
  17. package/dist/packem_chunks/config.js +21 -0
  18. package/dist/packem_chunks/detect.js +3 -0
  19. package/dist/packem_chunks/detect2.js +8 -0
  20. package/dist/packem_chunks/devtools.js +81 -0
  21. package/dist/packem_chunks/discord.js +4 -0
  22. package/dist/packem_chunks/doctor-probe.js +2 -0
  23. package/dist/packem_chunks/dynamic-import.js +1 -0
  24. package/dist/packem_chunks/extra-files.js +3 -0
  25. package/dist/packem_chunks/fix.js +11 -0
  26. package/dist/packem_chunks/git.js +3 -0
  27. package/dist/packem_chunks/handler.js +1 -0
  28. package/dist/packem_chunks/handler10.js +1 -0
  29. package/dist/packem_chunks/handler11.js +5 -0
  30. package/dist/packem_chunks/handler12.js +1 -0
  31. package/dist/packem_chunks/handler13.js +27 -0
  32. package/dist/packem_chunks/handler14.js +5 -0
  33. package/dist/packem_chunks/handler15.js +1 -0
  34. package/dist/packem_chunks/handler16.js +1 -0
  35. package/dist/packem_chunks/handler17.js +1 -0
  36. package/dist/packem_chunks/handler18.js +1 -0
  37. package/dist/packem_chunks/handler19.js +1 -0
  38. package/dist/packem_chunks/handler2.js +4 -0
  39. package/dist/packem_chunks/handler20.js +5 -0
  40. package/dist/packem_chunks/handler21.js +2 -0
  41. package/dist/packem_chunks/handler22.js +2 -0
  42. package/dist/packem_chunks/handler23.js +1 -0
  43. package/dist/packem_chunks/handler24.js +1 -0
  44. package/dist/packem_chunks/handler25.js +1 -0
  45. package/dist/packem_chunks/handler26.js +5 -0
  46. package/dist/packem_chunks/handler27.js +1 -0
  47. package/dist/packem_chunks/handler28.js +3 -0
  48. package/dist/packem_chunks/handler29.js +1 -0
  49. package/dist/packem_chunks/handler3.js +4 -0
  50. package/dist/packem_chunks/handler30.js +1 -0
  51. package/dist/packem_chunks/handler31.js +2 -0
  52. package/dist/packem_chunks/handler32.js +2 -0
  53. package/dist/packem_chunks/handler33.js +2 -0
  54. package/dist/packem_chunks/handler34.js +3 -0
  55. package/dist/packem_chunks/handler35.js +6 -0
  56. package/dist/packem_chunks/handler36.js +1 -0
  57. package/dist/packem_chunks/handler37.js +42 -0
  58. package/dist/packem_chunks/handler38.js +8 -0
  59. package/dist/packem_chunks/handler39.js +9 -0
  60. package/dist/packem_chunks/handler4.js +6 -0
  61. package/dist/packem_chunks/handler40.js +75 -0
  62. package/dist/packem_chunks/handler41.js +5 -0
  63. package/dist/packem_chunks/handler42.js +4 -0
  64. package/dist/packem_chunks/handler43.js +3 -0
  65. package/dist/packem_chunks/handler44.js +2 -0
  66. package/dist/packem_chunks/handler45.js +1 -0
  67. package/dist/packem_chunks/handler46.js +1 -0
  68. package/dist/packem_chunks/handler47.js +1 -0
  69. package/dist/packem_chunks/handler48.js +3 -0
  70. package/dist/packem_chunks/handler49.js +1 -0
  71. package/dist/packem_chunks/handler5.js +8 -0
  72. package/dist/packem_chunks/handler50.js +7 -0
  73. package/dist/packem_chunks/handler51.js +33 -0
  74. package/dist/packem_chunks/handler52.js +3 -0
  75. package/dist/packem_chunks/handler53.js +8 -0
  76. package/dist/packem_chunks/handler54.js +4 -0
  77. package/dist/packem_chunks/handler55.js +1 -0
  78. package/dist/packem_chunks/handler56.js +12 -0
  79. package/dist/packem_chunks/handler57.js +7 -0
  80. package/dist/packem_chunks/handler58.js +5 -0
  81. package/dist/packem_chunks/handler59.js +11 -0
  82. package/dist/packem_chunks/handler6.js +1 -0
  83. package/dist/packem_chunks/handler60.js +3 -0
  84. package/dist/packem_chunks/handler61.js +22 -0
  85. package/dist/packem_chunks/handler62.js +61 -0
  86. package/dist/packem_chunks/handler63.js +3 -0
  87. package/dist/packem_chunks/handler64.js +6 -0
  88. package/dist/packem_chunks/handler65.js +708 -0
  89. package/dist/packem_chunks/handler66.js +24 -0
  90. package/dist/packem_chunks/handler67.js +25 -0
  91. package/dist/packem_chunks/handler68.js +153 -0
  92. package/dist/packem_chunks/handler69.js +10 -0
  93. package/dist/packem_chunks/handler7.js +1 -0
  94. package/dist/packem_chunks/handler70.js +24 -0
  95. package/dist/packem_chunks/handler71.js +322 -0
  96. package/dist/packem_chunks/handler72.js +48 -0
  97. package/dist/packem_chunks/handler73.js +27 -0
  98. package/dist/packem_chunks/handler74.js +3 -0
  99. package/dist/packem_chunks/handler75.js +190 -0
  100. package/dist/packem_chunks/handler76.js +38 -0
  101. package/dist/packem_chunks/handler8.js +1 -0
  102. package/dist/packem_chunks/handler9.js +1 -0
  103. package/dist/packem_chunks/heal-accept.js +10 -0
  104. package/dist/packem_chunks/heal.js +14 -0
  105. package/dist/packem_chunks/help-command.js +31 -0
  106. package/dist/packem_chunks/index.js +1 -0
  107. package/dist/packem_chunks/index2.js +7 -0
  108. package/dist/packem_chunks/interface.js +2 -0
  109. package/dist/packem_chunks/keys-refresh.js +4 -0
  110. package/dist/packem_chunks/list.js +3 -0
  111. package/dist/packem_chunks/loader.js +4 -0
  112. package/dist/packem_chunks/loader2.js +1 -0
  113. package/dist/packem_chunks/orchestrator.js +39 -0
  114. package/dist/packem_chunks/pre-mode.js +2 -0
  115. package/dist/packem_chunks/print-config.js +2 -0
  116. package/dist/packem_chunks/prompts.js +7 -0
  117. package/dist/packem_chunks/prune.js +3 -0
  118. package/dist/packem_chunks/publish-guards.js +1 -0
  119. package/dist/packem_chunks/registry.js +48 -0
  120. package/dist/packem_chunks/resolveFormatter.js +9 -0
  121. package/dist/packem_chunks/run.js +1 -0
  122. package/dist/packem_chunks/security.js +1 -0
  123. package/dist/packem_chunks/shell-runner.js +1 -0
  124. package/dist/packem_chunks/slack.js +2 -0
  125. package/dist/packem_chunks/snapshot.js +2 -0
  126. package/dist/packem_chunks/stage-publisher.js +1 -0
  127. package/dist/packem_chunks/staged-registry.js +2 -0
  128. package/dist/packem_chunks/state.js +3 -0
  129. package/dist/packem_chunks/status.js +2 -0
  130. package/dist/packem_chunks/success-walk.js +8 -0
  131. package/dist/packem_chunks/sync.js +2 -0
  132. package/dist/packem_chunks/sync2.js +2 -0
  133. package/dist/packem_chunks/tar.js +3 -0
  134. package/dist/packem_chunks/tripwire.js +2 -0
  135. package/dist/packem_chunks/verify-lockfile.js +2 -0
  136. package/dist/packem_chunks/version-resolver.js +2 -0
  137. package/dist/packem_chunks/webhook.js +1 -0
  138. package/dist/packem_chunks/workflow-templates.js +167 -0
  139. package/dist/packem_chunks/workspace.js +2 -0
  140. package/dist/packem_shared/AfterAllProjectsVersioned-CAKI2nWf.js +1 -0
  141. package/dist/packem_shared/CONFIG_FILES-BfaR0jKT.js +1 -0
  142. package/dist/packem_shared/MultiSpinner-B9U0-aE3-B-gIXhFk.js +3 -0
  143. package/dist/packem_shared/ReleaseClient-YHzBIxYS.js +1 -0
  144. package/dist/packem_shared/Table-CcVkyULl-B_ef6zfS.js +35 -0
  145. package/dist/packem_shared/VisReleaseError-DMGRBTNO.js +1 -0
  146. package/dist/packem_shared/_commonjsHelpers-B5Y90VFO.js +1 -0
  147. package/dist/packem_shared/advisories-DLeO5KMN.js +1 -0
  148. package/dist/packem_shared/affected-shas-cVnX8-zs.js +1 -0
  149. package/dist/packem_shared/ai-analysis-BUeX2J2H.js +68 -0
  150. package/dist/packem_shared/ai-fix-9Vzlp6XU.js +43 -0
  151. package/dist/packem_shared/anolilab-text-CAM_E6uK.js +13 -0
  152. package/dist/packem_shared/api.d-BPftyU9r.d.ts +27 -0
  153. package/dist/packem_shared/build-scripts-CCCi8U66.js +1 -0
  154. package/dist/packem_shared/command-runtime-CR70qSUM.js +1 -0
  155. package/dist/packem_shared/createAdapter-bU4DIP3F.js +1 -0
  156. package/dist/packem_shared/createVersionActions-BK43SNDH.js +1 -0
  157. package/dist/packem_shared/cyclonedx-Cadls41z.js +4 -0
  158. package/dist/packem_shared/defineFormatter-D5dCp6Kv.js +1 -0
  159. package/dist/packem_shared/definePlugin-DoUcoYSy.js +1 -0
  160. package/dist/packem_shared/dependency-scan-DnTgYleU.js +1 -0
  161. package/dist/packem_shared/docker-BMLrNtWm.js +59 -0
  162. package/dist/packem_shared/failure-log-CEWP3bP0.js +2 -0
  163. package/dist/packem_shared/giget-DHY1sQZC.js +2 -0
  164. package/dist/packem_shared/glob-fqg4KepW-B7EjLRvw.js +1 -0
  165. package/dist/packem_shared/index-3jMNqQom.js +1 -0
  166. package/dist/packem_shared/index-BDmTbWX1.js +19 -0
  167. package/dist/packem_shared/index-Bt521H5J.js +30 -0
  168. package/dist/packem_shared/index-DGSsjmpV.js +1 -0
  169. package/dist/packem_shared/interface.d-B7VK2rcH.d.ts +148 -0
  170. package/dist/packem_shared/interface.d-Cezzifoh.d.ts +106 -0
  171. package/dist/packem_shared/license-t5KnNX6v.js +1 -0
  172. package/dist/packem_shared/lifecycle-4z9hHE5b.js +2 -0
  173. package/dist/packem_shared/lockfile-C8Q1_4KK.js +1 -0
  174. package/dist/packem_shared/manifests-Dj3pRKBT.js +1 -0
  175. package/dist/packem_shared/min-release-age-D1alDE3K.js +34 -0
  176. package/dist/packem_shared/missing-package-json-8vNHwbqw.js +1 -0
  177. package/dist/packem_shared/native-config-sync-BEkJW7g3.js +21 -0
  178. package/dist/packem_shared/osv-bloom-B03tUWf3.js +2 -0
  179. package/dist/packem_shared/otelPlugin-DmKDBaPo.js +1 -0
  180. package/dist/packem_shared/peer-warnings-BXAzXqY3.js +1 -0
  181. package/dist/packem_shared/pm-runner-BKZQo7Ts.js +1 -0
  182. package/dist/packem_shared/provenance-BFEwKgI3.js +1 -0
  183. package/dist/packem_shared/public-api-WqUCiyIe.js +131 -0
  184. package/dist/packem_shared/registry-keys-BfFto6vI.js +1 -0
  185. package/dist/packem_shared/resolve-explicit-C6WM-I2u.js +5 -0
  186. package/dist/packem_shared/runtime-check-Stc9AI78.js +1 -0
  187. package/dist/packem_shared/s1ngularity-DCPmPE5M.js +1 -0
  188. package/dist/packem_shared/scan-progress-CFhc0CMj.js +2 -0
  189. package/dist/packem_shared/selectors-GCJIe342.js +3 -0
  190. package/dist/packem_shared/signatures-Xpd6HjG_.js +2 -0
  191. package/dist/packem_shared/slug-DoueYuLo.js +1 -0
  192. package/dist/packem_shared/spinner-CV3WVJLv.js +1 -0
  193. package/dist/packem_shared/sticky-comment-D6_7-w8T.js +1 -0
  194. package/dist/packem_shared/subtree-C7bZuiSQ.js +2 -0
  195. package/dist/packem_shared/symbols-DPTlrJ3B.js +1 -0
  196. package/dist/packem_shared/tabs-BuTy5gPV.js +1 -0
  197. package/dist/packem_shared/toolchain-pR7AJ-tB.js +5 -0
  198. package/dist/packem_shared/typosquats-DN78xx1x.js +1 -0
  199. package/dist/packem_shared/use-measured-height-_eVGWtWt.js +1 -0
  200. package/dist/packem_shared/utils-Cxree603.js +1 -0
  201. package/dist/packem_shared/verify-6WCmFmy8.js +1 -0
  202. package/dist/packem_shared/vis-update-app-k3fDxech.js +1 -0
  203. package/dist/packem_shared/watch-BvIwLG4N.js +1 -0
  204. package/dist/packem_shared/watch-loop-DWkvv2tK.js +11 -0
  205. package/dist/release/core/changelog/index.d.ts +5 -0
  206. package/dist/release/core/changelog/index.js +1 -0
  207. package/dist/release/core/package-managers/index.d.ts +6 -0
  208. package/dist/release/core/package-managers/index.js +1 -0
  209. package/dist/release/core/version-actions/index.d.ts +14 -0
  210. package/dist/release/core/version-actions/index.js +1 -0
  211. package/dist/release/index.d.ts +196 -0
  212. package/dist/release/index.js +1 -0
  213. package/dist/release/plugin-sdk.d.ts +127 -0
  214. package/dist/release/plugin-sdk.js +1 -0
  215. package/dist/release/presets.d.ts +225 -0
  216. package/dist/release/presets.js +1 -0
  217. package/dist/release/types.d.ts +1377 -0
  218. package/dist/release/types.js +1 -0
  219. package/index.d.ts +436 -0
  220. package/index.js +80 -57
  221. package/package.json +109 -45
  222. package/schemas/project.schema.json +991 -0
  223. package/schemas/vis-config.schema.json +6389 -0
  224. package/schemas/vis-release-config.schema.json +1390 -0
  225. package/skills/vis/SKILL.md +96 -0
  226. package/templates/buildkite-ci/.buildkite/pipeline.yml.tera +85 -0
  227. package/templates/buildkite-ci/template.yml +20 -0
  228. package/dist/ai-analysis.d.ts +0 -40
  229. package/dist/ai-cache.d.ts +0 -21
  230. package/dist/audit-config.d.ts +0 -24
  231. package/dist/bin.d.ts +0 -1
  232. package/dist/catalog.d.ts +0 -118
  233. package/dist/commands/add.d.ts +0 -3
  234. package/dist/commands/affected.d.ts +0 -3
  235. package/dist/commands/ai.d.ts +0 -3
  236. package/dist/commands/analyze.d.ts +0 -3
  237. package/dist/commands/approve-builds.d.ts +0 -3
  238. package/dist/commands/audit.d.ts +0 -23
  239. package/dist/commands/check.d.ts +0 -3
  240. package/dist/commands/clean.d.ts +0 -3
  241. package/dist/commands/create/discovery.d.ts +0 -42
  242. package/dist/commands/create/index.d.ts +0 -13
  243. package/dist/commands/create/prompts.d.ts +0 -31
  244. package/dist/commands/create/random-name.d.ts +0 -15
  245. package/dist/commands/create/templates/builtin.d.ts +0 -15
  246. package/dist/commands/create/templates/generator.d.ts +0 -14
  247. package/dist/commands/create/templates/index.d.ts +0 -13
  248. package/dist/commands/create/templates/monorepo.d.ts +0 -16
  249. package/dist/commands/create/templates/remote.d.ts +0 -41
  250. package/dist/commands/create/templates/types.d.ts +0 -46
  251. package/dist/commands/create/utils.d.ts +0 -42
  252. package/dist/commands/dedupe.d.ts +0 -3
  253. package/dist/commands/devcontainer.d.ts +0 -3
  254. package/dist/commands/dlx.d.ts +0 -3
  255. package/dist/commands/doctor.d.ts +0 -15
  256. package/dist/commands/exec.d.ts +0 -3
  257. package/dist/commands/graph.d.ts +0 -3
  258. package/dist/commands/hook/constants.d.ts +0 -8
  259. package/dist/commands/hook/index.d.ts +0 -3
  260. package/dist/commands/hook/install.d.ts +0 -7
  261. package/dist/commands/hook/migrate.d.ts +0 -27
  262. package/dist/commands/hook/uninstall.d.ts +0 -3
  263. package/dist/commands/implode.d.ts +0 -3
  264. package/dist/commands/init.d.ts +0 -14
  265. package/dist/commands/install.d.ts +0 -3
  266. package/dist/commands/link.d.ts +0 -3
  267. package/dist/commands/migrate/constants.d.ts +0 -12
  268. package/dist/commands/migrate/deps.d.ts +0 -32
  269. package/dist/commands/migrate/index.d.ts +0 -3
  270. package/dist/commands/migrate/json.d.ts +0 -20
  271. package/dist/commands/migrate/lint-staged.d.ts +0 -62
  272. package/dist/commands/migrate/types.d.ts +0 -20
  273. package/dist/commands/optimize.d.ts +0 -38
  274. package/dist/commands/pm.d.ts +0 -3
  275. package/dist/commands/remove.d.ts +0 -3
  276. package/dist/commands/run.d.ts +0 -3
  277. package/dist/commands/sort-package-json.d.ts +0 -3
  278. package/dist/commands/staged.d.ts +0 -3
  279. package/dist/commands/unlink.d.ts +0 -3
  280. package/dist/commands/update.d.ts +0 -3
  281. package/dist/commands/upgrade.d.ts +0 -3
  282. package/dist/commands/why.d.ts +0 -3
  283. package/dist/config.d.ts +0 -67
  284. package/dist/config.js +0 -1
  285. package/dist/native-binding.d.ts +0 -151
  286. package/dist/output.d.ts +0 -40
  287. package/dist/overrides.d.ts +0 -82
  288. package/dist/package-manager.d.ts +0 -23
  289. package/dist/plugins/config-loader.d.ts +0 -3
  290. package/dist/plugins/post-command.d.ts +0 -3
  291. package/dist/plugins/security-enforcement.d.ts +0 -3
  292. package/dist/pm-runner.d.ts +0 -23
  293. package/dist/security.d.ts +0 -64
  294. package/dist/socket-security.d.ts +0 -129
  295. package/dist/tips.d.ts +0 -41
  296. package/dist/tui/components/CheckProgressApp.d.ts +0 -6
  297. package/dist/tui/components/CommandSummary.d.ts +0 -17
  298. package/dist/tui/components/Header.d.ts +0 -13
  299. package/dist/tui/components/OutputPanel.d.ts +0 -16
  300. package/dist/tui/components/QuitDialog.d.ts +0 -15
  301. package/dist/tui/components/TaskListPanel.d.ts +0 -19
  302. package/dist/tui/components/TaskRow.d.ts +0 -12
  303. package/dist/tui/components/TaskStore.d.ts +0 -80
  304. package/dist/tui/components/VisTaskRunnerApp.d.ts +0 -17
  305. package/dist/tui/components/devcontainer/DevcontainerStore.d.ts +0 -66
  306. package/dist/tui/components/devcontainer/VisDevcontainerApp.d.ts +0 -9
  307. package/dist/tui/components/devcontainer/catalogs/extensions.d.ts +0 -8
  308. package/dist/tui/components/devcontainer/catalogs/features.d.ts +0 -8
  309. package/dist/tui/components/devcontainer/catalogs/filters.d.ts +0 -4
  310. package/dist/tui/components/devcontainer/catalogs/mount-suggestions.d.ts +0 -19
  311. package/dist/tui/components/devcontainer/catalogs/templates.d.ts +0 -8
  312. package/dist/tui/components/devcontainer/devcontainer-io.d.ts +0 -14
  313. package/dist/tui/components/devcontainer/sections/DockerComposeSection.d.ts +0 -11
  314. package/dist/tui/components/devcontainer/sections/EnvironmentSection.d.ts +0 -16
  315. package/dist/tui/components/devcontainer/sections/ExtensionsSection.d.ts +0 -11
  316. package/dist/tui/components/devcontainer/sections/FeaturesSection.d.ts +0 -11
  317. package/dist/tui/components/devcontainer/sections/GeneralSection.d.ts +0 -12
  318. package/dist/tui/components/devcontainer/sections/LifecycleSection.d.ts +0 -13
  319. package/dist/tui/components/devcontainer/sections/MountsSection.d.ts +0 -16
  320. package/dist/tui/components/devcontainer/sections/PortsSection.d.ts +0 -10
  321. package/dist/tui/components/devcontainer/sections/PreviewPanel.d.ts +0 -11
  322. package/dist/tui/components/devcontainer/types.d.ts +0 -53
  323. package/dist/tui/components/devcontainer/validate.d.ts +0 -16
  324. package/dist/tui/components/graph/GraphStore.d.ts +0 -42
  325. package/dist/tui/components/graph/ProjectDetailPanel.d.ts +0 -10
  326. package/dist/tui/components/graph/ProjectListPanel.d.ts +0 -20
  327. package/dist/tui/components/graph/VisGraphApp.d.ts +0 -8
  328. package/dist/tui/components/optimize/OptimizeDetailPanel.d.ts +0 -9
  329. package/dist/tui/components/optimize/OptimizeListPanel.d.ts +0 -16
  330. package/dist/tui/components/optimize/OptimizeStore.d.ts +0 -50
  331. package/dist/tui/components/optimize/VisOptimizeApp.d.ts +0 -8
  332. package/dist/tui/components/optimize/constants.d.ts +0 -7
  333. package/dist/tui/components/update/PackageDetailPanel.d.ts +0 -12
  334. package/dist/tui/components/update/PackageListPanel.d.ts +0 -18
  335. package/dist/tui/components/update/UpdateStore.d.ts +0 -62
  336. package/dist/tui/components/update/VisUpdateApp.d.ts +0 -11
  337. package/dist/tui/dynamic-life-cycle.d.ts +0 -21
  338. package/dist/tui/formatting-utils.d.ts +0 -17
  339. package/dist/tui/pretty-time.d.ts +0 -8
  340. package/dist/tui/static-life-cycle.d.ts +0 -22
  341. package/dist/tui/status-utils.d.ts +0 -20
  342. package/dist/tui/symbols.d.ts +0 -7
  343. package/dist/tui/types.d.ts +0 -11
  344. package/dist/typosquats.d.ts +0 -70
  345. package/dist/upgrade-check.d.ts +0 -30
  346. package/dist/utils.d.ts +0 -22
  347. package/dist/workspace.d.ts +0 -315
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: vis
3
+ description: Use when the workspace contains a vis.config.ts (or vis.config.js/json) at the repo root, or when the user mentions "vis", "task-runner", or "@visulima/vis". This skill orchestrates the vis MCP server's eight read-only tools to inspect projects, plan task graphs, and diagnose remote-cache rotations.
4
+ ---
5
+
6
+ # Working with the `vis` task runner
7
+
8
+ `vis` is the Visulima monorepo task runner — a Turborepo/Nx-class tool with a remote cache, REAPI gRPC backend, and project graph. When this skill is active you have the **`@visulima/vis-mcp` server** mounted, exposing eight read-only tools. Use them in preference to running `vis` shell commands yourself: the tools give you structured JSON and run faster.
9
+
10
+ The MCP server deliberately does NOT execute targets or scaffold templates — Nx-style "agent prepares, human executes". When the user wants to run `<project>:<target>` or `vis generate <template>`, prepare the command (use `list_targets`/`describe_template` to confirm it exists and capture required arguments) and ask the user to run it themselves; afterwards use `get_run_logs` to read the result of any task run.
11
+
12
+ ## Tools available
13
+
14
+ | Tool | Purpose |
15
+ | ------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
16
+ | `list_projects` | All projects in the workspace, optionally filtered by a vis query (`tag=frontend`, `type=application`, …) |
17
+ | `describe_project` | Full metadata for one project: language, layer, tags, root path, all targets |
18
+ | `list_targets` | Per-target rows across the workspace, optionally narrowed to a single project |
19
+ | `list_templates` | Scaffolding templates discovered in `.vis/templates/`, `.moon/templates/`, and `vis.config.ts` `generator.templates` |
20
+ | `describe_template` | Variable schema, default destination, and description for a single template — required before suggesting a `vis generate` command |
21
+ | `get_run_logs` | Most recent run summary from `.task-runner/`, or a specific `runId`, optionally filtered to one task |
22
+ | `cache_why` | Diff a task's cache hash against the previous run — pinpoints what changed (command, nodes, runtime, implicit deps) |
23
+ | `cache_hash` | Recorded hash and per-input hash details for a task |
24
+
25
+ ## Workflow patterns
26
+
27
+ ### Discovery — "what's in this repo?"
28
+
29
+ Default opening move when the user asks about the workspace:
30
+
31
+ 1. `list_projects` (no filter). Shows everything with categories and target counts.
32
+ 2. If they ask about a specific package, `describe_project` for the full picture rather than re-running list with a filter.
33
+
34
+ ### Plan a build
35
+
36
+ 1. `list_targets` (optionally with `project: "@scope/name"`) to see what `build`/`test`/`lint`/etc. targets exist.
37
+ 2. Tell the user the exact command (`vis run @scope/name:build`) and let them run it.
38
+ 3. Use `get_run_logs` afterwards to inspect status, cache hits, and stderr tails.
39
+
40
+ ### Investigate a cache miss
41
+
42
+ When a build that should have been cached re-ran:
43
+
44
+ 1. `get_run_logs` (no args → latest summary) — surfaces all task statuses for the last run.
45
+ 2. For any task with status `success` but `cacheStatus: "miss"`, call `cache_why` with that `taskId`. It diffs hashDetails against the previous run and tells you which input rotated (command string, file content, `implicitDependency`, runtime version, …).
46
+ 3. If `cache_why` shows the change but the user wants to see the raw hash inputs, `cache_hash` returns the full per-input breakdown.
47
+
48
+ ### Scaffold a new package or component
49
+
50
+ When the user asks for "a new X" / "scaffold Y":
51
+
52
+ 1. `list_templates` — pick the template whose `name` or `description` matches the user's request.
53
+ 2. `describe_template` with that name — read the `variables[]` schema. Identify which variables are `required` and which have sensible `default` values.
54
+ 3. Construct the command: `vis generate <name> -- --var1=value1 --var2=value2`. For interactive prompts, drop the `--` overrides and let the user step through. For `--defaults`-friendly templates, add `--defaults` to skip prompts.
55
+ 4. Hand the command to the user to execute. Don't fabricate variable values — if the user hasn't told you what to pass for a required variable, ask.
56
+
57
+ #### Worked example
58
+
59
+ User: _"Scaffold a new React button component called PrimaryButton."_
60
+
61
+ 1. Call `list_templates` → response contains an entry `{ "name": "component", "source": "native", "description": "Scaffold a React component" }`. That's the closest match.
62
+ 2. Call `describe_template` with `{ "name": "component" }` → response shows `variables`:
63
+ ```json
64
+ [
65
+ { "name": "name", "type": "string", "required": true, "prompt": "Component name?" },
66
+ { "name": "withTest", "type": "boolean", "required": false, "default": true },
67
+ { "name": "style", "type": "enum", "required": false, "default": "primary", "values": ["primary", "secondary"] }
68
+ ]
69
+ ```
70
+ 3. The user supplied `name` (`PrimaryButton`) and implied `style=primary` (default already matches). `withTest` is unspecified — the default is fine, no need to override.
71
+ 4. Suggested command for the user to run:
72
+ ```sh
73
+ vis generate component -- --name=PrimaryButton --style=primary
74
+ ```
75
+ Do **not** invent values for required variables the user never mentioned — ask first.
76
+
77
+ ### Diagnose a failed run
78
+
79
+ 1. `get_run_logs` to see which task(s) failed.
80
+ 2. `get_run_logs` with `taskId` set to the failing task — returns just that entry, including the captured stderr tail.
81
+ 3. Decide: is it a code bug (read the project's source), a cache poisoning issue (`cache_why`), or environmental (look at the run summary's `runtime` block)?
82
+
83
+ ## Safety rules
84
+
85
+ - **All tools are read-only.** The server does not execute targets. If the user wants something built/tested/linted, give them the command and let them run it.
86
+ - **All tools run in the directory where `vis-mcp` was launched.** Override at server startup by setting `VIS_MCP_WORKSPACE_ROOT`. You can read that path from the server's stderr boot line: `[vis-mcp] ready (workspace: …)`.
87
+
88
+ ## When NOT to use this skill
89
+
90
+ - The user wants to write a `vis.config.ts` — that's editing source, not running the CLI. Use Read/Edit/Write on the config file directly.
91
+ - The user is asking about Turborepo, Nx, or Bazel specifically (not vis). The tools won't help with those.
92
+ - The repo has no `vis.config.*` and no mention of vis. Don't volunteer the tools.
93
+
94
+ ## Tool-result conventions
95
+
96
+ All tools return JSON-encoded text in the standard MCP `content[].text` slot. On error, `isError: true` is set and the text payload is `{"error": "<message>"}`. Parse the JSON before reasoning about it — the text field is structured data, not prose.
@@ -0,0 +1,85 @@
1
+ ---
2
+ to: ".buildkite/pipeline.yml"
3
+ ---
4
+ # Generated by `vis generate buildkite-ci`.
5
+ # Run `vis ci` against affected packages on every build.{% if withHeal %}
6
+ # Heal block: on failure, `vis ai heal` posts a Buildkite annotation; an
7
+ # allow-listed maintainer manually unblocks the block step to apply +
8
+ # commit the patch via `vis ai heal accept`. The unblocker email
9
+ # (BUILDKITE_UNBLOCKER_EMAIL) must be listed in `ai.heal.allowedActors`
10
+ # in vis.config.ts or the accept step refuses to commit.{% endif %}
11
+
12
+ steps:
13
+ - label: ":hammer: vis ci"
14
+ key: ci
15
+ timeout_in_minutes: 30
16
+ command: |
17
+ {% if packageManager == "pnpm" %} corepack enable
18
+ pnpm install --frozen-lockfile
19
+ pnpm vis ci {{ targets }}
20
+ {% endif %}{% if packageManager == "npm" %} npm ci
21
+ npx vis ci {{ targets }}
22
+ {% endif %}{% if packageManager == "yarn" %} corepack enable
23
+ yarn install --immutable
24
+ yarn vis ci {{ targets }}
25
+ {% endif %}{% if packageManager == "bun" %} bun install --frozen-lockfile
26
+ bunx vis ci {{ targets }}
27
+ {% endif %} agents:
28
+ queue: {{ agentQueue }}
29
+ {% if withHeal %}
30
+ - label: ":sparkles: vis ai heal"
31
+ key: heal-propose
32
+ depends_on: ci
33
+ timeout_in_minutes: 30
34
+ # Only run when CI failed and the build is for a PR — heal-accept
35
+ # has nowhere to commit on push-event builds.
36
+ if: build.failed_jobs > 0 && build.pull_request.id != null
37
+ command: |
38
+ {% if packageManager == "pnpm" %} corepack enable
39
+ pnpm install --frozen-lockfile
40
+ pnpm vis ai heal
41
+ {% endif %}{% if packageManager == "npm" %} npm ci
42
+ npx vis ai heal
43
+ {% endif %}{% if packageManager == "yarn" %} corepack enable
44
+ yarn install --immutable
45
+ yarn vis ai heal
46
+ {% endif %}{% if packageManager == "bun" %} bun install --frozen-lockfile
47
+ bunx vis ai heal
48
+ {% endif %} agents:
49
+ queue: {{ agentQueue }}
50
+ # Buildkite has no commit API of its own — `vis ai heal accept`
51
+ # derives the upstream provider from BUILDKITE_REPO and commits
52
+ # through GitHub or GitLab. Set GITHUB_TOKEN or GITLAB_TOKEN on
53
+ # the agent (matching your remote) so heal accept can land the patch.
54
+
55
+ - block: ":white_check_mark: Apply AI heal patch?"
56
+ key: heal-gate
57
+ depends_on: heal-propose
58
+ if: build.failed_jobs > 0 && build.pull_request.id != null
59
+ prompt: |
60
+ Unblocking applies and commits the patch from the heal annotation.
61
+ The unblocker email (BUILDKITE_UNBLOCKER_EMAIL) must be listed in
62
+ `ai.heal.allowedActors` in vis.config.ts, otherwise the accept
63
+ step will refuse to commit.
64
+
65
+ - label: ":robot_face: vis ai heal accept"
66
+ key: heal-accept
67
+ depends_on: heal-gate
68
+ timeout_in_minutes: 30
69
+ # Defense in depth — heal-accept can't push to a fork and has no
70
+ # commit target on push-event builds. Refuse early.
71
+ if: build.pull_request.id != null
72
+ command: |
73
+ {% if packageManager == "pnpm" %} corepack enable
74
+ pnpm install --frozen-lockfile
75
+ pnpm vis ai heal accept
76
+ {% endif %}{% if packageManager == "npm" %} npm ci
77
+ npx vis ai heal accept
78
+ {% endif %}{% if packageManager == "yarn" %} corepack enable
79
+ yarn install --immutable
80
+ yarn vis ai heal accept
81
+ {% endif %}{% if packageManager == "bun" %} bun install --frozen-lockfile
82
+ bunx vis ai heal accept
83
+ {% endif %} agents:
84
+ queue: {{ agentQueue }}
85
+ {% endif %}
@@ -0,0 +1,20 @@
1
+ "title": "Buildkite CI"
2
+ "description": "A Buildkite pipeline.yml that runs `vis ci` against affected packages, with an optional `vis ai heal` block-step flow."
3
+ "variables":
4
+ "targets":
5
+ "type": "string"
6
+ "default": "lint,test,build"
7
+ "prompt": "Comma-separated list of `vis ci` targets to run"
8
+ "packageManager":
9
+ "type": "enum"
10
+ "values": ["pnpm", "npm", "yarn", "bun"]
11
+ "default": "pnpm"
12
+ "prompt": "Package manager (used in the install line)"
13
+ "withHeal":
14
+ "type": "boolean"
15
+ "default": false
16
+ "prompt": "Include the `vis ai heal` propose + block-step accept flow?"
17
+ "agentQueue":
18
+ "type": "string"
19
+ "default": "default"
20
+ "prompt": "Buildkite agent queue to schedule on"
@@ -1,40 +0,0 @@
1
- import type { AiProviderInfo } from "@visulima/find-ai-runner";
2
- import type { OutdatedEntry } from "./catalog.d.ts";
3
- interface AiConfig {
4
- /** Cache TTL in milliseconds. Overrides default (1h / 30min for security). */
5
- cacheTtl?: number;
6
- /** Override default provider priority. Higher = preferred. */
7
- priority?: Record<string, number>;
8
- /** Use a specific provider, skip auto-detection. */
9
- provider?: string;
10
- }
11
- type AnalysisType = "compatibility" | "impact" | "recommend" | "security";
12
- declare const DEFAULT_PRIORITY: Record<string, number>;
13
- /** Resolve which AI provider to use based on config and availability. */
14
- declare const resolveProvider: (config?: AiConfig) => AiProviderInfo | undefined;
15
- interface AiRecommendation {
16
- action: "defer" | "review" | "skip" | "update";
17
- breakingChanges: string[];
18
- effort: "high" | "low" | "medium";
19
- package: string;
20
- reason: string;
21
- riskLevel: "critical" | "high" | "low" | "medium";
22
- }
23
- interface AiAnalysisResult {
24
- analysisType: AnalysisType;
25
- provider: string;
26
- recommendations: AiRecommendation[];
27
- summary: string;
28
- warnings: string[];
29
- }
30
- declare const validateAnalysisType: (type: string) => AnalysisType;
31
- declare const buildAnalysisPrompt: (outdated: OutdatedEntry[], analysisType?: AnalysisType) => string;
32
- declare const extractJson: (text: string) => unknown | undefined;
33
- declare const normalizeRecommendation: (raw: Record<string, unknown>) => AiRecommendation;
34
- declare const parseAiResponse: (text: string, provider: string, analysisType: AnalysisType) => AiAnalysisResult;
35
- declare const ruleBasedAnalysis: (outdated: OutdatedEntry[], analysisType: AnalysisType) => AiAnalysisResult;
36
- declare const formatAiAnalysis: (result: AiAnalysisResult) => string;
37
- declare const formatAiAnalysisJson: (result: AiAnalysisResult) => string;
38
- declare const runAiAnalysis: (outdated: OutdatedEntry[], logger: Console, config?: AiConfig, analysisType?: AnalysisType) => Promise<AiAnalysisResult>;
39
- export type { AiAnalysisResult, AiConfig, AiRecommendation, AnalysisType };
40
- export { buildAnalysisPrompt, DEFAULT_PRIORITY, extractJson, formatAiAnalysis, formatAiAnalysisJson, normalizeRecommendation, parseAiResponse, resolveProvider, ruleBasedAnalysis, runAiAnalysis, validateAnalysisType, };
@@ -1,21 +0,0 @@
1
- import type { AiAnalysisResult, AnalysisType } from "./ai-analysis.d.ts";
2
- import type { OutdatedEntry } from "./catalog.d.ts";
3
- interface CacheEntry {
4
- createdAt: number;
5
- result: AiAnalysisResult;
6
- ttlMs: number;
7
- }
8
- interface CacheStats {
9
- entries: number;
10
- newestEntry: number | undefined;
11
- oldestEntry: number | undefined;
12
- totalSizeBytes: number;
13
- }
14
- declare const buildCacheKey: (provider: string, analysisType: string, outdated: Pick<OutdatedEntry, "currentRange" | "packageName" | "targetVersion">[]) => string;
15
- declare const getCachedAnalysis: (cacheKey: string) => AiAnalysisResult | undefined;
16
- declare const setCachedAnalysis: (cacheKey: string, result: AiAnalysisResult, ttlMs: number) => void;
17
- declare const getTtlForAnalysisType: (analysisType: AnalysisType | string, configTtl?: number) => number;
18
- declare const getCacheStats: () => CacheStats;
19
- declare const clearCache: () => number;
20
- export type { CacheEntry, CacheStats };
21
- export { buildCacheKey, clearCache, getCachedAnalysis, getCacheStats, getTtlForAnalysisType, setCachedAnalysis };
@@ -1,24 +0,0 @@
1
- /**
2
- * Read and sync native package manager audit exclusion configs.
3
- *
4
- * Supports:
5
- * - pnpm: auditConfig.ignoreCves / ignoreGhsas in pnpm-workspace.yaml
6
- * - yarn berry: npmAuditIgnoreAdvisories / npmAuditExcludePackages in .yarnrc.yml
7
- * - npm: no native mechanism (vis provides the only exclusion layer)
8
- * - bun: CLI-only --ignore (no config file), vis provides the config layer
9
- */
10
- interface NativeAuditExclusions {
11
- /** Package names to exclude from audit (yarn berry only). */
12
- excludedPackages: string[];
13
- /** Advisory IDs to ignore (CVE-*, GHSA-*, or numeric IDs). */
14
- ignoredAdvisories: string[];
15
- }
16
- /** Checks if a value matches any pattern in a list (exact or trailing glob). */
17
- declare const matchesGlobList: (value: string, patterns: string[]) => boolean;
18
- declare const readNativeAuditExclusions: (workspaceRoot: string, pm: string) => NativeAuditExclusions;
19
- /** Checks if any of the given IDs (primary + aliases) match the exclusion list. */
20
- declare const isAdvisoryExcluded: (vulnId: string, exclusions: NativeAuditExclusions, aliases?: string[]) => boolean;
21
- declare const isPackageExcluded: (packageName: string, exclusions: NativeAuditExclusions) => boolean;
22
- declare const syncAcceptedRisksToNativeConfig: (pm: string, workspaceRoot: string, advisoryIds: string[]) => string[];
23
- export type { NativeAuditExclusions };
24
- export { isAdvisoryExcluded, isPackageExcluded, matchesGlobList, readNativeAuditExclusions, syncAcceptedRisksToNativeConfig };
package/dist/bin.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/catalog.d.ts DELETED
@@ -1,118 +0,0 @@
1
- import type { AcceptedRisk, PackageReportData, SocketSecurityOptions } from "./socket-security.d.ts";
2
- type UpdateTarget = "latest" | "minor" | "patch";
3
- interface SecurityVulnerability {
4
- /** Alternate identifiers (CVE-*, GHSA-*, etc.) from the OSV database. */
5
- aliases?: string[];
6
- cvssScore?: number;
7
- fixedVersions: string[];
8
- id: string;
9
- severity: "CRITICAL" | "HIGH" | "LOW" | "MODERATE" | "UNKNOWN";
10
- summary: string;
11
- }
12
- type SocketReport = Pick<PackageReportData, "alerts" | "license" | "score">;
13
- interface OutdatedEntry {
14
- acceptedRisk?: AcceptedRisk;
15
- catalogName: string;
16
- currentRange: string;
17
- newRange: string;
18
- packageName: string;
19
- socketReport?: SocketReport;
20
- targetVersion: string;
21
- updateType: "major" | "minor" | "patch";
22
- vulnerabilities?: SecurityVulnerability[];
23
- }
24
- interface CatalogCheckOptions {
25
- exclude: string[];
26
- ignore: string[];
27
- include: string[];
28
- includePrerelease: boolean;
29
- security?: boolean;
30
- target: UpdateTarget;
31
- }
32
- interface ReadCatalogOptions {
33
- dev?: boolean;
34
- prod?: boolean;
35
- }
36
- interface ParsedVersion {
37
- major: number;
38
- minor: number;
39
- patch: number;
40
- prerelease: string;
41
- }
42
- declare const parseVersion: (input: string) => ParsedVersion | undefined;
43
- declare const extractPrefix: (range: string) => string;
44
- declare const getUpdateType: (current: ParsedVersion, target: ParsedVersion) => "major" | "minor" | "none" | "patch";
45
- declare const isNewer: (current: ParsedVersion, target: ParsedVersion) => boolean;
46
- declare const matchesPattern: (name: string, pattern: string) => boolean;
47
- declare const matchesFilters: (name: string, include: string[], exclude: string[]) => boolean;
48
- declare const parseCatalogsFromYaml: (content: string) => Map<string, Map<string, string>>;
49
- interface BunPackageJson {
50
- workspaces?: {
51
- catalog?: Record<string, string>;
52
- catalogs?: Record<string, Record<string, string>>;
53
- packages?: string[];
54
- };
55
- }
56
- declare const parseBunCatalogs: (pkg: BunPackageJson) => Map<string, Map<string, string>>;
57
- declare const parseCompositeCatalogName: (name: string) => {
58
- depType: string;
59
- relativePath: string;
60
- } | undefined;
61
- declare const readPackageJsonDeps: (workspaceRoot: string, options?: ReadCatalogOptions) => Map<string, Map<string, string>>;
62
- declare const hasPackageJsonDeps: (workspaceRoot: string) => boolean;
63
- declare const applyPackageJsonUpdates: (workspaceRoot: string, updates: OutdatedEntry[]) => void;
64
- type CatalogProvider = "bun" | "pnpm";
65
- declare const hasCatalogs: (workspaceRoot: string, packageManager?: string) => boolean;
66
- declare const readCatalogs: (workspaceRoot: string, packageManager?: string, options?: ReadCatalogOptions) => Map<string, Map<string, string>>;
67
- interface NpmrcConfig {
68
- authTokens: Map<string, string>;
69
- defaultRegistry: string;
70
- registries: Map<string, string>;
71
- }
72
- declare const parseNpmrc: (content: string) => NpmrcConfig;
73
- declare const loadNpmrc: (workspaceRoot: string) => NpmrcConfig;
74
- declare const getRegistryForPackage: (packageName: string, config: NpmrcConfig) => {
75
- token?: string;
76
- url: string;
77
- };
78
- interface RegistryVersionInfo {
79
- latest: string;
80
- versions: string[];
81
- }
82
- declare const fetchPackageVersions: (packageName: string, registryConfig?: {
83
- authToken?: string;
84
- url: string;
85
- }, timeoutMs?: number) => Promise<RegistryVersionInfo>;
86
- declare const fetchVulnerabilities: (packages: {
87
- name: string;
88
- version: string;
89
- }[], timeoutMs?: number) => Promise<Map<string, SecurityVulnerability[]>>;
90
- declare const findTargetVersion: (versions: string[], latest: string, currentRange: string, target: UpdateTarget, includePrerelease: boolean) => string | undefined;
91
- interface CheckOutdatedResult {
92
- failed: string[];
93
- ignored: string[];
94
- outdated: OutdatedEntry[];
95
- }
96
- declare const checkOutdated: (catalogs: Map<string, Map<string, string>>, options: CatalogCheckOptions, npmrcConfig?: NpmrcConfig, onProgress?: (current: number, total: number) => void, workspaceRoot?: string, socketOptions?: SocketSecurityOptions, acceptedRisks?: Record<string, AcceptedRisk>) => Promise<CheckOutdatedResult>;
97
- declare const createBackup: (workspaceRoot: string, packageManager?: string, updates?: OutdatedEntry[]) => string | undefined;
98
- declare const restoreFromBackup: (workspaceRoot: string, packageManager?: string) => boolean;
99
- declare const hasBackup: (workspaceRoot: string, packageManager?: string) => boolean;
100
- type OutputFormat = "json" | "minimal" | "table";
101
- declare const formatOutdatedJson: (result: CheckOutdatedResult) => string;
102
- declare const formatOutdatedMinimal: (outdated: OutdatedEntry[]) => string;
103
- declare const toFilterArray: (value: string | string[] | undefined) => string[];
104
- declare const groupByCatalog: (entries: OutdatedEntry[]) => Map<string, OutdatedEntry[]>;
105
- declare const formatOutdatedTable: (outdated: OutdatedEntry[], logger: Console) => void;
106
- declare const formatSummary: (outdated: OutdatedEntry[]) => string;
107
- declare const detectJsonIndent: (content: string) => number | string;
108
- declare const applyCatalogUpdates: (workspaceRoot: string, updates: OutdatedEntry[], packageManager?: string, backup?: boolean) => string | undefined;
109
- declare const promptPackageSelection: (outdated: OutdatedEntry[]) => Promise<OutdatedEntry[]>;
110
- interface ChangelogInfo {
111
- npmUrl: string;
112
- packageName: string;
113
- releaseUrl?: string;
114
- repoUrl?: string;
115
- }
116
- declare const fetchChangelogInfo: (packages: OutdatedEntry[], timeoutMs?: number) => Promise<ChangelogInfo[]>;
117
- export type { CatalogCheckOptions, CatalogProvider, ChangelogInfo, CheckOutdatedResult, NpmrcConfig, OutdatedEntry, OutputFormat, ReadCatalogOptions, SecurityVulnerability, SocketReport, UpdateTarget, };
118
- export { applyCatalogUpdates, applyPackageJsonUpdates, checkOutdated, createBackup, detectJsonIndent, extractPrefix, fetchChangelogInfo, fetchPackageVersions, fetchVulnerabilities, findTargetVersion, formatOutdatedJson, formatOutdatedMinimal, formatOutdatedTable, formatSummary, getRegistryForPackage, getUpdateType, groupByCatalog, hasBackup, hasCatalogs, hasPackageJsonDeps, isNewer, loadNpmrc, matchesFilters, matchesPattern, parseBunCatalogs, parseCatalogsFromYaml, parseCompositeCatalogName, parseNpmrc, parseVersion, promptPackageSelection, readCatalogs, readPackageJsonDeps, restoreFromBackup, toFilterArray, };
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const add: Command;
3
- export default add;
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const affected: Command;
3
- export default affected;
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const ai: Command;
3
- export default ai;
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const analyze: Command;
3
- export default analyze;
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const approveBuilds: Command;
3
- export default approveBuilds;
@@ -1,23 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- interface InstalledPackage {
3
- isDev: boolean;
4
- name: string;
5
- version: string;
6
- }
7
- /** A package installed in multiple versions. */
8
- interface DuplicatePackage {
9
- /** The package name. */
10
- name: string;
11
- /** Each installed version. */
12
- versions: string[];
13
- }
14
- declare const scanInstalledPackages: (workspaceRoot: string) => InstalledPackage[];
15
- /**
16
- * Finds packages with multiple installed versions by parsing the lockfile
17
- * via `lockparse`. Passes `package.json` for accuracy (especially yarn).
18
- */
19
- declare const findDuplicateDependencies: (workspaceRoot: string, pmName: string) => Promise<DuplicatePackage[]>;
20
- declare const audit: Command;
21
- export default audit;
22
- export type { DuplicatePackage, InstalledPackage };
23
- export { findDuplicateDependencies, scanInstalledPackages };
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const check: Command;
3
- export default check;
@@ -1,3 +0,0 @@
1
- import type { Command } from "@visulima/cerebro";
2
- declare const clean: Command;
3
- export default clean;
@@ -1,42 +0,0 @@
1
- /**
2
- * Template discovery — identifies and resolves template sources from user input.
3
- *
4
- * Supports:
5
- * - Built-in templates prefixed with `vis:` (app, library, monorepo, generator)
6
- * - npm `create-*` packages (with shorthand expansion)
7
- * - Git repositories from GitHub, GitLab, Bitbucket, and Sourcehut (all URL formats)
8
- * - Direct tarball/registry URLs via giget's http/https providers
9
- */
10
- import type { TemplateConfig, TemplateType } from "./templates/types.d.ts";
11
- /**
12
- * Check if the input looks like a git/tarball URL that giget can handle.
13
- * @param input Raw user input string.
14
- * @returns `true` when the input matches a known git host, provider prefix, or URL scheme.
15
- */
16
- export declare const isGitUrl: (input: string) => boolean;
17
- /**
18
- * Expand shorthand npm create names following the `npm create` convention:
19
- *
20
- * - `vite` → `create-vite`
21
- * - `@scope/foo` → `@scope/create-foo`
22
- * - `create-vue` → `create-vue` (already expanded)
23
- * - `sv` → `sv` (direct-package initialiser, not expanded)
24
- * @param name Bare package name or scoped package name.
25
- * @returns Expanded package name suitable for `dlx`.
26
- */
27
- export declare const expandCreateShorthand: (name: string) => string;
28
- /**
29
- * Given the raw template string from the user, determine what kind of
30
- * template it is and return a resolved {@link TemplateConfig}.
31
- * @param input Raw template string (e.g., "vis:app", "vite", "user/repo").
32
- * @param extraArgs Additional CLI arguments to forward to the template runner.
33
- * @returns Resolved template configuration with type, source, and args.
34
- */
35
- export declare const discoverTemplate: (input: string, extraArgs?: string[]) => TemplateConfig;
36
- /**
37
- * Suggest the most appropriate parent directory for a new project based on
38
- * the template type.
39
- * @param type The resolved template type.
40
- * @returns Suggested parent directory name ("apps", "packages", or ".").
41
- */
42
- export declare const inferParentDir: (type: TemplateType) => string;
@@ -1,13 +0,0 @@
1
- /**
2
- * `vis create` — full-featured project scaffolding command.
3
- *
4
- * Supports built-in templates (monorepo, app, library, generator),
5
- * remote npm create-* packages, and git repository templates
6
- * (GitHub, GitLab, Bitbucket, Sourcehut) via giget.
7
- *
8
- * Interactive mode guides users through template selection, naming,
9
- * directory choice, and post-creation setup.
10
- */
11
- import type { Command } from "@visulima/cerebro";
12
- declare const create: Command;
13
- export default create;
@@ -1,31 +0,0 @@
1
- /**
2
- * Interactive prompts for `vis create`.
3
- *
4
- * Uses `node:readline` (same pattern as `vis init`) to keep dependencies minimal.
5
- */
6
- export interface PromptResult {
7
- editor?: "vscode" | undefined;
8
- gitInit: boolean;
9
- /** Whether the user confirmed overwriting an existing non-empty directory. */
10
- overwrite: boolean;
11
- pm?: "bun" | "npm" | "pnpm" | "yarn" | undefined;
12
- projectName: string;
13
- targetDir: string;
14
- template: string;
15
- }
16
- /**
17
- * Run the full interactive prompt flow and return the collected answers.
18
- * @param options.cwd Working directory for resolving paths.
19
- * @param options.defaultPm Pre-selected package manager (skips PM prompt when set).
20
- * @param options.defaultGitInit Default for the git-init prompt (from vis.config.ts).
21
- * @param options.defaultEditor Default for the editor prompt (from vis.config.ts).
22
- * @param options.inMonorepo Whether we are inside an existing monorepo workspace.
23
- * @returns Collected answers including template, name, directory, PM, and flags.
24
- */
25
- export declare const runInteractivePrompts: (options: {
26
- cwd: string;
27
- defaultEditor?: "vscode";
28
- defaultGitInit?: boolean;
29
- defaultPm?: string;
30
- inMonorepo: boolean;
31
- }) => Promise<PromptResult>;
@@ -1,15 +0,0 @@
1
- /**
2
- * Random project name generator — produces friendly `word-word` names
3
- * used as default project name suggestions in interactive mode.
4
- *
5
- * Uses @nkzw/safe-word-list for a curated set of ~2700 safe English words.
6
- */
7
- /**
8
- * Generate a random `word-word` project name from the safe word list.
9
- * @example
10
- * ```ts
11
- * randomName(); // "swift-ember"
12
- * randomName(); // "bold-prism"
13
- * ```
14
- */
15
- export declare const randomName: () => string;
@@ -1,15 +0,0 @@
1
- /**
2
- * Built-in template executor — routes `vis:app` and `vis:library`
3
- * to appropriate scaffolding strategies.
4
- *
5
- * - `vis:app` delegates to `create-vite` via dlx
6
- * - `vis:library` scaffolds a minimal TypeScript library package
7
- */
8
- import type { ExecutionContext, TemplateConfig } from "./types.d.ts";
9
- /**
10
- * Execute a built-in template (vis:app or vis:library).
11
- * @param config Resolved template config with type and extra args.
12
- * @param context Runtime context with PM info, target dir, and project name.
13
- * @returns Exit code — 0 on success, non-zero on failure.
14
- */
15
- export declare const executeBuiltin: (config: TemplateConfig, context: ExecutionContext) => number;
@@ -1,14 +0,0 @@
1
- /**
2
- * Built-in generator template — scaffolds a code generator package
3
- * inside an existing monorepo workspace.
4
- *
5
- * Creates a minimal Node.js CLI package with a bin entry point.
6
- */
7
- import type { ExecutionContext } from "./types.d.ts";
8
- /**
9
- * Scaffold a code generator package with a bin entry point.
10
- * @param context Runtime context with project name and target directory.
11
- * @param description Optional generator description for package.json.
12
- * @returns Exit code — 0 on success.
13
- */
14
- export declare const executeGeneratorTemplate: (context: ExecutionContext, description?: string) => number;
@@ -1,13 +0,0 @@
1
- /**
2
- * Template executor router — dispatches to the correct executor
3
- * based on the resolved template type.
4
- */
5
- import type { ExecutionContext, TemplateConfig } from "./types.d.ts";
6
- /**
7
- * Execute a template given its resolved configuration and runtime context.
8
- * @param config Resolved template info (type, source, extra args).
9
- * @param context Runtime context (cwd, PM, project name, target dir, config).
10
- * @returns Exit code — 0 on success, non-zero on failure.
11
- */
12
- export declare const executeTemplate: (config: TemplateConfig, context: ExecutionContext) => Promise<number>;
13
- export type { ExecutionContext, TemplateConfig } from "./types.d.ts";
@@ -1,16 +0,0 @@
1
- /**
2
- * Built-in monorepo template — scaffolds a complete pnpm workspace.
3
- *
4
- * Creates:
5
- * - Root package.json with workspace scripts
6
- * - pnpm-workspace.yaml
7
- * - .gitignore, .editorconfig
8
- * - apps/ and packages/ directories
9
- */
10
- import type { ExecutionContext } from "./types.d.ts";
11
- /**
12
- * Scaffold a pnpm monorepo workspace with apps/ and packages/ directories.
13
- * @param context Execution context with project name, target directory, and PM info.
14
- * @returns Exit code (0 = success).
15
- */
16
- export declare const executeMonorepoTemplate: (context: ExecutionContext) => number;