@paradigma-inc/flywheel 0.1.35 → 0.1.52

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 (551) hide show
  1. package/README.md +117 -60
  2. package/bin/flywheel.js +10 -3
  3. package/package.json +5 -1
  4. package/skills/flywheel/SKILL.md +13 -1
  5. package/skills/flywheel/campaigns/participating-in-a-campaign.md +2 -2
  6. package/skills/flywheel/compute/managed-compute.md +26 -7
  7. package/skills/flywheel/getting-started/flywheel-tutorial-overview.md +2 -1
  8. package/skills/flywheel/references/INTERFACES.md +2 -0
  9. package/skills/flywheel/references/flywheel-cli-tool-map.md +244 -0
  10. package/skills/flywheel/references/flywheel-mcp-tool-map.md +39 -5
  11. package/skills/flywheel/setting-up-flywheel/claude-code-cli-installation.md +1 -1
  12. package/skills/flywheel/setting-up-flywheel/codex-cli-installation.md +1 -1
  13. package/skills/flywheel/setting-up-flywheel/how-can-i-get-an-authorized-client_id-for-the-oauth-flow.md +3 -3
  14. package/skills/flywheel/setting-up-flywheel/installation-overview.md +19 -4
  15. package/skills/flywheel/setting-up-flywheel/other-hosts-installation.md +1 -1
  16. package/skills/flywheel/usage-and-workflows/what-to-do-with-flywheel.md +28 -1
  17. package/skills/flywheel/web-ui/the-flywheel-web-ui.md +1 -1
  18. package/skills/flywheel-auto/SKILL.md +23 -12
  19. package/skills/flywheel-auto/references/INTERFACES.md +2 -0
  20. package/skills/flywheel-auto/references/flywheel-cli-tool-map.md +244 -0
  21. package/skills/flywheel-auto/references/flywheel-mcp-tool-map.md +6 -5
  22. package/skills/flywheel-lookahead/SKILL.md +22 -11
  23. package/skills/flywheel-lookahead/references/INTERFACES.md +2 -0
  24. package/skills/flywheel-lookahead/references/flywheel-cli-tool-map.md +244 -0
  25. package/skills/flywheel-lookahead/references/flywheel-mcp-tool-map.md +6 -5
  26. package/skills/flywheel-prove/SKILL.md +9 -0
  27. package/skills/flywheel-reproduce/SKILL.md +23 -12
  28. package/skills/flywheel-reproduce/references/INTERFACES.md +2 -0
  29. package/skills/flywheel-reproduce/references/flywheel-cli-tool-map.md +244 -0
  30. package/skills/flywheel-reproduce/references/flywheel-mcp-tool-map.md +6 -5
  31. package/skills/flywheel-to-graph/SKILL.md +20 -9
  32. package/skills/flywheel-to-graph/references/INTERFACES.md +2 -0
  33. package/skills/flywheel-to-graph/references/flywheel-cli-tool-map.md +244 -0
  34. package/skills/flywheel-to-graph/references/flywheel-mcp-tool-map.md +6 -5
  35. package/skills/flywheel-tree/SKILL.md +9 -0
  36. package/src/cli.mjs +284 -598
  37. package/src/mcp-writer.mjs +2 -2
  38. package/src/runtime/delegate.mjs +21 -0
  39. package/src/runtime/required-runtime-commands.json +117 -0
  40. package/src/runtime/runtime-config.mjs +84 -0
  41. package/src/runtime/vendor/.gitkeep +1 -0
  42. package/src/runtime/vendor/flywheel-cli-dist/auth/active-key-id.d.ts +1 -0
  43. package/src/runtime/vendor/flywheel-cli-dist/auth/active-key-id.js +22 -0
  44. package/src/runtime/vendor/flywheel-cli-dist/auth/active-key-id.js.map +1 -0
  45. package/src/runtime/vendor/flywheel-cli-dist/auth/baseurl.d.ts +35 -0
  46. package/src/runtime/vendor/flywheel-cli-dist/auth/baseurl.js +64 -0
  47. package/src/runtime/vendor/flywheel-cli-dist/auth/baseurl.js.map +1 -0
  48. package/src/runtime/vendor/flywheel-cli-dist/auth/config.d.ts +34 -0
  49. package/src/runtime/vendor/flywheel-cli-dist/auth/config.js +92 -0
  50. package/src/runtime/vendor/flywheel-cli-dist/auth/config.js.map +1 -0
  51. package/src/runtime/vendor/flywheel-cli-dist/auth/fingerprint.d.ts +5 -0
  52. package/src/runtime/vendor/flywheel-cli-dist/auth/fingerprint.js +12 -0
  53. package/src/runtime/vendor/flywheel-cli-dist/auth/fingerprint.js.map +1 -0
  54. package/src/runtime/vendor/flywheel-cli-dist/auth/keychain.d.ts +4 -0
  55. package/src/runtime/vendor/flywheel-cli-dist/auth/keychain.js +31 -0
  56. package/src/runtime/vendor/flywheel-cli-dist/auth/keychain.js.map +1 -0
  57. package/src/runtime/vendor/flywheel-cli-dist/auth/login.d.ts +23 -0
  58. package/src/runtime/vendor/flywheel-cli-dist/auth/login.js +387 -0
  59. package/src/runtime/vendor/flywheel-cli-dist/auth/login.js.map +1 -0
  60. package/src/runtime/vendor/flywheel-cli-dist/auth/profile.d.ts +15 -0
  61. package/src/runtime/vendor/flywheel-cli-dist/auth/profile.js +150 -0
  62. package/src/runtime/vendor/flywheel-cli-dist/auth/profile.js.map +1 -0
  63. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.d.ts +26 -0
  64. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.js +27 -0
  65. package/src/runtime/vendor/flywheel-cli-dist/auth/profiles.js.map +1 -0
  66. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.d.ts +32 -0
  67. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.js +171 -0
  68. package/src/runtime/vendor/flywheel-cli-dist/commands/_artifacts-upload-helpers.js.map +1 -0
  69. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.d.ts +2 -0
  70. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.js +26 -0
  71. package/src/runtime/vendor/flywheel-cli-dist/commands/_open-url.js.map +1 -0
  72. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-writer.d.ts +34 -0
  73. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-writer.js +63 -0
  74. package/src/runtime/vendor/flywheel-cli-dist/commands/_stream-writer.js.map +1 -0
  75. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.d.ts +29 -0
  76. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.js +75 -0
  77. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.js.map +1 -0
  78. package/src/runtime/vendor/flywheel-cli-dist/commands/account-detach.d.ts +2 -0
  79. package/src/runtime/vendor/flywheel-cli-dist/commands/account-detach.js +13 -0
  80. package/src/runtime/vendor/flywheel-cli-dist/commands/account-detach.js.map +1 -0
  81. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-add.d.ts +2 -0
  82. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-add.js +6 -0
  83. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-add.js.map +1 -0
  84. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-remove.d.ts +2 -0
  85. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-remove.js +6 -0
  86. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-remove.js.map +1 -0
  87. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-set-primary.d.ts +2 -0
  88. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-set-primary.js +6 -0
  89. package/src/runtime/vendor/flywheel-cli-dist/commands/account-emails-set-primary.js.map +1 -0
  90. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.d.ts +1 -0
  91. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.js +6 -0
  92. package/src/runtime/vendor/flywheel-cli-dist/commands/account-get.js.map +1 -0
  93. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-preview.d.ts +2 -0
  94. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-preview.js +6 -0
  95. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-preview.js.map +1 -0
  96. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-proof.d.ts +2 -0
  97. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-proof.js +8 -0
  98. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge-proof.js.map +1 -0
  99. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge.d.ts +2 -0
  100. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge.js +11 -0
  101. package/src/runtime/vendor/flywheel-cli-dist/commands/account-merge.js.map +1 -0
  102. package/src/runtime/vendor/flywheel-cli-dist/commands/aliases.d.ts +13 -0
  103. package/src/runtime/vendor/flywheel-cli-dist/commands/aliases.js +13 -0
  104. package/src/runtime/vendor/flywheel-cli-dist/commands/aliases.js.map +1 -0
  105. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-create.d.ts +2 -0
  106. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-create.js +12 -0
  107. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-create.js.map +1 -0
  108. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-delete.d.ts +2 -0
  109. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-delete.js +20 -0
  110. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-delete.js.map +1 -0
  111. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.d.ts +1 -0
  112. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.js +6 -0
  113. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-list.js.map +1 -0
  114. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-rotate.d.ts +2 -0
  115. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-rotate.js +21 -0
  116. package/src/runtime/vendor/flywheel-cli-dist/commands/api-keys-rotate.js.map +1 -0
  117. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-expire.d.ts +2 -0
  118. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-expire.js +8 -0
  119. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-expire.js.map +1 -0
  120. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-heartbeat.d.ts +2 -0
  121. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-heartbeat.js +29 -0
  122. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-heartbeat.js.map +1 -0
  123. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-list.d.ts +2 -0
  124. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-list.js +10 -0
  125. package/src/runtime/vendor/flywheel-cli-dist/commands/approval-sessions-list.js.map +1 -0
  126. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-delete.d.ts +2 -0
  127. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-delete.js +8 -0
  128. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-delete.js.map +1 -0
  129. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-get.d.ts +2 -0
  130. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-get.js +7 -0
  131. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-get.js.map +1 -0
  132. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-list.d.ts +2 -0
  133. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-list.js +8 -0
  134. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-list.js.map +1 -0
  135. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-note-set.d.ts +2 -0
  136. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-note-set.js +9 -0
  137. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-note-set.js.map +1 -0
  138. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-finalize.d.ts +2 -0
  139. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-finalize.js +7 -0
  140. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-finalize.js.map +1 -0
  141. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-prepare.d.ts +2 -0
  142. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-prepare.js +15 -0
  143. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload-prepare.js.map +1 -0
  144. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload.d.ts +2 -0
  145. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload.js +5 -0
  146. package/src/runtime/vendor/flywheel-cli-dist/commands/artifacts-upload.js.map +1 -0
  147. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-clear.d.ts +2 -0
  148. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-clear.js +8 -0
  149. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-clear.js.map +1 -0
  150. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-set.d.ts +2 -0
  151. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-set.js +30 -0
  152. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-keychain-set.js.map +1 -0
  153. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-login.d.ts +2 -0
  154. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-login.js +34 -0
  155. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-login.js.map +1 -0
  156. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-status.d.ts +2 -0
  157. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-status.js +4 -0
  158. package/src/runtime/vendor/flywheel-cli-dist/commands/auth-status.js.map +1 -0
  159. package/src/runtime/vendor/flywheel-cli-dist/commands/blobs-get.d.ts +2 -0
  160. package/src/runtime/vendor/flywheel-cli-dist/commands/blobs-get.js +18 -0
  161. package/src/runtime/vendor/flywheel-cli-dist/commands/blobs-get.js.map +1 -0
  162. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-create.d.ts +2 -0
  163. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-create.js +11 -0
  164. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-create.js.map +1 -0
  165. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-list.d.ts +1 -0
  166. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-list.js +6 -0
  167. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-list.js.map +1 -0
  168. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-revoke.d.ts +1 -0
  169. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-revoke.js +6 -0
  170. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-revoke.js.map +1 -0
  171. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-update.d.ts +2 -0
  172. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-update.js +22 -0
  173. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-budgets-update.js.map +1 -0
  174. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-snapshot.d.ts +1 -0
  175. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-snapshot.js +6 -0
  176. package/src/runtime/vendor/flywheel-cli-dist/commands/campaign-snapshot.js.map +1 -0
  177. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-acquire.d.ts +2 -0
  178. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-acquire.js +39 -0
  179. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-acquire.js.map +1 -0
  180. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-budgets.d.ts +2 -0
  181. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-budgets.js +14 -0
  182. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-budgets.js.map +1 -0
  183. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-connection.d.ts +2 -0
  184. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-connection.js +13 -0
  185. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-connection.js.map +1 -0
  186. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-funding.d.ts +2 -0
  187. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-funding.js +10 -0
  188. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-funding.js.map +1 -0
  189. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-list.d.ts +2 -0
  190. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-list.js +13 -0
  191. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-list.js.map +1 -0
  192. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-request-approval.d.ts +2 -0
  193. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-request-approval.js +53 -0
  194. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-grants-request-approval.js.map +1 -0
  195. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-options.d.ts +2 -0
  196. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-options.js +17 -0
  197. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-options.js.map +1 -0
  198. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.d.ts +1 -0
  199. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.js +6 -0
  200. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-get.js.map +1 -0
  201. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.d.ts +2 -0
  202. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.js +19 -0
  203. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-policy-set.js.map +1 -0
  204. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release-all.d.ts +2 -0
  205. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release-all.js +39 -0
  206. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release-all.js.map +1 -0
  207. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release.d.ts +2 -0
  208. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release.js +28 -0
  209. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-release.js.map +1 -0
  210. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-status.d.ts +2 -0
  211. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-status.js +8 -0
  212. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-status.js.map +1 -0
  213. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-balance.d.ts +1 -0
  214. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-balance.js +6 -0
  215. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-balance.js.map +1 -0
  216. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-billing-portal.d.ts +2 -0
  217. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-billing-portal.js +8 -0
  218. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-billing-portal.js.map +1 -0
  219. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-purchase.d.ts +2 -0
  220. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-purchase.js +10 -0
  221. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-purchase.js.map +1 -0
  222. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral-claim.d.ts +2 -0
  223. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral-claim.js +6 -0
  224. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral-claim.js.map +1 -0
  225. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral.d.ts +1 -0
  226. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral.js +6 -0
  227. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-referral.js.map +1 -0
  228. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscribe.d.ts +2 -0
  229. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscribe.js +14 -0
  230. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscribe.js.map +1 -0
  231. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscription.d.ts +1 -0
  232. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscription.js +6 -0
  233. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-subscription.js.map +1 -0
  234. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-transactions.d.ts +2 -0
  235. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-transactions.js +12 -0
  236. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-transactions.js.map +1 -0
  237. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-usage.d.ts +2 -0
  238. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-usage.js +9 -0
  239. package/src/runtime/vendor/flywheel-cli-dist/commands/credits-usage.js.map +1 -0
  240. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.d.ts +16 -0
  241. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.js +12 -0
  242. package/src/runtime/vendor/flywheel-cli-dist/commands/enums.js.map +1 -0
  243. package/src/runtime/vendor/flywheel-cli-dist/commands/env.d.ts +12 -0
  244. package/src/runtime/vendor/flywheel-cli-dist/commands/env.js +65 -0
  245. package/src/runtime/vendor/flywheel-cli-dist/commands/env.js.map +1 -0
  246. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-launch.d.ts +2 -0
  247. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-launch.js +11 -0
  248. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-launch.js.map +1 -0
  249. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-list.d.ts +1 -0
  250. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-list.js +6 -0
  251. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-list.js.map +1 -0
  252. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-terminate.d.ts +2 -0
  253. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-terminate.js +8 -0
  254. package/src/runtime/vendor/flywheel-cli-dist/commands/executions-terminate.js.map +1 -0
  255. package/src/runtime/vendor/flywheel-cli-dist/commands/export-history.d.ts +2 -0
  256. package/src/runtime/vendor/flywheel-cli-dist/commands/export-history.js +82 -0
  257. package/src/runtime/vendor/flywheel-cli-dist/commands/export-history.js.map +1 -0
  258. package/src/runtime/vendor/flywheel-cli-dist/commands/export-subgraph.d.ts +2 -0
  259. package/src/runtime/vendor/flywheel-cli-dist/commands/export-subgraph.js +18 -0
  260. package/src/runtime/vendor/flywheel-cli-dist/commands/export-subgraph.js.map +1 -0
  261. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-pdf.d.ts +2 -0
  262. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-pdf.js +19 -0
  263. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-pdf.js.map +1 -0
  264. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-render-pdf.d.ts +2 -0
  265. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-render-pdf.js +65 -0
  266. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-render-pdf.js.map +1 -0
  267. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-stream.d.ts +2 -0
  268. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-stream.js +174 -0
  269. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary-stream.js.map +1 -0
  270. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary.d.ts +2 -0
  271. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary.js +9 -0
  272. package/src/runtime/vendor/flywheel-cli-dist/commands/export-summary.js.map +1 -0
  273. package/src/runtime/vendor/flywheel-cli-dist/commands/files-list.d.ts +2 -0
  274. package/src/runtime/vendor/flywheel-cli-dist/commands/files-list.js +12 -0
  275. package/src/runtime/vendor/flywheel-cli-dist/commands/files-list.js.map +1 -0
  276. package/src/runtime/vendor/flywheel-cli-dist/commands/github-disconnect.d.ts +1 -0
  277. package/src/runtime/vendor/flywheel-cli-dist/commands/github-disconnect.js +6 -0
  278. package/src/runtime/vendor/flywheel-cli-dist/commands/github-disconnect.js.map +1 -0
  279. package/src/runtime/vendor/flywheel-cli-dist/commands/github-link.d.ts +2 -0
  280. package/src/runtime/vendor/flywheel-cli-dist/commands/github-link.js +17 -0
  281. package/src/runtime/vendor/flywheel-cli-dist/commands/github-link.js.map +1 -0
  282. package/src/runtime/vendor/flywheel-cli-dist/commands/github-refresh-repos.d.ts +1 -0
  283. package/src/runtime/vendor/flywheel-cli-dist/commands/github-refresh-repos.js +6 -0
  284. package/src/runtime/vendor/flywheel-cli-dist/commands/github-refresh-repos.js.map +1 -0
  285. package/src/runtime/vendor/flywheel-cli-dist/commands/github-status.d.ts +1 -0
  286. package/src/runtime/vendor/flywheel-cli-dist/commands/github-status.js +6 -0
  287. package/src/runtime/vendor/flywheel-cli-dist/commands/github-status.js.map +1 -0
  288. package/src/runtime/vendor/flywheel-cli-dist/commands/graph-get.d.ts +2 -0
  289. package/src/runtime/vendor/flywheel-cli-dist/commands/graph-get.js +15 -0
  290. package/src/runtime/vendor/flywheel-cli-dist/commands/graph-get.js.map +1 -0
  291. package/src/runtime/vendor/flywheel-cli-dist/commands/handler-factory.d.ts +22 -0
  292. package/src/runtime/vendor/flywheel-cli-dist/commands/handler-factory.js +51 -0
  293. package/src/runtime/vendor/flywheel-cli-dist/commands/handler-factory.js.map +1 -0
  294. package/src/runtime/vendor/flywheel-cli-dist/commands/help.d.ts +23 -0
  295. package/src/runtime/vendor/flywheel-cli-dist/commands/help.js +258 -0
  296. package/src/runtime/vendor/flywheel-cli-dist/commands/help.js.map +1 -0
  297. package/src/runtime/vendor/flywheel-cli-dist/commands/import-subgraph.d.ts +2 -0
  298. package/src/runtime/vendor/flywheel-cli-dist/commands/import-subgraph.js +6 -0
  299. package/src/runtime/vendor/flywheel-cli-dist/commands/import-subgraph.js.map +1 -0
  300. package/src/runtime/vendor/flywheel-cli-dist/commands/index.d.ts +20 -0
  301. package/src/runtime/vendor/flywheel-cli-dist/commands/index.js +238 -0
  302. package/src/runtime/vendor/flywheel-cli-dist/commands/index.js.map +1 -0
  303. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-remove.d.ts +1 -0
  304. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-remove.js +6 -0
  305. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-remove.js.map +1 -0
  306. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-set.d.ts +2 -0
  307. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-set.js +6 -0
  308. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-huggingface-set.js.map +1 -0
  309. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-status.d.ts +1 -0
  310. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-status.js +6 -0
  311. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-status.js.map +1 -0
  312. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-remove.d.ts +1 -0
  313. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-remove.js +6 -0
  314. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-remove.js.map +1 -0
  315. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-set.d.ts +2 -0
  316. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-set.js +6 -0
  317. package/src/runtime/vendor/flywheel-cli-dist/commands/integrations-wandb-set.js.map +1 -0
  318. package/src/runtime/vendor/flywheel-cli-dist/commands/machines-list.d.ts +1 -0
  319. package/src/runtime/vendor/flywheel-cli-dist/commands/machines-list.js +6 -0
  320. package/src/runtime/vendor/flywheel-cli-dist/commands/machines-list.js.map +1 -0
  321. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-add-parent.d.ts +2 -0
  322. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-add-parent.js +10 -0
  323. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-add-parent.js.map +1 -0
  324. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.d.ts +2 -0
  325. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.js +7 -0
  326. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-audit-list.js.map +1 -0
  327. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-branch.d.ts +2 -0
  328. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-branch.js +10 -0
  329. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-branch.js.map +1 -0
  330. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit-new.d.ts +2 -0
  331. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit-new.js +6 -0
  332. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit-new.js.map +1 -0
  333. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit.d.ts +2 -0
  334. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit.js +7 -0
  335. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-commit.js.map +1 -0
  336. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-create.d.ts +2 -0
  337. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-create.js +6 -0
  338. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-create.js.map +1 -0
  339. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete-bulk.d.ts +2 -0
  340. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete-bulk.js +14 -0
  341. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete-bulk.js.map +1 -0
  342. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete.d.ts +2 -0
  343. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete.js +9 -0
  344. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-delete.js.map +1 -0
  345. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-files.d.ts +1 -0
  346. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-files.js +6 -0
  347. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-files.js.map +1 -0
  348. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-get.d.ts +2 -0
  349. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-get.js +8 -0
  350. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-get.js.map +1 -0
  351. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-list.d.ts +2 -0
  352. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-list.js +7 -0
  353. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-list.js.map +1 -0
  354. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-merge.d.ts +2 -0
  355. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-merge.js +33 -0
  356. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-merge.js.map +1 -0
  357. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-remove-parent.d.ts +2 -0
  358. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-remove-parent.js +8 -0
  359. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-remove-parent.js.map +1 -0
  360. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-ancestry.d.ts +2 -0
  361. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-ancestry.js +10 -0
  362. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-ancestry.js.map +1 -0
  363. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-summary.d.ts +2 -0
  364. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-summary.js +10 -0
  365. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-summary.js.map +1 -0
  366. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-tree.d.ts +2 -0
  367. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-tree.js +8 -0
  368. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-render-tree.js.map +1 -0
  369. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-resolve-slug.d.ts +2 -0
  370. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-resolve-slug.js +13 -0
  371. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-resolve-slug.js.map +1 -0
  372. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-get.d.ts +1 -0
  373. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-get.js +6 -0
  374. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-get.js.map +1 -0
  375. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set-bulk.d.ts +2 -0
  376. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set-bulk.js +20 -0
  377. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set-bulk.js.map +1 -0
  378. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set.d.ts +2 -0
  379. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set.js +10 -0
  380. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-set.js.map +1 -0
  381. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-summaries.d.ts +2 -0
  382. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-summaries.js +11 -0
  383. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-sharing-summaries.js.map +1 -0
  384. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-hypothesis.d.ts +2 -0
  385. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-hypothesis.js +7 -0
  386. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-hypothesis.js.map +1 -0
  387. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-insights.d.ts +2 -0
  388. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-insights.js +7 -0
  389. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-backfill-insights.js.map +1 -0
  390. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-acquire.d.ts +2 -0
  391. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-acquire.js +13 -0
  392. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-acquire.js.map +1 -0
  393. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-heartbeat.d.ts +2 -0
  394. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-heartbeat.js +7 -0
  395. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-heartbeat.js.map +1 -0
  396. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-release.d.ts +2 -0
  397. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-release.js +7 -0
  398. package/src/runtime/vendor/flywheel-cli-dist/commands/nodes-stage-lease-release.js.map +1 -0
  399. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-list.d.ts +2 -0
  400. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-list.js +6 -0
  401. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-list.js.map +1 -0
  402. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-set.d.ts +2 -0
  403. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-set.js +56 -0
  404. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-set.js.map +1 -0
  405. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-show.d.ts +2 -0
  406. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-show.js +12 -0
  407. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-show.js.map +1 -0
  408. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-unset.d.ts +2 -0
  409. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-unset.js +12 -0
  410. package/src/runtime/vendor/flywheel-cli-dist/commands/profile-unset.js.map +1 -0
  411. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/account.d.ts +2 -0
  412. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/account.js +124 -0
  413. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/account.js.map +1 -0
  414. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/api-keys.d.ts +2 -0
  415. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/api-keys.js +103 -0
  416. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/api-keys.js.map +1 -0
  417. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/approval.d.ts +2 -0
  418. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/approval.js +101 -0
  419. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/approval.js.map +1 -0
  420. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/artifacts.d.ts +2 -0
  421. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/artifacts.js +104 -0
  422. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/artifacts.js.map +1 -0
  423. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/auth.d.ts +2 -0
  424. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/auth.js +37 -0
  425. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/auth.js.map +1 -0
  426. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/budgets.d.ts +2 -0
  427. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/budgets.js +72 -0
  428. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/budgets.js.map +1 -0
  429. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.d.ts +2 -0
  430. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js +128 -0
  431. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js.map +1 -0
  432. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/credits.d.ts +2 -0
  433. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/credits.js +134 -0
  434. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/credits.js.map +1 -0
  435. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/env.d.ts +2 -0
  436. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/env.js +39 -0
  437. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/env.js.map +1 -0
  438. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/executions.d.ts +2 -0
  439. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/executions.js +55 -0
  440. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/executions.js.map +1 -0
  441. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/export.d.ts +2 -0
  442. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/export.js +88 -0
  443. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/export.js.map +1 -0
  444. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/github.d.ts +2 -0
  445. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/github.js +60 -0
  446. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/github.js.map +1 -0
  447. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/graph.d.ts +2 -0
  448. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/graph.js +22 -0
  449. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/graph.js.map +1 -0
  450. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/integrations.d.ts +2 -0
  451. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/integrations.js +69 -0
  452. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/integrations.js.map +1 -0
  453. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/lifecycle.d.ts +2 -0
  454. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/lifecycle.js +284 -0
  455. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/lifecycle.js.map +1 -0
  456. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/profile.d.ts +2 -0
  457. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/profile.js +82 -0
  458. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/profile.js.map +1 -0
  459. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.d.ts +2 -0
  460. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js +108 -0
  461. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js.map +1 -0
  462. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/sharing.d.ts +2 -0
  463. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/sharing.js +69 -0
  464. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/sharing.js.map +1 -0
  465. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/tagging.d.ts +2 -0
  466. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/tagging.js +98 -0
  467. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/tagging.js.map +1 -0
  468. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/updates.d.ts +2 -0
  469. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/updates.js +70 -0
  470. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/updates.js.map +1 -0
  471. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.d.ts +25 -0
  472. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js +441 -0
  473. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js.map +1 -0
  474. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-assign.d.ts +2 -0
  475. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-assign.js +25 -0
  476. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-assign.js.map +1 -0
  477. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-create.d.ts +2 -0
  478. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-create.js +25 -0
  479. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-create.js.map +1 -0
  480. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-delete.d.ts +2 -0
  481. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-delete.js +11 -0
  482. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-delete.js.map +1 -0
  483. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-update.d.ts +2 -0
  484. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-update.js +28 -0
  485. package/src/runtime/vendor/flywheel-cli-dist/commands/tags-update.js.map +1 -0
  486. package/src/runtime/vendor/flywheel-cli-dist/commands/types.d.ts +30 -0
  487. package/src/runtime/vendor/flywheel-cli-dist/commands/types.js +6 -0
  488. package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -0
  489. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide-all-active.d.ts +1 -0
  490. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide-all-active.js +6 -0
  491. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide-all-active.js.map +1 -0
  492. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide.d.ts +2 -0
  493. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide.js +10 -0
  494. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-hide.js.map +1 -0
  495. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-list.d.ts +2 -0
  496. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-list.js +12 -0
  497. package/src/runtime/vendor/flywheel-cli-dist/commands/updates-list.js.map +1 -0
  498. package/src/runtime/vendor/flywheel-cli-dist/commands/utils.d.ts +10 -0
  499. package/src/runtime/vendor/flywheel-cli-dist/commands/utils.js +171 -0
  500. package/src/runtime/vendor/flywheel-cli-dist/commands/utils.js.map +1 -0
  501. package/src/runtime/vendor/flywheel-cli-dist/errors.d.ts +55 -0
  502. package/src/runtime/vendor/flywheel-cli-dist/errors.js +51 -0
  503. package/src/runtime/vendor/flywheel-cli-dist/errors.js.map +1 -0
  504. package/src/runtime/vendor/flywheel-cli-dist/exit-codes.d.ts +8 -0
  505. package/src/runtime/vendor/flywheel-cli-dist/exit-codes.js +8 -0
  506. package/src/runtime/vendor/flywheel-cli-dist/exit-codes.js.map +1 -0
  507. package/src/runtime/vendor/flywheel-cli-dist/grammar/globals.d.ts +26 -0
  508. package/src/runtime/vendor/flywheel-cli-dist/grammar/globals.js +117 -0
  509. package/src/runtime/vendor/flywheel-cli-dist/grammar/globals.js.map +1 -0
  510. package/src/runtime/vendor/flywheel-cli-dist/grammar/parse.d.ts +17 -0
  511. package/src/runtime/vendor/flywheel-cli-dist/grammar/parse.js +102 -0
  512. package/src/runtime/vendor/flywheel-cli-dist/grammar/parse.js.map +1 -0
  513. package/src/runtime/vendor/flywheel-cli-dist/http/client.d.ts +75 -0
  514. package/src/runtime/vendor/flywheel-cli-dist/http/client.js +369 -0
  515. package/src/runtime/vendor/flywheel-cli-dist/http/client.js.map +1 -0
  516. package/src/runtime/vendor/flywheel-cli-dist/http/debug.d.ts +2 -0
  517. package/src/runtime/vendor/flywheel-cli-dist/http/debug.js +68 -0
  518. package/src/runtime/vendor/flywheel-cli-dist/http/debug.js.map +1 -0
  519. package/src/runtime/vendor/flywheel-cli-dist/http/poll.d.ts +18 -0
  520. package/src/runtime/vendor/flywheel-cli-dist/http/poll.js +57 -0
  521. package/src/runtime/vendor/flywheel-cli-dist/http/poll.js.map +1 -0
  522. package/src/runtime/vendor/flywheel-cli-dist/http/retry.d.ts +30 -0
  523. package/src/runtime/vendor/flywheel-cli-dist/http/retry.js +127 -0
  524. package/src/runtime/vendor/flywheel-cli-dist/http/retry.js.map +1 -0
  525. package/src/runtime/vendor/flywheel-cli-dist/main.d.ts +31 -0
  526. package/src/runtime/vendor/flywheel-cli-dist/main.js +763 -0
  527. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -0
  528. package/src/runtime/vendor/flywheel-cli-dist/output/format.d.ts +9 -0
  529. package/src/runtime/vendor/flywheel-cli-dist/output/format.js +129 -0
  530. package/src/runtime/vendor/flywheel-cli-dist/output/format.js.map +1 -0
  531. package/src/runtime/vendor/flywheel-cli-dist/runtime-entry.d.ts +1 -0
  532. package/src/runtime/vendor/flywheel-cli-dist/runtime-entry.js +2 -0
  533. package/src/runtime/vendor/flywheel-cli-dist/runtime-entry.js.map +1 -0
  534. package/src/runtime/vendor/flywheel-cli-dist/version.d.ts +3 -0
  535. package/src/runtime/vendor/flywheel-cli-dist/version.js +31 -0
  536. package/src/runtime/vendor/flywheel-cli-dist/version.js.map +1 -0
  537. package/src/runtime/vendor/manifest.json +500 -0
  538. package/src/setup/command.mjs +24 -0
  539. package/src/setup/io/patchers/json.mjs +33 -0
  540. package/src/setup/io/patchers/toml.mjs +15 -0
  541. package/src/setup/io/patchers/yaml.mjs +33 -0
  542. package/src/setup/mode.mjs +113 -0
  543. package/src/setup/modes/cli.mjs +317 -0
  544. package/src/setup/modes/mcp-command.mjs +850 -0
  545. package/src/setup/modes/mcp.mjs +176 -0
  546. package/src/setup/preflight.mjs +54 -0
  547. package/src/setup/shared/prior-mode-detect.mjs +412 -0
  548. package/src/setup/shared/skill.mjs +12 -0
  549. package/src/setup/shared/summary.mjs +80 -0
  550. package/src/setup-auth.mjs +293 -178
  551. package/src/unified-cli.mjs +161 -0
@@ -0,0 +1,244 @@
1
+ # Flywheel CLI Tool Map
2
+
3
+ Contract-aligned routing guide for the Flywheel runtime CLI.
4
+
5
+ The Flywheel CLI (`flywheel <command>`) is the runtime command surface shipped by `@paradigma-inc/flywheel`. It wraps the canonical Flywheel HTTP API and is the parallel surface to Flywheel MCP. Use this map when the host install is `--mode cli` (skills installed without an MCP server entry) or whenever scripted / direct-API workflows are preferable to MCP tool calls.
6
+
7
+ For the MCP routing, see `flywheel-mcp-tool-map.md`. Every entry in the "MCP-equivalent" families below maps one-to-one to an MCP tool there. The "CLI-only" family at the end contains commands with no MCP counterpart.
8
+
9
+ ## Core Contract Expectations
10
+
11
+ The CLI respects the same contracts the MCP surface enforces. See `flywheel-mcp-tool-map.md`'s "Core Contract Expectations" section for the canonical statements; the additions below are CLI-specific:
12
+
13
+ - Mutating commands enforce optimistic locking via flags like `--expected_revision`; pass the latest revision token read from `flywheel nodes:get` and handle `409 conflict` with explicit reconciliation.
14
+ - Stage-lease coordination mirrors the MCP stage-lease tools: `flywheel nodes:stage:lease:acquire` → `flywheel nodes:stage:lease:heartbeat` (during long edits) → `flywheel nodes:commit` → `flywheel nodes:stage:lease:release`.
15
+ - Inline JSON payloads can be supplied with `--payload_json=<json>` or read from a file with `--payload_json=@path/to/file.json`.
16
+ - Output format is controlled by `--format json|tsv|csv|table` (default: `json`). Pipe-friendly forms (`tsv`, `csv`) are useful for scripting.
17
+ - For artifact uploads, the CLI offers a one-shot `flywheel artifacts:upload` that internally runs prepare + raw PUT + finalize. The split commands (`flywheel artifacts:upload:prepare`, `flywheel artifacts:upload:finalize`) are available for streaming or chunked uploads.
18
+ - Run `flywheel help <command>` for canonical per-command flags, types, defaults, examples, and related commands.
19
+
20
+ ## MCP-Equivalent Tool Families
21
+
22
+ The families below mirror `flywheel-mcp-tool-map.md` and list the canonical CLI equivalent of each MCP tool.
23
+
24
+ ### Discovery and sharing
25
+
26
+ - `flywheel auth:status` (read; scopes: `read`; HTTP: `GET /auth/status`; MCP equivalent: `flywheel_auth_status`): Show authentication status for the current client context.
27
+ - `flywheel credits:balance` (read; scopes: `read`; HTTP: `GET /credits`; MCP equivalent: `flywheel_get_credits_balance`): View credit balance and totals.
28
+ - `flywheel updates:list` (read; scopes: `read`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_updates_list`): List in-app announcements relevant to your account.
29
+ - `flywheel updates:hide` (mutating; scopes: `write`; HTTP: `POST /updates/{announcement_id}/hide`; MCP equivalent: `flywheel_updates_hide`): Hide a specific announcement.
30
+ - `flywheel updates:hide-all-active` (mutating; scopes: `write`; HTTP: `POST /updates/hide-all-active`; MCP equivalent: `flywheel_updates_hide_all_active`): Hide all currently active announcements.
31
+ - `flywheel updates:unhide` (mutating; scopes: `write`; HTTP: `DELETE /updates/{announcement_id}/hide`; MCP equivalent: `flywheel_updates_unhide`): Restore a previously hidden announcement.
32
+ - `flywheel nodes:list` (read; scopes: `read`; HTTP: `GET /nodes`; MCP equivalent: `flywheel_list_nodes`): List nodes with optional filters (owners/writers/visibility) and projection control (`core`, `topology`, `full`).
33
+ - `flywheel nodes:resolve-slug` (read; scopes: `read`; HTTP: `GET /nodes/resolve-by-slug`; MCP equivalent: `flywheel_resolve_node_slug`): Resolve a slug to a node ID with explicit conflict handling (`unique`, `context_resolved`, `ambiguous`, `not_found`).
34
+ - `flywheel nodes:sharing:get` (read; scopes: `read`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_get_node_sharing`): Get sharing (access policy) for a node.
35
+ - `flywheel nodes:sharing:set` (mutating; scopes: `write`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_set_sharing_for_node`): Replace sharing (access policy) for a node.
36
+ - `flywheel nodes:sharing:set-bulk` (mutating; scopes: `write`; HTTP: `POST /nodes/access-policy/bulk`; MCP equivalent: `flywheel_set_sharing_for_nodes`): Apply one sharing policy to multiple nodes.
37
+ - `flywheel nodes:get` (read; scopes: `read`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_get_node`): Fetch one node by identifier.
38
+ - `flywheel tags:create` (mutating; scopes: `write`; HTTP: `POST /nodes/{root_node_id}/tags`; MCP equivalent: `flywheel_create_node_tag`): Create a reusable tag on a graph root.
39
+ - `flywheel tags:update` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{root_node_id}/tags/{tag_id}`; MCP equivalent: `flywheel_update_node_tag`): Update a tag definition.
40
+ - `flywheel tags:delete` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{root_node_id}/tags/{tag_id}`; MCP equivalent: `flywheel_delete_node_tag`): Delete a tag definition from the graph.
41
+ - `flywheel tags:assign` (mutating; scopes: `write`; HTTP: `PUT /nodes/{node_id}/tags`; MCP equivalent: `flywheel_set_node_tag_assignments`): Assign or clear tags on a node (atomic replace; `--tag_ids` accepts a JSON array).
42
+ - `flywheel nodes:render:tree` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/tree`; MCP equivalent: `flywheel_get_node_tree`): Render a bounded tree projection for a node.
43
+ - `flywheel nodes:render:ancestry` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/ancestry`; MCP equivalent: `flywheel_get_node_ancestry`): Render ancestry (roots-ward lineage) for a node.
44
+ - `flywheel campaign:snapshot` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/campaign/snapshot`; MCP equivalent: `flywheel_get_campaign_snapshot`): Resolve campaign root snapshot for a node.
45
+ - `flywheel nodes:audit:list` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/audit`; MCP equivalent: `flywheel_list_audit`): List audit events for node-level actions.
46
+
47
+ ### Node stage and commit
48
+
49
+ - `flywheel nodes:commit-new` (mutating; scopes: `write`; HTTP: `POST /nodes/commit-new`; MCP equivalent: `flywheel_commit_new_node`): Create and commit a new node in one request.
50
+ - `flywheel nodes:stage:lease:acquire` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/stage/lease/acquire`; MCP equivalent: `flywheel_acquire_stage_lease`): Acquire an edit lease for an existing node.
51
+ - `flywheel nodes:stage:lease:heartbeat` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/stage/lease/heartbeat`; MCP equivalent: `flywheel_heartbeat_stage_lease`): Heartbeat an active node stage lease.
52
+ - `flywheel nodes:stage:lease:release` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/stage/lease/release`; MCP equivalent: `flywheel_release_stage_lease`): Release a node stage lease.
53
+ - `flywheel nodes:commit` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/commit`; MCP equivalent: `flywheel_commit_node`): Commit staged changes to an existing node under an active stage lease (`--stage_session_id`, `--base_committed_revision`, `--staged_payload` required).
54
+ - `flywheel nodes:branch` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/branch`; MCP equivalent: `flywheel_branch_node`): Create a child branch from a node (`--expected_revision` required).
55
+ - `flywheel nodes:merge` (mutating; scopes: `write`; HTTP: `POST /nodes/merge`; MCP equivalent: `flywheel_merge_nodes`): Merge multiple nodes into one resolved node.
56
+ - `flywheel nodes:add-parent` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/parents/add`; MCP equivalent: `flywheel_add_parent`): Add a parent-child edge.
57
+ - `flywheel nodes:remove-parent` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/parents/remove`; MCP equivalent: `flywheel_remove_parent`): Remove a parent-child edge.
58
+ - `flywheel nodes:delete` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{node_id}`; MCP equivalent: `flywheel_delete_node`): Delete a node by identifier. Modes: `cascade` (delete subtree), `detach_shared` (preserve descendants with surviving parents).
59
+ - `flywheel nodes:delete-bulk` (mutating; scopes: `write`; HTTP: `POST /nodes/bulk-delete`; MCP equivalent: `flywheel_bulk_delete_nodes`): Delete multiple node subtrees.
60
+
61
+ ### Artifacts
62
+
63
+ - `flywheel artifacts:upload:prepare` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/artifacts/uploads/prepare`; MCP equivalent: `flywheel_prepare_artifact_uploads`): Create upload batch with signed per-item upload tickets. Upload raw file bytes to the returned URLs (no JSON metadata wrappers).
64
+ - `flywheel artifacts:upload:finalize` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/artifacts/uploads/finalize`; MCP equivalent: `flywheel_finalize_artifact_uploads`): Finalize prepared artifact uploads and attach all staged artifacts in one revision bump.
65
+ - `flywheel artifacts:list` (read; scopes: `read`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_list_artifacts`): List artifacts for a node.
66
+ - `flywheel artifacts:get` (read; scopes: `read`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_get_artifact`): Fetch one artifact metadata record.
67
+ - `flywheel artifacts:delete` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{node_id}/artifacts/{artifact_id}`; MCP equivalent: `flywheel_delete_artifact`): Delete an artifact from a node (optimistic locking).
68
+ - `flywheel artifacts:note:set` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{node_id}/artifacts/{artifact_id}/note`; MCP equivalent: `flywheel_set_artifact_note`): Add, update, or clear an artifact note (optimistic locking).
69
+
70
+ ### Executions
71
+
72
+ - `flywheel executions:launch` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/executions`; MCP equivalent: `flywheel_launch_execution`): Start an execution for a node.
73
+ - `flywheel executions:list` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/executions`; MCP equivalent: `flywheel_list_executions`): List executions for a node.
74
+ - `flywheel executions:terminate` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/executions/{execution_id}/terminate`; MCP equivalent: `flywheel_terminate_execution`): Stop an execution for a node.
75
+
76
+ ### Compute and budgets
77
+
78
+ - `flywheel compute:options` (read; scopes: `compute`; HTTP: `GET /compute/catalog`; MCP equivalent: `flywheel_compute_list_options`): List allowed compute catalog options for a node. Pass the same `--compute_grant_id` you will use for acquire when using grant-backed compute.
79
+ - `flywheel compute:funding` (read; scopes: `compute`; HTTP: `GET /compute/funding`; MCP equivalent: `flywheel_compute_funding`): Read grant-scoped funding context (`grant_cents`, `remaining_cents`, backing budget fields) before compute acquire.
80
+ - `flywheel compute:status` (read; scopes: `compute`; HTTP: `GET /compute/status`; MCP equivalent: `flywheel_compute_status`): Return compute lease status. Lease rows include ownership flags so hosts can distinguish user-owned leases from sponsor-visible campaign leases.
81
+ - `flywheel compute:connection` (read; scopes: `compute`; HTTP: `GET /compute/connection`; MCP equivalent: `flywheel_compute_connection`): Get SSH connection material for a usable lease (token-scoped to `lease_control_token`; only owned leases are connectable).
82
+ - `flywheel approval-sessions:heartbeat` (read; scopes: `compute`; HTTP: `POST /approval-sessions/heartbeat`; MCP equivalents: `flywheel_approval_session_open`, `flywheel_approval_session_heartbeat`): Create or refresh a compute approval session for the current host context.
83
+ - `flywheel approval-sessions:list` (read; scopes: `compute`; HTTP: `GET /approval-sessions`; MCP equivalent: `flywheel_list_approval_sessions`): List approval sessions visible to the current user.
84
+ - `flywheel approval-sessions:expire` (mutating; scopes: `compute`; HTTP: `POST /approval-sessions/expire`; MCP equivalent: `flywheel_expire_approval_session`): Expire the current compute-grant approval session context without releasing active leases.
85
+ - `flywheel compute-grants:request-approval` (mutating; scopes: `compute`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_request_compute_grant_approval`): Request compute-grant approval; branch on response status (`already_approved`, `approval_required`, `insufficient_credits`).
86
+ - `flywheel compute-grants:list` (read; scopes: `compute`; HTTP: `GET /compute/grants`; MCP equivalent: `flywheel_list_compute_grants`): List active/exhausted compute grants available to the user. Restrict by `--approval_session_id` to inspect session-bound grants.
87
+ - `flywheel campaign-budgets:list` (read; scopes: `compute`; HTTP: `GET /nodes/{root_node_id}/campaign-budgets`; MCP equivalent: `flywheel_list_campaign_budgets`): List campaign compute budgets for a root. Organizer-only management view.
88
+ - `flywheel campaign-budgets:create` (mutating; scopes: `compute`; HTTP: `POST /nodes/{root_node_id}/campaign-budgets`; MCP equivalent: `flywheel_create_campaign_budget`): Create a campaign compute budget grant.
89
+ - `flywheel campaign-budgets:update` (mutating; scopes: `compute`; HTTP: `PATCH /nodes/{root_node_id}/campaign-budgets/{compute_budget_id}`; MCP equivalent: `flywheel_update_campaign_budget`): Update a campaign budget (partial; any `--key=value` becomes a field).
90
+ - `flywheel campaign-budgets:revoke` (mutating; scopes: `compute`; HTTP: `DELETE /nodes/{root_node_id}/campaign-budgets/{compute_budget_id}`; MCP equivalent: `flywheel_revoke_campaign_budget`): Revoke a campaign budget grant.
91
+ - `flywheel compute:acquire` (mutating; scopes: `compute`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_compute_acquire`): Acquire managed compute for a node. Set `--requested_sku` to the exact `offer_id` returned by `flywheel compute:options` (`options[].offer_id`), including provider prefixes (e.g., `nebius::...`); do not pass display names or partial IDs. Returns lease state only; poll `flywheel compute:status` for readiness.
92
+ - `flywheel compute:release` (mutating; scopes: `compute`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_compute_release`): Release one active compute lease (async; use `--wait` to block).
93
+ - `flywheel compute:release-all` (mutating; scopes: `compute`; HTTP: `tool-mediated`; MCP equivalent: `flywheel_compute_release_all`): Release all active leases in current `lease_control_token` scope; pass `--force` for explicit account-wide cleanup.
94
+
95
+ ### Contract, audit, and export
96
+
97
+ - (no CLI equivalent; MCP equivalent: `flywheel_get_contract`): MCP contract introspection is MCP-only. In `--mode cli` install, treat each command's `flywheel help <command>` output as the canonical per-command contract reference.
98
+ - (no CLI equivalent; MCP equivalent: `flywheel_get_contract_section`): Same as above.
99
+ - `flywheel export:subgraph` (read; scopes: `read`; HTTP: `POST /export`; MCP equivalent: `flywheel_export_subgraph`): Export a subgraph snapshot.
100
+ - `flywheel import:subgraph` (mutating; scopes: `write`; HTTP: `POST /import`; MCP equivalent: `flywheel_import_subgraph`): Import graph JSON into new node records. Pass `--normalize_cycles=true` to drop cycle/self-loop edges; default rejects cyclic payloads.
101
+ - `flywheel nodes:render:summary` (read; scopes: `read`; HTTP: `GET /nodes/{node_id}/summary`; MCP equivalent: `flywheel_summarize_node_tree`): Render a compact summary of a node subtree.
102
+ - `flywheel export:summary` (read; scopes: `read`; HTTP: `POST /export-summary`; MCP equivalent: `flywheel_export_summary`): Generate a markdown summary export.
103
+ - `flywheel export:summary:stream` (read; scopes: `read`; HTTP: `POST /export-summary-stream`; MCP equivalent: `flywheel_export_summary_stream`): Stream summary generation as NDJSON events.
104
+ - `flywheel export:summary:pdf` (read; scopes: `read`; HTTP: `POST /export-summary-pdf`; MCP equivalent: `flywheel_export_summary_pdf`): Render summary as PDF; requires `--out`.
105
+ - `flywheel export:summary:render-pdf` (read; scopes: `read`; HTTP: `POST /export-summary-render-pdf`; MCP equivalent: `flywheel_export_summary_render_pdf`): Render caller-provided markdown as PDF; requires `--out`.
106
+
107
+ ## CLI-Only Tool Families
108
+
109
+ These commands have no MCP counterpart. They cover auth/profile management, account administration, billing flows, integrations, and bulk file operations that the CLI exposes directly through the canonical HTTP API.
110
+
111
+ ### Auth and profiles
112
+
113
+ - `flywheel auth:login` (mutating; scopes: `write`): Bootstrap API key auth via RFC 8628 device flow (FLY-416: replaces legacy /setup-exchange redeem).
114
+ - `flywheel auth:keychain:set` (local): Store an API key in the OS keychain for a profile. Reads the key from stdin.
115
+ - `flywheel auth:keychain:clear` (local): Remove an API key from the OS keychain for a profile.
116
+ - `flywheel profile:list` (local): List configured CLI profiles.
117
+ - `flywheel profile:show` (local): Show a profile definition.
118
+ - `flywheel profile:set` (local): Create or update a CLI profile (never stores plaintext keys).
119
+ - `flywheel profile:unset` (local): Delete a CLI profile.
120
+
121
+ ### Node helpers (CLI-only)
122
+
123
+ - `flywheel nodes:create` (mutating; scopes: `write`): Create a minimal node (title only) and emit graph-change event.
124
+ - `flywheel nodes:files` (read; scopes: `read`): List files attached to a node.
125
+ - `flywheel nodes:sharing:summaries` (read; scopes: `read`): Read access summaries for multiple nodes in one batch.
126
+ - `flywheel nodes:stage:backfill:hypothesis` (mutating; scopes: `write`): Derive hypothesis from staged node content.
127
+ - `flywheel nodes:stage:backfill:insights` (mutating; scopes: `write`): Extract structured insights from staged node content.
128
+
129
+ ### Artifact helpers (CLI-only)
130
+
131
+ - `flywheel artifacts:upload` (mutating; scopes: `write`): One-shot upload — runs prepare + raw PUT + finalize from a single invocation. Use this in scripts; the prepare/finalize split is for streaming or chunked uploads.
132
+
133
+ ### Compute policy and budgets (CLI-only)
134
+
135
+ - `flywheel compute:policy:get` (read; scopes: `compute`): Read compute budget policy for a node.
136
+ - `flywheel compute:policy:set` (mutating; scopes: `compute`): Update compute budget policy for a node (partial).
137
+ - `flywheel compute:budgets` (read; scopes: `compute`): List budget grants visible for a node context.
138
+ - `flywheel machines:list` (read; scopes: `compute`): List your managed compute leases.
139
+
140
+ ### Files, blobs, graph, history (CLI-only)
141
+
142
+ - `flywheel blobs:get` (read; scopes: `read`): Download a raw blob by storage key.
143
+ - `flywheel files:list` (read; scopes: `read`): List all your files across nodes.
144
+ - `flywheel graph:get` (read; scopes: `read`): Read the graph projection for navigation and topology workflows.
145
+ - `flywheel export:history` (read; scopes: `read`): Export node history as JSONL.
146
+
147
+ ### Account
148
+
149
+ - `flywheel account:get` (read; scopes: `read`): View account snapshot and linked identities.
150
+ - `flywheel account:merge:proof` (mutating; scopes: `write`): Mint a merge proof token from a source session token.
151
+ - `flywheel account:merge:preview` (read; scopes: `read`): Preview what an account merge will do.
152
+ - `flywheel account:merge` (mutating; scopes: `write`): Execute an account merge. Requires `--confirm=MERGE`.
153
+ - `flywheel account:detach` (mutating; scopes: `write`): Detach a linked alias account. Requires `--confirm=DETACH`.
154
+ - `flywheel account:emails:add` (mutating; scopes: `write`): Add an email alias to your account.
155
+ - `flywheel account:emails:remove` (mutating; scopes: `write`): Remove an email alias from your account.
156
+ - `flywheel account:emails:set-primary` (mutating; scopes: `write`): Set your primary email address.
157
+
158
+ ### Credits and billing
159
+
160
+ - `flywheel credits:transactions` (read; scopes: `read`): View paginated credit transactions.
161
+ - `flywheel credits:usage` (read; scopes: `read`): Feature-based usage breakdown over a window.
162
+ - `flywheel credits:purchase` (mutating; scopes: `write`): Create a Stripe checkout session for a one-time purchase.
163
+ - `flywheel credits:subscribe` (mutating; scopes: `write`): Create a Stripe checkout session for a subscription.
164
+ - `flywheel credits:billing-portal` (mutating; scopes: `write`): Open the Stripe billing portal for the current user.
165
+ - `flywheel credits:subscription` (read; scopes: `read`): View your subscription status.
166
+ - `flywheel credits:referral` (read; scopes: `read`): View your referral code and status.
167
+ - `flywheel credits:referral:claim` (mutating; scopes: `write`): Claim referral rewards using a code.
168
+
169
+ ### Integrations
170
+
171
+ - `flywheel github:status` (read; scopes: `read`): Check GitHub connection status.
172
+ - `flywheel github:link` (mutating; scopes: `write`): Link a GitHub installation ID to your account.
173
+ - `flywheel github:refresh-repos` (mutating; scopes: `write`): Refresh the list of accessible repositories.
174
+ - `flywheel github:disconnect` (mutating; scopes: `write`): Disconnect GitHub from your account.
175
+ - `flywheel integrations:status` (read; scopes: `read`): Check integration connection status (W&B, Hugging Face).
176
+ - `flywheel integrations:wandb:set` (mutating; scopes: `write`): Store a Weights & Biases API key.
177
+ - `flywheel integrations:wandb:remove` (mutating; scopes: `write`): Remove your W&B credential.
178
+ - `flywheel integrations:huggingface:set` (mutating; scopes: `write`): Store a Hugging Face access token.
179
+ - `flywheel integrations:huggingface:remove` (mutating; scopes: `write`): Remove your Hugging Face credential.
180
+
181
+ ### API keys
182
+
183
+ - `flywheel api-keys:list` (read; scopes: `read`): List your API keys.
184
+ - `flywheel api-keys:create` (mutating; scopes: `write`): Create a new API key and return the raw material once.
185
+ - `flywheel api-keys:delete` (mutating; scopes: `write`): Delete an API key (refuses to delete the active one unless `--allow-self`).
186
+ - `flywheel api-keys:rotate` (mutating; scopes: `write`): Rotate an API key (refuses to rotate the active one unless `--allow-self`).
187
+ <!-- FLY-416: removed — device flow replaces legacy /setup-exchange. -->
188
+ <!-- - `flywheel api-keys:setup-exchange:create` (mutating; scopes: `write`): Start browser-assisted setup exchange. -->
189
+ <!-- - `flywheel api-keys:setup-exchange:redeem` (mutating; scopes: `write`): Redeem a setup exchange token into a raw API key. -->
190
+
191
+ ## Practical Command Sequences
192
+
193
+ ### List Owned Nodes
194
+
195
+ 1. `flywheel nodes:list --owners=me --projection=core`.
196
+
197
+ ### Safe Node Update
198
+
199
+ 1. `flywheel nodes:get --node_id=<id>`: Read latest node state and capture `revision`.
200
+ 2. `flywheel nodes:stage:lease:acquire --node_id=<id> --expected_revision=<rev>`: Acquire a session-scoped stage lease.
201
+ 3. `flywheel nodes:commit --node_id=<id> --stage_session_id=<sid> --base_committed_revision=<rev> --staged_payload=@payload.json`: Commit once terminal and contract-complete.
202
+
203
+ ### Empirical Workflow
204
+
205
+ 1. `flywheel nodes:commit-new --payload_json=@new-node.json`: Commit a local staged new node to canonical storage as the first persistence boundary.
206
+ 2. `flywheel compute-grants:request-approval --acquire_node_id=<id> --budget_source=user`: Request budget approval. Branch on response `status` (`already_approved` | `approval_required` | `insufficient_credits`).
207
+ 3. If `approval_required`: present `approval_url` to the user, then `flywheel compute-grants:list --status=active --approval_session_id=<sid>` to fetch the active grant.
208
+ 4. `flywheel compute:options --node_id=<id> --compute_grant_id=<gid>`: List allowed offers; pick the exact `offer_id`.
209
+ 5. `flywheel compute:acquire --node_id=<id> --compute_grant_id=<gid> --requested_sku=<offer_id> --approval_session_id=<sid>`: Acquire lease.
210
+ 6. `flywheel compute:status --lease_control_token=<tok>`: Poll until the lease is ready.
211
+ 7. `flywheel executions:launch --node_id=<id>`: Launch execution.
212
+ 8. `flywheel executions:list --node_id=<id>`: Poll until execution reaches terminal status.
213
+ 9. `flywheel artifacts:upload --node_id=<id> --file=results.json`: One-shot upload (or use the prepare/finalize split for streaming).
214
+ 10. `flywheel nodes:commit --node_id=<id> ...`: Commit terminal empirical node.
215
+
216
+ ## Runtime Guidance
217
+
218
+ - `flywheel nodes:resolve-slug` resolves human-facing slug references. If response status is `ambiguous`, ask the user to confirm the intended `node_id` before mutating anything.
219
+ - `flywheel nodes:get` reads the current node state before writes; capture `revision` for optimistic-locking writes.
220
+ - `flywheel nodes:stage:lease:acquire`, `flywheel nodes:stage:lease:heartbeat`, `flywheel nodes:stage:lease:release` coordinate session-scoped local staged edits for an existing node before commit.
221
+ - `flywheel campaign:snapshot` reads the current derived campaign state for a node's root campaign instead of inferring standings from freeform text.
222
+ - `flywheel nodes:sharing:get` verifies sharing state after sharing writes before reporting private/shared/public state.
223
+ - `flywheel tags:assign` accepts `--tag_ids` as a JSON array of strings; omitting `--tag_ids` clears all assignments.
224
+ - `flywheel nodes:list` accepts canonical filters as repeated flags or comma-separated lists for `--owners`, `--writers`, `--visibility`.
225
+ - `flywheel compute:status` checks first when work may need managed compute (GPU), using the active `--lease_control_token` from prior acquire (or pass it explicitly).
226
+ - `flywheel compute-grants:list` lists active compute grants and selects one `--compute_grant_id` for acquisition.
227
+ - `flywheel compute-grants:request-approval` requests/confirms budget before acquire and chooses a budget source (`user` or `root`); branch on status (`already_approved`, `approval_required`, `insufficient_credits`).
228
+ - `flywheel compute:connection` reads SSH connection material for the active user lease once status indicates the lease is usable, scoped by `--lease_control_token`.
229
+ - `flywheel compute:options` is used when a lease is needed and no suitable active lease exists; copy the exact provider-qualified `offer_id` (`provider::offer_id`) and `region` from `options[].offer_id` verbatim. Catalog-only read; excludes grant/budget money fields.
230
+ - `flywheel compute:funding` reads grant-scoped funding context (`grant_cents`, `remaining_cents`, backing budget fields) for the selected `--compute_grant_id` before acquire.
231
+ - `flywheel compute:acquire` provisions compute once requirements are clear. Requires a valid `--compute_grant_id`; set `--requested_sku` to the exact selected `options[].offer_id`; returns lease/provisioning state only (not SSH key material). Capture `compute.lease_control_token` from the response for follow-up lease control commands.
232
+ - `flywheel compute:release` releases compute when no longer needed, scoped by `--lease_control_token`. Use `--wait` to block until release completes.
233
+ - `flywheel executions:launch`, `flywheel executions:list`, `flywheel executions:terminate` manage execution status transitions.
234
+ - `flywheel artifacts:upload:prepare` prepares one or more signed raw-file upload requests for concrete deliverables/evidence produced by the work. `flywheel artifacts:upload` is the one-shot convenience wrapper for typical scripts.
235
+ - `flywheel artifacts:upload:finalize` finalizes a staged artifact batch and appends all uploaded artifacts in one revision bump.
236
+ - `flywheel artifacts:delete` removes an accidental/obsolete node artifact.
237
+ - `flywheel artifacts:list`, `flywheel artifacts:get` inspect node artifact metadata (`title` is the display label) and consume `storage_url` for raw artifact bytes only.
238
+ - `flywheel nodes:commit-new`, `flywheel nodes:commit` publish the caller's full staged payload for an existing node once terminal and contract-complete; commit on an existing node requires an active stage lease and explicit `--base_committed_revision`.
239
+
240
+ ## See Also
241
+
242
+ - `flywheel-mcp-tool-map.md` — the matching MCP routing reference.
243
+ - `flywheel help <command>` — canonical per-command flags, types, defaults, examples, and related commands.
244
+ - `flywheel --format json|tsv|csv|table` — output format selector for scripting workflows.
@@ -73,6 +73,30 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
73
73
  - `flywheel_delete_artifact` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{node_id}/artifacts/{artifact_id}`; core surface): Delete one artifact by id with optimistic locking.
74
74
  - `flywheel_set_artifact_note` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{node_id}/artifacts/{artifact_id}/note`; core surface): Set or clear one artifact note with optimistic locking.
75
75
 
76
+ ### Hooks
77
+
78
+ - `flywheel_create_hook` (mutating; scopes: `write`; HTTP: `POST /nodes/{owner_node_id}/hooks`; core surface): Create a durable hook definition on the owner node.
79
+ - `flywheel_update_hook` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{owner_node_id}/hooks/{hook_id}`; core surface): Update an existing hook definition.
80
+ - `flywheel_set_hook_enabled` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{owner_node_id}/hooks/{hook_id}/enabled`; core surface): Enable/disable a hook without deleting it.
81
+ - `flywheel_delete_hook` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{owner_node_id}/hooks/{hook_id}`; core surface): Delete a hook definition.
82
+ - `flywheel_list_hooks` (read; scopes: `read`; HTTP: `GET /nodes/{owner_node_id}/hooks`; core surface): List hooks configured on the owner node.
83
+ - `flywheel_create_hook_secret` (mutating; scopes: `write`; HTTP: `POST /nodes/{owner_node_id}/hook-secrets`; core surface): Create a hook secret (plaintext is write-only).
84
+ - `flywheel_update_hook_secret` (mutating; scopes: `write`; HTTP: `PATCH /nodes/{owner_node_id}/hook-secrets/{secret_id}`; core surface): Update hook secret metadata/value.
85
+ - `flywheel_delete_hook_secret` (mutating; scopes: `write`; HTTP: `DELETE /nodes/{owner_node_id}/hook-secrets/{secret_id}`; core surface): Delete a hook secret.
86
+ - `flywheel_list_hook_secrets` (read; scopes: `write`; HTTP: `GET /nodes/{owner_node_id}/hook-secrets`; core surface): List hook secret metadata (no plaintext values).
87
+ - `flywheel_list_hook_runs` (read; scopes: `read`; HTTP: `GET /nodes/{owner_node_id}/hook-runs`; core surface): List async hook execution runs for observability.
88
+
89
+ Hook workflow-if contract (first version):
90
+
91
+ - Author matching filters with `workflow_yaml.if` on `flywheel_create_hook` / `flywheel_update_hook`.
92
+ - Read/list surfaces return canonical `workflow` plus normalized `workflow_yaml`.
93
+ - Workflow-if operators: `all`, `any`, `not`, `event`, `any_artifact`; predicate operators: `eq`, `in`, `exists`.
94
+ - Canonical none-artifact expression: `not: { any_artifact: ... }`.
95
+ - Run cardinality is fixed at one run per `(hook_id, event_id)` (no artifact fanout).
96
+ - Submission-only matching is typically `any_artifact.field=metadata.role` with `eq: submission`.
97
+ - Workflow step types include `flywheel/http_request@v1`, `flywheel/http_poll@v1`, `flywheel/json_extract@v1`, `flywheel/load_artifact@v1`, and `flywheel/upsert_artifact@v1`.
98
+ - `flywheel/upsert_artifact@v1` selectors are authored under `with.match`; `match.metadata` is subset matching and ambiguous selectors fail terminally.
99
+
76
100
  ### Executions
77
101
 
78
102
  - `flywheel_launch_execution` (mutating; scopes: `write`; HTTP: `POST /nodes/{node_id}/executions`; core surface): Launch node execution.
@@ -85,7 +109,8 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
85
109
  - `flywheel_compute_funding` (read; scopes: `compute`; HTTP: `GET /compute/funding`; core surface): Read grant-scoped funding context (`grant_cents`, `remaining_cents`, and backing budget fields) for a `compute_grant_id` before compute acquire.
86
110
  - `flywheel_compute_status` (read; scopes: `compute`; HTTP: `GET /compute/status`; core surface): Read managed compute lease status for the current user and current lease_control_token scope. Lease rows include ownership flags so hosts can distinguish user-owned leases from sponsor-visible campaign leases. When checking a grant-backed lease, reuse the same compute_grant_id passed to acquire.
87
111
  - `flywheel_compute_connection` (read; scopes: `compute`; HTTP: `GET /compute/connection`; core surface): Read SSH connection material for an active managed compute lease once flywheel_compute_status indicates the lease is usable. This tool is token-scoped to lease_control_token and only leases owned by the current user are connectable. Pass lease_id or node_id to disambiguate when needed.
88
- - `flywheel_approval_session_heartbeat` (read; scopes: `compute`; HTTP: `POST /approval-sessions/heartbeat`; core surface): Create or refresh a compute-grant approval session for the current MCP host session.
112
+ - `flywheel_approval_session_open` (read; scopes: `compute`; HTTP: `tool-mediated`; core surface): Create a new approval session with a server-minted session_id for compute-grant approval flows.
113
+ - `flywheel_approval_session_heartbeat` (read; scopes: `compute`; HTTP: `POST /approval-sessions/heartbeat`; core surface): Refresh an existing compute-grant approval session for the current MCP host session.
89
114
  - `flywheel_list_approval_sessions` (read; scopes: `compute`; HTTP: `GET /approval-sessions`; core surface): List approval sessions visible to the current user.
90
115
  - `flywheel_expire_approval_session` (mutating; scopes: `compute`; HTTP: `POST /approval-sessions/expire`; core surface): Expire the current compute-grant approval session context without releasing active leases.
91
116
  - `flywheel_request_compute_grant_approval` (mutating; scopes: `compute`; HTTP: `tool-mediated`; core surface): Request budget approval context before managed compute acquisition; branch on response status.
@@ -94,7 +119,7 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
94
119
  - `flywheel_create_campaign_budget` (mutating; scopes: `compute`; HTTP: `POST /nodes/{root_node_id}/campaign-budgets`; full-surface only): Create an organizer-funded campaign compute budget shared with participants.
95
120
  - `flywheel_update_campaign_budget` (mutating; scopes: `compute`; HTTP: `PATCH /nodes/{root_node_id}/campaign-budgets/{compute_budget_id}`; full-surface only): Update hard caps or metadata for an organizer-funded campaign compute budget.
96
121
  - `flywheel_revoke_campaign_budget` (mutating; scopes: `compute`; HTTP: `DELETE /nodes/{root_node_id}/campaign-budgets/{compute_budget_id}`; full-surface only): Revoke an organizer-funded campaign compute budget.
97
- - `flywheel_compute_acquire` (mutating; scopes: `compute`; HTTP: `tool-mediated`; core surface): Acquire managed compute for a node with explicit SKU + region and required compute_grant_id (returns accepted/completed lease state only; poll flywheel_compute_status for readiness, not SSH key material). This tool forwards approval_session_id.
122
+ - `flywheel_compute_acquire` (mutating; scopes: `compute`; HTTP: `tool-mediated`; core surface): Acquire managed compute for a node with explicit SKU + region and required compute_grant_id (returns accepted/completed lease state only; poll flywheel_compute_status for readiness, not SSH key material). This tool forwards approval_session_id. Set `requested_sku` to the exact `offer_id` returned by `flywheel_compute_list_options` (`options[].offer_id`), including provider prefixes (for example `nebius::...`); do not pass display names or partial IDs.
98
123
  - `flywheel_compute_release` (mutating; scopes: `compute`; HTTP: `tool-mediated`; core surface): Asynchronously release one managed compute lease by lease_id within the current lease_control_token scope.
99
124
  - `flywheel_compute_release_all` (mutating; scopes: `compute`; HTTP: `tool-mediated`; core surface): Asynchronously release active managed compute leases in the current lease_control_token scope; set force=true for explicit account-wide cleanup for the current user.
100
125
 
@@ -128,7 +153,7 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
128
153
  2. `flywheel_commit_node`: Commit staged empirical fields with `stage_session_id`, `base_committed_revision`, and a full `staged_payload` once the working state is ready to publish.
129
154
  3. `flywheel_request_compute_grant_approval`: If compute is needed, request budget approval context first. Branch on response status.
130
155
  4. Branch on `flywheel_request_compute_grant_approval.status`: Branch by response status (`already_approved`, `approval_required`, `insufficient_credits`).. if `already_approved` then `reuse_compute_grant_id`: Use returned `compute_grant_id` directly for flywheel_compute_acquire.. if `approval_required` then `present_approval_url_to_user`: Present `approval_url` to the user; the user opens it and confirms budget approval.; `flywheel_list_compute_grants`: After approval, list active grants for the current `approval_session_id` and use the returned `compute_grant_id` for acquire.. if `insufficient_credits` then `request_user_credit_top_up`: No `approval_url` is returned. Ask the user to add credits, then retry flywheel_request_compute_grant_approval.
131
- 5. `flywheel_compute_acquire`: Acquire lease with `compute_grant_id`; include `approval_session_id` from approval response.
156
+ 5. `flywheel_compute_acquire`: Acquire lease with `compute_grant_id`; include `approval_session_id` from approval response and set `requested_sku` to the exact selected `options[].offer_id`.
132
157
  6. `flywheel_compute_status`: Poll until the active lease is ready; follow `recommended_next_action`.
133
158
  7. `flywheel_launch_execution`: Launch execution once compute and inputs are ready.
134
159
  8. `flywheel_list_executions`: Poll until execution reaches terminal status.
@@ -137,6 +162,15 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
137
162
  11. `flywheel_finalize_artifact_uploads`: Finalize prepared uploads before commit, or set `no_artifacts_reason` when intentionally artifact-free.
138
163
  12. `flywheel_commit_node`: Commit terminal empirical node once contract requirements are satisfied.
139
164
 
165
+ ### Hook Automation Workflow
166
+
167
+ 1. `flywheel_create_hook_secret`: Create endpoint credentials if the action needs auth.
168
+ 2. `flywheel_create_hook`: Define trigger + scope + `workflow_yaml` (`if` + `jobs.main.steps`).
169
+ 3. `flywheel_set_hook_enabled`: Enable hook once configuration is complete.
170
+ 4. `flywheel_list_hooks`: Confirm the hook is enabled and scoped correctly.
171
+ 5. `flywheel_finalize_artifact_uploads`: Emit `artifact.finalized` on successful finalize writes.
172
+ 6. `flywheel_list_hook_runs`: Inspect run outcomes (`queued`, `running`, `succeeded`, `failed`).
173
+
140
174
  ## Runtime Guidance
141
175
 
142
176
  - `flywheel_resolve_node_slug`: resolve human-facing slug references. If response status is `ambiguous`, ask the user to confirm the intended node_id before mutating anything.
@@ -150,9 +184,9 @@ Flywheel is a graph-based system for tracking research work, decisions, and evid
150
184
  - `flywheel_list_compute_grants`: list active compute grants (funded by user/root budgets) and select one `compute_grant_id` for acquisition.
151
185
  - `flywheel_request_compute_grant_approval`: request/confirm budget before acquire and choose a budget source (`user` or `root`); branch on status (`already_approved`, `approval_required`, `insufficient_credits`).
152
186
  - `flywheel_compute_connection`: read SSH connection material for the active user lease once status indicates the lease is usable, scoped by lease_control_token.
153
- - `flywheel_compute_list_options`: use when a lease is needed and no suitable active lease exists, then select explicit provider-qualified `offer_id` (`provider::offer_id`) and `region`. This is a catalog-only read and excludes grant/budget money fields.
187
+ - `flywheel_compute_list_options`: use when a lease is needed and no suitable active lease exists, then select the exact provider-qualified `offer_id` from `options[].offer_id` (`provider::offer_id`) and `region`. Copy `offer_id` verbatim; do not strip prefixes or substitute display names. This is a catalog-only read and excludes grant/budget money fields.
154
188
  - `flywheel_compute_funding`: read grant-scoped funding context (`grant_cents`, `remaining_cents`, backing budget fields) for the selected `compute_grant_id` before acquire.
155
- - `flywheel_compute_acquire`: provision compute once requirements are clear. This requires a valid `compute_grant_id` and returns lease/provisioning state only (not SSH key material). Capture `compute.lease_control_token` from the response for follow-up lease control tools.
189
+ - `flywheel_compute_acquire`: provision compute once requirements are clear. This requires a valid `compute_grant_id`; set `requested_sku` to the exact selected `options[].offer_id`; and returns lease/provisioning state only (not SSH key material). Capture `compute.lease_control_token` from the response for follow-up lease control tools.
156
190
  - `flywheel_compute_release`: release compute when no longer needed, scoped by lease_control_token.
157
191
  - `flywheel_launch_execution`, `flywheel_list_executions`, `flywheel_terminate_execution`: manage execution status transitions.
158
192
  - `flywheel_prepare_artifact_uploads`: prepare one or more signed raw-file upload requests for concrete deliverables/evidence produced by the work.
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#installing-on-claude-code)Installing on Claude Code
1
+ # Installing on Claude Code
2
2
 
3
3
  Use the setup wizard:
4
4
 
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#installing-on-codex)Installing on Codex
1
+ # Installing on Codex
2
2
 
3
3
  Use the setup wizard:
4
4
 
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#faq-how-can-i-get-an-authorized-client_id-for-the-oauth-flow)FAQ: How Can I Get an Authorized `client_id` for the OAuth Flow?
1
+ # FAQ: How Can I Get an Authorized `client_id` for the OAuth Flow?
2
2
 
3
3
  We support the standard MCP OAuth flow with dynamic client registration, as documented in the [MCP Authorization spec (dynamic client registration)](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#dynamic-client-registration).
4
4
 
@@ -14,7 +14,7 @@ That response includes the OAuth endpoints (`authorization_endpoint`, `token_end
14
14
 
15
15
  Then register your OAuth client using the `registration_endpoint`.
16
16
 
17
- ## [](https://flywheel.paradigma.inc/tutorial#public-client-default)Public client (default)
17
+ ## Public client (default)
18
18
 
19
19
  This is the default for interactive MCP hosts (for example Claude Code, IDE hosts, local desktop clients). If `token_endpoint_auth_method` is omitted, we default to `none`.
20
20
 
@@ -31,7 +31,7 @@ curl -sS -X POST https://flywheel.paradigma.inc/mcp-server/register \
31
31
 
32
32
  The response returns a `client_id` and no `client_secret`.
33
33
 
34
- ## [](https://flywheel.paradigma.inc/tutorial#confidential-client-optional)Confidential client (optional)
34
+ ## Confidential client (optional)
35
35
 
36
36
  Use this when your app has a trusted backend that can securely store secrets.
37
37
 
@@ -1,10 +1,10 @@
1
- # [](https://flywheel.paradigma.inc//#setting-up-flywheel)Setting up Flywheel
1
+ # Setting up Flywheel
2
2
 
3
3
  We are in the business of automating science. As such, our first interface to Flywheel is through autonomous agents, specifically via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro).
4
4
 
5
5
  MCP enables you to natively connect and authenticate Flywheel to any compatible hosts. We recommend using Flywheel with [Codex](https://github.com/openai/codex) or [Claude code](https://github.com/anthropics/claude-code), but any MCP host should work.
6
6
 
7
- ## [](https://flywheel.paradigma.inc/tutorial#one-command-setup-recommended)One-command setup (recommended)
7
+ ## One-command setup (recommended)
8
8
 
9
9
  Simply run:
10
10
 
@@ -12,7 +12,22 @@ Simply run:
12
12
  npx @paradigma-inc/flywheel setup
13
13
  ```
14
14
 
15
- ## [](https://flywheel.paradigma.inc/tutorial#reinstall--cleanup)Reinstall / cleanup
15
+ `setup` defaults to `--mode mcp`, which wires the Flywheel MCP server into the
16
+ selected hosts and installs the bundled Flywheel skills. To install the skills
17
+ without writing any MCP host config, run `setup --mode cli --install-skill`
18
+ instead.
19
+
20
+ If the user is on a remote shell (for example SSH'd into a server), loopback
21
+ callback URLs resolve on the wrong machine. Use device auth instead:
22
+
23
+ ```bash
24
+ npx @paradigma-inc/flywheel setup --auth-mode device
25
+ ```
26
+
27
+ `--auth-mode device` prints a Flywheel device-auth URL and a short setup code;
28
+ the user approves in a browser and the CLI polls until the API key is issued.
29
+
30
+ ## Reinstall / cleanup
16
31
 
17
32
  ```bash
18
33
  npx @paradigma-inc/flywheel setup
@@ -21,6 +36,6 @@ npx @paradigma-inc/flywheel uninstall
21
36
 
22
37
  `uninstall` removes Flywheel MCP entries from host config files.
23
38
 
24
- ## [](https://flywheel.paradigma.inc/tutorial#web-connector-hosts-chatgptcom--claudeai--etc-)Web connector hosts (ChatGPT.com / Claude.ai / etc. )
39
+ ## Web connector hosts (ChatGPT.com / Claude.ai / etc. )
25
40
 
26
41
  Web connector hosts can still use OAuth-style connector flows. Keep using those host-native connector install UIs for ChatGPT.com custom apps, Claude.ai custom connectors, etc. Simply put `https://flywheel.paradigma.inc/mcp-server` as the URL when prompted.
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#other-mcp-hosts)Other MCP hosts
1
+ # Other MCP hosts
2
2
 
3
3
  If your host is not currently supported by `npx @paradigma-inc/flywheel setup`, you can still connect manually.
4
4
 
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#what-to-do-with-flywheel)What to do with Flywheel?
1
+ # What to do with Flywheel?
2
2
 
3
3
  In our experience the best way to get an answer to this question is to ask it to your MCP host:
4
4
 
@@ -16,6 +16,7 @@ What you can do with it:
16
16
  - Commit outcomes with required structure (kind, outcome, summary) so results stay consistent.
17
17
  - Launch managed compute for a node with budget controls and track execution state.
18
18
  - Attach artifacts to nodes (text, tables, JSON, images, HTML/plots, checkpoints, diffs).
19
+ - Configure hooks that call external HTTP endpoints when events occur.
19
20
  - Collaborate with others by sharing nodes/graphs.
20
21
  - Tag nodes, audit changes, and export summaries/PDFs/subgraphs.
21
22
 
@@ -32,3 +33,29 @@ If you want, I can walk you through creating your first node and a minimal workf
32
33
  Francesco is documenting some example workflows on his [X profile](https://x.com/tensorqt), like [organizing, exploring and iterating on a research topic](https://x.com/tensorqt/status/2032190671281332280?s=20) or [reproducing papers on a budget](https://x.com/tensorqt/status/2032555892399305171).
33
34
 
34
35
  We'll be sharing more example workflows there and also through our [Discord](https://discord.gg/aFg4zskefj), where we do weekly office hours. You should join!
36
+
37
+ ## Configure Hooks (Node Automations)
38
+
39
+ Hooks are event-driven automations:
40
+
41
+ - **Event**: a durable "something happened" record (currently `artifact.finalized`).
42
+ - **Hook**: a durable rule configured on a node (trigger + scope + action).
43
+ - **Run**: one execution record when a hook reacts to an event.
44
+ - Hooks are dispatched by `worker-projection` and executed by ephemeral Fly Machines runners.
45
+ - Each hook run launches `python -m server.run_hook_runner` in the same Fly app (`FLYWHEEL_HOOK_RUNNER_FLY_APP`).
46
+ - Deployments roll out `worker-projection`; runner launches require `FLYWHEEL_HOOK_RUNNER_FLY_API_TOKEN` and `FLYWHEEL_HOOK_RUNNER_FLY_APP`.
47
+
48
+ Typical setup:
49
+
50
+ 1. Create secrets for endpoint credentials:
51
+ `flywheel_create_hook_secret`.
52
+ 2. Create the hook:
53
+ `flywheel_create_hook` (trigger `artifact.finalized`, choose scope, define
54
+ HTTP action).
55
+ 3. Turn it on:
56
+ `flywheel_set_hook_enabled`.
57
+ 4. Verify behavior:
58
+ `flywheel_list_hook_runs`.
59
+
60
+ WebUI path: open a node and use the **Hooks** panel in the right-side node
61
+ panel area.
@@ -1,4 +1,4 @@
1
- # [](https://flywheel.paradigma.inc//#the-flywheel-webui)The Flywheel WebUI
1
+ # The Flywheel WebUI
2
2
 
3
3
  While most of your write-driven interactions with Flywheel will likely be through your MCP host, you will find the [https://flywheel.paradigma.inc](https://flywheel.paradigma.inc) WebUI useful for visualizing your graph and managing nodes and admin.
4
4
 
@@ -11,6 +11,17 @@ Use this skill when the task is to shape information inside Flywheel rather than
11
11
 
12
12
  If exact tool or field semantics are unclear, load [references/flywheel-mcp-tool-map.md](references/flywheel-mcp-tool-map.md) and [references/INTERFACES.md](references/INTERFACES.md) before mutating nodes or acquiring compute.
13
13
 
14
+ ## Modes
15
+
16
+ This skill supports both Flywheel install modes:
17
+
18
+ - **`--mode mcp` install**: route via [references/flywheel-mcp-tool-map.md](references/flywheel-mcp-tool-map.md); tool calls take the form `flywheel_<tool>` (e.g., `flywheel_commit_node`).
19
+ - **`--mode cli` install**: `setup --mode cli` configures runtime credentials, then route via [references/flywheel-cli-tool-map.md](references/flywheel-cli-tool-map.md); tool calls take the form `flywheel <command>` (e.g., `flywheel nodes:commit`). Prerequisite for bare-binary routing: `npm install -g @paradigma-inc/flywheel`.
20
+
21
+ When switching an already-configured host between modes, rerun setup with `--force` (or uninstall first) so prior-mode artifacts are reconciled explicitly.
22
+
23
+ The Workflow below cites both the MCP tool name and its CLI equivalent inline at each imperative step. Pick the one matching your install mode.
24
+
14
25
  ## Input Contract
15
26
 
16
27
  Before execution, recover or establish these inputs:
@@ -59,16 +70,16 @@ Before execution, recover or establish these inputs:
59
70
  - Run the design gate from [references/experiment-design-protocol-autonomous.md](references/experiment-design-protocol-autonomous.md) before the first compute request: confirm objective, decision criterion, evidence plan, budget readiness, and stop-reason recording requirements, even though later continuation decisions become graph-local.
60
71
  3. Map each stable page, claim, or concept to a node.
61
72
  - For exact node-mutation shapes, load [references/flywheel-mcp-tool-map.md](references/flywheel-mcp-tool-map.md).
62
- - Create a new node with `flywheel_commit_new_node` when needed.
63
- - Update an existing node with `flywheel_get_node` + `flywheel_acquire_stage_lease` + `flywheel_commit_node` when continuing work.
73
+ - Create a new node with `flywheel_commit_new_node` (MCP) or `flywheel nodes:commit-new` (CLI) when needed.
74
+ - Update an existing node with `flywheel_get_node` + `flywheel_acquire_stage_lease` + `flywheel_commit_node` (MCP) or `flywheel nodes:get` + `flywheel nodes:stage:lease:acquire` + `flywheel nodes:commit` (CLI) when continuing work.
64
75
  4. Put the primary page markdown or plan rationale in the node body/readme field (`content`).
65
76
  - Keep `summary` concise.
66
77
  - Populate `hypothesis`, `insights`, `outcome`, and similar fields only when the source actually supports them.
67
78
  5. Publish supporting files with the artifact upload flow.
68
79
  - For exact artifact contract details, load [references/ARTIFACTS.md](references/ARTIFACTS.md).
69
- - Use `flywheel_prepare_artifact_uploads`.
80
+ - Use `flywheel_prepare_artifact_uploads` (MCP) or `flywheel artifacts:upload:prepare` (CLI).
70
81
  - Upload raw file bytes to the returned signed URLs.
71
- - Call `flywheel_finalize_artifact_uploads` once all uploads in the batch are staged.
82
+ - Call `flywheel_finalize_artifact_uploads` (MCP) or `flywheel artifacts:upload:finalize` (CLI) once all uploads in the batch are staged.
72
83
  - Keep the artifact filename stable enough to reference from markdown when inline rendering matters.
73
84
  6. Add graph structure sparingly.
74
85
  - Promote only decision-relevant relationships to edges.
@@ -81,20 +92,20 @@ Before execution, recover or establish these inputs:
81
92
  - Keep unresolved plan nodes staged until the corresponding work is resolved.
82
93
  8. Execute and replan continuously.
83
94
  - For exact execution and compute request shapes, load [references/flywheel-mcp-tool-map.md](references/flywheel-mcp-tool-map.md) and [references/experiment-design-protocol-autonomous.md](references/experiment-design-protocol-autonomous.md).
84
- - Use `flywheel_launch_execution` when the branch can run as a Flywheel node execution without a separate leased machine, and inspect terminal status before commit.
85
- - Use managed compute when the branch needs provider or SKU choice, SSH access, a custom runtime, or longer-lived hardware. In that case use `flywheel_request_compute_grant_approval`, resolve the approved `compute_grant_id` with `flywheel_list_compute_grants(status=active, approval_session_id=<session_id>)`, call `flywheel_compute_list_options`, recommend one offer deterministically and present up to two alternatives, wait for explicit user confirmation (or explicit user override offer id), then `flywheel_compute_acquire`, poll `flywheel_compute_status`, and use `flywheel_compute_connection` when the lease is ready.
95
+ - Use `flywheel_launch_execution` (MCP) or `flywheel executions:launch` (CLI) when the branch can run as a Flywheel node execution without a separate leased machine, and inspect terminal status before commit.
96
+ - Use managed compute when the branch needs provider or SKU choice, SSH access, a custom runtime, or longer-lived hardware. In MCP mode use `flywheel_request_compute_grant_approval`, resolve the approved `compute_grant_id` with `flywheel_list_compute_grants(status=active, approval_session_id=<session_id>)`, call `flywheel_compute_list_options`, recommend one offer deterministically and present up to two alternatives, wait for explicit user confirmation (or explicit user override offer id), then `flywheel_compute_acquire`, poll `flywheel_compute_status`, and use `flywheel_compute_connection` when the lease is ready. In CLI mode use the parallel `flywheel compute-grants:request-approval` → `flywheel compute-grants:list` → `flywheel compute:options` → `flywheel compute:acquire` → `flywheel compute:status` → `flywheel compute:connection` sequence.
86
97
  - Spawn up to `k` workers for distinct executable frontier nodes.
87
98
  - For `k > 1`, apply the list-options -> recommendation -> explicit confirmation boundary per worker before each worker-specific acquire call.
88
99
  - Route additional viable branches sequentially when there are more than `k` worthwhile directions.
89
100
  - After each resolved node, refresh the lookahead so the graph remains `n` hops ahead.
90
101
  - Release managed compute when a branch is done. Default to releasing only
91
- known leases. Use `flywheel_compute_release_all` only when the user
102
+ known leases. Use `flywheel_compute_release_all` (MCP) or `flywheel compute:release-all` (CLI) only when the user
92
103
  explicitly requests account-wide cleanup.
93
104
  - Stop only when the graph-local terminal condition says to stop, such as: objective met, budget exhausted, or no non-redundant frontier branch is likely to produce enough decision-relevant information to justify the remaining budget and duplication risk.
94
105
  - If stopping because no non-redundant frontier branch is worth pursuing, record a per-candidate rejection rationale in control node `content` before termination.
95
106
  - Before every termination path, persist `stop_reason` in control node `content` as one of: `budget_exhausted`, `objective_met`, `no_viable_branch`, `user_cancelled`, `runtime_error`.
96
107
 
97
- 9. Commit after the node snapshot is coherent with `flywheel_commit_node`.
108
+ 9. Commit after the node snapshot is coherent with `flywheel_commit_node` (MCP) or `flywheel nodes:commit` (CLI).
98
109
  - Commit resolved insight nodes only when they have non-empty `insights`.
99
110
  - Commit resolved empirical nodes only when outcome and artifact rules are satisfied.
100
111
  - Leave unresolved plan nodes staged.
@@ -122,15 +133,15 @@ controller, load [references/INTERFACES.md](references/INTERFACES.md).
122
133
  Use this storage convention:
123
134
 
124
135
  1. Reuse an existing control node when one already governs the same frontier;
125
- otherwise create one with `flywheel_commit_new_node`.
136
+ otherwise create one with `flywheel_commit_new_node` (MCP) or `flywheel nodes:commit-new` (CLI).
126
137
  2. Put the canonical contract in node `content`.
127
138
  3. Put a one-line synopsis in `summary`.
128
139
  4. Put the run rationale, continuation rule, or prioritization logic in
129
140
  `insights` so the `insight` commit contract is satisfied.
130
- 5. Before committing control-node edits, acquire or refresh the stage lease with `flywheel_acquire_stage_lease` (and `flywheel_heartbeat_stage_lease` for long edits).
131
- 6. Read the control node with `flywheel_get_node` before later replans that need
141
+ 5. Before committing control-node edits, acquire or refresh the stage lease with `flywheel_acquire_stage_lease` (and `flywheel_heartbeat_stage_lease` for long edits) — or in CLI mode, `flywheel nodes:stage:lease:acquire` and `flywheel nodes:stage:lease:heartbeat`.
142
+ 6. Read the control node with `flywheel_get_node` (MCP) or `flywheel nodes:get` (CLI) before later replans that need
132
143
  a fresh `expected_revision` revision token for optimistic-locking writes.
133
- 7. Commit the control node with `flywheel_commit_node` once the contract is
144
+ 7. Commit the control node with `flywheel_commit_node` (MCP) or `flywheel nodes:commit` (CLI) once the contract is
134
145
  coherent, even if executable frontier nodes remain staged or in progress.
135
146
 
136
147
  Canonical contract shape:
@@ -85,6 +85,7 @@ Canonical reference for Flywheel MCP public interfaces and contract pointers.
85
85
  - `flywheel_compute_funding` (read; scopes: `compute`; core surface; binding: `operation`)
86
86
  - `flywheel_compute_status` (read; scopes: `compute`; core surface; binding: `operation`)
87
87
  - `flywheel_compute_connection` (read; scopes: `compute`; core surface; binding: `operation`)
88
+ - `flywheel_approval_session_open` (read; scopes: `compute`; core surface; binding: `operation`)
88
89
  - `flywheel_approval_session_heartbeat` (read; scopes: `compute`; core surface; binding: `operation`)
89
90
  - `flywheel_list_approval_sessions` (read; scopes: `compute`; core surface; binding: `operation`)
90
91
  - `flywheel_expire_approval_session` (mutating; scopes: `compute`; core surface; binding: `operation`)
@@ -170,6 +171,7 @@ Canonical reference for Flywheel MCP public interfaces and contract pointers.
170
171
  - `GET /compute/funding` -> `flywheel_compute_funding`
171
172
  - `GET /compute/status` -> `flywheel_compute_status`
172
173
  - `GET /compute/connection` -> `flywheel_compute_connection`
174
+ - `tool-mediated` -> `flywheel_approval_session_open`
173
175
  - `POST /approval-sessions/heartbeat` -> `flywheel_approval_session_heartbeat`
174
176
  - `GET /approval-sessions` -> `flywheel_list_approval_sessions`
175
177
  - `POST /approval-sessions/expire` -> `flywheel_expire_approval_session`