@paradigma-inc/flywheel 0.1.53 → 0.1.72

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 (263) hide show
  1. package/README.md +149 -17
  2. package/package.json +4 -2
  3. package/skills/flywheel/SKILL.md +4 -3
  4. package/skills/flywheel/getting-started/flywheel-quickstart.md +4 -4
  5. package/skills/flywheel/references/flywheel-cli-tool-map.md +47 -35
  6. package/skills/flywheel/references/flywheel-mcp-tool-map.md +16 -5
  7. package/skills/flywheel/setting-up-flywheel/claude-code-cli-installation.md +3 -3
  8. package/skills/flywheel/setting-up-flywheel/codex-cli-installation.md +3 -3
  9. package/skills/flywheel/setting-up-flywheel/installation-overview.md +9 -8
  10. package/skills/flywheel/setting-up-flywheel/other-hosts-installation.md +1 -1
  11. package/skills/flywheel/setting-up-flywheel/updating-flywheel-mcp.md +4 -4
  12. package/skills/flywheel-auto/SKILL.md +4 -3
  13. package/skills/flywheel-auto/references/flywheel-cli-tool-map.md +37 -35
  14. package/skills/flywheel-auto/references/flywheel-mcp-tool-map.md +4 -4
  15. package/skills/flywheel-lookahead/SKILL.md +1 -1
  16. package/skills/flywheel-lookahead/references/flywheel-cli-tool-map.md +37 -35
  17. package/skills/flywheel-lookahead/references/flywheel-mcp-tool-map.md +4 -4
  18. package/skills/flywheel-prove/SKILL.md +1 -1
  19. package/skills/flywheel-reproduce/SKILL.md +4 -3
  20. package/skills/flywheel-reproduce/references/flywheel-cli-tool-map.md +37 -35
  21. package/skills/flywheel-reproduce/references/flywheel-mcp-tool-map.md +4 -4
  22. package/skills/flywheel-to-graph/SKILL.md +1 -1
  23. package/skills/flywheel-to-graph/references/flywheel-cli-tool-map.md +37 -35
  24. package/skills/flywheel-to-graph/references/flywheel-mcp-tool-map.md +4 -4
  25. package/skills/flywheel-tree/SKILL.md +1 -1
  26. package/src/agents.mjs +114 -48
  27. package/src/cli.mjs +373 -56
  28. package/src/mcp-writer.mjs +190 -17
  29. package/src/runtime/required-runtime-commands.json +19 -4
  30. package/src/runtime/vendor/flywheel-cli-dist/auth/login.d.ts +1 -0
  31. package/src/runtime/vendor/flywheel-cli-dist/auth/login.js +3 -6
  32. package/src/runtime/vendor/flywheel-cli-dist/auth/login.js.map +1 -1
  33. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.d.ts +1 -0
  34. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.js +1 -1
  35. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.js.map +1 -1
  36. package/src/runtime/vendor/flywheel-cli-dist/commands/_admin-auth.d.ts +27 -0
  37. package/src/runtime/vendor/flywheel-cli-dist/commands/_admin-auth.js +54 -0
  38. package/src/runtime/vendor/flywheel-cli-dist/commands/_admin-auth.js.map +1 -0
  39. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.d.ts +1 -1
  40. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.js +6 -5
  41. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.js.map +1 -1
  42. package/src/runtime/vendor/flywheel-cli-dist/commands/_browser-handoff.d.ts +21 -0
  43. package/src/runtime/vendor/flywheel-cli-dist/commands/_browser-handoff.js +51 -0
  44. package/src/runtime/vendor/flywheel-cli-dist/commands/_browser-handoff.js.map +1 -0
  45. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.d.ts +1 -1
  46. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.js +6 -3
  47. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.js.map +1 -1
  48. package/src/runtime/vendor/flywheel-cli-dist/commands/_secret-param.d.ts +7 -0
  49. package/src/runtime/vendor/flywheel-cli-dist/commands/_secret-param.js +18 -0
  50. package/src/runtime/vendor/flywheel-cli-dist/commands/_secret-param.js.map +1 -0
  51. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-file-out.d.ts +39 -0
  52. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-file-out.js +72 -0
  53. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-file-out.js.map +1 -0
  54. package/src/runtime/vendor/flywheel-cli-dist/commands/account-detach.js +2 -0
  55. package/src/runtime/vendor/flywheel-cli-dist/commands/account-detach.js.map +1 -1
  56. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-add.js +2 -0
  57. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-add.js.map +1 -1
  58. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-remove.js +2 -0
  59. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-remove.js.map +1 -1
  60. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-set-primary.js +2 -0
  61. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-set-primary.js.map +1 -1
  62. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.d.ts +2 -1
  63. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.js +6 -1
  64. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.js.map +1 -1
  65. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-preview.js +2 -0
  66. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-preview.js.map +1 -1
  67. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-proof.js +2 -0
  68. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-proof.js.map +1 -1
  69. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge.js +2 -0
  70. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge.js.map +1 -1
  71. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-get.d.ts +2 -0
  72. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-get.js +11 -0
  73. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-get.js.map +1 -0
  74. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-set.d.ts +2 -0
  75. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-set.js +60 -0
  76. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-compute-policy-set.js.map +1 -0
  77. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export-stream.d.ts +2 -0
  78. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export-stream.js +115 -0
  79. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export-stream.js.map +1 -0
  80. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export.d.ts +2 -0
  81. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export.js +12 -0
  82. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-export.js.map +1 -0
  83. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-list.d.ts +4 -0
  84. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-list.js +39 -0
  85. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-graphs-list.js.map +1 -0
  86. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-nodes-audit-list.d.ts +2 -0
  87. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-nodes-audit-list.js +15 -0
  88. package/src/runtime/vendor/flywheel-cli-dist/commands/admin-nodes-audit-list.js.map +1 -0
  89. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.d.ts +18 -1
  90. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.js +38 -5
  91. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.js.map +1 -1
  92. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-delete.js +1 -1
  93. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-delete.js.map +1 -1
  94. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-mode.d.ts +4 -0
  95. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-mode.js +42 -0
  96. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-mode.js.map +1 -0
  97. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-status.js +15 -1
  98. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-status.js.map +1 -1
  99. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-list.js +8 -2
  100. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-list.js.map +1 -1
  101. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-request-approval.js +6 -1
  102. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-request-approval.js.map +1 -1
  103. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release-all.js +18 -7
  104. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release-all.js.map +1 -1
  105. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-billing-portal.js +8 -4
  106. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-billing-portal.js.map +1 -1
  107. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-purchase.js +8 -4
  108. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-purchase.js.map +1 -1
  109. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscribe.js +8 -4
  110. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscribe.js.map +1 -1
  111. package/src/runtime/vendor/flywheel-cli-dist/commands/destructive-confirmation.d.ts +2 -0
  112. package/src/runtime/vendor/flywheel-cli-dist/commands/destructive-confirmation.js +7 -0
  113. package/src/runtime/vendor/flywheel-cli-dist/commands/destructive-confirmation.js.map +1 -0
  114. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.d.ts +8 -0
  115. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.js +4 -0
  116. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.js.map +1 -1
  117. package/src/runtime/vendor/flywheel-cli-dist/commands/env.d.ts +0 -4
  118. package/src/runtime/vendor/flywheel-cli-dist/commands/env.js +7 -12
  119. package/src/runtime/vendor/flywheel-cli-dist/commands/env.js.map +1 -1
  120. package/src/runtime/vendor/flywheel-cli-dist/commands/export-history.js +42 -30
  121. package/src/runtime/vendor/flywheel-cli-dist/commands/export-history.js.map +1 -1
  122. package/src/runtime/vendor/flywheel-cli-dist/commands/export-subgraph.js +12 -4
  123. package/src/runtime/vendor/flywheel-cli-dist/commands/export-subgraph.js.map +1 -1
  124. package/src/runtime/vendor/flywheel-cli-dist/commands/github-link.js +9 -14
  125. package/src/runtime/vendor/flywheel-cli-dist/commands/github-link.js.map +1 -1
  126. package/src/runtime/vendor/flywheel-cli-dist/commands/help-format.d.ts +31 -0
  127. package/src/runtime/vendor/flywheel-cli-dist/commands/help-format.js +69 -0
  128. package/src/runtime/vendor/flywheel-cli-dist/commands/help-format.js.map +1 -0
  129. package/src/runtime/vendor/flywheel-cli-dist/commands/help.d.ts +6 -1
  130. package/src/runtime/vendor/flywheel-cli-dist/commands/help.js +226 -124
  131. package/src/runtime/vendor/flywheel-cli-dist/commands/help.js.map +1 -1
  132. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-create.d.ts +2 -0
  133. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-create.js +25 -0
  134. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-create.js.map +1 -0
  135. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-delete.d.ts +1 -0
  136. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-delete.js +6 -0
  137. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-delete.js.map +1 -0
  138. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-list.d.ts +2 -0
  139. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-list.js +10 -0
  140. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-list.js.map +1 -0
  141. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-runs-list.d.ts +2 -0
  142. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-runs-list.js +15 -0
  143. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-runs-list.js.map +1 -0
  144. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-create.d.ts +2 -0
  145. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-create.js +8 -0
  146. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-create.js.map +1 -0
  147. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-delete.d.ts +1 -0
  148. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-delete.js +6 -0
  149. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-delete.js.map +1 -0
  150. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-list.d.ts +1 -0
  151. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-list.js +6 -0
  152. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-list.js.map +1 -0
  153. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-update.d.ts +2 -0
  154. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-update.js +8 -0
  155. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-secrets-update.js.map +1 -0
  156. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-set-enabled.d.ts +2 -0
  157. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-set-enabled.js +8 -0
  158. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-set-enabled.js.map +1 -0
  159. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-update.d.ts +2 -0
  160. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-update.js +29 -0
  161. package/src/runtime/vendor/flywheel-cli-dist/commands/hooks-update.js.map +1 -0
  162. package/src/runtime/vendor/flywheel-cli-dist/commands/index.js +36 -6
  163. package/src/runtime/vendor/flywheel-cli-dist/commands/index.js.map +1 -1
  164. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-set.js +7 -3
  165. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-set.js.map +1 -1
  166. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-set.js +6 -2
  167. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-set.js.map +1 -1
  168. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-add-parent.js +6 -1
  169. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-add-parent.js.map +1 -1
  170. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete-bulk.js +2 -0
  171. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete-bulk.js.map +1 -1
  172. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete.js +2 -0
  173. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete.js.map +1 -1
  174. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-remove-parent.js +8 -1
  175. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-remove-parent.js.map +1 -1
  176. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-resolve-slug.js +55 -2
  177. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-resolve-slug.js.map +1 -1
  178. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-list.js +13 -1
  179. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-list.js.map +1 -1
  180. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-set.js +4 -2
  181. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-set.js.map +1 -1
  182. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-show.js +16 -1
  183. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-show.js.map +1 -1
  184. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/account.js +8 -7
  185. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/account.js.map +1 -1
  186. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/admin.d.ts +8 -0
  187. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/admin.js +131 -0
  188. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/admin.js.map +1 -0
  189. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/api-keys.js +8 -2
  190. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/api-keys.js.map +1 -1
  191. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/approval.js +29 -1
  192. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/approval.js.map +1 -1
  193. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/artifacts.js +13 -1
  194. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/artifacts.js.map +1 -1
  195. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/auth.js +2 -2
  196. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/auth.js.map +1 -1
  197. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/budgets.js +11 -2
  198. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/budgets.js.map +1 -1
  199. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js +2 -2
  200. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js.map +1 -1
  201. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/credits.js +8 -6
  202. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/credits.js.map +1 -1
  203. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/env.js +7 -5
  204. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/env.js.map +1 -1
  205. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/github.js +6 -14
  206. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/github.js.map +1 -1
  207. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/hooks.d.ts +2 -0
  208. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/hooks.js +312 -0
  209. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/hooks.js.map +1 -0
  210. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/integrations.js +22 -8
  211. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/integrations.js.map +1 -1
  212. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/lifecycle.js +122 -25
  213. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/lifecycle.js.map +1 -1
  214. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/profile.js +2 -2
  215. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/profile.js.map +1 -1
  216. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js +1 -31
  217. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js.map +1 -1
  218. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/sharing.js +12 -4
  219. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/sharing.js.map +1 -1
  220. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.d.ts +2 -1
  221. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js +46 -9
  222. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js.map +1 -1
  223. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-refresh.d.ts +2 -0
  224. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-refresh.js +20 -0
  225. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-refresh.js.map +1 -0
  226. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-resolve.d.ts +2 -0
  227. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-resolve.js +23 -0
  228. package/src/runtime/vendor/flywheel-cli-dist/commands/remote-artifacts-resolve.js.map +1 -0
  229. package/src/runtime/vendor/flywheel-cli-dist/errors.d.ts +15 -0
  230. package/src/runtime/vendor/flywheel-cli-dist/errors.js +16 -1
  231. package/src/runtime/vendor/flywheel-cli-dist/errors.js.map +1 -1
  232. package/src/runtime/vendor/flywheel-cli-dist/http/client.d.ts +1 -0
  233. package/src/runtime/vendor/flywheel-cli-dist/http/client.js +75 -19
  234. package/src/runtime/vendor/flywheel-cli-dist/http/client.js.map +1 -1
  235. package/src/runtime/vendor/flywheel-cli-dist/http/debug.d.ts +3 -0
  236. package/src/runtime/vendor/flywheel-cli-dist/http/debug.js +21 -2
  237. package/src/runtime/vendor/flywheel-cli-dist/http/debug.js.map +1 -1
  238. package/src/runtime/vendor/flywheel-cli-dist/main.js +119 -10
  239. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
  240. package/src/runtime/vendor/flywheel-cli-dist/output/format.js +44 -6
  241. package/src/runtime/vendor/flywheel-cli-dist/output/format.js.map +1 -1
  242. package/src/runtime/vendor/manifest.json +82 -10
  243. package/src/setup/base-url.mjs +43 -0
  244. package/src/setup/command.mjs +2 -0
  245. package/src/setup/io/patchers/json.mjs +2 -0
  246. package/src/setup/io/patchers/toml.mjs +7 -1
  247. package/src/setup/io/patchers/yaml.mjs +2 -0
  248. package/src/setup/modes/cli.mjs +72 -24
  249. package/src/setup/modes/mcp-command.mjs +146 -38
  250. package/src/setup/modes/mcp.mjs +26 -1
  251. package/src/setup/resolved-selection-record.mjs +25 -0
  252. package/src/setup/shared/prior-mode-detect.mjs +133 -14
  253. package/src/setup-auth.mjs +3 -2
  254. package/src/skill-installer.mjs +179 -1
  255. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.d.ts +0 -1
  256. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.js +0 -6
  257. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.js.map +0 -1
  258. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.d.ts +0 -2
  259. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.js +0 -19
  260. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.js.map +0 -1
  261. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.d.ts +0 -2
  262. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.js +0 -7
  263. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { SKILL_ONLY_HOST_NAMES } from "./agents.mjs";
1
2
  import { execFile as execFileCb } from "node:child_process";
2
3
  import { existsSync } from "node:fs";
3
4
  import {
@@ -35,6 +36,12 @@ export const INSTALL_SKILLS_AGENT_BY_HOST = Object.freeze({
35
36
  "pi-mono": "pi",
36
37
  });
37
38
 
39
+ // Hosts that install skills via a direct filesystem copy (no `skills add`
40
+ // agent integration). These are mostly skill-only targets — they do not write
41
+ // any MCP config or agent-specific AGENTS.md; Flywheel just drops its bundled
42
+ // skills under a conventional directory the IDE or toolchain reads.
43
+ export const DIRECT_COPY_SKILL_HOSTS = Object.freeze(["gemini", "universal", "antigravity"]);
44
+
38
45
  export const SUPPORTED_INSTALL_SKILL_HOSTS = Object.freeze([
39
46
  "codex",
40
47
  "claude",
@@ -42,6 +49,9 @@ export const SUPPORTED_INSTALL_SKILL_HOSTS = Object.freeze([
42
49
  "cursor",
43
50
  "openclaw",
44
51
  "pi-mono",
52
+ "gemini",
53
+ "universal",
54
+ "antigravity",
45
55
  ]);
46
56
 
47
57
  export function resolvePackageRoot(moduleUrl = import.meta.url) {
@@ -168,7 +178,10 @@ export function partitionInstallSkillHosts(hostNames) {
168
178
  const unsupportedHosts = [];
169
179
 
170
180
  for (const hostName of uniqueValues(hostNames)) {
171
- if (hostName in INSTALL_SKILLS_AGENT_BY_HOST) {
181
+ if (
182
+ hostName in INSTALL_SKILLS_AGENT_BY_HOST ||
183
+ DIRECT_COPY_SKILL_HOSTS.includes(hostName)
184
+ ) {
172
185
  supportedHosts.push(hostName);
173
186
  } else {
174
187
  unsupportedHosts.push(hostName);
@@ -178,6 +191,58 @@ export function partitionInstallSkillHosts(hostNames) {
178
191
  return { supportedHosts, unsupportedHosts };
179
192
  }
180
193
 
194
+ export function isDirectCopySkillHost(hostName) {
195
+ return DIRECT_COPY_SKILL_HOSTS.includes(hostName);
196
+ }
197
+
198
+ /**
199
+ * Resolve the path of the "Flywheel installed its skills here on behalf of
200
+ * <hostName>" ownership marker file. The marker lives at the parent of the
201
+ * bundled skill dirs (i.e. the skills root for that host), so it is not
202
+ * touched by agent-level skill installers that operate on individual skill
203
+ * subdirectories.
204
+ *
205
+ * The marker carries two related load-bearing signals, resolved by caller
206
+ * context:
207
+ *
208
+ * 1. For pure skill-only hosts (`universal`, `antigravity`): the marker
209
+ * is the ONLY ownership signal — these hosts write no MCP entry. An
210
+ * uninstall of another host sharing the same skills-root uses it to
211
+ * decide whether to retain those skill dirs.
212
+ *
213
+ * 2. For MCP-capable hosts installed through `runCliSetupMode` (which
214
+ * writes skills + runtime config but NO MCP entry): the marker is the
215
+ * per-host signal that this host was installed in CLI mode. Without
216
+ * it, a subsequent `setup --mode mcp --<host>` could not tell whether
217
+ * shared-root artifacts came from a real CLI install of this host or
218
+ * from an unrelated skill-only install at the same root, so it would
219
+ * silently skip the cross-mode conflict guard. MCP-capable hosts
220
+ * installed via the MCP path (with or without `--install-skill`) do
221
+ * NOT get a marker — their MCP entry is the canonical signal there.
222
+ *
223
+ * The marker file is host-scoped (embedded in the filename) so multiple
224
+ * hosts sharing the same skills-root can co-own it without collisions.
225
+ */
226
+ export function resolveFlywheelInstalledMarkerPath(projectRoot, hostName, scope) {
227
+ if (!SUPPORTED_INSTALL_SKILL_HOSTS.includes(hostName)) {
228
+ throw new Error(
229
+ `resolveFlywheelInstalledMarkerPath requires a host that uses the flywheel skill installer; got '${hostName}'.`,
230
+ );
231
+ }
232
+ const normalizedScope = normalizeInstallScope(scope);
233
+ // Reuse resolveInstalledSkillDir with a placeholder skill name to get the
234
+ // scope/host-specific skills-root directory; the marker file lives at that
235
+ // root, next to (not inside) the individual skill dirs.
236
+ const placeholderSkillDir = resolveInstalledSkillDir(
237
+ projectRoot,
238
+ hostName,
239
+ normalizedScope,
240
+ "__placeholder__",
241
+ );
242
+ const skillsRoot = path.dirname(placeholderSkillDir);
243
+ return path.join(skillsRoot, `.flywheel-installed-by-${hostName}`);
244
+ }
245
+
181
246
  export function resolveInstalledSkillDir(
182
247
  projectRoot,
183
248
  hostName,
@@ -208,6 +273,12 @@ export function resolveInstalledSkillDir(
208
273
  return path.join(root, ".pi", "agent", "skills", normalizedSkillName);
209
274
  }
210
275
  return path.join(root, ".pi", "skills", normalizedSkillName);
276
+ case "gemini":
277
+ return path.join(root, ".gemini", "skills", normalizedSkillName);
278
+ case "universal":
279
+ return path.join(root, ".agents", "skills", normalizedSkillName);
280
+ case "antigravity":
281
+ return path.join(root, ".agent", "skills", normalizedSkillName);
211
282
  default:
212
283
  throw new Error(`--install-skill is not supported for host '${hostName}'.`);
213
284
  }
@@ -321,15 +392,61 @@ export async function inspectInstalledSkillArtifactsForHosts({
321
392
  skillStates.set(skillName, skillState);
322
393
  }
323
394
 
395
+ // Capture pre-install presence of every relevant install marker so a
396
+ // rollback can restore the exact state the filesystem was in before this
397
+ // install attempt. Without this, a failure after a marker write leaves
398
+ // stale ownership state — and later uninstalls of other hosts retain
399
+ // shared skill dirs that were never actually claimed, or the cross-mode
400
+ // conflict guard flips for a host that was never really installed. Every
401
+ // host that uses the flywheel skill installer is tracked here because
402
+ // the install may write a marker for any of them depending on call
403
+ // context; markers we never wrote simply stay absent.
404
+ const skillOnlyHostMarkers = new Map();
405
+ for (const hostName of uniqueValues(hostNames)) {
406
+ if (!SUPPORTED_INSTALL_SKILL_HOSTS.includes(hostName)) continue;
407
+ const markerPath = resolveFlywheelInstalledMarkerPath(
408
+ projectRoot,
409
+ hostName,
410
+ normalizedScope,
411
+ );
412
+ // eslint-disable-next-line no-await-in-loop
413
+ const hadMarker = await pathExists(markerPath);
414
+ skillOnlyHostMarkers.set(hostName, {
415
+ markerPath,
416
+ hadMarker,
417
+ });
418
+ }
419
+
324
420
  return {
325
421
  backupRoot,
326
422
  skillStates,
327
423
  skillsLockPath,
328
424
  hadSkillsLock,
329
425
  skillsLockContents,
426
+ skillOnlyHostMarkers,
330
427
  };
331
428
  }
332
429
 
430
+ /**
431
+ * Install Flywheel's bundled skills into each selected host's conventional
432
+ * skill directory.
433
+ *
434
+ * `cliMode` toggles the ownership-marker policy to match the caller's
435
+ * install semantics:
436
+ *
437
+ * - `cliMode: false` (default, MCP setup path): write an install marker
438
+ * ONLY for pure skill-only hosts, because MCP-capable hosts advertise
439
+ * their install via the MCP config entry written elsewhere in the MCP
440
+ * flow. Writing a marker for them here would over-report ownership and
441
+ * break legitimate cross-mode conflict detection.
442
+ *
443
+ * - `cliMode: true` (CLI setup path): write an install marker for EVERY
444
+ * host passed in. The CLI setup path does not write any MCP config, so
445
+ * without a per-host marker, a subsequent MCP-mode setup cannot tell
446
+ * whether a shared-root skill dir belongs to this host's CLI install
447
+ * or to some other skill-only install at the same root, and its
448
+ * cross-mode conflict guard silently fails open.
449
+ */
333
450
  export async function installBundledSkillForHosts({
334
451
  projectRoot = process.cwd(),
335
452
  hostNames = [],
@@ -337,6 +454,7 @@ export async function installBundledSkillForHosts({
337
454
  serverName = DEFAULT_SKILL_MCP_SERVER_NAME,
338
455
  serverUrl = DEFAULT_SKILL_MCP_SERVER_URL,
339
456
  skillNames,
457
+ cliMode = false,
340
458
  } = {}) {
341
459
  const packageRoot = resolvePackageRoot();
342
460
  const skillsCliPath = resolveSkillsCliPath(packageRoot);
@@ -370,6 +488,36 @@ export async function installBundledSkillForHosts({
370
488
 
371
489
  try {
372
490
  for (const hostName of uniqueValues(hostNames)) {
491
+ // Skill-only hosts always get the ownership marker; MCP-capable
492
+ // hosts only get it when the caller is the CLI setup path (see the
493
+ // docstring on installBundledSkillForHosts for rationale).
494
+ const shouldWriteMarker =
495
+ SKILL_ONLY_HOST_NAMES.includes(hostName) || cliMode === true;
496
+
497
+ if (isDirectCopySkillHost(hostName)) {
498
+ const destinationDir = resolveInstalledSkillDir(
499
+ projectRoot,
500
+ hostName,
501
+ normalizedScope,
502
+ skillName,
503
+ );
504
+ // eslint-disable-next-line no-await-in-loop
505
+ await rm(destinationDir, { force: true, recursive: true });
506
+ // eslint-disable-next-line no-await-in-loop
507
+ await mkdir(path.dirname(destinationDir), { recursive: true });
508
+ // eslint-disable-next-line no-await-in-loop
509
+ await cp(installSkillSourceDir, destinationDir, { recursive: true });
510
+ if (shouldWriteMarker) {
511
+ const markerPath = resolveFlywheelInstalledMarkerPath(
512
+ projectRoot,
513
+ hostName,
514
+ normalizedScope,
515
+ );
516
+ // eslint-disable-next-line no-await-in-loop
517
+ await writeFile(markerPath, "", { encoding: "utf8", mode: 0o600 });
518
+ }
519
+ continue;
520
+ }
373
521
  const agentName = resolveSkillsAgentName(hostName);
374
522
  const addArgs = [
375
523
  skillsCliPath,
@@ -388,6 +536,19 @@ export async function installBundledSkillForHosts({
388
536
  cwd: projectRoot,
389
537
  env: process.env,
390
538
  });
539
+ if (shouldWriteMarker) {
540
+ // CLI-mode install of an MCP-capable host writes no MCP entry;
541
+ // the marker is the per-host signal prior-mode detection uses
542
+ // to distinguish a real CLI install from artifacts left by an
543
+ // unrelated skill-only install at the same shared skills-root.
544
+ const markerPath = resolveFlywheelInstalledMarkerPath(
545
+ projectRoot,
546
+ hostName,
547
+ normalizedScope,
548
+ );
549
+ // eslint-disable-next-line no-await-in-loop
550
+ await writeFile(markerPath, "", { encoding: "utf8", mode: 0o600 });
551
+ }
391
552
  }
392
553
  } finally {
393
554
  if (stagedSkillSourceRoot) {
@@ -620,6 +781,23 @@ export async function cleanupInstalledSkillArtifactsForHosts({
620
781
  await rm(resolveProjectSkillsLockPath(projectRoot), { force: true });
621
782
  }
622
783
 
784
+ // Restore the direct-copy host ownership markers to their pre-install
785
+ // state. When a marker existed before this install (idempotent re-run),
786
+ // the marker file is an empty content-less file so simply leaving it in
787
+ // place is correct; but when the install added the marker for the first
788
+ // time and then failed, we must remove it to avoid false retention on
789
+ // subsequent uninstalls.
790
+ const markerEntries =
791
+ priorState?.skillOnlyHostMarkers instanceof Map
792
+ ? [...priorState.skillOnlyHostMarkers.values()]
793
+ : [];
794
+ for (const { markerPath, hadMarker } of markerEntries) {
795
+ if (!hadMarker) {
796
+ // eslint-disable-next-line no-await-in-loop
797
+ await rm(markerPath, { force: true });
798
+ }
799
+ }
800
+
623
801
  if (priorState?.backupRoot) {
624
802
  await rm(priorState.backupRoot, { force: true, recursive: true });
625
803
  }
@@ -1 +0,0 @@
1
- export declare const computePolicyGetCommand: import("./types.js").CommandHandler;
@@ -1,6 +0,0 @@
1
- import { buildHandler } from './handler-factory.js';
2
- export const computePolicyGetCommand = buildHandler({
3
- method: 'GET',
4
- pathTemplate: '/nodes/{node_id}/compute/policy',
5
- });
6
- //# sourceMappingURL=compute-policy-get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-policy-get.js","sourceRoot":"","sources":["../../src/commands/compute-policy-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;IAClD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,iCAAiC;CAChD,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { CommandHandler } from './types.js';
2
- export declare const computePolicySetCommand: CommandHandler;
@@ -1,19 +0,0 @@
1
- import { requiredString } from './utils.js';
2
- export const computePolicySetCommand = async (context) => {
3
- const nodeId = requiredString(context.params, 'node_id');
4
- const body = {};
5
- for (const [key, value] of Object.entries(context.params)) {
6
- if (key === 'node_id')
7
- continue;
8
- if (typeof value === 'boolean') {
9
- body[key] = value;
10
- continue;
11
- }
12
- if (typeof value === 'string') {
13
- const asInt = Number.parseInt(value, 10);
14
- body[key] = !Number.isNaN(asInt) && String(asInt) === value ? asInt : value;
15
- }
16
- }
17
- return context.requestJson('PATCH', `/nodes/${encodeURIComponent(nodeId)}/compute/policy`, { body });
18
- };
19
- //# sourceMappingURL=compute-policy-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-policy-set.js","sourceRoot":"","sources":["../../src/commands/compute-policy-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,uBAAuB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACvE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CACxB,OAAO,EACP,UAAU,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,EACrD,EAAE,IAAI,EAAE,CACT,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { CommandHandler } from './types.js';
2
- export declare const nodesAuditListCommand: CommandHandler;
@@ -1,7 +0,0 @@
1
- import { optionalInt, requiredString } from './utils.js';
2
- export const nodesAuditListCommand = async (context) => {
3
- const nodeId = requiredString(context.params, 'node_id');
4
- const limit = optionalInt(context.params, 'limit');
5
- return context.requestJson('GET', `/nodes/${encodeURIComponent(nodeId)}/audit`, limit !== undefined ? { query: { limit } } : undefined);
6
- };
7
- //# sourceMappingURL=nodes-audit-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodes-audit-list.js","sourceRoot":"","sources":["../../src/commands/nodes-audit-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,CAAC,MAAM,qBAAqB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,WAAW,CACxB,KAAK,EACL,UAAU,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAC5C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC;AACJ,CAAC,CAAC"}