@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
@@ -12,22 +12,14 @@ export const GITHUB_COMMANDS = [
12
12
  {
13
13
  name: 'github:link',
14
14
  group: 'integrations',
15
- summary: 'Link a GitHub installation ID to your account.',
16
- endpoints: ['POST /auth/github/link-installation'],
17
- required: [
18
- {
19
- name: 'installation_id',
20
- type: 'string',
21
- description: 'GitHub App installation ID (from the install redirect).',
22
- },
23
- ],
24
- optional: [
25
- { name: 'state', type: 'string', description: 'Signed state token from bootstrap flow.' },
26
- ],
15
+ summary: 'Start the GitHub App install/link browser flow.',
16
+ endpoints: ['GET /auth/github/install-url'],
17
+ required: [],
18
+ optional: [],
27
19
  examples: [
28
20
  {
29
- description: 'Link installation.',
30
- invocation: 'flywheel github:link --installation_id 12345 --state s_abc',
21
+ description: 'Open the GitHub App install flow.',
22
+ invocation: 'flywheel github:link --open',
31
23
  },
32
24
  ],
33
25
  related: ['github:disconnect'],
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/commands/registry/github.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,iCAAiC;QAC1C,SAAS,EAAE,CAAC,yBAAyB,CAAC;QACtC,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;QAC5E,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,gDAAgD;QACzD,SAAS,EAAE,CAAC,qCAAqC,CAAC;QAClD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;SACF;QACD,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;SAC1F;QACD,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,oBAAoB;gBACjC,UAAU,EACR,4DAA4D;aAC/D;SACF;QACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,8CAA8C;QACvD,SAAS,EAAE,CAAC,iCAAiC,CAAC;QAC9C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;SACzE;QACD,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,CAAC,gCAAgC,CAAC;QAC7C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,4BAA4B,EAAE;SACzE;QACD,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB;CACF,CAAC"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/commands/registry/github.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,iCAAiC;QAC1C,SAAS,EAAE,CAAC,yBAAyB,CAAC;QACtC,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;QAC5E,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,iDAAiD;QAC1D,SAAS,EAAE,CAAC,8BAA8B,CAAC;QAC3C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,mCAAmC;gBAChD,UAAU,EAAE,6BAA6B;aAC1C;SACF;QACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,8CAA8C;QACvD,SAAS,EAAE,CAAC,iCAAiC,CAAC;QAC9C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,+BAA+B,EAAE;SACzE;QACD,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,CAAC,gCAAgC,CAAC;QAC7C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,4BAA4B,EAAE;SACzE;QACD,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CommandDefinition } from "../registry.js";
2
+ export declare const HOOKS_COMMANDS: ReadonlyArray<CommandDefinition>;
@@ -0,0 +1,312 @@
1
+ export const HOOKS_COMMANDS = [
2
+ {
3
+ name: "hooks:list",
4
+ group: "hooks",
5
+ summary: "List hooks configured for an owner node.",
6
+ endpoints: ["GET /nodes/{owner_node_id}/hooks"],
7
+ required: [
8
+ {
9
+ name: "owner_node_id",
10
+ type: "string",
11
+ description: "Owner node identifier.",
12
+ },
13
+ ],
14
+ optional: [
15
+ {
16
+ name: "include_disabled",
17
+ type: "boolean",
18
+ description: "Include disabled hooks in the response.",
19
+ },
20
+ ],
21
+ examples: [
22
+ {
23
+ description: "List all hooks including disabled entries.",
24
+ invocation: "flywheel hooks:list --owner_node_id n_owner --include_disabled",
25
+ },
26
+ ],
27
+ related: ["hooks:create", "hooks:update", "hooks:runs:list"],
28
+ },
29
+ {
30
+ name: "hooks:create",
31
+ group: "hooks",
32
+ summary: "Create a new hook on an owner node.",
33
+ endpoints: ["POST /nodes/{owner_node_id}/hooks"],
34
+ required: [
35
+ {
36
+ name: "owner_node_id",
37
+ type: "string",
38
+ description: "Owner node identifier.",
39
+ },
40
+ {
41
+ name: "name",
42
+ type: "string",
43
+ description: "Human-readable hook name.",
44
+ },
45
+ {
46
+ name: "workflow_yaml",
47
+ type: "string",
48
+ description: "Workflow YAML payload for hook execution.",
49
+ },
50
+ ],
51
+ optional: [
52
+ {
53
+ name: "trigger_event",
54
+ type: "string",
55
+ description: "Trigger event (currently only artifact.finalized).",
56
+ },
57
+ {
58
+ name: "scope",
59
+ type: "string",
60
+ description: "Hook scope: self|subtree|graph.",
61
+ },
62
+ {
63
+ name: "rerun_policy",
64
+ type: "string",
65
+ description: "Rerun policy (currently only if_inputs_changed).",
66
+ },
67
+ {
68
+ name: "enabled",
69
+ type: "boolean",
70
+ description: "Set initial enabled state.",
71
+ },
72
+ ],
73
+ examples: [
74
+ {
75
+ description: "Create an enabled subtree hook.",
76
+ invocation: 'flywheel hooks:create --owner_node_id n_owner --name build --workflow_yaml "on:\\n artifact.finalized: {}\\njobs:\\n main:\\n steps:\\n - id: call_eval\\n uses: flywheel/http_request@v1\\n with:\\n url: https://example.invalid/eval\\n method: POST" --scope subtree --trigger_event artifact.finalized --enabled',
77
+ },
78
+ {
79
+ description: "Create an enabled subtree hook that tags finalized submissions.",
80
+ invocation: "flywheel hooks:create --owner_node_id n_owner --name tag-red-submissions --workflow_yaml 'on:\\n artifact.finalized: {}\\nif:\\n any_artifact:\\n field: metadata.submission_kind\\n eq: red\\njobs:\\n main:\\n steps:\\n - id: tag_red_submission\\n uses: flywheel/add_node_tags@v1\\n with:\\n node_id: ${{ event.source_node_id }}\\n tag_ids:\\n - tag-red-submission' --scope subtree --trigger_event artifact.finalized --enabled",
81
+ },
82
+ ],
83
+ related: ["hooks:list", "hooks:update", "hooks:set-enabled"],
84
+ },
85
+ {
86
+ name: "hooks:update",
87
+ group: "hooks",
88
+ summary: "Update mutable hook fields for an existing hook.",
89
+ endpoints: ["PATCH /nodes/{owner_node_id}/hooks/{hook_id}"],
90
+ required: [
91
+ {
92
+ name: "owner_node_id",
93
+ type: "string",
94
+ description: "Owner node identifier.",
95
+ },
96
+ { name: "hook_id", type: "string", description: "Hook identifier." },
97
+ ],
98
+ optional: [
99
+ { name: "name", type: "string", description: "Updated hook name." },
100
+ {
101
+ name: "trigger_event",
102
+ type: "string",
103
+ description: "Updated trigger event (artifact.finalized).",
104
+ },
105
+ {
106
+ name: "scope",
107
+ type: "string",
108
+ description: "Updated scope: self|subtree|graph.",
109
+ },
110
+ {
111
+ name: "workflow_yaml",
112
+ type: "string",
113
+ description: "Updated workflow YAML payload.",
114
+ },
115
+ {
116
+ name: "rerun_policy",
117
+ type: "string",
118
+ description: "Updated rerun policy (if_inputs_changed).",
119
+ },
120
+ ],
121
+ examples: [
122
+ {
123
+ description: "Move a hook to graph scope.",
124
+ invocation: "flywheel hooks:update --owner_node_id n_owner --hook_id hk_1 --scope graph",
125
+ },
126
+ ],
127
+ related: ["hooks:list", "hooks:create", "hooks:delete"],
128
+ },
129
+ {
130
+ name: "hooks:delete",
131
+ group: "hooks",
132
+ summary: "Delete a hook from an owner node.",
133
+ endpoints: ["DELETE /nodes/{owner_node_id}/hooks/{hook_id}"],
134
+ required: [
135
+ {
136
+ name: "owner_node_id",
137
+ type: "string",
138
+ description: "Owner node identifier.",
139
+ },
140
+ { name: "hook_id", type: "string", description: "Hook identifier." },
141
+ ],
142
+ optional: [],
143
+ examples: [
144
+ {
145
+ description: "Delete one hook.",
146
+ invocation: "flywheel hooks:delete --owner_node_id n_owner --hook_id hk_1",
147
+ },
148
+ ],
149
+ related: ["hooks:list"],
150
+ },
151
+ {
152
+ name: "hooks:set-enabled",
153
+ group: "hooks",
154
+ summary: "Enable or disable an existing hook.",
155
+ endpoints: ["PATCH /nodes/{owner_node_id}/hooks/{hook_id}/enabled"],
156
+ required: [
157
+ {
158
+ name: "owner_node_id",
159
+ type: "string",
160
+ description: "Owner node identifier.",
161
+ },
162
+ { name: "hook_id", type: "string", description: "Hook identifier." },
163
+ {
164
+ name: "enabled",
165
+ type: "boolean",
166
+ description: "Desired enabled state.",
167
+ },
168
+ ],
169
+ optional: [],
170
+ examples: [
171
+ {
172
+ description: "Disable one hook.",
173
+ invocation: "flywheel hooks:set-enabled --owner_node_id n_owner --hook_id hk_1 --enabled=false",
174
+ },
175
+ ],
176
+ related: ["hooks:list", "hooks:update"],
177
+ },
178
+ {
179
+ name: "hooks:runs:list",
180
+ group: "hooks",
181
+ summary: "List hook runs for an owner node.",
182
+ endpoints: ["GET /nodes/{owner_node_id}/hook-runs"],
183
+ required: [
184
+ {
185
+ name: "owner_node_id",
186
+ type: "string",
187
+ description: "Owner node identifier.",
188
+ },
189
+ ],
190
+ optional: [
191
+ {
192
+ name: "hook_id",
193
+ type: "string",
194
+ description: "Filter runs to one hook ID.",
195
+ },
196
+ {
197
+ name: "limit",
198
+ type: "integer",
199
+ description: "Maximum number of runs to return.",
200
+ },
201
+ ],
202
+ examples: [
203
+ {
204
+ description: "List the last 25 runs for one hook.",
205
+ invocation: "flywheel hooks:runs:list --owner_node_id n_owner --hook_id hk_1 --limit 25",
206
+ },
207
+ ],
208
+ related: ["hooks:list"],
209
+ },
210
+ {
211
+ name: "hooks:secrets:list",
212
+ group: "hooks",
213
+ summary: "List hook secret metadata for an owner node.",
214
+ endpoints: ["GET /nodes/{owner_node_id}/hook-secrets"],
215
+ required: [
216
+ {
217
+ name: "owner_node_id",
218
+ type: "string",
219
+ description: "Owner node identifier.",
220
+ },
221
+ ],
222
+ optional: [],
223
+ examples: [
224
+ {
225
+ description: "List secrets configured for hooks on an owner node.",
226
+ invocation: "flywheel hooks:secrets:list --owner_node_id n_owner",
227
+ },
228
+ ],
229
+ related: [
230
+ "hooks:secrets:create",
231
+ "hooks:secrets:update",
232
+ "hooks:secrets:delete",
233
+ ],
234
+ },
235
+ {
236
+ name: "hooks:secrets:create",
237
+ group: "hooks",
238
+ summary: "Create a hook secret.",
239
+ endpoints: ["POST /nodes/{owner_node_id}/hook-secrets"],
240
+ required: [
241
+ {
242
+ name: "owner_node_id",
243
+ type: "string",
244
+ description: "Owner node identifier.",
245
+ },
246
+ { name: "name", type: "string", description: "Secret name." },
247
+ { name: "value", type: "string", description: "Secret plaintext value." },
248
+ ],
249
+ optional: [],
250
+ examples: [
251
+ {
252
+ description: "Create one hook secret.",
253
+ invocation: "flywheel hooks:secrets:create --owner_node_id n_owner --name API_TOKEN --value token",
254
+ },
255
+ ],
256
+ related: ["hooks:secrets:list", "hooks:secrets:update"],
257
+ },
258
+ {
259
+ name: "hooks:secrets:update",
260
+ group: "hooks",
261
+ summary: "Rotate one hook secret value.",
262
+ endpoints: ["PATCH /nodes/{owner_node_id}/hook-secrets/{secret_id}"],
263
+ required: [
264
+ {
265
+ name: "owner_node_id",
266
+ type: "string",
267
+ description: "Owner node identifier.",
268
+ },
269
+ { name: "secret_id", type: "string", description: "Secret identifier." },
270
+ {
271
+ name: "value",
272
+ type: "string",
273
+ description: "New secret plaintext value.",
274
+ },
275
+ ],
276
+ optional: [],
277
+ examples: [
278
+ {
279
+ description: "Rotate one hook secret.",
280
+ invocation: "flywheel hooks:secrets:update --owner_node_id n_owner --secret_id hs_1 --value rotated",
281
+ },
282
+ ],
283
+ related: [
284
+ "hooks:secrets:list",
285
+ "hooks:secrets:create",
286
+ "hooks:secrets:delete",
287
+ ],
288
+ },
289
+ {
290
+ name: "hooks:secrets:delete",
291
+ group: "hooks",
292
+ summary: "Delete one hook secret.",
293
+ endpoints: ["DELETE /nodes/{owner_node_id}/hook-secrets/{secret_id}"],
294
+ required: [
295
+ {
296
+ name: "owner_node_id",
297
+ type: "string",
298
+ description: "Owner node identifier.",
299
+ },
300
+ { name: "secret_id", type: "string", description: "Secret identifier." },
301
+ ],
302
+ optional: [],
303
+ examples: [
304
+ {
305
+ description: "Delete one hook secret.",
306
+ invocation: "flywheel hooks:secrets:delete --owner_node_id n_owner --secret_id hs_1",
307
+ },
308
+ ],
309
+ related: ["hooks:secrets:list"],
310
+ },
311
+ ];
312
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/commands/registry/hooks.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,19 @@ export const INTEGRATIONS_COMMANDS = [
16
16
  group: 'integrations',
17
17
  summary: 'Store a Weights & Biases API key.',
18
18
  endpoints: ['PUT /auth/integrations/wandb'],
19
- required: [{ name: 'api_key', type: 'string', description: 'W&B API key.' }],
20
- optional: [],
19
+ required: [],
20
+ optional: [
21
+ { name: 'api_key', type: 'string', description: 'W&B API key.' },
22
+ {
23
+ name: 'api_key_env',
24
+ type: 'string',
25
+ description: 'Environment variable containing the W&B API key.',
26
+ },
27
+ ],
21
28
  examples: [
22
29
  {
23
- description: 'Store W&B key.',
24
- invocation: 'flywheel integrations:wandb:set --api_key KEY',
30
+ description: 'Store W&B key from an environment variable.',
31
+ invocation: 'flywheel integrations:wandb:set --api_key_env WANDB_API_KEY',
25
32
  },
26
33
  ],
27
34
  related: ['integrations:wandb:remove'],
@@ -43,12 +50,19 @@ export const INTEGRATIONS_COMMANDS = [
43
50
  group: 'integrations',
44
51
  summary: 'Store a Hugging Face access token.',
45
52
  endpoints: ['PUT /auth/integrations/huggingface'],
46
- required: [{ name: 'token', type: 'string', description: 'HF access token.' }],
47
- optional: [],
53
+ required: [],
54
+ optional: [
55
+ { name: 'token', type: 'string', description: 'HF access token.' },
56
+ {
57
+ name: 'token_env',
58
+ type: 'string',
59
+ description: 'Environment variable containing the HF access token.',
60
+ },
61
+ ],
48
62
  examples: [
49
63
  {
50
- description: 'Store HF token.',
51
- invocation: 'flywheel integrations:huggingface:set --token TOK',
64
+ description: 'Store HF token from an environment variable.',
65
+ invocation: 'flywheel integrations:huggingface:set --token_env HF_TOKEN',
52
66
  },
53
67
  ],
54
68
  related: ['integrations:huggingface:remove'],
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/commands/registry/integrations.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,0DAA0D;QACnE,SAAS,EAAE,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,8BAA8B,EAAE;SACvE;QACD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,CAAC,8BAA8B,CAAC;QAC3C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;QAC5E,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,gBAAgB;gBAC7B,UAAU,EAAE,+CAA+C;aAC5D;SACF;QACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;KACvC;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,6BAA6B;QACtC,SAAS,EAAE,CAAC,iCAAiC,CAAC;QAC9C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,oCAAoC,EAAE;SAC7E;QACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;KACpC;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE,CAAC,oCAAoC,CAAC;QACjD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;QAC9E,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,iBAAiB;gBAC9B,UAAU,EAAE,mDAAmD;aAChE;SACF;QACD,OAAO,EAAE,CAAC,iCAAiC,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,CAAC,uCAAuC,CAAC;QACpD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,0CAA0C,EAAE;SACnF;QACD,OAAO,EAAE,CAAC,8BAA8B,CAAC;KAC1C;CACF,CAAC"}
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/commands/registry/integrations.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,0DAA0D;QACnE,SAAS,EAAE,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,8BAA8B,EAAE;SACvE;QACD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,CAAC,8BAA8B,CAAC;QAC3C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YAChE;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;SACF;QACD,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,6CAA6C;gBAC1D,UAAU,EAAE,6DAA6D;aAC1E;SACF;QACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;KACvC;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,6BAA6B;QACtC,SAAS,EAAE,CAAC,iCAAiC,CAAC;QAC9C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,oCAAoC,EAAE;SAC7E;QACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;KACpC;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE,CAAC,oCAAoC,CAAC;QACjD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YAClE;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;SACF;QACD,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,8CAA8C;gBAC3D,UAAU,EAAE,4DAA4D;aACzE;SACF;QACD,OAAO,EAAE,CAAC,iCAAiC,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,CAAC,uCAAuC,CAAC;QACpD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,0CAA0C,EAAE;SACnF;QACD,OAAO,EAAE,CAAC,8BAA8B,CAAC;KAC1C;CACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export const LIFECYCLE_COMMANDS = [
2
2
  {
3
3
  name: 'nodes:resolve-slug',
4
- group: 'developer-admin',
4
+ group: 'nodes-graph',
5
5
  summary: 'Resolve a slug to a node ID.',
6
6
  endpoints: ['GET /nodes/resolve-by-slug'],
7
7
  required: [{ name: 'slug_name', type: 'string', description: 'Slug text.' }],
@@ -11,26 +11,20 @@ export const LIFECYCLE_COMMANDS = [
11
11
  type: 'string',
12
12
  description: 'Disambiguating context node.',
13
13
  },
14
+ {
15
+ name: 'detail',
16
+ type: 'string',
17
+ description: 'Output detail: compact (default) or full.',
18
+ },
14
19
  ],
15
20
  examples: [
16
21
  {
17
22
  description: 'Resolve a slug.',
18
23
  invocation: 'flywheel nodes:resolve-slug --slug_name my-experiment',
19
24
  },
20
- ],
21
- related: ['nodes:get'],
22
- },
23
- {
24
- name: 'nodes:audit:list',
25
- group: 'developer-admin',
26
- summary: 'List audit events for node-level actions.',
27
- endpoints: ['GET /nodes/{node_id}/audit'],
28
- required: [{ name: 'node_id', type: 'string', description: 'Node ID.' }],
29
- optional: [{ name: 'limit', type: 'integer', description: 'Max events.' }],
30
- examples: [
31
25
  {
32
- description: 'Read audit events.',
33
- invocation: 'flywheel nodes:audit:list --node_id n_abc --limit 50',
26
+ description: 'Return the full node payload when needed.',
27
+ invocation: 'flywheel nodes:resolve-slug --slug_name my-experiment --detail full',
34
28
  },
35
29
  ],
36
30
  related: ['nodes:get'],
@@ -73,13 +67,22 @@ export const LIFECYCLE_COMMANDS = [
73
67
  required: [
74
68
  { name: 'node_id', type: 'string', description: 'Child node receiving the edge.' },
75
69
  { name: 'parent_id', type: 'string', description: 'Parent node to attach.' },
76
- { name: 'expected_revision', type: 'integer', description: 'Optimistic lock.' },
70
+ {
71
+ name: 'expected_revision',
72
+ type: 'integer',
73
+ description: 'Optimistic lock for the child node.',
74
+ },
75
+ {
76
+ name: 'expected_parent_revision',
77
+ type: 'integer',
78
+ description: 'Optimistic lock for the parent node.',
79
+ },
77
80
  ],
78
81
  optional: [],
79
82
  examples: [
80
83
  {
81
84
  description: 'Attach a parent.',
82
- invocation: 'flywheel nodes:add-parent --node_id n_child --parent_id n_parent --expected_revision 5',
85
+ invocation: 'flywheel nodes:add-parent --node_id n_child --parent_id n_parent --expected_revision 5 --expected_parent_revision 2',
83
86
  },
84
87
  ],
85
88
  related: ['nodes:remove-parent'],
@@ -92,13 +95,22 @@ export const LIFECYCLE_COMMANDS = [
92
95
  required: [
93
96
  { name: 'node_id', type: 'string', description: 'Child node identifier.' },
94
97
  { name: 'parent_id', type: 'string', description: 'Parent node identifier.' },
95
- { name: 'expected_revision', type: 'integer', description: 'Optimistic lock.' },
98
+ {
99
+ name: 'expected_revision',
100
+ type: 'integer',
101
+ description: 'Optimistic lock for the child node.',
102
+ },
103
+ {
104
+ name: 'expected_parent_revision',
105
+ type: 'integer',
106
+ description: 'Optimistic lock for the parent node.',
107
+ },
96
108
  ],
97
109
  optional: [],
98
110
  examples: [
99
111
  {
100
112
  description: 'Detach a parent.',
101
- invocation: 'flywheel nodes:remove-parent --node_id n_child --parent_id n_parent --expected_revision 5',
113
+ invocation: 'flywheel nodes:remove-parent --node_id n_child --parent_id n_parent --expected_revision 5 --expected_parent_revision 2',
102
114
  },
103
115
  ],
104
116
  related: ['nodes:add-parent'],
@@ -114,8 +126,8 @@ export const LIFECYCLE_COMMANDS = [
114
126
  ],
115
127
  examples: [
116
128
  {
117
- description: 'Branch from a node.',
118
- invocation: 'flywheel nodes:branch --node_id n_abc',
129
+ description: 'Read the current revision, then branch from a node.',
130
+ invocation: 'flywheel nodes:get --node_id n_abc --format=json\nflywheel nodes:branch --node_id n_abc --expected_revision 7',
119
131
  },
120
132
  ],
121
133
  related: ['nodes:merge'],
@@ -139,8 +151,8 @@ export const LIFECYCLE_COMMANDS = [
139
151
  ],
140
152
  examples: [
141
153
  {
142
- description: 'Merge two branches.',
143
- invocation: `flywheel nodes:merge --node_ids n1,n2 --expected_revision_by_node '{"n1":5,"n2":3}'`,
154
+ description: 'Read current revisions, then merge two branches.',
155
+ invocation: `flywheel nodes:get --node_id n1 --format=json\nflywheel nodes:get --node_id n2 --format=json\nflywheel nodes:merge --node_ids n1,n2 --expected_revision_by_node '{"n1":5,"n2":3}'`,
144
156
  },
145
157
  ],
146
158
  related: ['nodes:branch'],
@@ -148,20 +160,20 @@ export const LIFECYCLE_COMMANDS = [
148
160
  {
149
161
  name: 'nodes:delete-bulk',
150
162
  group: 'nodes-graph',
151
- summary: 'Delete multiple node subtrees.',
163
+ summary: 'Delete multiple node subtrees. Requires --yes.',
152
164
  endpoints: ['POST /nodes/bulk-delete'],
153
165
  required: [{ name: 'node_ids', type: 'string', description: 'Comma-separated node IDs.' }],
154
166
  optional: [
155
167
  {
156
168
  name: 'delete_mode',
157
169
  type: 'string',
158
- description: 'cascade | detach_shared (default cascade).',
170
+ description: 'cascade | detach_shared (default detach_shared).',
159
171
  },
160
172
  ],
161
173
  examples: [
162
174
  {
163
175
  description: 'Bulk delete.',
164
- invocation: 'flywheel nodes:delete-bulk --node_ids n1,n2 --delete_mode cascade',
176
+ invocation: 'flywheel nodes:delete-bulk --node_ids n1,n2 --delete_mode cascade --yes',
165
177
  },
166
178
  ],
167
179
  related: ['nodes:delete'],
@@ -229,6 +241,91 @@ export const LIFECYCLE_COMMANDS = [
229
241
  ],
230
242
  related: [],
231
243
  },
244
+ {
245
+ name: 'remote-artifacts:resolve',
246
+ group: 'nodes-graph',
247
+ summary: 'Resolve a public HTTPS JSON Remote Artifact for a node.',
248
+ endpoints: ['POST /nodes/{node_id}/remote-artifacts/resolve'],
249
+ required: [
250
+ { name: 'node_id', type: 'string', description: 'Node ID.' },
251
+ {
252
+ name: 'remote_artifact_id',
253
+ type: 'string',
254
+ description: 'Stable Remote Artifact ID.',
255
+ },
256
+ { name: 'title', type: 'string', description: 'Artifact title.' },
257
+ { name: 'url', type: 'string', description: 'Public HTTPS JSON URL.' },
258
+ {
259
+ name: 'rows_path',
260
+ type: 'string',
261
+ description: 'Dotted path resolving to the row list.',
262
+ },
263
+ {
264
+ name: 'row_id',
265
+ type: 'string',
266
+ description: 'Dotted path resolving to each row ID.',
267
+ },
268
+ ],
269
+ optional: [
270
+ {
271
+ name: 'cache_ttl_seconds',
272
+ type: 'integer',
273
+ description: 'Freshness TTL in seconds. Defaults to 60.',
274
+ },
275
+ {
276
+ name: 'force_refresh',
277
+ type: 'boolean',
278
+ description: 'Bypass the cached artifact when true.',
279
+ },
280
+ ],
281
+ examples: [
282
+ {
283
+ description: 'Resolve a Remote Artifact.',
284
+ invocation: 'flywheel remote-artifacts:resolve --node_id n_abc --remote_artifact_id official_leaderboard --title "Official Leaderboard" --url https://example.com/leaderboard.json --rows_path items --row_id github_username',
285
+ },
286
+ ],
287
+ related: ['remote-artifacts:refresh', 'artifacts:get'],
288
+ },
289
+ {
290
+ name: 'remote-artifacts:refresh',
291
+ group: 'nodes-graph',
292
+ summary: 'Force refresh a public HTTPS JSON Remote Artifact for a node.',
293
+ endpoints: ['POST /nodes/{node_id}/remote-artifacts/refresh'],
294
+ required: [
295
+ { name: 'node_id', type: 'string', description: 'Node ID.' },
296
+ {
297
+ name: 'remote_artifact_id',
298
+ type: 'string',
299
+ description: 'Stable Remote Artifact ID.',
300
+ },
301
+ { name: 'title', type: 'string', description: 'Artifact title.' },
302
+ { name: 'url', type: 'string', description: 'Public HTTPS JSON URL.' },
303
+ {
304
+ name: 'rows_path',
305
+ type: 'string',
306
+ description: 'Dotted path resolving to the row list.',
307
+ },
308
+ {
309
+ name: 'row_id',
310
+ type: 'string',
311
+ description: 'Dotted path resolving to each row ID.',
312
+ },
313
+ ],
314
+ optional: [
315
+ {
316
+ name: 'cache_ttl_seconds',
317
+ type: 'integer',
318
+ description: 'Freshness TTL in seconds. Defaults to 60.',
319
+ },
320
+ ],
321
+ examples: [
322
+ {
323
+ description: 'Force refresh a Remote Artifact.',
324
+ invocation: 'flywheel remote-artifacts:refresh --node_id n_abc --remote_artifact_id official_leaderboard --title "Official Leaderboard" --url https://example.com/leaderboard.json --rows_path items --row_id github_username',
325
+ },
326
+ ],
327
+ related: ['remote-artifacts:resolve', 'artifacts:get'],
328
+ },
232
329
  {
233
330
  name: 'nodes:create',
234
331
  group: 'nodes-graph',