@fitlab-ai/agent-infra 0.9.2 → 0.9.4

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 +12 -9
  2. package/README.zh-CN.md +12 -9
  3. package/bin/cli.ts +12 -0
  4. package/dist/bin/cli.js +14 -0
  5. package/dist/bin/internal-cli.js +134 -108
  6. package/dist/lib/agent-clients/adapter.js +137 -4
  7. package/dist/lib/agent-clients/adapters/antigravity-cli.js +64 -0
  8. package/dist/lib/{sandbox/credentials.js → agent-clients/adapters/claude-code-credentials.js} +4 -14
  9. package/dist/lib/agent-clients/adapters/claude-code-refresh.js +85 -0
  10. package/dist/lib/agent-clients/adapters/claude-code-sandbox.js +247 -0
  11. package/dist/lib/agent-clients/adapters/claude-code.js +27 -4
  12. package/dist/lib/agent-clients/adapters/codex.js +9 -0
  13. package/dist/lib/agent-clients/adapters/index.js +2 -2
  14. package/dist/lib/agent-clients/adapters/opencode-sandbox.js +108 -0
  15. package/dist/lib/agent-clients/adapters/opencode.js +24 -3
  16. package/dist/lib/agent-clients/adapters/runtimes/claude-code.dockerfile +65 -0
  17. package/dist/lib/agent-clients/config.js +42 -4
  18. package/dist/lib/agent-clients/next-steps.js +11 -2
  19. package/dist/lib/agent-clients/reconcile.js +2 -1
  20. package/dist/lib/agent-clients/registry.js +16 -2
  21. package/dist/lib/agent-clients/schema.js +18 -0
  22. package/dist/lib/agent-clients/tokens.js +49 -0
  23. package/dist/lib/agent-clients/types.js +1 -1
  24. package/dist/lib/defaults.json +1 -1
  25. package/dist/lib/git/workflow.js +54 -1
  26. package/dist/lib/internal/agent-client.js +61 -4
  27. package/dist/lib/internal/git-workflow.js +6 -1
  28. package/dist/lib/internal/platform-checks.js +3 -3
  29. package/dist/lib/internal/platform-comment.js +29 -2
  30. package/dist/lib/internal/platform-issue.js +7 -0
  31. package/dist/lib/internal/platform-pr-review.js +132 -0
  32. package/dist/lib/internal/platform-pr.js +20 -2
  33. package/dist/lib/internal/platform-release-notes.js +52 -16
  34. package/dist/lib/internal/pr-review-grade.js +140 -0
  35. package/dist/lib/internal/release-workflow.js +13 -6
  36. package/dist/lib/internal/sandbox-control.js +24 -0
  37. package/dist/lib/internal/task-activity.js +105 -0
  38. package/dist/lib/internal/task-event.js +17 -1
  39. package/dist/lib/internal/task-ledger.js +12 -3
  40. package/dist/lib/internal/task-lifecycle.js +26 -1
  41. package/dist/lib/internal/task-orchestration.js +167 -18
  42. package/dist/lib/internal/task-review.js +8 -3
  43. package/dist/lib/platform/adapters.js +8 -1
  44. package/dist/lib/platform/completion-backfill.js +122 -0
  45. package/dist/lib/platform/github-client.js +19 -2
  46. package/dist/lib/platform/issue-comments.js +3 -2
  47. package/dist/lib/platform/merged-pr-equivalence.js +115 -5
  48. package/dist/lib/platform/pr-checks.js +65 -42
  49. package/dist/lib/platform/pr-review.js +166 -0
  50. package/dist/lib/platform/pull-requests.js +371 -4
  51. package/dist/lib/platform/release-notes.js +85 -3
  52. package/dist/lib/platform/releases.js +13 -5
  53. package/dist/lib/pr-review/evidence-grading.js +229 -0
  54. package/dist/lib/process-data/index.js +239 -0
  55. package/dist/lib/process-data/normalize.js +198 -0
  56. package/dist/lib/process-data/privacy.js +33 -0
  57. package/dist/lib/process-data/reconcile.js +95 -0
  58. package/dist/lib/process-data/repair.js +58 -0
  59. package/dist/lib/process-data/sources.js +345 -0
  60. package/dist/lib/process-data/store.js +282 -0
  61. package/dist/lib/process-data/types.js +2 -0
  62. package/dist/lib/run/index.js +4 -3
  63. package/dist/lib/run/tui.js +10 -13
  64. package/dist/lib/sandbox/agent-client-reconciler.js +26 -2
  65. package/dist/lib/sandbox/capture.js +7 -2
  66. package/dist/lib/sandbox/commands/create.js +109 -248
  67. package/dist/lib/sandbox/commands/enter.js +15 -47
  68. package/dist/lib/sandbox/commands/list-running.js +16 -6
  69. package/dist/lib/sandbox/commands/ls.js +10 -6
  70. package/dist/lib/sandbox/commands/rebuild.js +4 -3
  71. package/dist/lib/sandbox/commands/refresh.js +4 -84
  72. package/dist/lib/sandbox/commands/rm.js +24 -3
  73. package/dist/lib/sandbox/commands/show.js +13 -4
  74. package/dist/lib/sandbox/commands/start.js +7 -4
  75. package/dist/lib/sandbox/config.js +2 -0
  76. package/dist/lib/sandbox/constants.js +6 -0
  77. package/dist/lib/sandbox/control/client.js +44 -0
  78. package/dist/lib/sandbox/control/protocol.js +35 -0
  79. package/dist/lib/sandbox/control/server.js +109 -0
  80. package/dist/lib/sandbox/dockerfile.js +36 -13
  81. package/dist/lib/sandbox/mounts.js +17 -4
  82. package/dist/lib/sandbox/recovery.js +128 -5
  83. package/dist/lib/sandbox/redaction.js +12 -0
  84. package/dist/lib/sandbox/runtimes/base.dockerfile +24 -74
  85. package/dist/lib/sandbox/workspace-identity.js +95 -0
  86. package/dist/lib/sandbox/workspace-view.js +103 -0
  87. package/dist/lib/task/activity-intent.js +307 -0
  88. package/dist/lib/task/artifact-lifecycle.js +2 -1
  89. package/dist/lib/task/commands/log.js +15 -14
  90. package/dist/lib/task/commit-finalization.js +267 -0
  91. package/dist/lib/task/commit-intent.js +165 -0
  92. package/dist/lib/task/decision-intents.js +31 -17
  93. package/dist/lib/task/delegation-receipts.js +25 -4
  94. package/dist/lib/task/events.js +67 -28
  95. package/dist/lib/task/finalization-artifacts.js +35 -0
  96. package/dist/lib/task/implementation-inputs.js +54 -7
  97. package/dist/lib/task/ledger-intents.js +35 -1
  98. package/dist/lib/task/lifecycle-execution.js +46 -0
  99. package/dist/lib/task/orchestration.js +753 -54
  100. package/dist/lib/task/resolve-ref.js +41 -1
  101. package/dist/lib/task/review-finalization.js +29 -9
  102. package/dist/lib/task/task-execution-lock.js +231 -0
  103. package/dist/lib/task/verification-checks.js +1 -1
  104. package/dist/lib/task/verification-engine.js +218 -2
  105. package/dist/lib/task/verification.js +4 -3
  106. package/dist/lib/task/workspace-snapshot.js +17 -5
  107. package/lib/agent-clients/adapter.ts +201 -4
  108. package/lib/agent-clients/adapters/antigravity-cli.ts +65 -0
  109. package/lib/{sandbox/credentials.ts → agent-clients/adapters/claude-code-credentials.ts} +3 -18
  110. package/lib/agent-clients/adapters/claude-code-refresh.ts +128 -0
  111. package/lib/agent-clients/adapters/claude-code-sandbox.ts +295 -0
  112. package/lib/agent-clients/adapters/claude-code.ts +31 -4
  113. package/lib/agent-clients/adapters/codex.ts +9 -0
  114. package/lib/agent-clients/adapters/index.ts +2 -2
  115. package/lib/agent-clients/adapters/opencode-sandbox.ts +136 -0
  116. package/lib/agent-clients/adapters/opencode.ts +27 -3
  117. package/lib/agent-clients/adapters/runtimes/claude-code.dockerfile +65 -0
  118. package/lib/agent-clients/config.ts +49 -4
  119. package/lib/agent-clients/next-steps.ts +15 -2
  120. package/lib/agent-clients/reconcile.ts +2 -1
  121. package/lib/agent-clients/registry.ts +19 -1
  122. package/lib/agent-clients/schema.ts +18 -0
  123. package/lib/agent-clients/tokens.ts +53 -0
  124. package/lib/agent-clients/types.ts +15 -1
  125. package/lib/defaults.json +1 -1
  126. package/lib/git/workflow.ts +66 -2
  127. package/lib/internal/agent-client.ts +59 -4
  128. package/lib/internal/git-workflow.ts +5 -1
  129. package/lib/internal/platform-checks.ts +4 -4
  130. package/lib/internal/platform-comment.ts +17 -2
  131. package/lib/internal/platform-issue.ts +4 -0
  132. package/lib/internal/platform-pr-review.ts +104 -0
  133. package/lib/internal/platform-pr.ts +14 -1
  134. package/lib/internal/platform-release-notes.ts +59 -16
  135. package/lib/internal/pr-review-grade.ts +130 -0
  136. package/lib/internal/release-workflow.ts +13 -6
  137. package/lib/internal/sandbox-control.ts +24 -0
  138. package/lib/internal/task-activity.ts +91 -0
  139. package/lib/internal/task-event.ts +9 -1
  140. package/lib/internal/task-ledger.ts +12 -3
  141. package/lib/internal/task-lifecycle.ts +26 -1
  142. package/lib/internal/task-orchestration.ts +123 -14
  143. package/lib/internal/task-review.ts +8 -3
  144. package/lib/platform/adapters.ts +29 -2
  145. package/lib/platform/completion-backfill.ts +134 -0
  146. package/lib/platform/github-client.ts +20 -2
  147. package/lib/platform/issue-comments.ts +3 -2
  148. package/lib/platform/merged-pr-equivalence.ts +127 -5
  149. package/lib/platform/pr-checks.ts +73 -46
  150. package/lib/platform/pr-review.ts +201 -0
  151. package/lib/platform/pull-requests.ts +444 -3
  152. package/lib/platform/release-notes.ts +100 -4
  153. package/lib/platform/releases.ts +16 -4
  154. package/lib/pr-review/evidence-grading.ts +318 -0
  155. package/lib/process-data/index.ts +224 -0
  156. package/lib/process-data/normalize.ts +202 -0
  157. package/lib/process-data/privacy.ts +41 -0
  158. package/lib/process-data/reconcile.ts +110 -0
  159. package/lib/process-data/repair.ts +64 -0
  160. package/lib/process-data/sources.ts +354 -0
  161. package/lib/process-data/store.ts +315 -0
  162. package/lib/process-data/types.ts +135 -0
  163. package/lib/run/index.ts +5 -3
  164. package/lib/run/tui.ts +14 -12
  165. package/lib/sandbox/agent-client-reconciler.ts +44 -2
  166. package/lib/sandbox/capture.ts +9 -2
  167. package/lib/sandbox/commands/create.ts +126 -280
  168. package/lib/sandbox/commands/enter.ts +13 -59
  169. package/lib/sandbox/commands/list-running.ts +23 -6
  170. package/lib/sandbox/commands/ls.ts +22 -6
  171. package/lib/sandbox/commands/rebuild.ts +4 -3
  172. package/lib/sandbox/commands/refresh.ts +4 -126
  173. package/lib/sandbox/commands/rm.ts +24 -3
  174. package/lib/sandbox/commands/show.ts +30 -4
  175. package/lib/sandbox/commands/start.ts +6 -4
  176. package/lib/sandbox/config.ts +4 -0
  177. package/lib/sandbox/constants.ts +8 -0
  178. package/lib/sandbox/control/client.ts +55 -0
  179. package/lib/sandbox/control/protocol.ts +75 -0
  180. package/lib/sandbox/control/server.ts +117 -0
  181. package/lib/sandbox/dockerfile.ts +66 -13
  182. package/lib/sandbox/mounts.ts +24 -4
  183. package/lib/sandbox/recovery.ts +163 -6
  184. package/lib/sandbox/redaction.ts +14 -0
  185. package/lib/sandbox/runtimes/base.dockerfile +24 -74
  186. package/lib/sandbox/tool-types.ts +16 -0
  187. package/lib/sandbox/workspace-identity.ts +123 -0
  188. package/lib/sandbox/workspace-view.ts +143 -0
  189. package/lib/server/server.schema.json +2 -2
  190. package/lib/task/activity-intent.ts +417 -0
  191. package/lib/task/artifact-lifecycle.ts +2 -1
  192. package/lib/task/commands/log.ts +15 -14
  193. package/lib/task/commit-finalization.ts +356 -0
  194. package/lib/task/commit-intent.ts +230 -0
  195. package/lib/task/decision-intents.ts +32 -12
  196. package/lib/task/delegation-receipts.ts +34 -5
  197. package/lib/task/events.ts +75 -30
  198. package/lib/task/finalization-artifacts.ts +58 -0
  199. package/lib/task/implementation-inputs.ts +62 -8
  200. package/lib/task/ledger-intents.ts +43 -3
  201. package/lib/task/lifecycle-execution.ts +106 -0
  202. package/lib/task/orchestration.ts +1019 -72
  203. package/lib/task/resolve-ref.ts +46 -1
  204. package/lib/task/review-finalization.ts +40 -9
  205. package/lib/task/task-execution-lock.ts +296 -0
  206. package/lib/task/verification-checks.ts +1 -1
  207. package/lib/task/verification-engine.ts +249 -2
  208. package/lib/task/verification.ts +5 -3
  209. package/lib/task/workspace-snapshot.ts +26 -5
  210. package/package.json +3 -3
  211. package/templates/.agents/QUICKSTART.en.md +25 -8
  212. package/templates/.agents/QUICKSTART.zh-CN.md +25 -8
  213. package/templates/.agents/README.en.md +10 -7
  214. package/templates/.agents/README.zh-CN.md +10 -7
  215. package/templates/.agents/hooks/lifecycle-delegation.js +15 -4
  216. package/templates/.agents/rules/README.en.md +1 -1
  217. package/templates/.agents/rules/README.zh-CN.md +1 -1
  218. package/templates/.agents/rules/create-issue.github.en.md +4 -2
  219. package/templates/.agents/rules/create-issue.github.zh-CN.md +4 -2
  220. package/templates/.agents/rules/human-decision-context.en.md +11 -2
  221. package/templates/.agents/rules/human-decision-context.zh-CN.md +11 -2
  222. package/templates/.agents/rules/issue-fields.github.en.md +3 -1
  223. package/templates/.agents/rules/issue-fields.github.zh-CN.md +3 -1
  224. package/templates/.agents/rules/issue-pr-commands.en.md +5 -3
  225. package/templates/.agents/rules/issue-pr-commands.github.en.md +5 -3
  226. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +5 -3
  227. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +5 -3
  228. package/templates/.agents/rules/issue-sync.github.en.md +7 -3
  229. package/templates/.agents/rules/issue-sync.github.zh-CN.md +8 -4
  230. package/templates/.agents/rules/lifecycle-orchestration.en.md +5 -2
  231. package/templates/.agents/rules/lifecycle-orchestration.zh-CN.md +5 -2
  232. package/templates/.agents/rules/milestone-inference.github.en.md +4 -2
  233. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +4 -2
  234. package/templates/.agents/rules/next-step-output.en.md +3 -1
  235. package/templates/.agents/rules/next-step-output.zh-CN.md +3 -1
  236. package/templates/.agents/rules/no-mid-flow-questions.en.md +17 -0
  237. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +17 -0
  238. package/templates/.agents/rules/pr-checks-commands.en.md +3 -3
  239. package/templates/.agents/rules/pr-checks-commands.github.en.md +2 -2
  240. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +3 -3
  241. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +3 -3
  242. package/templates/.agents/rules/pr-sync.en.md +3 -1
  243. package/templates/.agents/rules/pr-sync.github.en.md +11 -1
  244. package/templates/.agents/rules/pr-sync.github.zh-CN.md +11 -1
  245. package/templates/.agents/rules/pr-sync.zh-CN.md +3 -1
  246. package/templates/.agents/rules/release-commands.en.md +1 -1
  247. package/templates/.agents/rules/release-commands.github.en.md +12 -2
  248. package/templates/.agents/rules/release-commands.github.zh-CN.md +12 -2
  249. package/templates/.agents/rules/release-commands.zh-CN.md +1 -1
  250. package/templates/.agents/rules/review-handshake.zh-CN.md +1 -1
  251. package/templates/.agents/rules/task-management.en.md +13 -0
  252. package/templates/.agents/rules/task-management.zh-CN.md +13 -0
  253. package/templates/.agents/skills/analyze-task/SKILL.en.md +10 -7
  254. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +10 -7
  255. package/templates/.agents/skills/block-task/SKILL.en.md +7 -5
  256. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +7 -5
  257. package/templates/.agents/skills/cancel-task/SKILL.en.md +6 -4
  258. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +6 -4
  259. package/templates/.agents/skills/close-codescan/SKILL.en.md +3 -1
  260. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +3 -1
  261. package/templates/.agents/skills/close-dependabot/SKILL.en.md +3 -1
  262. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +3 -1
  263. package/templates/.agents/skills/code-task/SKILL.en.md +10 -7
  264. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +12 -9
  265. package/templates/.agents/skills/commit/SKILL.en.md +23 -11
  266. package/templates/.agents/skills/commit/SKILL.zh-CN.md +29 -11
  267. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -1
  268. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -1
  269. package/templates/.agents/skills/commit/reference/commit-orchestration.en.md +49 -0
  270. package/templates/.agents/skills/commit/reference/commit-orchestration.zh-CN.md +55 -0
  271. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +1 -1
  272. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +1 -1
  273. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +1 -1
  274. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +1 -1
  275. package/templates/.agents/skills/commit/reference/task-status-update.en.md +4 -4
  276. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +4 -4
  277. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +6 -4
  278. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +6 -4
  279. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +1 -1
  280. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +1 -1
  281. package/templates/.agents/skills/complete-task/SKILL.en.md +22 -7
  282. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +22 -7
  283. package/templates/.agents/skills/complete-task/config/verify.en.json +1 -0
  284. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +1 -0
  285. package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +17 -0
  286. package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +17 -0
  287. package/templates/.agents/skills/create-pr/SKILL.en.md +7 -5
  288. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +7 -5
  289. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +1 -1
  290. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +1 -1
  291. package/templates/.agents/skills/create-release-note/SKILL.en.md +17 -16
  292. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +17 -16
  293. package/templates/.agents/skills/create-task/SKILL.en.md +5 -3
  294. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -3
  295. package/templates/.agents/skills/create-task/reference/context-capture.en.md +34 -0
  296. package/templates/.agents/skills/create-task/reference/context-capture.zh-CN.md +34 -0
  297. package/templates/.agents/skills/import-issue/SKILL.en.md +5 -3
  298. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +5 -3
  299. package/templates/.agents/skills/plan-task/SKILL.en.md +8 -5
  300. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +8 -5
  301. package/templates/.agents/skills/post-release/SKILL.en.md +2 -0
  302. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +2 -0
  303. package/templates/.agents/skills/release/SKILL.en.md +16 -10
  304. package/templates/.agents/skills/release/SKILL.zh-CN.md +16 -10
  305. package/templates/.agents/skills/restore-task/SKILL.en.md +4 -1
  306. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +4 -1
  307. package/templates/.agents/skills/review-analysis/SKILL.en.md +7 -4
  308. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +7 -4
  309. package/templates/.agents/skills/review-code/SKILL.en.md +11 -8
  310. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +11 -8
  311. package/templates/.agents/skills/review-code/reference/output-templates.en.md +1 -1
  312. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +1 -1
  313. package/templates/.agents/skills/review-plan/SKILL.en.md +7 -4
  314. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +7 -4
  315. package/templates/.agents/skills/review-pr/SKILL.en.md +186 -0
  316. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +186 -0
  317. package/templates/.agents/skills/review-pr/config/verify.en.json +37 -0
  318. package/templates/.agents/skills/review-pr/config/verify.zh-CN.json +37 -0
  319. package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +65 -0
  320. package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +65 -0
  321. package/templates/.agents/skills/review-pr/reference/output-guidance.en.md +18 -0
  322. package/templates/.agents/skills/review-pr/reference/output-guidance.zh-CN.md +18 -0
  323. package/templates/.agents/skills/review-pr/reference/report-template.en.md +85 -0
  324. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +85 -0
  325. package/templates/.agents/skills/run-task/SKILL.en.md +8 -8
  326. package/templates/.agents/skills/run-task/SKILL.zh-CN.md +8 -8
  327. package/templates/.agents/skills/run-task/config/verify.en.json +2 -1
  328. package/templates/.agents/skills/run-task/config/verify.zh-CN.json +2 -1
  329. package/templates/.agents/skills/run-task/reference/host-validation.en.md +20 -0
  330. package/templates/.agents/skills/run-task/reference/host-validation.zh-CN.md +20 -0
  331. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +98 -107
  332. package/templates/.agents/skills/watch-pr/SKILL.en.md +13 -13
  333. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +13 -13
  334. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +27 -6
  335. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +26 -5
  336. package/templates/.agents/templates/task.en.md +2 -2
  337. package/templates/.agents/templates/task.zh-CN.md +2 -2
  338. package/templates/.agents/workflows/bug-fix.en.yaml +3 -3
  339. package/templates/.agents/workflows/bug-fix.zh-CN.yaml +3 -3
  340. package/templates/.agents/workflows/code-review.en.yaml +1 -1
  341. package/templates/.agents/workflows/code-review.zh-CN.yaml +1 -1
  342. package/templates/.agents/workflows/feature-development.en.yaml +4 -4
  343. package/templates/.agents/workflows/feature-development.zh-CN.yaml +4 -4
  344. package/templates/.agents/workflows/refactoring.en.yaml +3 -3
  345. package/templates/.agents/workflows/refactoring.zh-CN.yaml +3 -3
  346. package/templates/.claude/commands/post-release.en.md +1 -0
  347. package/templates/.claude/commands/post-release.zh-CN.md +1 -0
  348. package/templates/.claude/commands/review-pr.en.md +8 -0
  349. package/templates/.claude/commands/review-pr.zh-CN.md +8 -0
  350. package/templates/.claude/commands/watch-pr.en.md +1 -1
  351. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  352. package/templates/.claude/rules/tool-preferences.en.md +20 -0
  353. package/templates/.claude/rules/tool-preferences.zh-CN.md +20 -0
  354. package/templates/.opencode/commands/post-release.en.md +2 -0
  355. package/templates/.opencode/commands/post-release.zh-CN.md +2 -0
  356. package/templates/.opencode/commands/review-pr.en.md +11 -0
  357. package/templates/.opencode/commands/review-pr.zh-CN.md +11 -0
  358. package/templates/.opencode/commands/watch-pr.en.md +1 -1
  359. package/templates/.opencode/commands/watch-pr.zh-CN.md +1 -1
  360. package/dist/lib/agent-clients/adapters/gemini-cli.js +0 -64
  361. package/lib/agent-clients/adapters/gemini-cli.ts +0 -65
  362. package/templates/.gemini/commands/_project_/analyze-task.en.toml +0 -10
  363. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +0 -10
  364. package/templates/.gemini/commands/_project_/archive-tasks.en.toml +0 -10
  365. package/templates/.gemini/commands/_project_/archive-tasks.zh-CN.toml +0 -10
  366. package/templates/.gemini/commands/_project_/block-task.en.toml +0 -10
  367. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +0 -10
  368. package/templates/.gemini/commands/_project_/cancel-task.en.toml +0 -10
  369. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +0 -10
  370. package/templates/.gemini/commands/_project_/check-task.en.toml +0 -10
  371. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +0 -10
  372. package/templates/.gemini/commands/_project_/close-codescan.en.toml +0 -8
  373. package/templates/.gemini/commands/_project_/close-codescan.zh-CN.toml +0 -8
  374. package/templates/.gemini/commands/_project_/close-dependabot.en.toml +0 -8
  375. package/templates/.gemini/commands/_project_/close-dependabot.zh-CN.toml +0 -8
  376. package/templates/.gemini/commands/_project_/code-task.en.toml +0 -10
  377. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +0 -10
  378. package/templates/.gemini/commands/_project_/commit.en.toml +0 -10
  379. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +0 -10
  380. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +0 -10
  381. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +0 -10
  382. package/templates/.gemini/commands/_project_/complete-task.en.toml +0 -10
  383. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +0 -10
  384. package/templates/.gemini/commands/_project_/create-pr.en.toml +0 -10
  385. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +0 -10
  386. package/templates/.gemini/commands/_project_/create-release-note.en.toml +0 -8
  387. package/templates/.gemini/commands/_project_/create-release-note.zh-CN.toml +0 -8
  388. package/templates/.gemini/commands/_project_/create-task.en.toml +0 -8
  389. package/templates/.gemini/commands/_project_/create-task.zh-CN.toml +0 -8
  390. package/templates/.gemini/commands/_project_/import-codescan.en.toml +0 -8
  391. package/templates/.gemini/commands/_project_/import-codescan.zh-CN.toml +0 -8
  392. package/templates/.gemini/commands/_project_/import-dependabot.en.toml +0 -8
  393. package/templates/.gemini/commands/_project_/import-dependabot.zh-CN.toml +0 -8
  394. package/templates/.gemini/commands/_project_/import-issue.en.toml +0 -8
  395. package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +0 -8
  396. package/templates/.gemini/commands/_project_/init-labels.en.toml +0 -8
  397. package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +0 -8
  398. package/templates/.gemini/commands/_project_/init-milestones.en.toml +0 -10
  399. package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +0 -10
  400. package/templates/.gemini/commands/_project_/plan-task.en.toml +0 -10
  401. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +0 -10
  402. package/templates/.gemini/commands/_project_/post-release.en.toml +0 -6
  403. package/templates/.gemini/commands/_project_/post-release.zh-CN.toml +0 -6
  404. package/templates/.gemini/commands/_project_/refine-title.en.toml +0 -8
  405. package/templates/.gemini/commands/_project_/refine-title.zh-CN.toml +0 -8
  406. package/templates/.gemini/commands/_project_/release.en.toml +0 -8
  407. package/templates/.gemini/commands/_project_/release.zh-CN.toml +0 -8
  408. package/templates/.gemini/commands/_project_/restore-task.en.toml +0 -8
  409. package/templates/.gemini/commands/_project_/restore-task.zh-CN.toml +0 -8
  410. package/templates/.gemini/commands/_project_/review-analysis.en.toml +0 -10
  411. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +0 -10
  412. package/templates/.gemini/commands/_project_/review-code.en.toml +0 -10
  413. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +0 -10
  414. package/templates/.gemini/commands/_project_/review-plan.en.toml +0 -10
  415. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +0 -10
  416. package/templates/.gemini/commands/_project_/run-task.en.toml +0 -8
  417. package/templates/.gemini/commands/_project_/run-task.zh-CN.toml +0 -8
  418. package/templates/.gemini/commands/_project_/test-integration.en.toml +0 -6
  419. package/templates/.gemini/commands/_project_/test-integration.zh-CN.toml +0 -6
  420. package/templates/.gemini/commands/_project_/test.en.toml +0 -6
  421. package/templates/.gemini/commands/_project_/test.zh-CN.toml +0 -6
  422. package/templates/.gemini/commands/_project_/update-agent-infra.en.toml +0 -6
  423. package/templates/.gemini/commands/_project_/update-agent-infra.zh-CN.toml +0 -6
  424. package/templates/.gemini/commands/_project_/upgrade-dependency.en.toml +0 -8
  425. package/templates/.gemini/commands/_project_/upgrade-dependency.zh-CN.toml +0 -8
  426. package/templates/.gemini/commands/_project_/watch-pr.en.toml +0 -10
  427. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +0 -10
  428. package/templates/.gemini/settings.json +0 -3
@@ -0,0 +1,135 @@
1
+ type JsonPrimitive = null | boolean | number | string;
2
+ type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue };
3
+
4
+ type Availability<T> =
5
+ | { state: 'known'; value: T }
6
+ | { state: 'unknown' | 'unavailable'; reason: string };
7
+
8
+ type SourceKind = 'local-file' | 'github-rest' | 'operational-report' | 'structured-telemetry';
9
+
10
+ type PrivacyDisposition =
11
+ | { state: 'included' }
12
+ | { state: 'excluded-sensitive'; ruleId: string }
13
+ | { state: 'unavailable'; reason: string };
14
+
15
+ type CapturedObject = {
16
+ sourceKind: SourceKind;
17
+ sourceIdentity: string;
18
+ sha256: string;
19
+ bytes: number;
20
+ content?: string;
21
+ disposition?: PrivacyDisposition;
22
+ };
23
+
24
+ type StoredObjectEvidence = Omit<CapturedObject, 'content'>;
25
+
26
+ type RestPageEvidence = {
27
+ index: number;
28
+ itemCount: number;
29
+ canonicalSha256: string;
30
+ };
31
+
32
+ type RestCollectionEvidence = {
33
+ endpoint: string;
34
+ requestCount: number;
35
+ dataPageCount: number;
36
+ itemCount: number;
37
+ termination: 'short-page';
38
+ pages: RestPageEvidence[];
39
+ };
40
+
41
+ type NormalizedKind =
42
+ | 'task'
43
+ | 'artifact'
44
+ | 'platform-resource'
45
+ | 'lifecycle-event'
46
+ | 'review-finding'
47
+ | 'human-ruling'
48
+ | 'telemetry'
49
+ | 'operational-report'
50
+ | 'missing'
51
+ | 'conflict';
52
+
53
+ type NormalizedRecord = {
54
+ recordId: string;
55
+ kind: NormalizedKind;
56
+ sourceIdentity: string;
57
+ sourceSha256: string;
58
+ binding?: string;
59
+ observedAt?: Availability<string>;
60
+ data?: JsonValue;
61
+ };
62
+
63
+ type QualityCategory =
64
+ | 'missing-local'
65
+ | 'missing-remote'
66
+ | 'duplicate-identity'
67
+ | 'binding-conflict'
68
+ | 'content-mismatch'
69
+ | 'schema-difference'
70
+ | 'mutable-remote'
71
+ | 'unrecoverable'
72
+ | 'privacy-excluded';
73
+
74
+ type QualityFinding = {
75
+ findingId: string;
76
+ category: QualityCategory;
77
+ severity: 'info' | 'warning' | 'error';
78
+ identities: string[];
79
+ repairable: boolean;
80
+ reason: string;
81
+ };
82
+
83
+ type RepairAction = {
84
+ repairId: string;
85
+ operation: 'add' | 'supersede' | 'link';
86
+ sourceRecordId: string;
87
+ targetRecordId: string;
88
+ preconditionSha256: string;
89
+ };
90
+
91
+ type SnapshotManifest = {
92
+ schema: 'raw-manifest/v1';
93
+ snapshotId: string;
94
+ scope: 'all' | 'local' | 'github';
95
+ repository: string;
96
+ observedFrom: string;
97
+ observedTo: string;
98
+ objects: StoredObjectEvidence[];
99
+ endpoints: RestCollectionEvidence[];
100
+ recordCount: number;
101
+ findingCount: number;
102
+ repairCount: number;
103
+ privacyPolicyVersion: 'process-data-privacy/v1';
104
+ excerptsEnabled: boolean;
105
+ dispositionCounts: Record<'included' | 'excluded-sensitive' | 'unavailable', number>;
106
+ manifestSha256: string;
107
+ };
108
+
109
+ type ProcessDataError = {
110
+ code: string;
111
+ message: string;
112
+ retryable?: boolean;
113
+ };
114
+
115
+ type ProcessResult<T> = { ok: true; value: T } | { ok: false; error: ProcessDataError };
116
+
117
+ export type {
118
+ Availability,
119
+ CapturedObject,
120
+ JsonPrimitive,
121
+ JsonValue,
122
+ NormalizedKind,
123
+ NormalizedRecord,
124
+ PrivacyDisposition,
125
+ ProcessDataError,
126
+ ProcessResult,
127
+ QualityCategory,
128
+ QualityFinding,
129
+ RepairAction,
130
+ RestCollectionEvidence,
131
+ RestPageEvidence,
132
+ SnapshotManifest,
133
+ SourceKind,
134
+ StoredObjectEvidence
135
+ };
package/lib/run/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { loadServerConfig } from '../server/config.ts';
4
- import { resolveTaskBranch } from '../sandbox/task-resolver.ts';
4
+ import { resolveSandboxTarget, type SandboxWorkspaceIdentity } from '../sandbox/workspace-identity.ts';
5
5
  import { createRunId, runInSandbox, type SandboxRunMetadata } from '../sandbox/capture.ts';
6
6
  import { loadShortIdByTaskId, normalizeShortIdInput } from '../task/short-id.ts';
7
7
  import { buildTuiCommand, renderPrompt, selectTui } from './tui.ts';
@@ -19,6 +19,7 @@ export type ParsedRunArgs = {
19
19
  export type SandboxRunRequest = {
20
20
  taskRef: string;
21
21
  branch: string;
22
+ workspace?: SandboxWorkspaceIdentity;
22
23
  command: string[];
23
24
  runId?: string;
24
25
  recreate?: boolean;
@@ -136,7 +137,6 @@ function resolveActiveTaskIdentity(taskRef: string, repoRoot: string): ActiveTas
136
137
 
137
138
  if (TASK_ID_RE.test(taskRef)) {
138
139
  taskId = taskRef;
139
- resolvedTaskRef = loadShortIdByTaskId(repoRoot).get(taskId) ?? taskRef;
140
140
  } else {
141
141
  const normalized = normalizeShortIdInput(taskRef, { shortIdLength: readShortIdLength(repoRoot) });
142
142
  if (normalized.kind !== 'shortId') return null;
@@ -211,7 +211,8 @@ export async function runSkill(args: string[], options: RunSkillOptions = {}): P
211
211
  }
212
212
 
213
213
  const repoRoot = options.repoRoot ?? config?.repoRoot ?? process.cwd();
214
- const branch = resolveTaskBranch(parsed.taskRef, repoRoot);
214
+ const target = resolveSandboxTarget(parsed.taskRef, repoRoot);
215
+ const branch = target.branch;
215
216
  const identity = resolveActiveTaskIdentity(parsed.taskRef, repoRoot);
216
217
  const runId = identity ? createRunId() : undefined;
217
218
  const writeStdout = options.writeStdout ?? ((chunk: string) => process.stdout.write(chunk));
@@ -222,6 +223,7 @@ export async function runSkill(args: string[], options: RunSkillOptions = {}): P
222
223
  const result = await runSandbox({
223
224
  taskRef: parsed.taskRef,
224
225
  branch,
226
+ workspace: target.workspace,
225
227
  command,
226
228
  runId,
227
229
  recreate: parsed.recreate
package/lib/run/tui.ts CHANGED
@@ -1,9 +1,16 @@
1
1
  import { renderAgentClientInvocation } from '../agent-clients/invocation.ts';
2
2
  import { getAgentClientAdapter } from '../agent-clients/registry.ts';
3
+ import type { AgentClientId } from '../agent-clients/types.ts';
3
4
 
4
- export type TuiName = 'claude' | 'codex' | 'gemini' | 'opencode';
5
+ export type TuiName = 'claude' | 'codex' | 'antigravity' | 'opencode';
5
6
 
6
- const TUI_NAMES = new Set(['claude', 'codex', 'gemini', 'opencode']);
7
+ const TUI_NAMES = new Set(['claude', 'codex', 'antigravity', 'opencode']);
8
+ const TUI_AGENT_CLIENT_IDS: Readonly<Record<TuiName, AgentClientId>> = Object.freeze({
9
+ claude: 'claude-code',
10
+ codex: 'codex',
11
+ antigravity: 'antigravity-cli',
12
+ opencode: 'opencode'
13
+ });
7
14
 
8
15
  export type CommandConfig = {
9
16
  defaultTui?: unknown;
@@ -29,20 +36,15 @@ export function selectTui(
29
36
  }
30
37
 
31
38
  export function renderPrompt(params: { tui: TuiName; skill: string; args: string[] }): string {
32
- const suffix = [params.skill, ...params.args].join(' ').trim();
33
- if (params.tui === 'codex') {
34
- return renderAgentClientInvocation(getAgentClientAdapter('codex').invocation, {
35
- skillName: params.skill,
36
- args: params.args
37
- });
38
- }
39
- if (params.tui === 'gemini') return `/agent-infra:${suffix}`;
40
- return `/${suffix}`;
39
+ return renderAgentClientInvocation(
40
+ getAgentClientAdapter(TUI_AGENT_CLIENT_IDS[params.tui]).invocation,
41
+ { skillName: params.skill, args: params.args }
42
+ );
41
43
  }
42
44
 
43
45
  export function buildTuiCommand(tui: TuiName, prompt: string): [string, string[]] {
44
46
  if (tui === 'claude') return ['claude', ['--dangerously-skip-permissions', '--print', prompt]];
45
- if (tui === 'gemini') return ['gemini', ['--approval-mode', 'yolo', '--prompt', prompt]];
47
+ if (tui === 'antigravity') return ['agy', ['--dangerously-skip-permissions', '--print', prompt]];
46
48
  if (tui === 'opencode') return ['opencode', ['run', '--dangerously-skip-permissions', prompt]];
47
49
  return ['codex', ['exec', '--dangerously-bypass-approvals-and-sandbox', prompt]];
48
50
  }
@@ -51,6 +51,12 @@ type SandboxRuntimeCapabilityProjection = Readonly<{
51
51
  }>;
52
52
  repair?: AgentClientSandboxRecoveryCheck['repair'];
53
53
  }>[];
54
+ image: SandboxImageContribution;
55
+ }>;
56
+
57
+ type SandboxImageContribution = Readonly<{
58
+ dockerfileFragments: readonly string[];
59
+ dotfilesExclusions: readonly string[];
54
60
  }>;
55
61
 
56
62
  type PlannedAgentClientRecoveryCheck = Readonly<{
@@ -64,6 +70,7 @@ type SandboxCapabilityPlan = Readonly<{
64
70
  hooksByPhase: Readonly<Record<SandboxHookPhase, readonly AgentClientSandboxHook[]>>;
65
71
  recoveryChecks: readonly PlannedAgentClientRecoveryCheck[];
66
72
  aliases: readonly SandboxAlias[];
73
+ image: SandboxImageContribution;
67
74
  imageSignature: string;
68
75
  runtimeSignature: string;
69
76
  runtimeProjection: SandboxRuntimeCapabilityProjection;
@@ -147,6 +154,36 @@ function assertUniqueTools(tools: readonly SandboxTool[]): void {
147
154
  }
148
155
  }
149
156
 
157
+ function unique(values: readonly string[]): readonly string[] {
158
+ return Object.freeze([...new Set(values)]);
159
+ }
160
+
161
+ function sandboxImageContribution(
162
+ adapters: readonly AgentClientAdapter[],
163
+ tools: readonly SandboxTool[]
164
+ ): SandboxImageContribution {
165
+ const homePrefix = '/home/devuser/';
166
+ const derivedExclusions = tools.map((tool) => {
167
+ if (!tool.containerMount.startsWith(homePrefix)) {
168
+ throw new Error(
169
+ `Agent Client '${tool.id}' container mount must be below ${homePrefix.slice(0, -1)}`
170
+ );
171
+ }
172
+ return tool.containerMount.slice(homePrefix.length);
173
+ });
174
+ return Object.freeze({
175
+ dockerfileFragments: unique(adapters.flatMap((adapter) =>
176
+ adapter.sandbox.image?.dockerfileFragment
177
+ ? [adapter.sandbox.image.dockerfileFragment]
178
+ : []
179
+ )),
180
+ dotfilesExclusions: unique([
181
+ ...derivedExclusions,
182
+ ...adapters.flatMap((adapter) => adapter.sandbox.image?.dotfilesExclusions ?? [])
183
+ ])
184
+ });
185
+ }
186
+
150
187
  function hooksByPhase(
151
188
  adapters: readonly AgentClientAdapter[]
152
189
  ): SandboxCapabilityPlan['hooksByPhase'] {
@@ -207,6 +244,7 @@ function createSandboxCapabilityPlan(
207
244
 
208
245
  const tools = Object.freeze([...nonClientTools, ...selectedTools, ...selectedCustomTools]);
209
246
  assertUniqueTools(tools);
247
+ const image = sandboxImageContribution(selectedAgentClients, selectedTools);
210
248
  const phaseHooks = hooksByPhase(selectedAgentClients);
211
249
  const hookProjection = selectedAgentClients.flatMap((adapter) =>
212
250
  adapter.sandbox.hooks.map((hook) => ({
@@ -239,7 +277,8 @@ function createSandboxCapabilityPlan(
239
277
  tools: Object.freeze(tools.map(runtimeToolProjection)),
240
278
  selectedAgentClients: Object.freeze(selectedAgentClients.map((adapter) => adapter.id)),
241
279
  hooks: Object.freeze(hookProjection),
242
- recoveryChecks: recoveryCheckProjection
280
+ recoveryChecks: recoveryCheckProjection,
281
+ image
243
282
  });
244
283
  const cleanupInventory = Object.freeze([
245
284
  agentInfraTool(config.home),
@@ -256,6 +295,7 @@ function createSandboxCapabilityPlan(
256
295
  aliases: Object.freeze(
257
296
  listAgentClientAdapters().flatMap((adapter) => adapter.sandbox.aliases)
258
297
  ),
298
+ image,
259
299
  imageSignature: hash(tools.map(({ id, install }) => ({ id, install }))),
260
300
  runtimeSignature: hash(runtimeProjection),
261
301
  runtimeProjection,
@@ -367,12 +407,14 @@ export {
367
407
  DEFAULT_SANDBOX_HOOK_TIMEOUT_MS,
368
408
  createSandboxCapabilityPlan,
369
409
  runBoundedSandboxHookCommand,
370
- runSandboxHooks
410
+ runSandboxHooks,
411
+ sandboxImageContribution
371
412
  };
372
413
  export type {
373
414
  HookExecutionResult,
374
415
  SandboxCapabilityConfig,
375
416
  SandboxCapabilityPlan,
417
+ SandboxImageContribution,
376
418
  PlannedAgentClientRecoveryCheck,
377
419
  SandboxRuntimeCapabilityProjection
378
420
  };
@@ -11,10 +11,12 @@ import {
11
11
  startSandboxContainer,
12
12
  type SandboxRow
13
13
  } from './commands/list-running.ts';
14
+ import { resolveSandboxTarget, type SandboxWorkspaceIdentity } from './workspace-identity.ts';
14
15
 
15
16
  export type SandboxCaptureRequest = {
16
17
  taskRef: string;
17
18
  branch: string;
19
+ workspace?: SandboxWorkspaceIdentity;
18
20
  command: string[];
19
21
  timeoutMs?: number;
20
22
  recreate?: boolean;
@@ -44,6 +46,7 @@ export type SandboxCaptureOptions = {
44
46
  startContainer?: (name: string) => void;
45
47
  ensureReady?: (params: {
46
48
  branch: string;
49
+ workspace?: SandboxWorkspaceIdentity;
47
50
  row: SandboxRow;
48
51
  allowRecreate: boolean;
49
52
  }) => Promise<SandboxReadyResult>;
@@ -183,6 +186,8 @@ export async function runInSandbox(
183
186
  ): Promise<SandboxCaptureResult> {
184
187
  const config = options.engine ? null : loadConfig();
185
188
  const engine = options.engine ?? detectEngine(config!);
189
+ const workspace = request.workspace
190
+ ?? (config ? resolveSandboxTarget(request.taskRef, config.repoRoot).workspace : undefined);
186
191
  const rows =
187
192
  options.rows ??
188
193
  (() => {
@@ -200,6 +205,7 @@ export async function runInSandbox(
200
205
  if (options.ensureReady) {
201
206
  container = (await options.ensureReady({
202
207
  branch: request.branch,
208
+ workspace,
203
209
  row: found,
204
210
  allowRecreate: request.recreate ?? false
205
211
  })).container;
@@ -208,11 +214,12 @@ export async function runInSandbox(
208
214
  config,
209
215
  engine,
210
216
  branch: request.branch,
217
+ workspace,
211
218
  row: found,
212
219
  allowRecreate: request.recreate,
213
- recreate: async (targetBranch) => {
220
+ recreate: async () => {
214
221
  const { create } = await import('./commands/create.ts');
215
- await create([targetBranch, '--no-refresh']);
222
+ await create([request.taskRef, '--no-refresh']);
216
223
  }
217
224
  })).container;
218
225
  } else if (!found.running) {