@angelmsger/fx 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (611) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +13 -47
  3. package/defaults/tools.yaml +14 -0
  4. package/dist/adapters/agent-host/toml-mcp.js +1 -3
  5. package/dist/adapters/agent-host/toml-mcp.js.map +1 -1
  6. package/dist/adapters/calendar/wecom-calendar-cli/provider.js +42 -0
  7. package/dist/adapters/calendar/wecom-calendar-cli/provider.js.map +1 -0
  8. package/dist/adapters/ci/github-actions/ci.js +97 -0
  9. package/dist/adapters/ci/github-actions/ci.js.map +1 -0
  10. package/dist/adapters/ci/github-actions/provider.js +33 -0
  11. package/dist/adapters/ci/github-actions/provider.js.map +1 -0
  12. package/dist/adapters/ci/jenkins-cli/ci.js +6 -1
  13. package/dist/adapters/ci/jenkins-cli/ci.js.map +1 -1
  14. package/dist/adapters/cluster/kubectl/provider.js +2 -3
  15. package/dist/adapters/cluster/kubectl/provider.js.map +1 -1
  16. package/dist/adapters/code-host/bitbucket-cli/contribution-call.js +5 -27
  17. package/dist/adapters/code-host/bitbucket-cli/contribution-call.js.map +1 -1
  18. package/dist/adapters/code-host/bitbucket-cli/provider.js.map +1 -1
  19. package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js +1 -19
  20. package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js.map +1 -1
  21. package/dist/adapters/code-host/bitbucket-cli/pull-request.js +3 -17
  22. package/dist/adapters/code-host/bitbucket-cli/pull-request.js.map +1 -1
  23. package/dist/adapters/code-host/bitbucket-cli/repository-identity.js +1 -4
  24. package/dist/adapters/code-host/bitbucket-cli/repository-identity.js.map +1 -1
  25. package/dist/adapters/code-host/github/contribution.js +179 -0
  26. package/dist/adapters/code-host/github/contribution.js.map +1 -0
  27. package/dist/adapters/code-host/github/import.js +27 -0
  28. package/dist/adapters/code-host/github/import.js.map +1 -0
  29. package/dist/adapters/code-host/github/provider.js +205 -0
  30. package/dist/adapters/code-host/github/provider.js.map +1 -0
  31. package/dist/adapters/code-host/local-git/import.js +2 -2
  32. package/dist/adapters/code-host/local-git/import.js.map +1 -1
  33. package/dist/adapters/code-host/local-git/provider.js +3 -3
  34. package/dist/adapters/code-host/local-git/provider.js.map +1 -1
  35. package/dist/adapters/error-tracker/sentry/client.js +1 -1
  36. package/dist/adapters/error-tracker/sentry/client.js.map +1 -1
  37. package/dist/adapters/family/cli.js +15 -17
  38. package/dist/adapters/family/cli.js.map +1 -1
  39. package/dist/adapters/family/contribution.js +65 -0
  40. package/dist/adapters/family/contribution.js.map +1 -0
  41. package/dist/adapters/family/service-protocol.js +1 -0
  42. package/dist/adapters/family/service-protocol.js.map +1 -1
  43. package/dist/adapters/fs/node-fs.js +5 -8
  44. package/dist/adapters/fs/node-fs.js.map +1 -1
  45. package/dist/adapters/git/run.js +17 -0
  46. package/dist/adapters/git/run.js.map +1 -0
  47. package/dist/adapters/git/system-git.js +36 -16
  48. package/dist/adapters/git/system-git.js.map +1 -1
  49. package/dist/adapters/github/gh.js +103 -0
  50. package/dist/adapters/github/gh.js.map +1 -0
  51. package/dist/adapters/manifest-source/git-repo.js +38 -18
  52. package/dist/adapters/manifest-source/git-repo.js.map +1 -1
  53. package/dist/adapters/manifest-source/stdin.js +4 -6
  54. package/dist/adapters/manifest-source/stdin.js.map +1 -1
  55. package/dist/adapters/metrics/prometheus-cli/service.js +9 -1
  56. package/dist/adapters/metrics/prometheus-cli/service.js.map +1 -1
  57. package/dist/adapters/process/deadline-process.js +7 -3
  58. package/dist/adapters/process/deadline-process.js.map +1 -1
  59. package/dist/adapters/process/diagnostic-process.js +2 -3
  60. package/dist/adapters/process/diagnostic-process.js.map +1 -1
  61. package/dist/adapters/process/launch.js +55 -0
  62. package/dist/adapters/process/launch.js.map +1 -0
  63. package/dist/adapters/process/node-process.js +3 -3
  64. package/dist/adapters/process/node-process.js.map +1 -1
  65. package/dist/adapters/process/powershell.js +13 -2
  66. package/dist/adapters/process/powershell.js.map +1 -1
  67. package/dist/adapters/process/stdio-bridge.js +2 -2
  68. package/dist/adapters/process/stdio-bridge.js.map +1 -1
  69. package/dist/adapters/registry/registry-policy.js +4 -14
  70. package/dist/adapters/registry/registry-policy.js.map +1 -1
  71. package/dist/application/agent/list.js +12 -0
  72. package/dist/application/agent/list.js.map +1 -1
  73. package/dist/application/agent/pick.js +12 -30
  74. package/dist/application/agent/pick.js.map +1 -1
  75. package/dist/application/agent/workspace-cleanup.js +4 -1
  76. package/dist/application/agent/workspace-cleanup.js.map +1 -1
  77. package/dist/application/config/export.js +3 -2
  78. package/dist/application/config/export.js.map +1 -1
  79. package/dist/application/config/import-registry.js +3 -3
  80. package/dist/application/config/import-registry.js.map +1 -1
  81. package/dist/application/config/import.js +12 -4
  82. package/dist/application/config/import.js.map +1 -1
  83. package/dist/application/config/resolve.js +2 -4
  84. package/dist/application/config/resolve.js.map +1 -1
  85. package/dist/application/contribution/identity.js +3 -3
  86. package/dist/application/contribution/identity.js.map +1 -1
  87. package/dist/application/contribution/push-registered.js +77 -0
  88. package/dist/application/contribution/push-registered.js.map +1 -0
  89. package/dist/application/contribution/push.js +12 -19
  90. package/dist/application/contribution/push.js.map +1 -1
  91. package/dist/application/contribution/validate.js +12 -13
  92. package/dist/application/contribution/validate.js.map +1 -1
  93. package/dist/application/docs/derive.js +14 -5
  94. package/dist/application/docs/derive.js.map +1 -1
  95. package/dist/application/docs/rendered.js +2 -1
  96. package/dist/application/docs/rendered.js.map +1 -1
  97. package/dist/application/doctor/index.js +43 -27
  98. package/dist/application/doctor/index.js.map +1 -1
  99. package/dist/application/doctor/manifest.js +5 -1
  100. package/dist/application/doctor/manifest.js.map +1 -1
  101. package/dist/application/doctor/repos.js +1 -1
  102. package/dist/application/doctor/repos.js.map +1 -1
  103. package/dist/application/doctor/tools.js +20 -31
  104. package/dist/application/doctor/tools.js.map +1 -1
  105. package/dist/application/doctor/types.js +0 -8
  106. package/dist/application/doctor/types.js.map +1 -1
  107. package/dist/application/env/names.js.map +1 -1
  108. package/dist/application/harness/apply.js +4 -3
  109. package/dist/application/harness/apply.js.map +1 -1
  110. package/dist/application/harness/cleanup.js +5 -14
  111. package/dist/application/harness/cleanup.js.map +1 -1
  112. package/dist/application/harness/mcp-readiness.js +3 -1
  113. package/dist/application/harness/mcp-readiness.js.map +1 -1
  114. package/dist/application/harness/names.js +2 -4
  115. package/dist/application/harness/names.js.map +1 -1
  116. package/dist/application/harness/plan.js +12 -10
  117. package/dist/application/harness/plan.js.map +1 -1
  118. package/dist/application/harness/reconcile.js +4 -14
  119. package/dist/application/harness/reconcile.js.map +1 -1
  120. package/dist/application/harness/session.js +2 -13
  121. package/dist/application/harness/session.js.map +1 -1
  122. package/dist/application/harness/stages.js +8 -18
  123. package/dist/application/harness/stages.js.map +1 -1
  124. package/dist/application/harness/types.js +1 -8
  125. package/dist/application/harness/types.js.map +1 -1
  126. package/dist/application/hook/apply.js +5 -4
  127. package/dist/application/hook/apply.js.map +1 -1
  128. package/dist/application/hook/automatic-sync.js +8 -3
  129. package/dist/application/hook/automatic-sync.js.map +1 -1
  130. package/dist/application/hook/cleanup.js +5 -14
  131. package/dist/application/hook/cleanup.js.map +1 -1
  132. package/dist/application/hook/dispatch.js +24 -3
  133. package/dist/application/hook/dispatch.js.map +1 -1
  134. package/dist/application/hook/observe.js +11 -9
  135. package/dist/application/hook/observe.js.map +1 -1
  136. package/dist/application/hook/plan.js.map +1 -1
  137. package/dist/application/hook/reconcile.js +2 -9
  138. package/dist/application/hook/reconcile.js.map +1 -1
  139. package/dist/application/hook/session.js +5 -12
  140. package/dist/application/hook/session.js.map +1 -1
  141. package/dist/application/hook/supervisor-report.js +2 -1
  142. package/dist/application/hook/supervisor-report.js.map +1 -1
  143. package/dist/application/hook/types.js +8 -1
  144. package/dist/application/hook/types.js.map +1 -1
  145. package/dist/application/init/errors.js +19 -19
  146. package/dist/application/init/errors.js.map +1 -1
  147. package/dist/application/init/index.js +60 -42
  148. package/dist/application/init/index.js.map +1 -1
  149. package/dist/application/init/preview-initialization.js +40 -0
  150. package/dist/application/init/preview-initialization.js.map +1 -0
  151. package/dist/application/init/preview.js +37 -19
  152. package/dist/application/init/preview.js.map +1 -1
  153. package/dist/application/init/resume.js +30 -0
  154. package/dist/application/init/resume.js.map +1 -0
  155. package/dist/application/init/source.js +8 -0
  156. package/dist/application/init/source.js.map +1 -0
  157. package/dist/application/{doctor/login.js → login/check.js} +22 -43
  158. package/dist/application/login/check.js.map +1 -0
  159. package/dist/application/login/collect.js +14 -7
  160. package/dist/application/login/collect.js.map +1 -1
  161. package/dist/application/login/command-failure.js +2 -0
  162. package/dist/application/login/command-failure.js.map +1 -1
  163. package/dist/application/login/deps.js +2 -3
  164. package/dist/application/login/deps.js.map +1 -1
  165. package/dist/application/login/run.js +149 -54
  166. package/dist/application/login/run.js.map +1 -1
  167. package/dist/application/login/stage.js +146 -0
  168. package/dist/application/login/stage.js.map +1 -0
  169. package/dist/application/login/verify.js +45 -34
  170. package/dist/application/login/verify.js.map +1 -1
  171. package/dist/application/manifest/context.js +5 -1
  172. package/dist/application/manifest/context.js.map +1 -1
  173. package/dist/application/{import.js → manifest/import.js} +36 -28
  174. package/dist/application/manifest/import.js.map +1 -0
  175. package/dist/application/manifest/lint.js +15 -23
  176. package/dist/application/manifest/lint.js.map +1 -1
  177. package/dist/application/manifest/load.js +7 -11
  178. package/dist/application/manifest/load.js.map +1 -1
  179. package/dist/application/manifest/prepare.js +3 -2
  180. package/dist/application/manifest/prepare.js.map +1 -1
  181. package/dist/application/manifest/providers.js +4 -1
  182. package/dist/application/manifest/providers.js.map +1 -1
  183. package/dist/application/{refresh-manifest.js → manifest/refresh.js} +26 -2
  184. package/dist/application/manifest/refresh.js.map +1 -0
  185. package/dist/application/manifest/set.js +2 -1
  186. package/dist/application/manifest/set.js.map +1 -1
  187. package/dist/application/member/list.js +2 -4
  188. package/dist/application/member/list.js.map +1 -1
  189. package/dist/application/member/show.js +2 -3
  190. package/dist/application/member/show.js.map +1 -1
  191. package/dist/application/preparation.js +92 -25
  192. package/dist/application/preparation.js.map +1 -1
  193. package/dist/application/probe-record/index.js +19 -18
  194. package/dist/application/probe-record/index.js.map +1 -1
  195. package/dist/application/probe-record/plan.js +6 -4
  196. package/dist/application/probe-record/plan.js.map +1 -1
  197. package/dist/application/{can.js → readiness/can.js} +23 -11
  198. package/dist/application/readiness/can.js.map +1 -0
  199. package/dist/application/readiness/index.js +22 -35
  200. package/dist/application/readiness/index.js.map +1 -1
  201. package/dist/application/readiness/resolve.js +13 -15
  202. package/dist/application/readiness/resolve.js.map +1 -1
  203. package/dist/application/readiness/verdicts.js +2 -7
  204. package/dist/application/readiness/verdicts.js.map +1 -1
  205. package/dist/application/{where.js → readiness/where.js} +19 -21
  206. package/dist/application/readiness/where.js.map +1 -0
  207. package/dist/application/release/ci.js +16 -5
  208. package/dist/application/release/ci.js.map +1 -1
  209. package/dist/application/release/errors.js +4 -0
  210. package/dist/application/release/errors.js.map +1 -1
  211. package/dist/application/release/facts.js +24 -3
  212. package/dist/application/release/facts.js.map +1 -1
  213. package/dist/application/release/index.js +26 -22
  214. package/dist/application/release/index.js.map +1 -1
  215. package/dist/application/release/repo.js +109 -0
  216. package/dist/application/release/repo.js.map +1 -0
  217. package/dist/application/safety/trust.js +12 -14
  218. package/dist/application/safety/trust.js.map +1 -1
  219. package/dist/application/self/update.js +23 -13
  220. package/dist/application/self/update.js.map +1 -1
  221. package/dist/application/services/command.js +6 -8
  222. package/dist/application/services/command.js.map +1 -1
  223. package/dist/application/services/operation.js +12 -19
  224. package/dist/application/services/operation.js.map +1 -1
  225. package/dist/application/services/recipes.js +7 -2
  226. package/dist/application/services/recipes.js.map +1 -1
  227. package/dist/application/services/stage.js +6 -4
  228. package/dist/application/services/stage.js.map +1 -1
  229. package/dist/application/services/types.js +7 -1
  230. package/dist/application/services/types.js.map +1 -1
  231. package/dist/application/skill/copies.js +13 -22
  232. package/dist/application/skill/copies.js.map +1 -1
  233. package/dist/application/skill/fx-copies.js +1 -1
  234. package/dist/application/skill/fx-copies.js.map +1 -1
  235. package/dist/application/skill/stage.js +24 -26
  236. package/dist/application/skill/stage.js.map +1 -1
  237. package/dist/application/skill/standalone.js +1 -1
  238. package/dist/application/skill/standalone.js.map +1 -1
  239. package/dist/application/skill/targets.js +2 -16
  240. package/dist/application/skill/targets.js.map +1 -1
  241. package/dist/application/skill/tool-skills.js +20 -10
  242. package/dist/application/skill/tool-skills.js.map +1 -1
  243. package/dist/application/sync/checks.js +18 -45
  244. package/dist/application/sync/checks.js.map +1 -1
  245. package/dist/application/sync/index.js +76 -26
  246. package/dist/application/sync/index.js.map +1 -1
  247. package/dist/application/sync/stages.js +43 -26
  248. package/dist/application/sync/stages.js.map +1 -1
  249. package/dist/application/sync/types.js +6 -1
  250. package/dist/application/sync/types.js.map +1 -1
  251. package/dist/application/tool/check.js +8 -0
  252. package/dist/application/tool/check.js.map +1 -1
  253. package/dist/application/tool/history.js +16 -0
  254. package/dist/application/tool/history.js.map +1 -0
  255. package/dist/application/tool/initialize.js +2 -1
  256. package/dist/application/tool/initialize.js.map +1 -1
  257. package/dist/application/tool/install.js +15 -18
  258. package/dist/application/tool/install.js.map +1 -1
  259. package/dist/application/tool/installed.js +1 -1
  260. package/dist/application/tool/installed.js.map +1 -1
  261. package/dist/application/tool/list.js.map +1 -1
  262. package/dist/application/tool/scope.js +8 -7
  263. package/dist/application/tool/scope.js.map +1 -1
  264. package/dist/application/tool/select.js +2 -4
  265. package/dist/application/tool/select.js.map +1 -1
  266. package/dist/application/tool/show.js.map +1 -1
  267. package/dist/application/tool/toolchain.js +19 -6
  268. package/dist/application/tool/toolchain.js.map +1 -1
  269. package/dist/application/update/check.js +2 -1
  270. package/dist/application/update/check.js.map +1 -1
  271. package/dist/application/workspace/command-operation.js +4 -3
  272. package/dist/application/workspace/command-operation.js.map +1 -1
  273. package/dist/application/{workspace-context.js → workspace/context.js} +26 -19
  274. package/dist/application/workspace/context.js.map +1 -0
  275. package/dist/application/workspace/deps.js +3 -3
  276. package/dist/application/workspace/deps.js.map +1 -1
  277. package/dist/application/workspace/go-work.js +77 -0
  278. package/dist/application/workspace/go-work.js.map +1 -0
  279. package/dist/application/workspace/guidance.js +2 -4
  280. package/dist/application/workspace/guidance.js.map +1 -1
  281. package/dist/application/workspace/health.js +4 -2
  282. package/dist/application/workspace/health.js.map +1 -1
  283. package/dist/application/workspace/inspect.js +1 -4
  284. package/dist/application/workspace/inspect.js.map +1 -1
  285. package/dist/application/workspace/manage.js +83 -97
  286. package/dist/application/workspace/manage.js.map +1 -1
  287. package/dist/application/workspace/operation.js +13 -14
  288. package/dist/application/workspace/operation.js.map +1 -1
  289. package/dist/application/workspace/plan.js +2 -1
  290. package/dist/application/workspace/plan.js.map +1 -1
  291. package/dist/application/workspace/registry.js +4 -3
  292. package/dist/application/workspace/registry.js.map +1 -1
  293. package/dist/application/workspace/resolve.js +10 -12
  294. package/dist/application/workspace/resolve.js.map +1 -1
  295. package/dist/application/workspace/resources.js +47 -31
  296. package/dist/application/workspace/resources.js.map +1 -1
  297. package/dist/application/workspace/root-entries.js +3 -0
  298. package/dist/application/workspace/root-entries.js.map +1 -1
  299. package/dist/application/workspace/source-preview.js +6 -3
  300. package/dist/application/workspace/source-preview.js.map +1 -1
  301. package/dist/application/{status.js → workspace/status.js} +51 -6
  302. package/dist/application/workspace/status.js.map +1 -0
  303. package/dist/cli/base.js +25 -29
  304. package/dist/cli/base.js.map +1 -1
  305. package/dist/cli/commands/agent/pick.js +4 -1
  306. package/dist/cli/commands/agent/pick.js.map +1 -1
  307. package/dist/cli/commands/agent/unpick.js +5 -1
  308. package/dist/cli/commands/agent/unpick.js.map +1 -1
  309. package/dist/cli/commands/aliases.js +1 -0
  310. package/dist/cli/commands/aliases.js.map +1 -1
  311. package/dist/cli/commands/can.js +5 -21
  312. package/dist/cli/commands/can.js.map +1 -1
  313. package/dist/cli/commands/config/import.js +1 -8
  314. package/dist/cli/commands/config/import.js.map +1 -1
  315. package/dist/cli/commands/doctor.js +2 -1
  316. package/dist/cli/commands/doctor.js.map +1 -1
  317. package/dist/cli/commands/env/pick.js +1 -0
  318. package/dist/cli/commands/env/pick.js.map +1 -1
  319. package/dist/cli/commands/env/select.js +1 -0
  320. package/dist/cli/commands/env/select.js.map +1 -1
  321. package/dist/cli/commands/env/unpick.js +1 -0
  322. package/dist/cli/commands/env/unpick.js.map +1 -1
  323. package/dist/cli/commands/hook/disable.js +1 -0
  324. package/dist/cli/commands/hook/disable.js.map +1 -1
  325. package/dist/cli/commands/hook/enable.js +1 -0
  326. package/dist/cli/commands/hook/enable.js.map +1 -1
  327. package/dist/cli/commands/index.js +3 -3
  328. package/dist/cli/commands/index.js.map +1 -1
  329. package/dist/cli/commands/init.js +14 -11
  330. package/dist/cli/commands/init.js.map +1 -1
  331. package/dist/cli/commands/login.js +13 -2
  332. package/dist/cli/commands/login.js.map +1 -1
  333. package/dist/cli/commands/manifest/import.js +6 -2
  334. package/dist/cli/commands/manifest/import.js.map +1 -1
  335. package/dist/cli/commands/manifest/lint.js +5 -1
  336. package/dist/cli/commands/manifest/lint.js.map +1 -1
  337. package/dist/cli/commands/manifest/record-probe.js +1 -0
  338. package/dist/cli/commands/manifest/record-probe.js.map +1 -1
  339. package/dist/cli/commands/manifest/render.js +1 -0
  340. package/dist/cli/commands/manifest/render.js.map +1 -1
  341. package/dist/cli/commands/manifest/repo-set.js +1 -0
  342. package/dist/cli/commands/manifest/repo-set.js.map +1 -1
  343. package/dist/cli/commands/{release.js → release/check.js} +14 -13
  344. package/dist/cli/commands/release/check.js.map +1 -0
  345. package/dist/cli/commands/repo/add.js +1 -0
  346. package/dist/cli/commands/repo/add.js.map +1 -1
  347. package/dist/cli/commands/repo/fork.js +1 -0
  348. package/dist/cli/commands/repo/fork.js.map +1 -1
  349. package/dist/cli/commands/repo/pick.js +1 -0
  350. package/dist/cli/commands/repo/pick.js.map +1 -1
  351. package/dist/cli/commands/repo/remove.js +1 -0
  352. package/dist/cli/commands/repo/remove.js.map +1 -1
  353. package/dist/cli/commands/repo/select.js +1 -0
  354. package/dist/cli/commands/repo/select.js.map +1 -1
  355. package/dist/cli/commands/repo/unpick.js +1 -0
  356. package/dist/cli/commands/repo/unpick.js.map +1 -1
  357. package/dist/cli/commands/selection.js +1 -2
  358. package/dist/cli/commands/selection.js.map +1 -1
  359. package/dist/cli/commands/self/info.js +2 -2
  360. package/dist/cli/commands/self/info.js.map +1 -1
  361. package/dist/cli/commands/self/update.js +11 -14
  362. package/dist/cli/commands/self/update.js.map +1 -1
  363. package/dist/cli/commands/source/push.js +14 -13
  364. package/dist/cli/commands/source/push.js.map +1 -1
  365. package/dist/cli/commands/status.js +6 -36
  366. package/dist/cli/commands/status.js.map +1 -1
  367. package/dist/cli/commands/sync.js +7 -5
  368. package/dist/cli/commands/sync.js.map +1 -1
  369. package/dist/cli/commands/tool/history.js +2 -2
  370. package/dist/cli/commands/tool/history.js.map +1 -1
  371. package/dist/cli/commands/where.js +2 -1
  372. package/dist/cli/commands/where.js.map +1 -1
  373. package/dist/cli/commands/workspace/rebind.js +1 -4
  374. package/dist/cli/commands/workspace/rebind.js.map +1 -1
  375. package/dist/cli/completion.js +2 -4
  376. package/dist/cli/completion.js.map +1 -1
  377. package/dist/cli/flags.js +2 -2
  378. package/dist/cli/flags.js.map +1 -1
  379. package/dist/cli/help.js +2 -8
  380. package/dist/cli/help.js.map +1 -1
  381. package/dist/cli/hook-command.js +2 -2
  382. package/dist/cli/hook-command.js.map +1 -1
  383. package/dist/cli/main.js +4 -3
  384. package/dist/cli/main.js.map +1 -1
  385. package/dist/cli/notices.js +26 -24
  386. package/dist/cli/notices.js.map +1 -1
  387. package/dist/cli/preparation-view.js +170 -52
  388. package/dist/cli/preparation-view.js.map +1 -1
  389. package/dist/cli/release-view.js +105 -17
  390. package/dist/cli/release-view.js.map +1 -1
  391. package/dist/cli/render/exceptional.js +11 -4
  392. package/dist/cli/render/exceptional.js.map +1 -1
  393. package/dist/cli/render/fields.js +1 -3
  394. package/dist/cli/render/fields.js.map +1 -1
  395. package/dist/cli/render/human.js +1 -3
  396. package/dist/cli/render/human.js.map +1 -1
  397. package/dist/cli/render/index.js +1 -1
  398. package/dist/cli/render/index.js.map +1 -1
  399. package/dist/cli/render/report.js +1 -1
  400. package/dist/cli/render/report.js.map +1 -1
  401. package/dist/cli/render/status-line.js +17 -3
  402. package/dist/cli/render/status-line.js.map +1 -1
  403. package/dist/cli/render/tone.js +29 -10
  404. package/dist/cli/render/tone.js.map +1 -1
  405. package/dist/cli/route/index.js +13 -1
  406. package/dist/cli/route/index.js.map +1 -1
  407. package/dist/cli/tool-command.js +4 -11
  408. package/dist/cli/tool-command.js.map +1 -1
  409. package/dist/cli/workspace-write-policy.js +8 -33
  410. package/dist/cli/workspace-write-policy.js.map +1 -1
  411. package/dist/composition/agent-cleanup.js +5 -1
  412. package/dist/composition/agent-cleanup.js.map +1 -1
  413. package/dist/composition/bundled.js +7 -1
  414. package/dist/composition/bundled.js.map +1 -1
  415. package/dist/composition/command-wiring.js +44 -99
  416. package/dist/composition/command-wiring.js.map +1 -1
  417. package/dist/composition/container.js +25 -20
  418. package/dist/composition/container.js.map +1 -1
  419. package/dist/composition/contributions.js +26 -71
  420. package/dist/composition/contributions.js.map +1 -1
  421. package/dist/composition/harness.js +3 -4
  422. package/dist/composition/harness.js.map +1 -1
  423. package/dist/composition/hook-entry.js +2 -1
  424. package/dist/composition/hook-entry.js.map +1 -1
  425. package/dist/composition/hook-wiring.js +8 -16
  426. package/dist/composition/hook-wiring.js.map +1 -1
  427. package/dist/composition/hook-worker.js +9 -11
  428. package/dist/composition/hook-worker.js.map +1 -1
  429. package/dist/composition/hooks.js +6 -3
  430. package/dist/composition/hooks.js.map +1 -1
  431. package/dist/composition/import.js +8 -6
  432. package/dist/composition/import.js.map +1 -1
  433. package/dist/composition/manifest-edit.js +1 -2
  434. package/dist/composition/manifest-edit.js.map +1 -1
  435. package/dist/composition/manifest-sources.js +3 -16
  436. package/dist/composition/manifest-sources.js.map +1 -1
  437. package/dist/composition/probe-record.js +1 -2
  438. package/dist/composition/probe-record.js.map +1 -1
  439. package/dist/composition/refresh.js +1 -1
  440. package/dist/composition/refresh.js.map +1 -1
  441. package/dist/composition/registry.js +12 -37
  442. package/dist/composition/registry.js.map +1 -1
  443. package/dist/composition/tool-install.js +5 -1
  444. package/dist/composition/tool-install.js.map +1 -1
  445. package/dist/composition/tool-inventory.js +10 -1
  446. package/dist/composition/tool-inventory.js.map +1 -1
  447. package/dist/composition/trace.js +3 -4
  448. package/dist/composition/trace.js.map +1 -1
  449. package/dist/composition/update.js +12 -1
  450. package/dist/composition/update.js.map +1 -1
  451. package/dist/composition/workspace-management.js +8 -2
  452. package/dist/composition/workspace-management.js.map +1 -1
  453. package/dist/domain/config/codec.js +2 -1
  454. package/dist/domain/config/codec.js.map +1 -1
  455. package/dist/domain/config/profile.js +0 -1
  456. package/dist/domain/config/profile.js.map +1 -1
  457. package/dist/domain/contribution/pull-request.js +12 -1
  458. package/dist/domain/contribution/pull-request.js.map +1 -1
  459. package/dist/domain/contribution/selection.js +4 -8
  460. package/dist/domain/contribution/selection.js.map +1 -1
  461. package/dist/domain/errors.js +10 -3
  462. package/dist/domain/errors.js.map +1 -1
  463. package/dist/domain/fuzzy.js +6 -1
  464. package/dist/domain/fuzzy.js.map +1 -1
  465. package/dist/domain/harness/actions.js +60 -0
  466. package/dist/domain/harness/actions.js.map +1 -0
  467. package/dist/domain/harness/deadlines.js +14 -0
  468. package/dist/domain/harness/deadlines.js.map +1 -0
  469. package/dist/domain/harness/hooks.js +8 -0
  470. package/dist/domain/harness/hooks.js.map +1 -1
  471. package/dist/domain/harness/session-start.js +2 -1
  472. package/dist/domain/harness/session-start.js.map +1 -1
  473. package/dist/domain/harness/state-recovery.js.map +1 -1
  474. package/dist/domain/import/infer.js +2 -9
  475. package/dist/domain/import/infer.js.map +1 -1
  476. package/dist/domain/lease.js +30 -0
  477. package/dist/domain/lease.js.map +1 -0
  478. package/dist/domain/manifest/decode.js +5 -8
  479. package/dist/domain/manifest/decode.js.map +1 -1
  480. package/dist/domain/manifest/document.js +3 -5
  481. package/dist/domain/manifest/document.js.map +1 -1
  482. package/dist/domain/manifest/editor.js +3 -7
  483. package/dist/domain/manifest/editor.js.map +1 -1
  484. package/dist/domain/manifest/explain.js +2 -4
  485. package/dist/domain/manifest/explain.js.map +1 -1
  486. package/dist/domain/manifest/files.js +8 -7
  487. package/dist/domain/manifest/files.js.map +1 -1
  488. package/dist/domain/manifest/issues.js +2 -2
  489. package/dist/domain/manifest/issues.js.map +1 -1
  490. package/dist/domain/manifest/lint.js +4 -3
  491. package/dist/domain/manifest/lint.js.map +1 -1
  492. package/dist/domain/manifest/loader.js +2 -1
  493. package/dist/domain/manifest/loader.js.map +1 -1
  494. package/dist/domain/manifest/overlay.js +6 -9
  495. package/dist/domain/manifest/overlay.js.map +1 -1
  496. package/dist/domain/manifest/providers.js +34 -2
  497. package/dist/domain/manifest/providers.js.map +1 -1
  498. package/dist/domain/manifest/quarantine.js +21 -1
  499. package/dist/domain/manifest/quarantine.js.map +1 -1
  500. package/dist/domain/manifest/reflect.js +2 -31
  501. package/dist/domain/manifest/reflect.js.map +1 -1
  502. package/dist/domain/manifest/rules/harness.js +2 -16
  503. package/dist/domain/manifest/rules/harness.js.map +1 -1
  504. package/dist/domain/manifest/service.schema.js +5 -14
  505. package/dist/domain/manifest/service.schema.js.map +1 -1
  506. package/dist/domain/manifest/skill-frontmatter.js +1 -1
  507. package/dist/domain/manifest/skill-frontmatter.js.map +1 -1
  508. package/dist/domain/manifest/types.js.map +1 -1
  509. package/dist/domain/manifest/workspace.schema.js +9 -0
  510. package/dist/domain/manifest/workspace.schema.js.map +1 -1
  511. package/dist/domain/outcome.js +5 -0
  512. package/dist/domain/outcome.js.map +1 -0
  513. package/dist/domain/path.js +9 -1
  514. package/dist/domain/path.js.map +1 -1
  515. package/dist/domain/preparation.js.map +1 -1
  516. package/dist/domain/projection.js +8 -0
  517. package/dist/domain/projection.js.map +1 -0
  518. package/dist/domain/public-url.js +22 -0
  519. package/dist/domain/public-url.js.map +1 -0
  520. package/dist/domain/release/ci.js +29 -15
  521. package/dist/domain/release/ci.js.map +1 -1
  522. package/dist/domain/release/deps.js +3 -1
  523. package/dist/domain/release/deps.js.map +1 -1
  524. package/dist/domain/release/errors.js +8 -8
  525. package/dist/domain/release/errors.js.map +1 -1
  526. package/dist/domain/release/merge.js +26 -13
  527. package/dist/domain/release/merge.js.map +1 -1
  528. package/dist/domain/release/policy.js +2 -0
  529. package/dist/domain/release/policy.js.map +1 -1
  530. package/dist/domain/release/types.js +2 -1
  531. package/dist/domain/release/types.js.map +1 -1
  532. package/dist/domain/release/version.js +133 -0
  533. package/dist/domain/release/version.js.map +1 -0
  534. package/dist/domain/release/window.js +1 -1
  535. package/dist/domain/release/window.js.map +1 -1
  536. package/dist/domain/report.js +1 -1
  537. package/dist/domain/report.js.map +1 -1
  538. package/dist/domain/setup/names.js +23 -0
  539. package/dist/domain/setup/names.js.map +1 -0
  540. package/dist/domain/setup/planner.js +26 -26
  541. package/dist/domain/setup/planner.js.map +1 -1
  542. package/dist/domain/setup/progress.js +57 -0
  543. package/dist/domain/setup/progress.js.map +1 -0
  544. package/dist/domain/setup/types.js +5 -0
  545. package/dist/domain/setup/types.js.map +1 -1
  546. package/dist/domain/shell.js +0 -7
  547. package/dist/domain/shell.js.map +1 -1
  548. package/dist/domain/skills/frontmatter.js +1 -1
  549. package/dist/domain/skills/frontmatter.js.map +1 -1
  550. package/dist/domain/skills/projection.js +2 -3
  551. package/dist/domain/skills/projection.js.map +1 -1
  552. package/dist/domain/sync-selection.js +2 -4
  553. package/dist/domain/sync-selection.js.map +1 -1
  554. package/dist/domain/toolchain/resolve.js +4 -0
  555. package/dist/domain/toolchain/resolve.js.map +1 -1
  556. package/dist/domain/toolchain/select.js +15 -9
  557. package/dist/domain/toolchain/select.js.map +1 -1
  558. package/dist/domain/toolchain/stderr.js +34 -14
  559. package/dist/domain/toolchain/stderr.js.map +1 -1
  560. package/dist/domain/values.js +18 -2
  561. package/dist/domain/values.js.map +1 -1
  562. package/dist/domain/workspace/commits.js +9 -1
  563. package/dist/domain/workspace/commits.js.map +1 -1
  564. package/dist/domain/workspace/go-work.js +75 -0
  565. package/dist/domain/workspace/go-work.js.map +1 -0
  566. package/dist/domain/workspace/operation-journal.js +93 -0
  567. package/dist/domain/workspace/operation-journal.js.map +1 -0
  568. package/dist/domain/workspace/plan.js +17 -1
  569. package/dist/domain/workspace/plan.js.map +1 -1
  570. package/dist/domain/workspace/ref.js +3 -0
  571. package/dist/domain/workspace/ref.js.map +1 -1
  572. package/dist/infra/config-store.js +8 -13
  573. package/dist/infra/config-store.js.map +1 -1
  574. package/dist/infra/contribution-store.js +21 -67
  575. package/dist/infra/contribution-store.js.map +1 -1
  576. package/dist/infra/harness-state.js +21 -49
  577. package/dist/infra/harness-state.js.map +1 -1
  578. package/dist/infra/local-store.js +8 -15
  579. package/dist/infra/local-store.js.map +1 -1
  580. package/dist/infra/owned-journal.js +57 -0
  581. package/dist/infra/owned-journal.js.map +1 -0
  582. package/dist/infra/projection-store.js +4 -3
  583. package/dist/infra/projection-store.js.map +1 -1
  584. package/dist/infra/tool-history.js +19 -49
  585. package/dist/infra/tool-history.js.map +1 -1
  586. package/dist/infra/trust-store.js +2 -9
  587. package/dist/infra/trust-store.js.map +1 -1
  588. package/dist/infra/workspace-home.js +7 -1
  589. package/dist/infra/workspace-home.js.map +1 -1
  590. package/dist/ports/ci.js +2 -1
  591. package/dist/ports/ci.js.map +1 -1
  592. package/package.json +4 -1
  593. package/skills/fx-workspace/SKILL.md +2 -3
  594. package/skills/fx-workspace/references/commands.md +64 -53
  595. package/skills/fx-workspace/references/workspace-tasks.md +12 -12
  596. package/dist/application/can.js.map +0 -1
  597. package/dist/application/doctor/login.js.map +0 -1
  598. package/dist/application/import.js.map +0 -1
  599. package/dist/application/init/setup.js +0 -125
  600. package/dist/application/init/setup.js.map +0 -1
  601. package/dist/application/preview-initialization.js +0 -41
  602. package/dist/application/preview-initialization.js.map +0 -1
  603. package/dist/application/refresh-manifest.js.map +0 -1
  604. package/dist/application/refresh-workspace-manifest.js +0 -27
  605. package/dist/application/refresh-workspace-manifest.js.map +0 -1
  606. package/dist/application/status.js.map +0 -1
  607. package/dist/application/where.js.map +0 -1
  608. package/dist/application/workspace-context.js.map +0 -1
  609. package/dist/cli/commands/release.js.map +0 -1
  610. package/dist/domain/deadline.js +0 -17
  611. package/dist/domain/deadline.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,172 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## 0.12.0 (2026-10-19)
6
+
7
+ ### Added
8
+
9
+ - Open pull requests on GitHub. `fx source push` works with a manifest source hosted
10
+ on GitHub as it does with Bitbucket: it pushes the selected files to your verified
11
+ personal fork through `gh` and opens, reuses or retires the pull request against
12
+ its upstream, and `--pr` accepts a pull request number or its page on GitHub.
13
+ - Recognize checkouts cloned from github.com over HTTPS or SSH in `fx import`,
14
+ which binds the `github` code host with the matching clone prefix as its host.
15
+ A GitHub Enterprise server is still not guessed from a remote.
16
+ - Add `wecom-calendar-cli`, a local, searchable mirror of your own WeCom calendars
17
+ with their history, to the tool catalog and as a `calendar` provider. `fx can`
18
+ checks each member's sign-in and hands agents `wecom-calendar-cli event list`;
19
+ filling the mirror with `wecom-calendar-cli sync` stays the member's call.
20
+
21
+ ### Changed
22
+
23
+ - Judge a CI build by the commit it checked out when the platform names it.
24
+ `fx release check` passes a successful build of the branch head and fails one of
25
+ another commit, instead of comparing when the build started with when the head was
26
+ written. GitHub Actions names the commit, and Jenkins does with jenkins-cli 0.12.0
27
+ or later; without it the times still decide. CI evidence gains `commit`.
28
+ - Let a `github-actions` ci environment leave out `branch`. `fx release check` then
29
+ counts the runs of the branch it is checking on each side.
30
+ - Keep MCP, rules and hook rows that report `untrusted`, `missing_variables`,
31
+ `invalid` or `busy` in the summary of an `init`, `sync` or `doctor` JSON report.
32
+ They were counted under `omitted`, while a `foreign` or `conflict` row of the same
33
+ stage was shown.
34
+ - Report `TOOL_MISSING` from a companion query, `sentry` or `git` only when the
35
+ executable could not be started. One that started and exited 127 itself now reads
36
+ as the failed query or Git operation it is, in place of a request to install a tool
37
+ that is already there.
38
+ - Say `"<id>" is not an agent fx knows` for an unknown `--agent` of
39
+ `fx can mcp:<name>`, as `fx agent pick` and `fx skill install` do.
40
+ `fx release check` reports an unknown repository in the words of the other
41
+ repository commands, lists the known names when none is close, and keeps the
42
+ workspace in its next step.
43
+ - Quote a directory, tool or repository name that needs it in the command an error
44
+ suggests: the imported directory of `IMPORT_INSIDE_ROOT`, the tools of a withheld
45
+ installation or a missing companion Skill tool, and the repository of
46
+ `PROBE_RECORD_INPUT_REQUIRED`. A path with a space can be pasted as printed.
47
+ - Quote for the configured `command_shell` the commands that follow a workspace
48
+ `relocate` or `rebind`, a registration `fx init` cannot take or resume, a profile
49
+ import or source contribution whose workspace changed, a probe that could not be
50
+ recorded, a manifest import aimed inside the directory it describes, and a
51
+ `--workspace` that names nothing registered. These were printed in POSIX quoting
52
+ whatever the setting.
53
+ - Run git in the C locale when reading a manifest repository or a `local-git` code
54
+ host, as repository synchronization does. Under another locale a file missing from
55
+ a branch was reported as a failed query, because git's translated message went
56
+ unrecognised. A git that cannot be started there is now `TOOL_MISSING`.
57
+ - Close `fx sync` and `fx init` with one line per stage before the verdict: the
58
+ repositories updated, already current, skipped and failed, by name; what the
59
+ manifest refresh did; and the counts other stages report. In a terminal each
60
+ success is counted on the status line instead of printed, and so is the
61
+ `SYNC_PARTIAL` notice the closing view repeats; `--verbose` prints them, and a
62
+ pipe or JSON still receives every record. The status line printed under a Git
63
+ call no longer repeats itself while other lines keep coming.
64
+ - Group sync and init blockers by what resolves them: a sign-in or credentials,
65
+ access refused, or a server this machine cannot reach, which now gets the command
66
+ that checks it again instead of `fx login`; a Prometheus server that does not
67
+ answer counts as unreachable. A check that waited on another blocker, directly or
68
+ through a third, is named under it instead of counted apart, a companion's error
69
+ code follows its message, and a preparation step whose companion says a retry will
70
+ not help shows the companion's own advice instead of suggesting `fx doctor --fix`.
71
+ Preparation checks gain `cause` and `waits_on`.
72
+ - Run the bundled step that reuses an existing login in `fx login` without asking
73
+ and off the terminal, as init and sync do, also with `--no-input`. Its failure
74
+ keeps the companion's message and code instead of `exit 3`, a terminal shows the
75
+ companion's advice in a `LOGIN_STEP_FAILED` notice, and the companion's JSON no
76
+ longer lands on the terminal; fx asks only before a sign-in.
77
+ - Show only non-zero counts and no empty `problems` under the human `fx login`
78
+ table, and leave the `LOGIN_SUMMARY` notice that repeats them to JSON and pipes.
79
+ A passing check says what it established, such as `authenticated is true`,
80
+ instead of repeating its command.
81
+
82
+ ### Fixed
83
+
84
+ - Refuse a recorded harness or contribution path that has a `.git` segment in any
85
+ letter case or a delete character. Harness ownership metadata accepted `.GIT/...`,
86
+ which a case-insensitive volume resolves into a repository's own directory; both
87
+ stores now hold a recorded path to the rule `fx source push` applies to a selection.
88
+ - Report `bundled_tools` in `fx self info` as a path the file system accepts when fx
89
+ is installed under a directory whose name has a space or a non-ASCII character, or
90
+ on Windows. The value was a percent-encoded URL path there.
91
+ - Leave a registration that records no manifest source as it is when
92
+ `fx init --resume` continues it. Resuming wrote `source: "-"` into `config.yaml`:
93
+ `fx sync` then took the workspace for one prepared from stdin and stopped saying
94
+ that it has no source to refresh, and `fx init <dir> --from <source>` refused the
95
+ directory with `SOURCE_MISMATCH` in place of recording the source.
96
+ - Skip a repository whose upstream is still empty, such as one registered with
97
+ `fx repo add` before its first push, instead of failing the whole sync. fx asks
98
+ the remote before calling a branch absent: an empty upstream is a skip with
99
+ outcome `empty_remote` that does not hold readiness back, while an upstream with
100
+ other branches but not the tracked one is a skip with outcome `no_remote_branch`
101
+ that still does, since the manifest may name the wrong branch. An unborn local
102
+ branch fast-forwards once upstream has commits, and a manifest checkout in either
103
+ state is left as it is.
104
+ - Bring earlier environments up to date as soon as `fx login` signs in to one. The
105
+ tool's earlier steps that failed are checked again and those that waited on a
106
+ step now passing are attempted, so environments sharing a stored login no longer
107
+ stay failed or blocked in the summary. No setup action runs a second time; a check
108
+ that still fails keeps its result and says what it found under `recheck`.
109
+ - Say what became of the manifest checkout in its sync row instead of always
110
+ "refreshed": refreshed, already current, or kept with the reason, adding when the
111
+ commits of the branch it was kept on are already upstream.
112
+ - Read the reason a failing check prints inside a JSON object after a prefix, such
113
+ as kubectl's `Error from server (Forbidden): {…}`, instead of quoting the object.
114
+
115
+ ## 0.11.0 (2026-10-12)
116
+
117
+ ### Added
118
+
119
+ - Keep a `go.work` at the workspace root when the manifest sets `go.workspace: true`.
120
+ `fx init` and `fx sync` list every selected checkout that has a `go.mod` at the
121
+ newest `go` version they require, so each module builds against its siblings'
122
+ checkouts. A repository not cloned yet is left out, fx replaces or removes only
123
+ the `go.work` it wrote, and `fx sync --only go` refreshes it alone. `go.work` and
124
+ `go.work.sum` no longer count as stray root entries in such a workspace.
125
+ - Bind a workspace to GitHub. The `github` code-host provider and the
126
+ `github-actions` ci provider both drive the GitHub CLI `gh`, which joins the
127
+ tool catalog with one sign-in per host for both. `fx release check` reads
128
+ branches, commits, files and the last workflow run of a branch from GitHub just
129
+ as it does from Bitbucket and Jenkins; a ci environment can narrow the runs it
130
+ counts to one branch and one trigger. Opening pull requests through fx is not
131
+ available on GitHub yet.
132
+
133
+ ### Changed
134
+
135
+ - Rename `fx release` to `fx release check`, so the name says it checks a release
136
+ rather than making one. `fx release` keeps working as a compatibility name.
137
+ - Say what each release would ship. `fx release check` opens each repository with
138
+ the version its target branch declares, the head commits of both branches and how
139
+ many commits on the source branch are not merged into the target yet, by how many
140
+ people; repositories whose checks all passed close the output one line each with the
141
+ same. JSON reports gain `repos[]` with these facts, summaries included; every
142
+ existing field is unchanged.
143
+ - Name the commit a CI build is judged against, say "not merged into main" and "not
144
+ merged back into dev" in the merge check, and use each platform's own name for the
145
+ job or project in CI and error messages. CI evidence gains `head`.
146
+ - Show a repository's `release.note` in the release report, as the manifest schema
147
+ describes.
148
+
149
+ ### Fixed
150
+
151
+ - Resolve every relative link in the source AGENTS.md that names a file of the
152
+ manifest source, such as `CONTRIBUTING.md`, in the guide derived at the
153
+ workspace root. Only links into `README.md`, `docs/` and `skills/` resolved
154
+ before, so the others pointed at files the root does not have.
155
+ - Stop `fx manifest lint` from asking for a code-host provider when every
156
+ repository names its `upstream`, since such a workspace reaches no code host.
157
+ - Pass every argument intact to a companion that Windows starts through a batch
158
+ file (`.cmd`, as npm, Scoop and Chocolatey install them). cmd.exe no longer
159
+ interprets characters such as `&`, `|`, `%` or `^` in an argument.
160
+ - Read a local Git remote given as a Windows path, such as `C:\host\fx\api.git`,
161
+ as project and name, so import, adoption, forks and `fx source push` work with it.
162
+ Manifest documents are named with forward slashes in stdin bundles and source
163
+ contributions on every platform, and import writes repository paths with them.
164
+ - Stop the PowerShell hook from writing task results into the agent's context,
165
+ passing fx its input with a byte order mark, and writing progress records to
166
+ stderr.
167
+ - Link source files with forward slashes in guides derived on Windows, and report
168
+ the bundled tools catalog in `fx self info` as a file path, also when the install
169
+ path contains spaces.
170
+
5
171
  ## 0.10.1 (2026-10-12)
6
172
 
7
173
  ### Added
package/README.md CHANGED
@@ -73,36 +73,16 @@ PowerShell commands and Registry routing. For updates, use
73
73
  ## Quick start
74
74
 
75
75
  You need two things: the manifest source supplied by your team and a directory
76
- for the workspace. You can ask your coding agent: “Use fx to prepare this manifest
77
- in this directory.” If you are running the commands yourself:
76
+ for the workspace. Preview the plan, then apply it:
78
77
 
79
78
  ```sh
80
79
  fx init ./work --from <manifest-repository> --dry-run
81
80
  fx init ./work --from <manifest-repository>
82
81
  ```
83
82
 
84
- fx checks the source, prepares authorized local tools and configuration, clones
85
- the selected repositories, and prepares the Agent guides and Skills. The name
86
- is derived from the directory and avoids existing registrations. Existing files
87
- and completed work are preserved.
88
- Review the displayed commands before approving new manifest actions.
89
-
90
- When fx reports **Ready to work**, you can start. If it needs personal sign-in,
91
- access or approval, it reports the remaining items together. Complete those
92
- items and use the printed continuation command:
93
-
94
- ```sh
95
- fx init --resume --workspace work
96
- ```
97
-
98
- A continuation verifies current state and skips completed preparation. It does
99
- not reimport a directory source or rebuild checkouts. You do not need to choose
100
- internal stages or run a separate diagnostic sequence to finish initialization.
101
-
102
- New workspaces select all shared repositories. To limit the first download,
103
- [choose repositories](docs/user-guide.md#choose-repositories-before-downloading) and add `--repos`
104
- to the initial preview and apply. Existing directories are adopted automatically.
105
- For everyday updates use `fx sync`; `fx status` shows repository state. To work on a repository not downloaded yet, ask your Agent or follow `fx repo show <name>` and its `next_steps`.
83
+ The [quick start](docs/user-guide.md#quick-start) explains what init prepares,
84
+ how to continue after a sign-in or approval, and how to
85
+ [limit the first download](docs/user-guide.md#choose-repositories-before-downloading).
106
86
 
107
87
  ## Everyday commands
108
88
 
@@ -118,7 +98,7 @@ For everyday updates use `fx sync`; `fx status` shows repository state. To work
118
98
  | List capabilities | `fx can` |
119
99
  | Check a capability | `fx can <capability> --env <environment>` |
120
100
  | Refresh guides and Skills | `fx sync --only docs,skills` |
121
- | Inspect release checks | `fx release --format json` |
101
+ | Check what is ready to release | `fx release check` |
122
102
 
123
103
  Use `repo list`, `env list`, `agent list` and `tool list` to discover valid names.
124
104
  Use `repo select` and `env select` to choose an exact set, `--all` to follow the
@@ -126,33 +106,19 @@ team's full set including future additions, or `--none` to select nothing.
126
106
  `pick/unpick` add or remove individual names. First-time setup can limit cloning
127
107
  with `fx init ./work --from <manifest-repository> --repos example-api,example-web --dry-run`.
128
108
  `where` prints coordinates and commands; it does not execute those commands.
129
- `release` reports on your repositories; it does not publish packages or deploy them.
109
+ `release check` shows what each repository would release and whether it is ready; it
110
+ never publishes or deploys.
130
111
  The [CLI reference](docs/cli/README.md) and `fx <command> --help` own exact syntax.
131
112
 
132
113
  ## For coding agents
133
114
 
134
115
  Run `fx self info --format json`, then read `SKILL.md` in its `bundled_skill`
135
- directory, or run `fx skill show`. No Skill-loaded environment declaration is
136
- required. Global Skill installation is optional. Start sessions at the registered workspace root to use team guidance.
137
-
138
- Document updates recheck their planning snapshots and return `DOCS_WRITE_CONFLICT`
139
- when they detect an intervening change. Partial docs results distinguish completed and
140
- pending writes; inspect them before retrying.
141
-
142
- `login` preserves partial results on stdout when it needs human input or a later
143
- step fails. Read those results alongside stderr errors before retrying; the
144
- [user guide](docs/user-guide.md) describes the result and recovery fields.
145
-
146
- `init`, `sync`, `doctor` and `release` summarize JSON by default. Use `--details`
147
- for full results or `--fields` to select fields from those results in any output
148
- format. Explicit projection emits one report object in JSON/NDJSON and selected
149
- key/value pairs in human output. Keep stdout
150
- separate from diagnostic stderr. Do not repeat a write just to obtain a different
151
- view of its output.
152
-
153
- For `init`, `sync` and `doctor`, read `preparation.state` and the scoped blockers.
154
- Incomplete preparation exits 12; continuation is `fx init --resume --workspace <name>`.
155
- Release checks retain their separate `ok` and `complete` fields.
116
+ directory, or run `fx skill show`. Global Skill installation is optional. Start
117
+ sessions at the registered workspace root to use team guidance.
118
+
119
+ The [user guide](docs/user-guide.md#for-coding-agents) explains structured
120
+ results, completion verdicts and recovery; the bundled
121
+ [Skill](skills/fx-workspace/SKILL.md) routes each task to its reference.
156
122
 
157
123
  ## Configuration
158
124
 
@@ -46,6 +46,20 @@ tools:
46
46
  desc: Issues, comments, transitions and worklogs in Jira
47
47
  install: [{ via: npm, spec: '@angelmsger/jira-cli' }]
48
48
  docs: https://github.com/AngelMsger/jira-cli
49
+ - name: wecom-calendar-cli
50
+ min_version: '0.5.0'
51
+ desc: A local, searchable mirror of your own WeCom calendars, history included
52
+ install: [{ via: npm, spec: '@angelmsger/wecom-calendar-cli' }]
53
+ docs: https://github.com/AngelMsger/wecom-calendar-cli
54
+ - name: gh
55
+ min_version: '2.50.0'
56
+ desc: Repositories, branches, pull requests and Actions runs on GitHub
57
+ install:
58
+ - { via: brew, spec: gh }
59
+ - { via: manual }
60
+ skill: { command: [] }
61
+ auth: { command: [auth, status] }
62
+ docs: https://cli.github.com/
49
63
  - name: sentry
50
64
  min_version: '0.44.1'
51
65
  desc: Issues, events and releases in Sentry
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto';
3
3
  import { isDeepStrictEqual } from 'node:util';
4
4
  import { parse, stringify } from 'smol-toml';
5
5
  import { assessMcpSupport } from '../../domain/harness/mcp.js';
6
+ import { isRecord } from '../../domain/values.js';
6
7
  import { mcpLaunch } from './mcp-launch.js';
7
8
  export class TomlMcpCodec {
8
9
  platform;
@@ -60,9 +61,6 @@ function readToml(text) {
60
61
  return undefined;
61
62
  }
62
63
  }
63
- function isRecord(value) {
64
- return typeof value === 'object' && value !== null && !Array.isArray(value);
65
- }
66
64
  function findFragment(text, markers) {
67
65
  const start = text.indexOf(markers.start);
68
66
  if (start < 0 || (start > 0 && text[start - 1] !== '\n'))
@@ -1 +1 @@
1
- {"version":3,"file":"toml-mcp.js","sourceRoot":"","sources":["../../../src/adapters/agent-host/toml-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toml-mcp.js","sourceRoot":"","sources":["../../../src/adapters/agent-host/toml-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ // WeCom calendars through the family's wecom-calendar-cli, which mirrors a member's own
2
+ // calendars into a local store over CalDAV and reads them from there, history included;
3
+ // the official wecom-cli lists only the month around today that its bot can see. Each
4
+ // member signs in with their WeCom email and an app-specific CalDAV password, so
5
+ // readiness is a stored credential; filling the store with `sync` is the member's call.
6
+ import { familyService } from '../../family/service.js';
7
+ const TOOL = 'wecom-calendar-cli';
8
+ const MIN_VERSION = '0.5.0';
9
+ const EVENTS = ['event', 'list', '--format', 'json'];
10
+ export const wecomCalendarCliProvider = {
11
+ id: TOOL,
12
+ capability: 'calendar',
13
+ settings: {
14
+ fields: ['base_url', 'context', 'auth_scheme', 'credential_url'],
15
+ authSchemes: ['basic'],
16
+ },
17
+ reference: true,
18
+ tools: [TOOL],
19
+ vars: [],
20
+ service: (settings) => familyService(TOOL, settings, MIN_VERSION),
21
+ recipes: [
22
+ {
23
+ id: 'calendar-access',
24
+ tool: TOOL,
25
+ perEnv: false,
26
+ kind: 'run',
27
+ phase: 'authenticate',
28
+ title: 'Sign in to your WeCom calendars',
29
+ instructions: `Each member signs in with their own WeCom email and an app-specific CalDAV password from the WeCom mobile app; ${TOOL} auth guide explains where it comes from. Run ${TOOL} sync afterwards to fill the local store.`,
30
+ run: ['auth', 'login'],
31
+ verify: {
32
+ command: ['auth', 'status', '--format', 'json'],
33
+ json: { path: 'configured', equals: true, reason: 'detail' },
34
+ },
35
+ },
36
+ ],
37
+ create: (_deps, vars) => ({
38
+ label: 'WeCom calendar events from the local mirror',
39
+ command: [TOOL, ...(vars['context'] ? ['--use-context', vars['context']] : []), ...EVENTS],
40
+ }),
41
+ };
42
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/calendar/wecom-calendar-cli/provider.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wFAAwF;AACxF,sFAAsF;AACtF,iFAAiF;AACjF,wFAAwF;AAIxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,wBAAwB,GAAmC;IACtE,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC;QAChE,WAAW,EAAE,CAAC,OAAO,CAAC;KACvB;IACD,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IACjE,OAAO,EAAE;QACP;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,iCAAiC;YACxC,YAAY,EAAE,kHAAkH,IAAI,iDAAiD,IAAI,2CAA2C;YACpO,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtB,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;gBAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;aAC7D;SACF;KACF;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK,EAAE,6CAA6C;QACpD,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;KAC3F,CAAC;CACH,CAAC"}
@@ -0,0 +1,97 @@
1
+ // GitHub Actions through gh: a job is one workflow of one repository, narrowed to the
2
+ // runs of one branch and one trigger. One workflow often runs on pushes, pull requests
3
+ // and by hand, and only the coordinate knows which of those builds what ships; a
4
+ // coordinate that names no branch counts the runs of the branch being checked. A
5
+ // workflow that is not there is an answer (undefined), a workflow that cannot be read
6
+ // is an error.
7
+ import { EXIT, objectOf, queryFailed, stringAt, unreadableError } from '../../family/cli.js';
8
+ import { BINARY, GhCli, qualifiedRepository } from '../../github/gh.js';
9
+ import { TemplatePlatform } from '../../platform/template-platform.js';
10
+ export const ID = 'github-actions';
11
+ const QUERY = { timeoutMs: 15_000 };
12
+ const RUNS = ['run', 'list', '--repo', '{repository}', '--workflow', '{workflow}'];
13
+ const FIELDS = 'number,status,conclusion,startedAt,createdAt,url,headSha';
14
+ // A run still on its way, by gh's status; a finished run says how it ended instead.
15
+ const PENDING = new Set(['queued', 'in_progress', 'waiting', 'requested', 'pending']);
16
+ const CONCLUSIONS = {
17
+ success: 'success',
18
+ failure: 'failure',
19
+ timed_out: 'failure',
20
+ startup_failure: 'failure',
21
+ cancelled: 'aborted',
22
+ skipped: 'not_built',
23
+ };
24
+ export class GitHubActionsCi {
25
+ process;
26
+ id = ID;
27
+ capability = 'ci';
28
+ platform = new TemplatePlatform({
29
+ id: ID,
30
+ capability: 'ci',
31
+ label: 'GitHub Actions workflow {workflow} in {repository}',
32
+ optionalFlags: { branch: '--branch', event: '--event' },
33
+ command: [BINARY, ...RUNS],
34
+ probe: { label: 'workflow {workflow} in {repository}', command: [BINARY, ...RUNS] },
35
+ });
36
+ constructor(process) {
37
+ this.process = process;
38
+ }
39
+ locate(vars) {
40
+ return this.platform.locate(qualified(vars));
41
+ }
42
+ probe(vars) {
43
+ return this.platform.probe(qualified(vars));
44
+ }
45
+ async lastBuild(vars, query) {
46
+ const { repository = '', workflow = '', branch = query.branch, event } = qualified(vars);
47
+ const what = `the last run of ${workflow} in ${repository}${branch ? ` on ${branch}` : ''}`;
48
+ const call = await new GhCli(this.process).call([
49
+ 'run',
50
+ 'list',
51
+ '--repo',
52
+ repository,
53
+ '--workflow',
54
+ workflow,
55
+ ...(branch ? ['--branch', branch] : []),
56
+ ...(event ? ['--event', event] : []),
57
+ '--limit',
58
+ '1',
59
+ '--json',
60
+ FIELDS,
61
+ ], QUERY);
62
+ if (call.code === EXIT.not_found)
63
+ return undefined;
64
+ if (call.code !== 0 || !Array.isArray(call.data))
65
+ throw queryFailed(BINARY, call, `read ${what}`);
66
+ // A workflow that never ran on that branch has no build to judge.
67
+ if (call.data.length === 0)
68
+ return undefined;
69
+ const run = objectOf(call.data[0]);
70
+ if (run === undefined || typeof run['number'] !== 'number')
71
+ throw unreadableError(BINARY, what);
72
+ return {
73
+ number: run['number'],
74
+ status: statusOf(run),
75
+ startedAt: stringAt(run, 'startedAt') ?? stringAt(run, 'createdAt') ?? null,
76
+ url: stringAt(run, 'url') ?? null,
77
+ commit: stringAt(run, 'headSha') ?? null,
78
+ };
79
+ }
80
+ }
81
+ // Every command, run or printed, names the repository's host, so GH_HOST cannot send
82
+ // it elsewhere.
83
+ function qualified(vars) {
84
+ const { repository } = vars;
85
+ return repository === undefined
86
+ ? vars
87
+ : { ...vars, repository: qualifiedRepository(repository).repository };
88
+ }
89
+ function statusOf(run) {
90
+ const status = stringAt(run, 'status') ?? '';
91
+ if (PENDING.has(status))
92
+ return 'building';
93
+ if (status !== 'completed')
94
+ return 'unknown';
95
+ return CONCLUSIONS[stringAt(run, 'conclusion') ?? ''] ?? 'unknown';
96
+ }
97
+ //# sourceMappingURL=ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/ci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ // GitHub Actions through gh: one sign-in, shared with the github code host; each
2
+ // environment names the workflow and trigger that build it, and may name the branch.
3
+ import { BINARY, GH_RECIPES, qualifiedRepository } from '../../github/gh.js';
4
+ import { GitHubActionsCi, ID } from './ci.js';
5
+ export const githubActionsProvider = {
6
+ id: ID,
7
+ capability: 'ci',
8
+ tools: [BINARY],
9
+ recipes: GH_RECIPES,
10
+ vars: [
11
+ {
12
+ name: 'repository',
13
+ desc: '[HOST/]OWNER/NAME of the repository the workflows live in (github.com without a host), may use {repo}',
14
+ required: true,
15
+ },
16
+ ],
17
+ envVars: [
18
+ { name: 'workflow', desc: 'workflow file name or name, e.g. ci.yml', required: true },
19
+ {
20
+ name: 'branch',
21
+ desc: 'only runs of this branch; without it, release check counts the branch it checks',
22
+ required: false,
23
+ },
24
+ {
25
+ name: 'event',
26
+ desc: 'only runs this trigger started, e.g. push; without it, any trigger',
27
+ required: false,
28
+ },
29
+ ],
30
+ recipeVars: (vars) => ({ hostname: qualifiedRepository(vars['repository'] ?? '').hostname }),
31
+ create: (deps) => new GitHubActionsCi(deps.process),
32
+ };
33
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/provider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qFAAqF;AAIrF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,EAAE,EAAE,EAAE;IACN,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,uGAAuG;YAC7G,QAAQ,EAAE,IAAI;SACf;KACF;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,yCAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrF;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,iFAAiF;YACvF,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,oEAAoE;YAC1E,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5F,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;CACpD,CAAC"}
@@ -1,6 +1,10 @@
1
1
  // Jenkins through jenkins-cli: coordinates and probe come from the shared
2
2
  // template; the one query reads a job's latest build. A job that is not
3
- // there is an answer (undefined), a job that cannot be read is an error.
3
+ // there is an answer (undefined), a job that cannot be read is an error. A job
4
+ // path is already one branch's job, so the branch being checked changes
5
+ // nothing here. jenkins-cli names the commit a build checked out from 0.12.0
6
+ // on, and only when it can tell the job's own checkout apart; otherwise the
7
+ // commit stays unknown.
4
8
  import { EXIT, FamilyCli, objectOf, queryFailed, stringAt, unreadableError, } from '../../family/cli.js';
5
9
  import { TemplatePlatform } from '../../platform/template-platform.js';
6
10
  export const BINARY = 'jenkins-cli';
@@ -52,6 +56,7 @@ export class JenkinsCi {
52
56
  status: statusOf(data),
53
57
  startedAt: stringAt(data, 'started_at') ?? null,
54
58
  url: stringAt(data, 'url') ?? null,
59
+ commit: stringAt(objectOf(data['revision']) ?? {}, 'sha') ?? null,
55
60
  };
56
61
  }
57
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/ci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/ci.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- // Kubernetes through kubectl, read-only by construction: the only verbs that ever appear
2
- // in a generated vector are get, describe, logs, top, auth can-i and config get-
3
- // contexts; a test pins that.
1
+ // Kubernetes through kubectl, read-only by construction: every generated vector leads
2
+ // with one of READ_ONLY_VERBS, and a test pins that leading verb.
4
3
  import { TemplatePlatform } from '../../platform/template-platform.js';
5
4
  import { KUBECTL_RECIPES } from './recipes.js';
6
5
  export const READ_ONLY_VERBS = ['get', 'describe', 'logs', 'top', 'auth', 'config'];
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/cluster/kubectl/provider.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,iFAAiF;AACjF,8BAA8B;AAI9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAE7F,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChF;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qEAAqE;YAC3E,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,gBAAgB,CAAC;QACnB,EAAE,EAAE,SAAS;QACb,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;YACP,SAAS;YACT,cAAc;YACd,cAAc;YACd,WAAW;YACX,WAAW;YACX,KAAK;YACL,MAAM;YACN,IAAI;YACJ,aAAa;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE;gBACP,SAAS;gBACT,cAAc;gBACd,cAAc;gBACd,WAAW;gBACX,WAAW;gBACX,KAAK;gBACL,WAAW;gBACX,IAAI;gBACJ,aAAa;aACd;SACF;KACF,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/cluster/kubectl/provider.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,kEAAkE;AAIlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAE7F,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChF;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qEAAqE;YAC3E,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,gBAAgB,CAAC;QACnB,EAAE,EAAE,SAAS;QACb,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;YACP,SAAS;YACT,cAAc;YACd,cAAc;YACd,WAAW;YACX,WAAW;YACX,KAAK;YACL,MAAM;YACN,IAAI;YACJ,aAAa;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE;gBACP,SAAS;gBACT,cAAc;gBACd,cAAc;gBACd,WAAW;gBACX,WAAW;gBACX,KAAK;gBACL,WAAW;gBACX,IAAI;gBACJ,aAAa;aACd;SACF;KACF,CAAC;CACL,CAAC"}
@@ -1,32 +1,10 @@
1
- // Contribution calls retain family status categories but never echo server
2
- // messages that may contain submitted text. Tool/auth failures carry a handoff.
3
- import { DevkitError } from '../../../domain/errors.js';
4
- import { EXIT, queryFailed } from '../../family/cli.js';
1
+ // Contribution calls through bitbucket-cli; the failure rules are every code host's.
2
+ import { callContribution as familyCall, contributionFailed as failed, } from '../../family/contribution.js';
5
3
  import { BINARY } from './client.js';
6
- export async function callContribution({ cli, args }) {
7
- try {
8
- const call = await cli.call(args, { timeoutMs: 15000 });
9
- if (call.code === EXIT.auth)
10
- throw prerequisite('LOGIN_REQUIRED', 'Sign in to the code host', `fx login ${BINARY}`);
11
- return call;
12
- }
13
- catch (error) {
14
- if (error instanceof DevkitError && error.code === 'TOOL_MISSING')
15
- throw prerequisite('TOOL_MISSING', 'Install the code-host companion CLI', `fx tool install ${BINARY}`);
16
- throw error;
17
- }
4
+ export function callContribution({ cli, args }) {
5
+ return familyCall(BINARY, () => cli.call(args, { timeoutMs: 15000 }));
18
6
  }
19
7
  export function contributionFailed(call) {
20
- return queryFailed(BINARY, { ...call, data: undefined, stdout: '', error: undefined }, 'complete the contribution request');
21
- }
22
- function prerequisite(code, title, command) {
23
- return new DevkitError(code === 'LOGIN_REQUIRED' ? 'auth' : 'config', code, title, {
24
- nextSteps: [command],
25
- handoff: {
26
- summary: title,
27
- command,
28
- userSteps: [{ id: 'source-code-host', kind: 'manual', title }],
29
- },
30
- });
8
+ return failed(BINARY, call);
31
9
  }
32
10
  //# sourceMappingURL=contribution-call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contribution-call.js","sourceRoot":"","sources":["../../../../src/adapters/code-host/bitbucket-cli/contribution-call.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gFAAgF;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAmC,MAAM,aAAa,CAAC;AAOtE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAoB;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACzB,MAAM,YAAY,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAC/D,MAAM,YAAY,CAChB,cAAc,EACd,qCAAqC,EACrC,mBAAmB,MAAM,EAAE,CAC5B,CAAC;QACJ,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,OAAO,WAAW,CAChB,MAAM,EACN,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAC1D,mCAAmC,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe;IAChE,OAAO,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;QACjF,SAAS,EAAE,CAAC,OAAO,CAAC;QACpB,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO;YACP,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SAC/D;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"contribution-call.js","sourceRoot":"","sources":["../../../../src/adapters/code-host/bitbucket-cli/contribution-call.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAGrF,OAAO,EACL,gBAAgB,IAAI,UAAU,EAC9B,kBAAkB,IAAI,MAAM,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAmC,MAAM,aAAa,CAAC;AAOtE,MAAM,UAAU,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAoB;IAC9D,OAAO,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC"}