@fitlab-ai/agent-infra 0.9.12 → 0.9.14

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 (402) hide show
  1. package/README.md +11 -11
  2. package/README.zh-CN.md +11 -11
  3. package/bin/cli.ts +26 -9
  4. package/dist/bin/cli.js +173 -157
  5. package/dist/bin/internal-cli.js +66 -40
  6. package/dist/lib/agent-client.js +5 -0
  7. package/dist/lib/agent-clients/next-steps.js +6 -1
  8. package/dist/lib/decide.js +3 -3
  9. package/dist/lib/internal/agent-client.js +5 -2
  10. package/dist/lib/internal/cli-route-inventory.js +152 -0
  11. package/dist/lib/internal/codex-lifecycle.js +9 -6
  12. package/dist/lib/internal/codex-sandbox-controller.js +8 -2
  13. package/dist/lib/internal/git-workflow.js +10 -6
  14. package/dist/lib/internal/platform-checks.js +19 -7
  15. package/dist/lib/internal/platform-comment.js +25 -13
  16. package/dist/lib/internal/platform-context.js +6 -3
  17. package/dist/lib/internal/platform-issue.js +20 -13
  18. package/dist/lib/internal/platform-metadata.js +88 -0
  19. package/dist/lib/internal/platform-pr-review.js +26 -13
  20. package/dist/lib/internal/platform-pr.js +84 -31
  21. package/dist/lib/internal/platform-release-notes.js +9 -6
  22. package/dist/lib/internal/platform-security.js +93 -0
  23. package/dist/lib/internal/pr-review-grade.js +25 -12
  24. package/dist/lib/internal/release-workflow.js +23 -9
  25. package/dist/lib/internal/sandbox-control.js +50 -7
  26. package/dist/lib/internal/task-activity.js +16 -7
  27. package/dist/lib/internal/task-artifact.js +235 -24
  28. package/dist/lib/internal/task-context.js +4 -1
  29. package/dist/lib/internal/task-create.js +50 -17
  30. package/dist/lib/internal/task-delivery.js +4 -1
  31. package/dist/lib/internal/task-event.js +10 -4
  32. package/dist/lib/internal/task-finalization.js +6 -3
  33. package/dist/lib/internal/task-invalidation.js +63 -0
  34. package/dist/lib/internal/task-ledger.js +20 -6
  35. package/dist/lib/internal/task-lifecycle.js +6 -3
  36. package/dist/lib/internal/task-operation-registry.js +421 -0
  37. package/dist/lib/internal/task-orchestration.js +12 -0
  38. package/dist/lib/internal/task-override.js +14 -7
  39. package/dist/lib/internal/task-qualification.js +90 -0
  40. package/dist/lib/internal/task-review.js +7 -4
  41. package/dist/lib/internal/task-short-id.js +11 -1
  42. package/dist/lib/internal/task-snapshot.js +4 -1
  43. package/dist/lib/internal/task-validate.js +7 -2
  44. package/dist/lib/internal/task-verify.js +11 -7
  45. package/dist/lib/internal/task-warning.js +11 -4
  46. package/dist/lib/platform/adapters.js +1 -3
  47. package/dist/lib/platform/change-request-git-evidence.js +27 -7
  48. package/dist/lib/platform/comment-safety.js +226 -0
  49. package/dist/lib/platform/completion-backfill.js +6 -5
  50. package/dist/lib/platform/context.js +70 -130
  51. package/dist/lib/platform/github-client.js +1 -1
  52. package/dist/lib/platform/github-provider.js +1130 -0
  53. package/dist/lib/platform/in-label-sync.js +143 -0
  54. package/dist/lib/platform/issue-comments.js +237 -72
  55. package/dist/lib/platform/issues.js +335 -189
  56. package/dist/lib/platform/metadata-labels.js +6 -2
  57. package/dist/lib/platform/none-provider.js +28 -0
  58. package/dist/lib/platform/pr-change-report.js +545 -0
  59. package/dist/lib/platform/pr-checks.js +119 -104
  60. package/dist/lib/platform/pr-review.js +88 -72
  61. package/dist/lib/platform/pr-summary.js +541 -50
  62. package/dist/lib/platform/provider-bridge.js +45 -0
  63. package/dist/lib/platform/provider-contract.d.ts +553 -0
  64. package/dist/lib/platform/provider-contract.js +99 -0
  65. package/dist/lib/platform/provider-loader.js +251 -0
  66. package/dist/lib/platform/provider-validation.js +577 -0
  67. package/dist/lib/platform/pull-request-metadata.js +8 -6
  68. package/dist/lib/platform/pull-requests.js +734 -543
  69. package/dist/lib/platform/release-notes.js +78 -55
  70. package/dist/lib/platform/releases.js +79 -50
  71. package/dist/lib/platform/repository-metadata.js +377 -0
  72. package/dist/lib/platform/resource-identity.d.ts +26 -0
  73. package/dist/lib/platform/resource-identity.js +92 -0
  74. package/dist/lib/platform/security-alerts.js +155 -0
  75. package/dist/lib/platform/task-identities.js +31 -0
  76. package/dist/lib/platform/verification-required.js +11 -12
  77. package/dist/lib/platform/verification-sync.js +129 -248
  78. package/dist/lib/pr-review/evidence-grading.js +19 -6
  79. package/dist/lib/process-data/index.js +7 -0
  80. package/dist/lib/run/index.js +68 -23
  81. package/dist/lib/sandbox/commands/control-status.js +22 -0
  82. package/dist/lib/sandbox/commands/create.js +32 -6
  83. package/dist/lib/sandbox/commands/ls.js +5 -0
  84. package/dist/lib/sandbox/commands/rm.js +827 -120
  85. package/dist/lib/sandbox/commands/show.js +16 -0
  86. package/dist/lib/sandbox/control/client.js +174 -19
  87. package/dist/lib/sandbox/control/completed-reentry.js +85 -0
  88. package/dist/lib/sandbox/control/container-identity.js +28 -31
  89. package/dist/lib/sandbox/control/executor.js +151 -16
  90. package/dist/lib/sandbox/control/lifecycle.js +621 -127
  91. package/dist/lib/sandbox/control/native-file-lock.js +177 -0
  92. package/dist/lib/sandbox/control/protocol.js +77 -0
  93. package/dist/lib/sandbox/control/server.js +677 -34
  94. package/dist/lib/sandbox/control/state.js +209 -4
  95. package/dist/lib/sandbox/control/task-view.js +183 -0
  96. package/dist/lib/sandbox/engines/authority.js +289 -0
  97. package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
  98. package/dist/lib/sandbox/index.js +5 -0
  99. package/dist/lib/sandbox/recovery.js +21 -1
  100. package/dist/lib/sandbox/workspace-view.js +2 -1
  101. package/dist/lib/sandbox/worktree-safety.js +4 -1
  102. package/dist/lib/server/index.js +8 -0
  103. package/dist/lib/server/protocol.js +38 -1
  104. package/dist/lib/task/activity-log.js +8 -1
  105. package/dist/lib/task/artifact-lifecycle.js +75 -18
  106. package/dist/lib/task/artifact-operations.js +520 -0
  107. package/dist/lib/task/artifact-repair-intent.js +59 -0
  108. package/dist/lib/task/artifact-schema.js +135 -0
  109. package/dist/lib/task/capabilities.js +310 -0
  110. package/dist/lib/task/commands/status.js +32 -0
  111. package/dist/lib/task/commit-operation.js +12 -1
  112. package/dist/lib/task/control-authority.js +12 -5
  113. package/dist/lib/task/create-service.js +111 -12
  114. package/dist/lib/task/create.js +25 -0
  115. package/dist/lib/task/current-contract.js +5 -1
  116. package/dist/lib/task/decision-details.js +1 -1
  117. package/dist/lib/task/events.js +416 -17
  118. package/dist/lib/task/finalization.js +37 -13
  119. package/dist/lib/task/human-override.js +58 -36
  120. package/dist/lib/task/index.js +11 -3
  121. package/dist/lib/task/invalidation-command.js +86 -0
  122. package/dist/lib/task/invalidation.js +260 -0
  123. package/dist/lib/task/ledger-intents.js +37 -0
  124. package/dist/lib/task/local-artifact-finalization.js +299 -0
  125. package/dist/lib/task/orchestration.js +240 -144
  126. package/dist/lib/task/pr-delivery-fact.js +102 -101
  127. package/dist/lib/task/qualification-audit.js +490 -0
  128. package/dist/lib/task/qualification-confirmation.js +109 -0
  129. package/dist/lib/task/qualification-intents.js +148 -0
  130. package/dist/lib/task/review-artifacts.js +22 -23
  131. package/dist/lib/task/review-finalization.js +121 -4
  132. package/dist/lib/task/review-fingerprint.js +24 -2
  133. package/dist/lib/task/rework-intent.js +138 -0
  134. package/dist/lib/task/sections.js +6 -4
  135. package/dist/lib/task/skill-scope.js +23 -0
  136. package/dist/lib/task/task-execution-lock.js +27 -17
  137. package/dist/lib/task/verification-config.js +11 -0
  138. package/dist/lib/task/verification-engine.js +93 -16
  139. package/dist/lib/task/verification.js +3 -3
  140. package/dist/lib/task/workflow-warning-intents.js +1 -1
  141. package/dist/lib/task/write.js +11 -0
  142. package/dist/lib/version.js +11 -1
  143. package/dist/lifecycle-build-manifest.json +3 -3
  144. package/lib/agent-client.ts +9 -0
  145. package/lib/agent-clients/next-steps.ts +6 -1
  146. package/lib/decide.ts +3 -3
  147. package/lib/init.ts +1 -1
  148. package/lib/internal/agent-client.ts +4 -2
  149. package/lib/internal/cli-route-inventory.ts +140 -0
  150. package/lib/internal/codex-lifecycle.ts +8 -6
  151. package/lib/internal/codex-sandbox-controller.ts +7 -2
  152. package/lib/internal/git-workflow.ts +9 -6
  153. package/lib/internal/platform-checks.ts +14 -6
  154. package/lib/internal/platform-comment.ts +20 -12
  155. package/lib/internal/platform-context.ts +5 -3
  156. package/lib/internal/platform-issue.ts +17 -11
  157. package/lib/internal/platform-metadata.ts +70 -0
  158. package/lib/internal/platform-pr-review.ts +23 -12
  159. package/lib/internal/platform-pr.ts +65 -27
  160. package/lib/internal/platform-release-notes.ts +8 -6
  161. package/lib/internal/platform-security.ts +83 -0
  162. package/lib/internal/pr-review-grade.ts +20 -11
  163. package/lib/internal/release-workflow.ts +21 -9
  164. package/lib/internal/sandbox-control.ts +44 -6
  165. package/lib/internal/task-activity.ts +15 -7
  166. package/lib/internal/task-artifact.ts +204 -22
  167. package/lib/internal/task-context.ts +3 -1
  168. package/lib/internal/task-create.ts +78 -17
  169. package/lib/internal/task-delivery.ts +3 -1
  170. package/lib/internal/task-event.ts +9 -4
  171. package/lib/internal/task-finalization.ts +6 -4
  172. package/lib/internal/task-invalidation.ts +41 -0
  173. package/lib/internal/task-ledger.ts +21 -8
  174. package/lib/internal/task-lifecycle.ts +5 -3
  175. package/lib/internal/task-operation-registry.ts +482 -0
  176. package/lib/internal/task-orchestration.ts +12 -0
  177. package/lib/internal/task-override.ts +15 -9
  178. package/lib/internal/task-qualification.ts +61 -0
  179. package/lib/internal/task-review.ts +6 -4
  180. package/lib/internal/task-short-id.ts +10 -1
  181. package/lib/internal/task-snapshot.ts +3 -1
  182. package/lib/internal/task-validate.ts +6 -2
  183. package/lib/internal/task-verify.ts +10 -7
  184. package/lib/internal/task-warning.ts +10 -4
  185. package/lib/platform/adapters.ts +3 -2
  186. package/lib/platform/change-request-git-evidence.ts +36 -9
  187. package/lib/platform/comment-safety.ts +250 -0
  188. package/lib/platform/completion-backfill.ts +9 -8
  189. package/lib/platform/context.ts +97 -134
  190. package/lib/platform/github-client.ts +2 -2
  191. package/lib/platform/github-provider.ts +1132 -0
  192. package/lib/platform/in-label-sync.ts +208 -0
  193. package/lib/platform/issue-comments.ts +255 -80
  194. package/lib/platform/issues.ts +344 -174
  195. package/lib/platform/metadata-labels.ts +5 -2
  196. package/lib/platform/none-provider.ts +35 -0
  197. package/lib/platform/pr-change-report.ts +639 -0
  198. package/lib/platform/pr-checks.ts +126 -106
  199. package/lib/platform/pr-review.ts +88 -85
  200. package/lib/platform/pr-summary.ts +581 -53
  201. package/lib/platform/provider-bridge.ts +82 -0
  202. package/lib/platform/provider-contract.ts +611 -0
  203. package/lib/platform/provider-loader.ts +307 -0
  204. package/lib/platform/provider-validation.ts +611 -0
  205. package/lib/platform/pull-request-metadata.ts +10 -7
  206. package/lib/platform/pull-requests.ts +781 -550
  207. package/lib/platform/release-notes.ts +76 -59
  208. package/lib/platform/releases.ts +77 -43
  209. package/lib/platform/repository-metadata.ts +453 -0
  210. package/lib/platform/resource-identity.ts +121 -0
  211. package/lib/platform/security-alerts.ts +191 -0
  212. package/lib/platform/task-identities.ts +40 -0
  213. package/lib/platform/types.ts +4 -2
  214. package/lib/platform/verification-required.ts +11 -13
  215. package/lib/platform/verification-sync.ts +128 -304
  216. package/lib/pr-review/evidence-grading.ts +25 -8
  217. package/lib/process-data/index.ts +7 -0
  218. package/lib/run/index.ts +62 -22
  219. package/lib/sandbox/commands/control-status.ts +26 -0
  220. package/lib/sandbox/commands/create.ts +46 -6
  221. package/lib/sandbox/commands/ls.ts +7 -0
  222. package/lib/sandbox/commands/rm.ts +1000 -87
  223. package/lib/sandbox/commands/show.ts +16 -0
  224. package/lib/sandbox/control/client.ts +203 -19
  225. package/lib/sandbox/control/completed-reentry.ts +98 -0
  226. package/lib/sandbox/control/container-identity.ts +27 -43
  227. package/lib/sandbox/control/executor.ts +180 -15
  228. package/lib/sandbox/control/lifecycle.ts +629 -17
  229. package/lib/sandbox/control/native-file-lock.ts +209 -0
  230. package/lib/sandbox/control/protocol.ts +118 -2
  231. package/lib/sandbox/control/server.ts +724 -34
  232. package/lib/sandbox/control/state.ts +257 -4
  233. package/lib/sandbox/control/task-view.ts +240 -0
  234. package/lib/sandbox/engines/authority.ts +365 -0
  235. package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
  236. package/lib/sandbox/index.ts +7 -0
  237. package/lib/sandbox/recovery.ts +21 -1
  238. package/lib/sandbox/workspace-view.ts +9 -3
  239. package/lib/sandbox/worktree-safety.ts +4 -1
  240. package/lib/server/index.ts +10 -0
  241. package/lib/server/protocol.ts +36 -1
  242. package/lib/task/activity-log.ts +8 -0
  243. package/lib/task/artifact-lifecycle.ts +70 -22
  244. package/lib/task/artifact-operations.ts +626 -0
  245. package/lib/task/artifact-repair-intent.ts +71 -0
  246. package/lib/task/artifact-schema.ts +192 -0
  247. package/lib/task/capabilities.ts +331 -0
  248. package/lib/task/commands/status.ts +38 -0
  249. package/lib/task/commit-operation.ts +12 -1
  250. package/lib/task/control-authority.ts +22 -9
  251. package/lib/task/create-service.ts +139 -14
  252. package/lib/task/create.ts +27 -0
  253. package/lib/task/current-contract.ts +6 -1
  254. package/lib/task/decision-details.ts +6 -2
  255. package/lib/task/events.ts +392 -16
  256. package/lib/task/finalization.ts +50 -14
  257. package/lib/task/human-override.ts +70 -46
  258. package/lib/task/index.ts +16 -3
  259. package/lib/task/invalidation-command.ts +86 -0
  260. package/lib/task/invalidation.ts +332 -0
  261. package/lib/task/ledger-intents.ts +35 -1
  262. package/lib/task/local-artifact-finalization.ts +432 -0
  263. package/lib/task/orchestration.ts +223 -133
  264. package/lib/task/pr-delivery-fact.ts +131 -148
  265. package/lib/task/qualification-audit.ts +599 -0
  266. package/lib/task/qualification-confirmation.ts +117 -0
  267. package/lib/task/qualification-intents.ts +150 -0
  268. package/lib/task/review-artifacts.ts +21 -22
  269. package/lib/task/review-finalization.ts +133 -4
  270. package/lib/task/review-fingerprint.ts +23 -2
  271. package/lib/task/rework-intent.ts +165 -0
  272. package/lib/task/sections.ts +6 -4
  273. package/lib/task/skill-scope.ts +24 -0
  274. package/lib/task/task-execution-lock.ts +23 -14
  275. package/lib/task/verification-config.ts +12 -0
  276. package/lib/task/verification-engine.ts +103 -17
  277. package/lib/task/verification.ts +4 -4
  278. package/lib/task/workflow-warning-intents.ts +1 -1
  279. package/lib/task/write.ts +19 -0
  280. package/lib/update.ts +1 -1
  281. package/lib/version.ts +15 -1
  282. package/package.json +12 -1
  283. package/templates/.agents/rules/README.en.md +3 -1
  284. package/templates/.agents/rules/README.zh-CN.md +3 -1
  285. package/templates/.agents/rules/decision-qualification.en.md +22 -0
  286. package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
  287. package/templates/.agents/rules/evidence-reporting.en.md +28 -0
  288. package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
  289. package/templates/.agents/rules/issue-pr-commands.en.md +1 -1
  290. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +1 -1
  291. package/templates/.agents/rules/issue-sync.en.md +2 -0
  292. package/templates/.agents/rules/issue-sync.zh-CN.md +2 -0
  293. package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
  294. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
  295. package/templates/.agents/rules/local-artifact-repair.en.md +13 -2
  296. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +13 -2
  297. package/templates/.agents/rules/pr-sync.en.md +10 -4
  298. package/templates/.agents/rules/pr-sync.zh-CN.md +17 -4
  299. package/templates/.agents/rules/security-alerts.en.md +8 -8
  300. package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
  301. package/templates/.agents/rules/task-short-id.en.md +1 -4
  302. package/templates/.agents/rules/task-short-id.zh-CN.md +1 -3
  303. package/templates/.agents/skills/analyze-task/SKILL.en.md +28 -5
  304. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +29 -5
  305. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
  306. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
  307. package/templates/.agents/skills/check-task/SKILL.en.md +16 -37
  308. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -37
  309. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  310. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  311. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  312. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  313. package/templates/.agents/skills/code-task/SKILL.en.md +41 -9
  314. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +43 -11
  315. package/templates/.agents/skills/code-task/config/verify.en.json +6 -14
  316. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +6 -14
  317. package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
  318. package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
  319. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
  320. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
  321. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
  322. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
  323. package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
  324. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
  325. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +2 -0
  326. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +2 -0
  327. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +3 -3
  328. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +3 -3
  329. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +10 -4
  330. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +10 -4
  331. package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +2 -0
  332. package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +2 -0
  333. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +4 -3
  334. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +4 -3
  335. package/templates/.agents/skills/complete-task/SKILL.en.md +26 -21
  336. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +25 -21
  337. package/templates/.agents/skills/create-pr/SKILL.en.md +7 -6
  338. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +7 -7
  339. package/templates/.agents/skills/create-pr/config/verify.json +1 -0
  340. package/templates/.agents/skills/create-pr/reference/change-report.en.md +16 -4
  341. package/templates/.agents/skills/create-pr/reference/change-report.zh-CN.md +16 -4
  342. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +5 -3
  343. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +5 -3
  344. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +1 -1
  345. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +1 -1
  346. package/templates/.agents/skills/create-pr/scripts/change-report.mjs +3 -0
  347. package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
  348. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
  349. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  350. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  351. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  352. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  353. package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
  354. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
  355. package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
  356. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
  357. package/templates/.agents/skills/plan-task/SKILL.en.md +27 -4
  358. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +26 -4
  359. package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
  360. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
  361. package/templates/.agents/skills/review-analysis/SKILL.en.md +17 -4
  362. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +17 -4
  363. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
  364. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
  365. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
  366. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
  367. package/templates/.agents/skills/review-code/SKILL.en.md +18 -5
  368. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +18 -5
  369. package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
  370. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
  371. package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
  372. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
  373. package/templates/.agents/skills/review-plan/SKILL.en.md +17 -4
  374. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +17 -4
  375. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
  376. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
  377. package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
  378. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
  379. package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
  380. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
  381. package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
  382. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
  383. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +9 -3
  384. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +9 -3
  385. package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +3 -1
  386. package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +3 -1
  387. package/templates/.agents/skills/test/SKILL.en.md +13 -2
  388. package/templates/.agents/skills/test/SKILL.zh-CN.md +13 -2
  389. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
  390. package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -2
  391. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +2 -2
  392. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +6 -0
  393. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +6 -0
  394. package/templates/.agents/templates/task.en.md +24 -1
  395. package/templates/.agents/templates/task.zh-CN.md +24 -1
  396. package/templates/.github/workflows/pr-label.yml +7 -26
  397. package/templates/.agents/scripts/security-alerts.github.sh +0 -151
  398. package/templates/.agents/scripts/security-alerts.sh +0 -31
  399. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
  400. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
  401. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
  402. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
package/README.md CHANGED
@@ -55,10 +55,10 @@ Once initialized, open the project in your AI TUI and install the latest skills:
55
55
 
56
56
  ```bash
57
57
  /import-issue 42 # AI reads the issue, creates a task, extracts requirements
58
- /analyze-task <task-id> # AI scans the codebase, finds the root cause, writes analysis.md
59
- /review-analysis <task-id> # An isolated reviewer checks the analysis
60
- /plan-task <task-id> # AI proposes a fix plan
61
- /review-plan <task-id> # A fresh isolated reviewer checks the plan
58
+ /analyze-task --task <task-id> # AI scans the codebase, finds the root cause, writes analysis.md
59
+ /review-analysis --task <task-id> # An isolated reviewer checks the analysis
60
+ /plan-task --task <task-id> # AI proposes a fix plan
61
+ /review-plan --task <task-id> # A fresh isolated reviewer checks the plan
62
62
  ```
63
63
 
64
64
  > **You review the plan and reply in natural language:**
@@ -71,12 +71,12 @@ Just fix it at the application layer in LoginService.
71
71
  > AI re-runs `/plan-task` to update the plan accordingly and confirms.
72
72
 
73
73
  ```bash
74
- /code-task <task-id> # AI writes the fix, tests it, and creates a local checkpoint commit
75
- /review-code <task-id> # A fresh isolated reviewer reports one minor finding
76
- /code-task <task-id> # AI fixes the minor issue, re-validates, and creates a new checkpoint
77
- /review-code <task-id> # The reviewer approves the current checkpoint
78
- /create-pr <task-id> # The reviewed branch is published to its task-bound target; PR links issue #42
79
- /complete-task <task-id> # task archived
74
+ /code-task --task <task-id> # AI writes the fix, tests it, and creates a local checkpoint commit
75
+ /review-code --task <task-id> # A fresh isolated reviewer reports one minor finding
76
+ /code-task --task <task-id> # AI fixes the minor issue, re-validates, and creates a new checkpoint
77
+ /review-code --task <task-id> # The reviewer approves the current checkpoint
78
+ /create-pr --task <task-id> # The reviewed branch is published to its task-bound target; PR links issue #42
79
+ /complete-task --task <task-id> # task archived
80
80
  ```
81
81
 
82
82
  **11 commands. 1 natural-language correction. From issue to merged PR.** That is the entire SOP — programming can have a standard operating procedure too.
@@ -192,7 +192,7 @@ The most-used lifecycle commands, in delivery order. The command prefix varies b
192
192
  | `code-task` → `review-code` | Implement and test; `code-task` creates a local checkpoint, then a structured review checks that checkpoint |
193
193
  | `create-pr` → `complete-task` | Publish the approved checkpoint to the task-bound target branch, then archive after merge and final gates |
194
194
 
195
- Start with one atomic role policy, for example: `$run-task 42 --executor-model <id> --executor-reasoning-effort <value> --reviewer-model <id> --reviewer-reasoning-effort <value>`. Both roles may use the same model. With no explicit policy, `run-task` reads the current Agent Client's optional `agentClients[].orchestration`; if neither source is complete, it shows the host model-selection guidance before creating any run. Re-entry uses the persisted run policy. Finish or clear active runs before upgrading agent-infra; unsupported disk state fails closed without rewriting.
195
+ Start with one atomic role policy, for example: `$run-task --task 42 --executor-model <id> --executor-reasoning-effort <value> --reviewer-model <id> --reviewer-reasoning-effort <value>`. Both roles may use the same model. With no explicit policy, `run-task` reads the current Agent Client's optional `agentClients[].orchestration`; if neither source is complete, it shows the host model-selection guidance before creating any run. Re-entry uses the persisted run policy. Finish or clear active runs before upgrading agent-infra; unsupported disk state fails closed without rewriting.
196
196
 
197
197
  See the full catalog — task status, release, security, and project-maintenance skills — in [Built-in AI Skills](./docs/en/skills.md).
198
198
 
package/README.zh-CN.md CHANGED
@@ -54,10 +54,10 @@ agent-infra 的目标就是把这层共享基础设施标准化。它为所有
54
54
 
55
55
  ```bash
56
56
  /import-issue 42 # AI 读取 Issue,创建任务,提取需求
57
- /analyze-task <task-id> # AI 扫描代码库,定位根因,输出 analysis.md
58
- /review-analysis <task-id> # 隔离 reviewer 审查分析产物
59
- /plan-task <task-id> # AI 提出修复方案
60
- /review-plan <task-id> # fresh 隔离 reviewer 审查方案
57
+ /analyze-task --task <task-id> # AI 扫描代码库,定位根因,输出 analysis.md
58
+ /review-analysis --task <task-id> # 隔离 reviewer 审查分析产物
59
+ /plan-task --task <task-id> # AI 提出修复方案
60
+ /review-plan --task <task-id> # fresh 隔离 reviewer 审查方案
61
61
  ```
62
62
 
63
63
  > **你审查方案后用自然语言回复:**
@@ -70,12 +70,12 @@ agent-infra 的目标就是把这层共享基础设施标准化。它为所有
70
70
  > AI 按你的要求重跑 `/plan-task` 更新方案并确认。
71
71
 
72
72
  ```bash
73
- /code-task <task-id> # AI 编写修复代码、测试,并创建本地 checkpoint commit
74
- /review-code <task-id> # fresh 隔离 reviewer 报告一个次要问题
75
- /code-task <task-id> # AI 修复次要问题、重新验证,并创建新的 checkpoint
76
- /review-code <task-id> # reviewer 审查并通过当前 checkpoint
77
- /create-pr <task-id> # 将已审查分支发布到任务绑定目标分支;PR 自动关联 Issue #42
78
- /complete-task <task-id> # 任务归档
73
+ /code-task --task <task-id> # AI 编写修复代码、测试,并创建本地 checkpoint commit
74
+ /review-code --task <task-id> # fresh 隔离 reviewer 报告一个次要问题
75
+ /code-task --task <task-id> # AI 修复次要问题、重新验证,并创建新的 checkpoint
76
+ /review-code --task <task-id> # reviewer 审查并通过当前 checkpoint
77
+ /create-pr --task <task-id> # 将已审查分支发布到任务绑定目标分支;PR 自动关联 Issue #42
78
+ /complete-task --task <task-id> # 任务归档
79
79
  ```
80
80
 
81
81
  **11 条命令,1 次自然语言纠正,从 Issue 到合并 PR。** 这就是完整的 SOP —— 编程也可以有标准作业流程。
@@ -191,7 +191,7 @@ ai agent-client configure
191
191
  | `code-task` → `review-code` | 实现并测试;`code-task` 创建本地 checkpoint,再由结构化审查检视该 checkpoint |
192
192
  | `create-pr` → `complete-task` | 将已通过审查的 checkpoint 发布到任务绑定目标分支,并在合并和最终门禁通过后归档 |
193
193
 
194
- 启动时可提供原子角色策略,例如:`$run-task 42 --executor-model <id> --executor-reasoning-effort <值> --reviewer-model <id> --reviewer-reasoning-effort <值>`。两个角色可以使用同一模型。完全没有显式策略时,`run-task` 读取当前 Agent Client 可选的 `agentClients[].orchestration`;两个来源都不完整时,会在创建任何 run 前展示宿主模型选择指引。重入使用已持久化的 run 策略。升级 agent-infra 前必须完成或清空 active run;不受支持的磁盘状态会失败关闭且不改写。
194
+ 启动时可提供原子角色策略,例如:`$run-task --task 42 --executor-model <id> --executor-reasoning-effort <值> --reviewer-model <id> --reviewer-reasoning-effort <值>`。两个角色可以使用同一模型。完全没有显式策略时,`run-task` 读取当前 Agent Client 可选的 `agentClients[].orchestration`;两个来源都不完整时,会在创建任何 run 前展示宿主模型选择指引。重入使用已持久化的 run 策略。升级 agent-infra 前必须完成或清空 active run;不受支持的磁盘状态会失败关闭且不改写。
195
195
 
196
196
  完整清单(任务状态、发布、安全、项目维护等 skill)见 [内置 AI Skills](./docs/zh-CN/skills.md)。
197
197
 
package/bin/cli.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { VERSION } from '../lib/version.ts';
3
+ import {
4
+ formatTaskViewDiagnostic,
5
+ guardTaskOperation,
6
+ TaskViewOperationError
7
+ } from '../lib/internal/task-operation-registry.ts';
8
+ import { PUBLIC_CLI_COMMAND_ALIASES } from '../lib/internal/cli-route-inventory.ts';
3
9
 
4
10
  // Node.js version check
5
11
  const [major = 0, minor = 0] = process.versions.node.split('.').map((part) => parseInt(part, 10));
@@ -15,7 +21,7 @@ const USAGE = `agent-infra ${VERSION} - bootstrap AI collaboration infrastructur
15
21
  Usage: ai <command> [options]
16
22
 
17
23
  Commands:
18
- agent-client List, inspect, enable, disable, or configure Agent Clients
24
+ agent-client List, status, enable, disable, or configure Agent Clients
19
25
  cp <ssh-alias> Copy local clipboard image to a remote macOS clipboard or Linux sandbox over SSH
20
26
  data Capture, verify, audit, repair, and export process data
21
27
  decide Record a ruling; code-stage decisions require explicit implementation intent
@@ -43,16 +49,27 @@ Examples:
43
49
  npx @fitlab-ai/agent-infra init
44
50
  `;
45
51
 
46
- const COMMAND_ALIASES: Record<string, string> = {
47
- s: 'sandbox',
48
- t: 'task'
49
- };
50
-
51
52
  const rawCommand = process.argv[2] || '';
52
- const command = Object.hasOwn(COMMAND_ALIASES, rawCommand)
53
- ? COMMAND_ALIASES[rawCommand]
53
+ const command = Object.hasOwn(PUBLIC_CLI_COMMAND_ALIASES, rawCommand)
54
+ ? PUBLIC_CLI_COMMAND_ALIASES[rawCommand as keyof typeof PUBLIC_CLI_COMMAND_ALIASES]
54
55
  : rawCommand;
55
56
 
57
+ let taskViewGuardFailed = false;
58
+ try {
59
+ const guard = guardTaskOperation('public', command ?? '', process.argv.slice(3));
60
+ if (guard.taskView && guard.descriptor.effect === 'diagnostic') {
61
+ process.stderr.write(formatTaskViewDiagnostic(guard.taskView));
62
+ }
63
+ } catch (error) {
64
+ taskViewGuardFailed = true;
65
+ if (error instanceof TaskViewOperationError) {
66
+ process.stderr.write(`${error.message}\n`);
67
+ process.exitCode = error.exitCode;
68
+ } else {
69
+ throw error;
70
+ }
71
+ }
72
+
56
73
  function errorMessage(error: unknown): string {
57
74
  return error instanceof Error ? error.message : String(error);
58
75
  }
@@ -73,7 +90,7 @@ async function importCommand(importPath: string) {
73
90
  }
74
91
  }
75
92
 
76
- switch (command) {
93
+ if (!taskViewGuardFailed) switch (command) {
77
94
  case 'agent-client': {
78
95
  const imported = await importCommand('../lib/agent-client.ts');
79
96
  if (!imported) break;
package/dist/bin/cli.js CHANGED
@@ -8,6 +8,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
8
8
  return path;
9
9
  };
10
10
  import { VERSION } from '../lib/version.js';
11
+ import { formatTaskViewDiagnostic, guardTaskOperation, TaskViewOperationError } from '../lib/internal/task-operation-registry.js';
12
+ import { PUBLIC_CLI_COMMAND_ALIASES } from '../lib/internal/cli-route-inventory.js';
11
13
  // Node.js version check
12
14
  const [major = 0, minor = 0] = process.versions.node.split('.').map((part) => parseInt(part, 10));
13
15
  if (major < 22 || (major === 22 && minor < 9)) {
@@ -19,7 +21,7 @@ const USAGE = `agent-infra ${VERSION} - bootstrap AI collaboration infrastructur
19
21
  Usage: ai <command> [options]
20
22
 
21
23
  Commands:
22
- agent-client List, inspect, enable, disable, or configure Agent Clients
24
+ agent-client List, status, enable, disable, or configure Agent Clients
23
25
  cp <ssh-alias> Copy local clipboard image to a remote macOS clipboard or Linux sandbox over SSH
24
26
  data Capture, verify, audit, repair, and export process data
25
27
  decide Record a ruling; code-stage decisions require explicit implementation intent
@@ -46,14 +48,27 @@ Examples:
46
48
  cd my-project && ai init
47
49
  npx @fitlab-ai/agent-infra init
48
50
  `;
49
- const COMMAND_ALIASES = {
50
- s: 'sandbox',
51
- t: 'task'
52
- };
53
51
  const rawCommand = process.argv[2] || '';
54
- const command = Object.hasOwn(COMMAND_ALIASES, rawCommand)
55
- ? COMMAND_ALIASES[rawCommand]
52
+ const command = Object.hasOwn(PUBLIC_CLI_COMMAND_ALIASES, rawCommand)
53
+ ? PUBLIC_CLI_COMMAND_ALIASES[rawCommand]
56
54
  : rawCommand;
55
+ let taskViewGuardFailed = false;
56
+ try {
57
+ const guard = guardTaskOperation('public', command ?? '', process.argv.slice(3));
58
+ if (guard.taskView && guard.descriptor.effect === 'diagnostic') {
59
+ process.stderr.write(formatTaskViewDiagnostic(guard.taskView));
60
+ }
61
+ }
62
+ catch (error) {
63
+ taskViewGuardFailed = true;
64
+ if (error instanceof TaskViewOperationError) {
65
+ process.stderr.write(`${error.message}\n`);
66
+ process.exitCode = error.exitCode;
67
+ }
68
+ else {
69
+ throw error;
70
+ }
71
+ }
57
72
  function errorMessage(error) {
58
73
  return error instanceof Error ? error.message : String(error);
59
74
  }
@@ -71,164 +86,165 @@ async function importCommand(importPath) {
71
86
  throw error;
72
87
  }
73
88
  }
74
- switch (command) {
75
- case 'agent-client': {
76
- const imported = await importCommand('../lib/agent-client.ts');
77
- if (!imported)
78
- break;
79
- const { cmdAgentClient } = imported;
80
- const code = await cmdAgentClient(process.argv.slice(3)).catch((e) => {
81
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
82
- return 1;
83
- });
84
- if (code)
85
- process.exitCode = code;
86
- break;
87
- }
88
- case 'cp': {
89
- const imported = await importCommand('../lib/cp.ts');
90
- if (!imported)
91
- break;
92
- const { cmdCp } = imported;
93
- const code = await cmdCp(process.argv.slice(3)).catch((e) => {
94
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
95
- return 1;
96
- });
97
- if (code)
98
- process.exitCode = code;
99
- break;
100
- }
101
- case 'data': {
102
- const imported = await importCommand('../lib/process-data/index.ts');
103
- if (!imported)
104
- break;
105
- const { cmdData } = imported;
106
- const code = await cmdData(process.argv.slice(3)).catch((e) => {
107
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
108
- return 1;
109
- });
110
- if (code)
111
- process.exitCode = code;
112
- break;
113
- }
114
- case 'decide': {
115
- const imported = await importCommand('../lib/decide.ts');
116
- if (!imported)
89
+ if (!taskViewGuardFailed)
90
+ switch (command) {
91
+ case 'agent-client': {
92
+ const imported = await importCommand('../lib/agent-client.ts');
93
+ if (!imported)
94
+ break;
95
+ const { cmdAgentClient } = imported;
96
+ const code = await cmdAgentClient(process.argv.slice(3)).catch((e) => {
97
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
98
+ return 1;
99
+ });
100
+ if (code)
101
+ process.exitCode = code;
117
102
  break;
118
- const { cmdDecide } = imported;
119
- await cmdDecide(process.argv.slice(3));
120
- break;
121
- }
122
- case 'init': {
123
- const imported = await importCommand('../lib/init.ts');
124
- if (!imported)
103
+ }
104
+ case 'cp': {
105
+ const imported = await importCommand('../lib/cp.ts');
106
+ if (!imported)
107
+ break;
108
+ const { cmdCp } = imported;
109
+ const code = await cmdCp(process.argv.slice(3)).catch((e) => {
110
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
111
+ return 1;
112
+ });
113
+ if (code)
114
+ process.exitCode = code;
125
115
  break;
126
- const { cmdInit } = imported;
127
- await cmdInit().catch((e) => {
128
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
129
- process.exitCode = 1;
130
- });
131
- break;
132
- }
133
- case 'merge': {
134
- const imported = await importCommand('../lib/merge.ts');
135
- if (!imported)
116
+ }
117
+ case 'data': {
118
+ const imported = await importCommand('../lib/process-data/index.ts');
119
+ if (!imported)
120
+ break;
121
+ const { cmdData } = imported;
122
+ const code = await cmdData(process.argv.slice(3)).catch((e) => {
123
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
124
+ return 1;
125
+ });
126
+ if (code)
127
+ process.exitCode = code;
136
128
  break;
137
- const { cmdMerge } = imported;
138
- await cmdMerge(process.argv.slice(3)).catch((e) => {
139
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
140
- process.exitCode = 1;
141
- });
142
- break;
143
- }
144
- case 'run': {
145
- const imported = await importCommand('../lib/run/index.ts');
146
- if (!imported)
129
+ }
130
+ case 'decide': {
131
+ const imported = await importCommand('../lib/decide.ts');
132
+ if (!imported)
133
+ break;
134
+ const { cmdDecide } = imported;
135
+ await cmdDecide(process.argv.slice(3));
147
136
  break;
148
- const { cmdRun } = imported;
149
- await cmdRun(process.argv.slice(3));
150
- break;
151
- }
152
- case 'sandbox': {
153
- const imported = await importCommand('../lib/sandbox/index.ts');
154
- if (!imported)
155
- break;
156
- const { runSandbox } = imported;
157
- await runSandbox(process.argv.slice(3)).catch((e) => {
158
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
159
- process.exit(1);
160
- });
161
- break;
162
- }
163
- case 'server': {
164
- const imported = await importCommand('../lib/server/index.ts');
165
- if (!imported)
166
- break;
167
- const { runServer } = imported;
168
- await runServer(process.argv.slice(3)).catch((e) => {
169
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
170
- process.exit(1);
171
- });
172
- break;
173
- }
174
- case 'task': {
175
- const imported = await importCommand('../lib/task/index.ts');
176
- if (!imported)
177
- break;
178
- const { runTask } = imported;
179
- await runTask(process.argv.slice(3)).catch((e) => {
180
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
181
- process.exit(1);
182
- });
183
- break;
184
- }
185
- case 'update': {
186
- const imported = await importCommand('../lib/self-update.ts');
187
- if (!imported)
137
+ }
138
+ case 'init': {
139
+ const imported = await importCommand('../lib/init.ts');
140
+ if (!imported)
141
+ break;
142
+ const { cmdInit } = imported;
143
+ await cmdInit().catch((e) => {
144
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
145
+ process.exitCode = 1;
146
+ });
188
147
  break;
189
- const { cmdUpdate } = imported;
190
- const code = await cmdUpdate().catch((e) => {
191
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
192
- process.exitCode = 1;
193
- return 1;
194
- });
195
- if (code !== 0)
196
- process.exitCode = code;
197
- break;
198
- }
199
- case 'sync': {
200
- const imported = await importCommand('../lib/update.ts');
201
- if (!imported)
148
+ }
149
+ case 'merge': {
150
+ const imported = await importCommand('../lib/merge.ts');
151
+ if (!imported)
152
+ break;
153
+ const { cmdMerge } = imported;
154
+ await cmdMerge(process.argv.slice(3)).catch((e) => {
155
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
156
+ process.exitCode = 1;
157
+ });
158
+ break;
159
+ }
160
+ case 'run': {
161
+ const imported = await importCommand('../lib/run/index.ts');
162
+ if (!imported)
163
+ break;
164
+ const { cmdRun } = imported;
165
+ await cmdRun(process.argv.slice(3));
166
+ break;
167
+ }
168
+ case 'sandbox': {
169
+ const imported = await importCommand('../lib/sandbox/index.ts');
170
+ if (!imported)
171
+ break;
172
+ const { runSandbox } = imported;
173
+ await runSandbox(process.argv.slice(3)).catch((e) => {
174
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
175
+ process.exit(1);
176
+ });
177
+ break;
178
+ }
179
+ case 'server': {
180
+ const imported = await importCommand('../lib/server/index.ts');
181
+ if (!imported)
182
+ break;
183
+ const { runServer } = imported;
184
+ await runServer(process.argv.slice(3)).catch((e) => {
185
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
186
+ process.exit(1);
187
+ });
202
188
  break;
203
- const { cmdSync } = imported;
204
- await cmdSync().catch((e) => {
205
- process.stderr.write(`Error: ${errorMessage(e)}\n`);
206
- process.exitCode = 1;
207
- });
208
- break;
209
- }
210
- case 'version': {
211
- if (process.argv[3] === '--raw') {
212
- console.log(VERSION);
213
189
  }
214
- else {
190
+ case 'task': {
191
+ const imported = await importCommand('../lib/task/index.ts');
192
+ if (!imported)
193
+ break;
194
+ const { runTask } = imported;
195
+ await runTask(process.argv.slice(3)).catch((e) => {
196
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
197
+ process.exit(1);
198
+ });
199
+ break;
200
+ }
201
+ case 'update': {
202
+ const imported = await importCommand('../lib/self-update.ts');
203
+ if (!imported)
204
+ break;
205
+ const { cmdUpdate } = imported;
206
+ const code = await cmdUpdate().catch((e) => {
207
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
208
+ process.exitCode = 1;
209
+ return 1;
210
+ });
211
+ if (code !== 0)
212
+ process.exitCode = code;
213
+ break;
214
+ }
215
+ case 'sync': {
216
+ const imported = await importCommand('../lib/update.ts');
217
+ if (!imported)
218
+ break;
219
+ const { cmdSync } = imported;
220
+ await cmdSync().catch((e) => {
221
+ process.stderr.write(`Error: ${errorMessage(e)}\n`);
222
+ process.exitCode = 1;
223
+ });
224
+ break;
225
+ }
226
+ case 'version': {
227
+ if (process.argv[3] === '--raw') {
228
+ console.log(VERSION);
229
+ }
230
+ else {
231
+ console.log(`agent-infra ${VERSION}`);
232
+ }
233
+ break;
234
+ }
235
+ case '--version':
236
+ case '-v': {
215
237
  console.log(`agent-infra ${VERSION}`);
238
+ break;
216
239
  }
217
- break;
218
- }
219
- case '--version':
220
- case '-v': {
221
- console.log(`agent-infra ${VERSION}`);
222
- break;
240
+ case 'help':
241
+ case '':
242
+ process.stdout.write(USAGE);
243
+ break;
244
+ default:
245
+ process.stderr.write(`Unknown command: ${command}\n\n`);
246
+ process.stdout.write(USAGE);
247
+ process.exitCode = 1;
248
+ break;
223
249
  }
224
- case 'help':
225
- case '':
226
- process.stdout.write(USAGE);
227
- break;
228
- default:
229
- process.stderr.write(`Unknown command: ${command}\n\n`);
230
- process.stdout.write(USAGE);
231
- process.exitCode = 1;
232
- break;
233
- }
234
250
  //# sourceMappingURL=cli.js.map