@fitlab-ai/agent-infra 0.9.13 → 0.9.15

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 (428) hide show
  1. package/README.md +10 -0
  2. package/README.zh-CN.md +10 -0
  3. package/bin/cli.ts +26 -9
  4. package/bin/internal-cli.sh +45 -0
  5. package/dist/bin/cli.js +173 -157
  6. package/dist/bin/internal-cli.js +126 -42
  7. package/dist/lib/agent-client.js +5 -0
  8. package/dist/lib/agent-clients/adapters/codex-lifecycle/capability-store.js +165 -27
  9. package/dist/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.js +3 -2
  10. package/dist/lib/defaults.json +103 -103
  11. package/dist/lib/fs/durable-write.js +37 -0
  12. package/dist/lib/fs/file-lock.js +111 -0
  13. package/dist/lib/host-control/audit.js +19 -0
  14. package/dist/lib/host-control/client.js +142 -0
  15. package/dist/lib/host-control/command.js +49 -0
  16. package/dist/lib/host-control/path.js +160 -0
  17. package/dist/lib/host-control/secure-fs.js +140 -0
  18. package/dist/lib/host-control/server.js +159 -0
  19. package/dist/lib/host-control/service.js +112 -0
  20. package/dist/lib/init.js +11 -2
  21. package/dist/lib/internal/agent-client.js +5 -2
  22. package/dist/lib/internal/cli-route-inventory.js +154 -0
  23. package/dist/lib/internal/codex-lifecycle.js +15 -12
  24. package/dist/lib/internal/codex-sandbox-controller.js +8 -2
  25. package/dist/lib/internal/demo-promotion.js +322 -0
  26. package/dist/lib/internal/demo-transcript.js +454 -0
  27. package/dist/lib/internal/git-workflow.js +10 -6
  28. package/dist/lib/internal/host-control.js +28 -0
  29. package/dist/lib/internal/manual-validation.js +322 -0
  30. package/dist/lib/internal/platform-checks.js +16 -4
  31. package/dist/lib/internal/platform-comment.js +16 -4
  32. package/dist/lib/internal/platform-context.js +4 -1
  33. package/dist/lib/internal/platform-issue.js +12 -4
  34. package/dist/lib/internal/platform-metadata.js +88 -0
  35. package/dist/lib/internal/platform-pr-review.js +16 -3
  36. package/dist/lib/internal/platform-pr.js +42 -14
  37. package/dist/lib/internal/platform-release-notes.js +6 -3
  38. package/dist/lib/internal/platform-security.js +93 -0
  39. package/dist/lib/internal/pr-review-grade.js +14 -3
  40. package/dist/lib/internal/release-workflow.js +82 -89
  41. package/dist/lib/internal/sandbox-control.js +171 -7
  42. package/dist/lib/internal/task-activity.js +13 -4
  43. package/dist/lib/internal/task-artifact.js +19 -107
  44. package/dist/lib/internal/task-context.js +4 -1
  45. package/dist/lib/internal/task-create.js +48 -14
  46. package/dist/lib/internal/task-delivery.js +4 -1
  47. package/dist/lib/internal/task-event.js +38 -35
  48. package/dist/lib/internal/task-finalization.js +4 -1
  49. package/dist/lib/internal/task-invalidation.js +4 -1
  50. package/dist/lib/internal/task-ledger.js +12 -1
  51. package/dist/lib/internal/task-lifecycle.js +4 -1
  52. package/dist/lib/internal/task-operation-registry.js +519 -0
  53. package/dist/lib/internal/task-orchestration.js +12 -0
  54. package/dist/lib/internal/task-override.js +10 -3
  55. package/dist/lib/internal/task-qualification.js +90 -0
  56. package/dist/lib/internal/task-review.js +10 -52
  57. package/dist/lib/internal/task-short-id.js +11 -1
  58. package/dist/lib/internal/task-snapshot.js +4 -1
  59. package/dist/lib/internal/task-validate.js +37 -12
  60. package/dist/lib/internal/task-verify.js +5 -1
  61. package/dist/lib/internal/task-warning.js +8 -1
  62. package/dist/lib/owned-path.js +33 -0
  63. package/dist/lib/platform/check-status.js +11 -0
  64. package/dist/lib/platform/comment-safety.js +229 -0
  65. package/dist/lib/platform/completion-backfill.js +1 -1
  66. package/dist/lib/platform/github-data.js +241 -0
  67. package/dist/lib/platform/github-provider.js +248 -26
  68. package/dist/lib/platform/issue-comments.js +146 -34
  69. package/dist/lib/platform/issues.js +1 -179
  70. package/dist/lib/platform/pr-change-report.js +6 -12
  71. package/dist/lib/platform/pr-checks.js +12 -65
  72. package/dist/lib/platform/pr-summary.js +83 -10
  73. package/dist/lib/platform/provider-contract.d.ts +67 -1
  74. package/dist/lib/platform/provider-contract.js +6 -2
  75. package/dist/lib/platform/provider-validation.js +76 -3
  76. package/dist/lib/platform/pull-requests.js +117 -275
  77. package/dist/lib/platform/repository-metadata.js +377 -0
  78. package/dist/lib/platform/security-alerts.js +155 -0
  79. package/dist/lib/platform/snapshots.js +2 -0
  80. package/dist/lib/platform/verification-sync.js +154 -162
  81. package/dist/lib/process-data/index.js +7 -0
  82. package/dist/lib/release/workflow.js +1 -1
  83. package/dist/lib/run/index.js +5 -0
  84. package/dist/lib/sandbox/commands/control-status.js +22 -0
  85. package/dist/lib/sandbox/commands/create.js +39 -8
  86. package/dist/lib/sandbox/commands/ls.js +5 -0
  87. package/dist/lib/sandbox/commands/rm.js +3 -807
  88. package/dist/lib/sandbox/commands/show.js +16 -0
  89. package/dist/lib/sandbox/control/audit.js +203 -0
  90. package/dist/lib/sandbox/control/client.js +125 -12
  91. package/dist/lib/sandbox/control/completed-reentry.js +85 -0
  92. package/dist/lib/sandbox/control/container-identity.js +28 -31
  93. package/dist/lib/sandbox/control/executor.js +233 -34
  94. package/dist/lib/sandbox/control/finalization-response.js +27 -0
  95. package/dist/lib/sandbox/control/identity-sentinel.js +107 -0
  96. package/dist/lib/sandbox/control/lifecycle.js +656 -128
  97. package/dist/lib/sandbox/control/native-file-lock.js +85 -0
  98. package/dist/lib/sandbox/control/protocol.js +55 -4
  99. package/dist/lib/sandbox/control/server.js +720 -79
  100. package/dist/lib/sandbox/control/state.js +63 -3
  101. package/dist/lib/sandbox/control/task-view.js +183 -0
  102. package/dist/lib/sandbox/control/task-workflow.js +74 -0
  103. package/dist/lib/sandbox/control/workflow-executor.js +99 -0
  104. package/dist/lib/sandbox/engines/authority.js +289 -0
  105. package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
  106. package/dist/lib/sandbox/index.js +7 -2
  107. package/dist/lib/sandbox/recovery.js +49 -5
  108. package/dist/lib/sandbox/removal.js +1717 -0
  109. package/dist/lib/sandbox/task-cleanup.js +217 -0
  110. package/dist/lib/sandbox/workspace-view.js +15 -15
  111. package/dist/lib/sandbox/worktree-safety.js +4 -1
  112. package/dist/lib/server/index.js +8 -0
  113. package/dist/lib/task/activity-intent.js +2 -1
  114. package/dist/lib/task/activity-log.js +30 -24
  115. package/dist/lib/task/artifact-command.js +101 -0
  116. package/dist/lib/task/artifact-lifecycle.js +71 -40
  117. package/dist/lib/task/artifact-name.js +36 -0
  118. package/dist/lib/task/artifact-operations.js +474 -0
  119. package/dist/lib/task/artifact-receipts.js +3 -15
  120. package/dist/lib/task/artifact-repair-intent.js +130 -0
  121. package/dist/lib/task/artifact-schema.js +127 -0
  122. package/dist/lib/task/capabilities.js +83 -19
  123. package/dist/lib/task/codex-orchestration.js +71 -25
  124. package/dist/lib/task/commit-identity.js +28 -0
  125. package/dist/lib/task/commit-operation.js +2 -16
  126. package/dist/lib/task/control-authority.js +375 -5
  127. package/dist/lib/task/control-recovery.js +128 -0
  128. package/dist/lib/task/create-service.js +103 -4
  129. package/dist/lib/task/create.js +80 -2
  130. package/dist/lib/task/decision-details.js +2 -46
  131. package/dist/lib/task/events.js +306 -76
  132. package/dist/lib/task/finalization-state.js +9 -0
  133. package/dist/lib/task/human-override.js +3 -6
  134. package/dist/lib/task/implementation-inputs.js +3 -3
  135. package/dist/lib/task/index.js +11 -3
  136. package/dist/lib/task/intermediate-cleanup.js +383 -0
  137. package/dist/lib/task/invalidation.js +18 -65
  138. package/dist/lib/task/ledger-intents.js +7 -22
  139. package/dist/lib/task/ledger.js +1 -3
  140. package/dist/lib/task/lifecycle.js +19 -1
  141. package/dist/lib/task/local-artifact-finalization.js +190 -290
  142. package/dist/lib/task/manual-validation-completion.js +26 -0
  143. package/dist/lib/task/manual-validation-evidence.js +130 -0
  144. package/dist/lib/task/manual-validation-receipt.js +101 -0
  145. package/dist/lib/task/manual-validation-shared.js +40 -0
  146. package/dist/lib/task/manual-validation-transaction.js +243 -0
  147. package/dist/lib/task/markdown.js +47 -0
  148. package/dist/lib/task/orchestration.js +206 -69
  149. package/dist/lib/task/qualification-audit.js +476 -0
  150. package/dist/lib/task/qualification-confirmation.js +109 -0
  151. package/dist/lib/task/qualification-intents.js +148 -0
  152. package/dist/lib/task/review-artifacts.js +23 -40
  153. package/dist/lib/task/review-command.js +25 -0
  154. package/dist/lib/task/review-finalization.js +146 -97
  155. package/dist/lib/task/review-fingerprint.js +2 -2
  156. package/dist/lib/task/sections.js +34 -54
  157. package/dist/lib/task/verification-config.js +11 -0
  158. package/dist/lib/task/verification-engine.js +170 -327
  159. package/dist/lib/task/verification.js +1 -1
  160. package/dist/lib/task/workflow-command.js +17 -0
  161. package/dist/lib/task/workflow-warning-intents.js +0 -16
  162. package/dist/lib/task/workflow-warnings.js +28 -2
  163. package/dist/lib/update.js +2 -0
  164. package/dist/lifecycle-build-manifest.json +3 -3
  165. package/lib/agent-client.ts +9 -0
  166. package/lib/agent-clients/adapters/codex-lifecycle/capability-store.ts +223 -33
  167. package/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.ts +3 -2
  168. package/lib/fs/durable-write.ts +29 -0
  169. package/lib/fs/file-lock.ts +113 -0
  170. package/lib/host-control/audit.ts +22 -0
  171. package/lib/host-control/client.ts +172 -0
  172. package/lib/host-control/command.ts +60 -0
  173. package/lib/host-control/path.ts +167 -0
  174. package/lib/host-control/secure-fs.ts +135 -0
  175. package/lib/host-control/server.ts +180 -0
  176. package/lib/host-control/service.ts +133 -0
  177. package/lib/init.ts +15 -2
  178. package/lib/internal/agent-client.ts +4 -2
  179. package/lib/internal/cli-route-inventory.ts +142 -0
  180. package/lib/internal/codex-lifecycle.ts +14 -12
  181. package/lib/internal/codex-sandbox-controller.ts +7 -2
  182. package/lib/internal/demo-promotion.ts +354 -0
  183. package/lib/internal/demo-transcript.ts +419 -0
  184. package/lib/internal/git-workflow.ts +9 -6
  185. package/lib/internal/host-control.ts +28 -0
  186. package/lib/internal/manual-validation.ts +306 -0
  187. package/lib/internal/platform-checks.ts +12 -4
  188. package/lib/internal/platform-comment.ts +12 -4
  189. package/lib/internal/platform-context.ts +3 -1
  190. package/lib/internal/platform-issue.ts +11 -4
  191. package/lib/internal/platform-metadata.ts +70 -0
  192. package/lib/internal/platform-pr-review.ts +14 -3
  193. package/lib/internal/platform-pr.ts +38 -14
  194. package/lib/internal/platform-release-notes.ts +5 -3
  195. package/lib/internal/platform-security.ts +83 -0
  196. package/lib/internal/pr-review-grade.ts +10 -3
  197. package/lib/internal/release-workflow.ts +91 -87
  198. package/lib/internal/sandbox-control.ts +181 -6
  199. package/lib/internal/task-activity.ts +12 -4
  200. package/lib/internal/task-artifact.ts +15 -79
  201. package/lib/internal/task-context.ts +3 -1
  202. package/lib/internal/task-create.ts +76 -15
  203. package/lib/internal/task-delivery.ts +3 -1
  204. package/lib/internal/task-event.ts +21 -10
  205. package/lib/internal/task-finalization.ts +3 -1
  206. package/lib/internal/task-invalidation.ts +3 -1
  207. package/lib/internal/task-ledger.ts +11 -1
  208. package/lib/internal/task-lifecycle.ts +3 -1
  209. package/lib/internal/task-operation-registry.ts +590 -0
  210. package/lib/internal/task-orchestration.ts +12 -0
  211. package/lib/internal/task-override.ts +9 -3
  212. package/lib/internal/task-qualification.ts +61 -0
  213. package/lib/internal/task-review.ts +7 -50
  214. package/lib/internal/task-short-id.ts +10 -1
  215. package/lib/internal/task-snapshot.ts +3 -1
  216. package/lib/internal/task-validate.ts +32 -12
  217. package/lib/internal/task-verify.ts +4 -1
  218. package/lib/internal/task-warning.ts +7 -1
  219. package/lib/owned-path.ts +26 -0
  220. package/lib/platform/check-status.ts +9 -0
  221. package/lib/platform/comment-safety.ts +255 -0
  222. package/lib/platform/completion-backfill.ts +1 -1
  223. package/lib/platform/github-data.ts +322 -0
  224. package/lib/platform/github-provider.ts +244 -27
  225. package/lib/platform/issue-comments.ts +159 -35
  226. package/lib/platform/issues.ts +4 -245
  227. package/lib/platform/pr-change-report.ts +6 -12
  228. package/lib/platform/pr-checks.ts +13 -77
  229. package/lib/platform/pr-summary.ts +88 -11
  230. package/lib/platform/provider-contract.ts +78 -3
  231. package/lib/platform/provider-validation.ts +85 -3
  232. package/lib/platform/pull-requests.ts +129 -348
  233. package/lib/platform/repository-metadata.ts +453 -0
  234. package/lib/platform/security-alerts.ts +191 -0
  235. package/lib/platform/snapshots.ts +53 -0
  236. package/lib/platform/verification-sync.ts +171 -177
  237. package/lib/process-data/index.ts +7 -0
  238. package/lib/release/workflow.ts +3 -3
  239. package/lib/run/index.ts +5 -0
  240. package/lib/sandbox/commands/control-status.ts +26 -0
  241. package/lib/sandbox/commands/create.ts +53 -12
  242. package/lib/sandbox/commands/ls.ts +7 -0
  243. package/lib/sandbox/commands/rm.ts +3 -996
  244. package/lib/sandbox/commands/show.ts +16 -0
  245. package/lib/sandbox/control/audit.ts +253 -0
  246. package/lib/sandbox/control/client.ts +150 -13
  247. package/lib/sandbox/control/completed-reentry.ts +98 -0
  248. package/lib/sandbox/control/container-identity.ts +27 -43
  249. package/lib/sandbox/control/executor.ts +262 -37
  250. package/lib/sandbox/control/finalization-response.ts +29 -0
  251. package/lib/sandbox/control/identity-sentinel.ts +137 -0
  252. package/lib/sandbox/control/lifecycle.ts +672 -18
  253. package/lib/sandbox/control/native-file-lock.ts +108 -0
  254. package/lib/sandbox/control/protocol.ts +80 -8
  255. package/lib/sandbox/control/server.ts +779 -82
  256. package/lib/sandbox/control/state.ts +84 -3
  257. package/lib/sandbox/control/task-view.ts +240 -0
  258. package/lib/sandbox/control/task-workflow.ts +95 -0
  259. package/lib/sandbox/control/workflow-executor.ts +102 -0
  260. package/lib/sandbox/engines/authority.ts +365 -0
  261. package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
  262. package/lib/sandbox/index.ts +9 -2
  263. package/lib/sandbox/recovery.ts +49 -6
  264. package/lib/sandbox/removal.ts +2144 -0
  265. package/lib/sandbox/task-cleanup.ts +209 -0
  266. package/lib/sandbox/workspace-view.ts +26 -18
  267. package/lib/sandbox/worktree-safety.ts +4 -1
  268. package/lib/server/index.ts +10 -0
  269. package/lib/task/activity-intent.ts +2 -2
  270. package/lib/task/activity-log.ts +27 -19
  271. package/lib/task/artifact-command.ts +104 -0
  272. package/lib/task/artifact-lifecycle.ts +66 -39
  273. package/lib/task/artifact-name.ts +55 -0
  274. package/lib/task/artifact-operations.ts +580 -0
  275. package/lib/task/artifact-receipts.ts +3 -14
  276. package/lib/task/artifact-repair-intent.ts +152 -0
  277. package/lib/task/artifact-schema.ts +163 -0
  278. package/lib/task/capabilities.ts +82 -22
  279. package/lib/task/codex-orchestration.ts +85 -24
  280. package/lib/task/commit-identity.ts +31 -0
  281. package/lib/task/commit-operation.ts +2 -16
  282. package/lib/task/control-authority.ts +513 -6
  283. package/lib/task/control-recovery.ts +174 -0
  284. package/lib/task/create-service.ts +131 -6
  285. package/lib/task/create.ts +83 -1
  286. package/lib/task/decision-details.ts +3 -71
  287. package/lib/task/events.ts +292 -75
  288. package/lib/task/finalization-state.ts +11 -0
  289. package/lib/task/human-override.ts +3 -8
  290. package/lib/task/implementation-inputs.ts +3 -3
  291. package/lib/task/index.ts +16 -3
  292. package/lib/task/intermediate-cleanup.ts +455 -0
  293. package/lib/task/invalidation.ts +18 -62
  294. package/lib/task/ledger-intents.ts +7 -24
  295. package/lib/task/ledger.ts +1 -3
  296. package/lib/task/lifecycle.ts +17 -1
  297. package/lib/task/local-artifact-finalization.ts +223 -388
  298. package/lib/task/manual-validation-completion.ts +40 -0
  299. package/lib/task/manual-validation-evidence.ts +209 -0
  300. package/lib/task/manual-validation-receipt.ts +152 -0
  301. package/lib/task/manual-validation-shared.ts +50 -0
  302. package/lib/task/manual-validation-transaction.ts +304 -0
  303. package/lib/task/markdown.ts +70 -0
  304. package/lib/task/orchestration.ts +191 -68
  305. package/lib/task/qualification-audit.ts +588 -0
  306. package/lib/task/qualification-confirmation.ts +117 -0
  307. package/lib/task/qualification-intents.ts +150 -0
  308. package/lib/task/review-artifacts.ts +21 -41
  309. package/lib/task/review-command.ts +23 -0
  310. package/lib/task/review-finalization.ts +154 -153
  311. package/lib/task/review-fingerprint.ts +2 -2
  312. package/lib/task/sections.ts +33 -52
  313. package/lib/task/verification-config.ts +12 -0
  314. package/lib/task/verification-engine.ts +165 -370
  315. package/lib/task/verification-types.ts +17 -0
  316. package/lib/task/verification.ts +1 -1
  317. package/lib/task/workflow-command.ts +18 -0
  318. package/lib/task/workflow-warning-intents.ts +0 -13
  319. package/lib/task/workflow-warnings.ts +21 -2
  320. package/lib/update.ts +6 -0
  321. package/package.json +7 -2
  322. package/templates/.agents/hooks/lifecycle-delegation.js +6 -6
  323. package/templates/.agents/rules/README.en.md +2 -0
  324. package/templates/.agents/rules/README.zh-CN.md +2 -0
  325. package/templates/.agents/rules/decision-qualification.en.md +22 -0
  326. package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
  327. package/templates/.agents/rules/evidence-reporting.en.md +28 -0
  328. package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
  329. package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
  330. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
  331. package/templates/.agents/rules/local-artifact-repair.en.md +5 -1
  332. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +5 -1
  333. package/templates/.agents/rules/security-alerts.en.md +8 -8
  334. package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
  335. package/templates/.agents/rules/testing-discipline.en.md +2 -0
  336. package/templates/.agents/rules/testing-discipline.zh-CN.md +2 -0
  337. package/templates/.agents/scripts/package.json +3 -0
  338. package/templates/.agents/skills/analyze-task/SKILL.en.md +15 -2
  339. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +19 -2
  340. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
  341. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
  342. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  343. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  344. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  345. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  346. package/templates/.agents/skills/code-task/SKILL.en.md +14 -1
  347. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +14 -1
  348. package/templates/.agents/skills/code-task/config/verify.en.json +5 -14
  349. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +5 -14
  350. package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
  351. package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
  352. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
  353. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
  354. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
  355. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
  356. package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
  357. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
  358. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +37 -21
  359. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +37 -21
  360. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -1
  361. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -1
  362. package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +4 -0
  363. package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +4 -0
  364. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +16 -7
  365. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +16 -7
  366. package/templates/.agents/skills/complete-task/SKILL.en.md +10 -23
  367. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +10 -23
  368. package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
  369. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
  370. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  371. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  372. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  373. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  374. package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
  375. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
  376. package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
  377. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
  378. package/templates/.agents/skills/plan-task/SKILL.en.md +14 -1
  379. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +16 -1
  380. package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
  381. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
  382. package/templates/.agents/skills/release/SKILL.en.md +7 -3
  383. package/templates/.agents/skills/release/SKILL.zh-CN.md +7 -3
  384. package/templates/.agents/skills/review-analysis/SKILL.en.md +14 -1
  385. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +14 -1
  386. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
  387. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
  388. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
  389. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
  390. package/templates/.agents/skills/review-code/SKILL.en.md +14 -1
  391. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +14 -1
  392. package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
  393. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
  394. package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
  395. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
  396. package/templates/.agents/skills/review-plan/SKILL.en.md +14 -1
  397. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +14 -1
  398. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
  399. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
  400. package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
  401. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
  402. package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
  403. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
  404. package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
  405. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
  406. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +25 -4
  407. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +25 -4
  408. package/templates/.agents/skills/run-manual-validation/reference/discovery-and-execution.en.md +4 -1
  409. package/templates/.agents/skills/run-manual-validation/reference/discovery-and-execution.zh-CN.md +4 -1
  410. package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +5 -1
  411. package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +5 -1
  412. package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
  413. package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
  414. package/templates/.agents/skills/test/SKILL.en.md +29 -7
  415. package/templates/.agents/skills/test/SKILL.zh-CN.md +29 -7
  416. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
  417. package/templates/.agents/templates/task.en.md +6 -0
  418. package/templates/.agents/templates/task.zh-CN.md +6 -0
  419. package/templates/.claude/commands/run-manual-validation.en.md +1 -1
  420. package/templates/.claude/commands/run-manual-validation.zh-CN.md +1 -1
  421. package/dist/lib/platform/adapters.js +0 -56
  422. package/lib/platform/adapters.ts +0 -197
  423. package/templates/.agents/scripts/security-alerts.github.sh +0 -151
  424. package/templates/.agents/scripts/security-alerts.sh +0 -31
  425. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
  426. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
  427. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
  428. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
package/README.md CHANGED
@@ -93,6 +93,16 @@ Every command above works the same way in Claude Code, Codex, Antigravity CLI, a
93
93
  - **AI-assisted updates**: template changes can be merged while preserving project-specific customization
94
94
  - **Auditable process-data archive**: preserve local tasks and GitHub evidence in append-only, verifiable snapshots
95
95
 
96
+ ### Sandbox control boundary
97
+
98
+ Task-bound sandboxes use a host-only control service for lifecycle and workflow writes. On Linux its fixed endpoint is `/run/user/<uid>/agent-infra/host-control.sock`; on macOS it is `/Users/<login>/Library/Application Support/agent-infra/run/host-control.sock`, resolved from the account identity rather than `HOME` or `TMPDIR`. The service directory is private (`0700`) and the socket is private (`0600`). If the endpoint or sandbox identity is unavailable, task-control commands fail closed.
99
+
100
+ The shell installer creates and starts the user-scoped service through systemd user units on Linux or launchd user agents on macOS. After a manual npm install, run `agent-infra-internal host-control install`, then enable the generated user service; `agent-infra-internal host-control status` reports endpoint health. No root or setuid service is required.
101
+
102
+ On macOS, the installer retries service registration during reload. If registration or startup still fails, it exits with an error and a recovery command.
103
+
104
+ The task directory exposed inside a task-bound sandbox is a writable projection. Artifact commands accept only typed workflow operations and canonical artifact basenames. The host opens candidates with `O_NOFOLLOW`, reads and hashes them through one file descriptor, checks observable metadata changes, and atomically lands validated bytes into the authoritative task directory. Changes to the projection's protected topology fail closed and never turn the projection into task state.
105
+
96
106
  ## Quick Start
97
107
 
98
108
  ### 1. Install agent-infra
package/README.zh-CN.md CHANGED
@@ -92,6 +92,16 @@ agent-infra 的目标就是把这层共享基础设施标准化。它为所有
92
92
  - **AI 辅助升级**:模板升级时可合并变更,同时尽量保留项目侧定制
93
93
  - **可审计的过程数据归档**:把本地任务与 GitHub 证据保存为只追加、可校验的快照
94
94
 
95
+ ### 沙箱控制边界
96
+
97
+ 任务沙箱的生命周期和工作流写操作由宿主专用控制服务执行。Linux 固定端点为 `/run/user/<uid>/agent-infra/host-control.sock`;macOS 固定端点为 `/Users/<login>/Library/Application Support/agent-infra/run/host-control.sock`,路径根据账户身份解析,不读取 `HOME` 或 `TMPDIR`。服务目录权限为 `0700`,socket 权限为 `0600`。端点或沙箱身份不可用时,task-control 命令会失败关闭。
98
+
99
+ Shell 安装脚本会在 Linux 通过 systemd 用户单元、在 macOS 通过 launchd 用户代理创建并启动该服务。手动 npm 安装后,可运行 `agent-infra-internal host-control install` 创建服务配置,再启用对应的用户服务;`agent-infra-internal host-control status` 可检查端点健康状态。整个服务不需要 root 或 setuid。
100
+
101
+ macOS 重载期间,安装脚本会重试服务注册;若最终仍无法注册或启动,则以错误退出并提供恢复命令。
102
+
103
+ 任务沙箱内的 task 目录是可写投影。产物命令只接受类型化 workflow 操作和规范的产物 basename。宿主使用 `O_NOFOLLOW` 打开候选文件,通过同一个文件描述符读取并计算摘要,检查可观察的元数据变化,再把已校验字节原子落入权威 task 目录。投影的受保护拓扑发生变化时会失败关闭,投影修改不会变成任务状态。
104
+
95
105
  ## 快速开始
96
106
 
97
107
  ### 1. 安装 agent-infra
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;
@@ -0,0 +1,45 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ script_path=$0
5
+ case "$script_path" in
6
+ [A-Za-z]:*)
7
+ drive=${script_path%"${script_path#?}"}
8
+ drive=$(printf '%s' "$drive" | tr '[:upper:]' '[:lower:]')
9
+ script_path="/${drive}${script_path#?:}"
10
+ script_path=$(printf '%s' "$script_path" | tr '\\' '/')
11
+ ;;
12
+ /*) ;;
13
+ *) script_path=$PWD/$script_path ;;
14
+ esac
15
+ while [ -L "$script_path" ]; do
16
+ link_target=$(readlink "$script_path")
17
+ case "$link_target" in
18
+ /*) script_path=$link_target ;;
19
+ *) script_path=$(dirname -- "$script_path")/$link_target ;;
20
+ esac
21
+ done
22
+ script_dir=$(CDPATH= cd -- "$(dirname -- "$script_path")" && pwd -P)
23
+ if [ -f "$script_dir/internal-cli.js" ]; then
24
+ internal_cli="$script_dir/internal-cli.js"
25
+ else
26
+ internal_cli="$script_dir/../dist/bin/internal-cli.js"
27
+ fi
28
+
29
+ command=${1-}
30
+ task_control_command=false
31
+ case "$command" in
32
+ task-lifecycle|task-orchestration|task-finalization) task_control_command=true ;;
33
+ esac
34
+
35
+ status_mount_present=false
36
+ if [ -d /run/agent-infra/control-status ]; then status_mount_present=true; fi
37
+ launch_config=${AGENT_INFRA_TASK_ID-}${AGENT_INFRA_CONTROL_TOKEN-}${AGENT_INFRA_CONTROL_GENERATION-}${AGENT_INFRA_CONTROL_DIR-}${AGENT_INFRA_CONTROL_STATUS_DIR-}${AGENT_INFRA_RUNTIME_DIR-}${AGENT_INFRA_EXECUTOR_MANIFEST-}
38
+ if [ "$task_control_command" = true ] && [ "$status_mount_present" = true ] && [ -z "$launch_config" ] && [ -z "${AGENT_INFRA_TEST_HOST_CONTROL_ENDPOINT-}" ]; then
39
+ printf '%s\n' '{"status":"failed","changed":false,"error":{"code":"SANDBOX_CONTROL_IDENTITY_MISSING","message":"sandbox control identity is present but its launch configuration is missing"}}'
40
+ exit 1
41
+ fi
42
+ # The outer launcher owns the Node startup boundary. A task-bound process must
43
+ # not pass preload, import, or loader injection into the control router.
44
+ unset NODE_OPTIONS NODE_PATH
45
+ exec node "$internal_cli" "$@"
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