@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
@@ -9,6 +9,7 @@ import { readAppliedOverlays, repairSnapshot } from './repair.js';
9
9
  import { collectGitHubBoundary, resolveGitHubRepository } from './sources.js';
10
10
  import { canonicalJsonBytes, createObjectStore, findSnapshot, publishSnapshotV2, verifySnapshot } from './store.js';
11
11
  import { createGitHubClient } from '../platform/github-client.js';
12
+ import { PUBLIC_CLI_ROUTE_SELECTORS } from '../internal/cli-route-inventory.js';
12
13
  const USAGE = `Usage: ai data <command> [options]
13
14
 
14
15
  Commands:
@@ -18,6 +19,7 @@ Commands:
18
19
  repair <snapshot-id> [--root <dir>] [--apply]
19
20
  export <snapshot-id> [--root <dir>] [--repairs none|applied] [--as-of <ISO>] [--output <file|->]
20
21
  `;
22
+ const DATA_OPERATIONS = PUBLIC_CLI_ROUTE_SELECTORS.data;
21
23
  function parseArgs(args, valueOptions, booleanOptions) {
22
24
  const positionals = [];
23
25
  const options = new Map();
@@ -286,6 +288,11 @@ async function cmdData(args) {
286
288
  return command ? 0 : 1;
287
289
  }
288
290
  try {
291
+ if (!DATA_OPERATIONS.includes(command)) {
292
+ process.stderr.write(`Unknown data command: ${command}\n`);
293
+ process.stdout.write(USAGE);
294
+ return 1;
295
+ }
289
296
  switch (command) {
290
297
  case 'capture': return capture(rest);
291
298
  case 'verify': return verify(rest);
@@ -7,57 +7,103 @@ import { loadShortIdByTaskId, normalizeShortIdInput } from '../task/short-id.js'
7
7
  import { buildTuiCommand, renderPrompt, selectTui } from './tui.js';
8
8
  import { getSkillRunSpec } from './skills.js';
9
9
  import { runHostCommand } from './host.js';
10
- const USAGE = `Usage: ai run <skill> [task-ref] [args...] [--tui <name>] [--recreate]
10
+ import { PUBLIC_CLI_ROUTE_SELECTORS } from '../internal/cli-route-inventory.js';
11
+ const USAGE = `Usage: ai run --skill <skill> [--task <task-ref>] [--tui <name>] [--recreate] [-- <skill-args...>]
11
12
 
12
13
  Task skills are scheduled inside the sandbox tmux session; ai run returns once
13
14
  the tmux window is created. --recreate authorizes container-only replacement
14
15
  when in-place sandbox recovery fails; it is not included in the TUI prompt.
15
16
 
16
17
  Examples:
17
- ai run create-task "describe the task" --tui codex
18
- ai run code-task #7 --tui codex --recreate`;
19
- function extractTui(args) {
20
- const rest = [];
18
+ ai run --skill create-task "describe the task" --tui codex
19
+ ai run --skill code-task --task 7 --tui codex --recreate`;
20
+ function optionValue(args, index, option) {
21
+ const value = args[index + 1];
22
+ if (!value || value.startsWith('--'))
23
+ throw new Error(`${option} requires a value`);
24
+ return value;
25
+ }
26
+ function extractHostOptions(args) {
27
+ const positionals = [];
28
+ const forwarded = [];
29
+ let skill = null;
30
+ let taskRef = null;
21
31
  let tui = null;
32
+ let recreate = false;
33
+ let separator = false;
22
34
  for (let i = 0; i < args.length; i += 1) {
23
35
  const arg = args[i];
24
- if (arg === '--tui') {
25
- const value = args[i + 1];
26
- if (!value)
27
- throw new Error('--tui requires a value');
28
- tui = value;
36
+ if (separator) {
37
+ forwarded.push(arg);
38
+ }
39
+ else if (arg === '--') {
40
+ separator = true;
41
+ }
42
+ else if (arg === '--skill') {
43
+ if (skill !== null)
44
+ throw new Error("duplicate option '--skill'");
45
+ skill = optionValue(args, i, '--skill');
46
+ i += 1;
47
+ }
48
+ else if (arg === '--task') {
49
+ if (taskRef !== null)
50
+ throw new Error("duplicate option '--task'");
51
+ taskRef = optionValue(args, i, '--task');
52
+ i += 1;
53
+ }
54
+ else if (arg === '--tui') {
55
+ if (tui !== null)
56
+ throw new Error("duplicate option '--tui'");
57
+ tui = optionValue(args, i, '--tui');
29
58
  i += 1;
30
- continue;
31
59
  }
32
- rest.push(arg);
60
+ else if (arg === '--recreate') {
61
+ if (recreate)
62
+ throw new Error("duplicate option '--recreate'");
63
+ recreate = true;
64
+ }
65
+ else if (arg.startsWith('-')) {
66
+ throw new Error(`Unknown option '${arg}'`);
67
+ }
68
+ else {
69
+ positionals.push(arg);
70
+ }
33
71
  }
34
- return { rest, tui };
72
+ return { positionals, forwarded, skill, taskRef, tui, recreate };
35
73
  }
36
74
  export function parseRunArgs(args) {
37
75
  if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
38
76
  throw new Error(USAGE);
39
77
  }
40
- const { rest: withRecoveryFlags, tui } = extractTui(args);
41
- const recreate = withRecoveryFlags.includes('--recreate');
42
- const rest = withRecoveryFlags.filter((arg) => arg !== '--recreate');
43
- const [skill = '', maybeTaskRef, ...remaining] = rest;
78
+ const { positionals, forwarded, skill, taskRef, tui, recreate } = extractHostOptions(args);
79
+ if (!skill)
80
+ throw new Error("option '--skill' is required");
44
81
  const spec = getSkillRunSpec(skill);
45
82
  if (!spec)
46
83
  throw new Error(`Unknown skill '${skill}'`);
84
+ const routeSelector = spec.kind === 'create' ? 'create-task' : recreate ? 'recreate' : 'task-skill';
85
+ if (!PUBLIC_CLI_ROUTE_SELECTORS.run.includes(routeSelector)) {
86
+ throw new Error(`Unsupported run route '${routeSelector}'`);
87
+ }
47
88
  if (spec.kind === 'create') {
89
+ if (taskRef !== null)
90
+ throw new Error("create-task does not accept '--task'");
48
91
  if (recreate)
49
92
  throw new Error('--recreate is only valid for sandbox task runs');
50
- const createArgs = rest.slice(1);
93
+ const createArgs = [...positionals, ...forwarded];
51
94
  if (createArgs.length === 0)
52
95
  throw new Error('create-task requires a description');
53
96
  return { skill, taskRef: null, args: createArgs, tui };
54
97
  }
55
- if (!maybeTaskRef)
98
+ if (positionals.length > 0) {
99
+ throw new Error('ai run requires --skill and --task; positional host arguments are not supported');
100
+ }
101
+ if (taskRef === null)
56
102
  throw new Error(`${skill} requires a task-ref`);
57
103
  return {
58
104
  skill,
59
- taskRef: maybeTaskRef,
60
- args: remaining,
105
+ taskRef,
106
+ args: forwarded,
61
107
  tui,
62
108
  ...(recreate ? { recreate: true } : {})
63
109
  };
@@ -155,8 +201,7 @@ export async function runSkill(args, options = {}) {
155
201
  const commandConfig = options.command ?? config?.command ?? {};
156
202
  assertAllowedByConfig(parsed.skill, commandConfig);
157
203
  const tui = selectTui(parsed.skill, { cliTui: parsed.tui, command: commandConfig });
158
- const promptArgs = parsed.taskRef === null ? parsed.args : [parsed.taskRef, ...parsed.args];
159
- const prompt = renderPrompt({ tui, skill: parsed.skill, args: promptArgs });
204
+ const prompt = renderPrompt({ tui, skill: parsed.skill, args: parsed.args });
160
205
  const [file, argv] = buildTuiCommand(tui, prompt);
161
206
  const command = [file, ...argv];
162
207
  if (parsed.taskRef === null) {
@@ -0,0 +1,22 @@
1
+ import { readSandboxControlStatus } from '../control/state.js';
2
+ import { sandboxControlPaths } from '../workspace-view.js';
3
+ export function readSandboxControlStatusForRow(config, row) {
4
+ if (!row.workspaceMode || row.workspaceMode === 'legacy-invalid')
5
+ return null;
6
+ const identity = row.workspaceMode === 'task-bound' && row.taskId
7
+ ? { mode: 'task-bound', taskId: row.taskId }
8
+ : { mode: 'branch-only' };
9
+ const control = sandboxControlPaths({
10
+ base: config.controlBase,
11
+ project: config.project,
12
+ container: row.name,
13
+ identity
14
+ });
15
+ try {
16
+ return readSandboxControlStatus(control.statusDir);
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ //# sourceMappingURL=control-status.js.map
@@ -24,6 +24,7 @@ import { sandboxCoreBindMounts } from '../mounts.js';
24
24
  import { assertSandboxTaskSource, finalizeSandboxControlManifest, materializeSandboxControl, materializeSandboxWorkspaceView, prepareSandboxWorkspaceMountTargets, sandboxControlPaths, } from '../workspace-view.js';
25
25
  import { clipboardHostDir, CONTAINER_CLIPBOARD_MOUNT } from '../clipboard/paths.js';
26
26
  import { validateSelinuxDisableEnv } from '../engines/selinux.js';
27
+ import { captureSandboxAuthority, commandForSandboxAuthority, verifySandboxAuthority } from '../engines/authority.js';
27
28
  import { dotfilesCacheDir, materializeDotfiles } from '../dotfiles.js';
28
29
  import { ensureSandboxDiscoveryReadmes } from '../readme-scaffold.js';
29
30
  import { removeDirRecursive } from '../../remove-dir.js';
@@ -616,6 +617,14 @@ function runEngineTaskCommand(engine, cmd, args, opts = {}) {
616
617
  const command = commandForEngine(engine, cmd, args);
617
618
  return runTaskCommand(command.cmd, command.args, opts);
618
619
  }
620
+ function runSandboxAuthorityTaskCommand(authority, cmd, args, opts = {}) {
621
+ const command = commandForSandboxAuthority(authority, cmd, args);
622
+ return runTaskCommand(command.cmd, command.args, opts);
623
+ }
624
+ function runSandboxAuthoritySafeCommand(authority, args) {
625
+ const command = commandForSandboxAuthority(authority, 'docker', args);
626
+ return runSafe(command.cmd, command.args);
627
+ }
619
628
  // `docker run` args for mounting a tool's containerMount as an in-container
620
629
  // tmpfs. containerMount is an in-container path, so it is NOT engine-converted.
621
630
  export function buildTmpfsRunArgs(containerMount, tmpfs) {
@@ -1076,8 +1085,11 @@ export async function create(args) {
1076
1085
  const hostTz = detectHostTimezone();
1077
1086
  const tzFlags = hostTz ? ['-e', `TZ=${hostTz}`] : [];
1078
1087
  let createdContainerRef = null;
1088
+ let creationAuthority = null;
1079
1089
  try {
1080
- const dockerRunId = runEngineTaskCommand(engine, 'docker', [
1090
+ creationAuthority = captureSandboxAuthority(engine);
1091
+ commandForSandboxAuthority(creationAuthority, 'docker');
1092
+ const dockerRunId = runSandboxAuthorityTaskCommand(creationAuthority, 'docker', [
1081
1093
  'run',
1082
1094
  '-d',
1083
1095
  '--init',
@@ -1128,12 +1140,12 @@ export async function create(args) {
1128
1140
  effectiveConfig.imageName
1129
1141
  ]);
1130
1142
  createdContainerRef = dockerRunId.trim();
1131
- const containerId = runEngineTaskCommand(engine, 'docker', [
1143
+ const containerId = runSandboxAuthorityTaskCommand(creationAuthority, 'docker', [
1132
1144
  'inspect', '--format', '{{.Id}}', dockerRunId.trim()
1133
1145
  ]).trim();
1134
1146
  if (!containerId)
1135
1147
  throw new Error('SANDBOX_CONTROL_CONTAINER_ID_INVALID');
1136
- const rawContainerLabels = runEngineTaskCommand(engine, 'docker', [
1148
+ const rawContainerLabels = runSandboxAuthorityTaskCommand(creationAuthority, 'docker', [
1137
1149
  'inspect', '--format', '{{json .Config.Labels}}', containerId
1138
1150
  ]).trim();
1139
1151
  let inspectedLabels;
@@ -1160,10 +1172,18 @@ export async function create(args) {
1160
1172
  if (labels[key] !== expected)
1161
1173
  throw new Error('SANDBOX_CONTROL_CONTAINER_IDENTITY_MISMATCH');
1162
1174
  }
1175
+ const authorityEvidence = captureSandboxAuthority(engine, {
1176
+ route: creationAuthority,
1177
+ lockDomain: creationAuthority.lockDomain
1178
+ });
1179
+ if (verifySandboxAuthority(creationAuthority, authorityEvidence).state !== 'verified') {
1180
+ throw new Error('SANDBOX_AUTHORITY_DRIFT_DURING_CREATE');
1181
+ }
1163
1182
  finalizeSandboxControlManifest(control, {
1164
1183
  engine,
1165
1184
  id: containerId,
1166
- labels: expectedLabels
1185
+ labels: expectedLabels,
1186
+ authorityEvidence
1167
1187
  });
1168
1188
  replacementLease.clearQuiescing();
1169
1189
  await startSandboxControlBroker(effectiveConfig.repoRoot, control.manifestPath);
@@ -1175,8 +1195,14 @@ export async function create(args) {
1175
1195
  }
1176
1196
  catch (error) {
1177
1197
  if (createdContainerRef) {
1178
- runSafeEngine(engine, 'docker', ['stop', createdContainerRef]);
1179
- runSafeEngine(engine, 'docker', ['rm', createdContainerRef]);
1198
+ if (creationAuthority) {
1199
+ runSandboxAuthoritySafeCommand(creationAuthority, ['stop', createdContainerRef]);
1200
+ runSandboxAuthoritySafeCommand(creationAuthority, ['rm', createdContainerRef]);
1201
+ }
1202
+ else {
1203
+ runSafeEngine(engine, 'docker', ['stop', createdContainerRef]);
1204
+ runSafeEngine(engine, 'docker', ['rm', createdContainerRef]);
1205
+ }
1180
1206
  }
1181
1207
  if (!hadExistingControlRoot)
1182
1208
  removeDirRecursive(control.root);
@@ -6,6 +6,7 @@ import { detectEngine } from '../engine.js';
6
6
  import { formatTable } from '../../table.js';
7
7
  import { loadShortIdByTaskId } from '../../task/short-id.js';
8
8
  import { fetchSandboxRows } from './list-running.js';
9
+ import { readSandboxControlStatusForRow } from './control-status.js';
9
10
  export { containerListFormat, parseLabels } from './list-running.js';
10
11
  const USAGE = `Usage: ai sandbox ls
11
12
 
@@ -57,6 +58,10 @@ export function ls(args = []) {
57
58
  process.stdout.write(` ${line}\n`);
58
59
  }
59
60
  process.stdout.write(` Total: ${ordered.length} containers\n`);
61
+ for (const row of ordered) {
62
+ const controlStatus = readSandboxControlStatusForRow(config, row);
63
+ process.stdout.write(` ${row.name}: health=${controlStatus?.state ?? 'unavailable'} task-view=${controlStatus?.taskView.state ?? 'unavailable'}\n`);
64
+ }
60
65
  if (tableRows.some((r) => r.shortId === '-')) {
61
66
  process.stdout.write(` SHORT '-' = no active task bound; that sandbox is free to remove with 'ai sandbox rm <branch>'.\n`);
62
67
  }