agentplane 0.3.14 → 0.3.16

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 (425) hide show
  1. package/assets/policy/incidents.md +7 -0
  2. package/bin/agentplane.js +1 -1
  3. package/bin/framework-dev-contract.js +1 -0
  4. package/dist/.build-manifest.json +508 -323
  5. package/dist/backends/task-backend/load.d.ts.map +1 -1
  6. package/dist/backends/task-backend/load.js +32 -19
  7. package/dist/backends/task-backend/local-backend-doc.d.ts.map +1 -1
  8. package/dist/backends/task-backend/local-backend-doc.js +1 -1
  9. package/dist/backends/task-backend/redmine/backend-runtime.d.ts +147 -0
  10. package/dist/backends/task-backend/redmine/backend-runtime.d.ts.map +1 -0
  11. package/dist/backends/task-backend/redmine/backend-runtime.js +258 -0
  12. package/dist/backends/task-backend/redmine/backend-sync/context.d.ts +44 -0
  13. package/dist/backends/task-backend/redmine/backend-sync/context.d.ts.map +1 -0
  14. package/dist/backends/task-backend/redmine/backend-sync/context.js +8 -0
  15. package/dist/backends/task-backend/redmine/backend-sync/ids.d.ts +6 -0
  16. package/dist/backends/task-backend/redmine/backend-sync/ids.d.ts.map +1 -0
  17. package/dist/backends/task-backend/redmine/backend-sync/ids.js +21 -0
  18. package/dist/backends/task-backend/redmine/backend-sync/migration.d.ts +4 -0
  19. package/dist/backends/task-backend/redmine/backend-sync/migration.d.ts.map +1 -0
  20. package/dist/backends/task-backend/redmine/backend-sync/migration.js +87 -0
  21. package/dist/backends/task-backend/redmine/backend-sync/status.d.ts +10 -0
  22. package/dist/backends/task-backend/redmine/backend-sync/status.d.ts.map +1 -0
  23. package/dist/backends/task-backend/redmine/backend-sync/status.js +78 -0
  24. package/dist/backends/task-backend/redmine/backend-sync/sync.d.ts +12 -0
  25. package/dist/backends/task-backend/redmine/backend-sync/sync.d.ts.map +1 -0
  26. package/dist/backends/task-backend/redmine/backend-sync/sync.js +82 -0
  27. package/dist/backends/task-backend/redmine/backend-sync/write.d.ts +5 -0
  28. package/dist/backends/task-backend/redmine/backend-sync/write.d.ts.map +1 -0
  29. package/dist/backends/task-backend/redmine/backend-sync/write.js +100 -0
  30. package/dist/backends/task-backend/redmine/backend-sync.d.ts +6 -66
  31. package/dist/backends/task-backend/redmine/backend-sync.d.ts.map +1 -1
  32. package/dist/backends/task-backend/redmine/backend-sync.js +5 -367
  33. package/dist/backends/task-backend/redmine-backend.d.ts +2 -33
  34. package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -1
  35. package/dist/backends/task-backend/redmine-backend.js +26 -241
  36. package/dist/backends/task-backend/shared/errors.d.ts +12 -0
  37. package/dist/backends/task-backend/shared/errors.d.ts.map +1 -1
  38. package/dist/backends/task-backend/shared/errors.js +12 -0
  39. package/dist/cli/archive.d.ts.map +1 -1
  40. package/dist/cli/archive.js +3 -5
  41. package/dist/cli/error-map.d.ts +7 -1
  42. package/dist/cli/error-map.d.ts.map +1 -1
  43. package/dist/cli/error-map.js +231 -19
  44. package/dist/cli/exit-codes.d.ts +14 -2
  45. package/dist/cli/exit-codes.d.ts.map +1 -1
  46. package/dist/cli/exit-codes.js +24 -11
  47. package/dist/cli/output.d.ts +3 -0
  48. package/dist/cli/output.d.ts.map +1 -1
  49. package/dist/cli/output.js +25 -14
  50. package/dist/cli/prompts.d.ts.map +1 -1
  51. package/dist/cli/prompts.js +44 -0
  52. package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
  53. package/dist/cli/run-cli/command-catalog/core.js +34 -76
  54. package/dist/cli/run-cli/command-catalog/lifecycle.d.ts.map +1 -1
  55. package/dist/cli/run-cli/command-catalog/lifecycle.js +23 -26
  56. package/dist/cli/run-cli/command-catalog/project.d.ts.map +1 -1
  57. package/dist/cli/run-cli/command-catalog/project.js +39 -54
  58. package/dist/cli/run-cli/command-catalog/shared.d.ts +15 -3
  59. package/dist/cli/run-cli/command-catalog/shared.d.ts.map +1 -1
  60. package/dist/cli/run-cli/command-catalog/shared.js +19 -6
  61. package/dist/cli/run-cli/command-catalog/task.d.ts.map +1 -1
  62. package/dist/cli/run-cli/command-catalog/task.js +63 -57
  63. package/dist/cli/run-cli/command-loaders.d.ts +174 -0
  64. package/dist/cli/run-cli/command-loaders.d.ts.map +1 -0
  65. package/dist/cli/run-cli/command-loaders.js +128 -0
  66. package/dist/cli/run-cli/commands/init/model.d.ts +42 -0
  67. package/dist/cli/run-cli/commands/init/model.d.ts.map +1 -0
  68. package/dist/cli/run-cli/commands/init/orchestrate.d.ts +9 -0
  69. package/dist/cli/run-cli/commands/init/orchestrate.d.ts.map +1 -0
  70. package/dist/cli/run-cli/commands/init/orchestrate.js +321 -0
  71. package/dist/cli/run-cli/commands/init/parsers.d.ts +5 -0
  72. package/dist/cli/run-cli/commands/init/parsers.d.ts.map +1 -0
  73. package/dist/cli/run-cli/commands/init/parsers.js +36 -0
  74. package/dist/cli/run-cli/commands/init/presets.d.ts +15 -0
  75. package/dist/cli/run-cli/commands/init/presets.d.ts.map +1 -0
  76. package/dist/cli/run-cli/commands/init/presets.js +63 -0
  77. package/dist/cli/run-cli/commands/init/spec.d.ts +5 -0
  78. package/dist/cli/run-cli/commands/init/spec.d.ts.map +1 -0
  79. package/dist/cli/run-cli/commands/init/spec.js +212 -0
  80. package/dist/cli/run-cli/commands/init/write-config.d.ts +1 -0
  81. package/dist/cli/run-cli/commands/init/write-config.d.ts.map +1 -1
  82. package/dist/cli/run-cli/commands/init/write-config.js +1 -0
  83. package/dist/cli/run-cli/commands/init/write-gitignore.js +1 -1
  84. package/dist/cli/run-cli/commands/init.d.ts +1 -28
  85. package/dist/cli/run-cli/commands/init.d.ts.map +1 -1
  86. package/dist/cli/run-cli/commands/init.js +1 -596
  87. package/dist/cli/run-cli/update-warning.d.ts +1 -0
  88. package/dist/cli/run-cli/update-warning.d.ts.map +1 -1
  89. package/dist/cli/run-cli/update-warning.js +10 -2
  90. package/dist/cli/run-cli.d.ts.map +1 -1
  91. package/dist/cli/run-cli.js +1 -2
  92. package/dist/cli/spec/errors.d.ts +13 -1
  93. package/dist/cli/spec/errors.d.ts.map +1 -1
  94. package/dist/cli/spec/errors.js +14 -4
  95. package/dist/commands/backend.d.ts.map +1 -1
  96. package/dist/commands/backend.js +66 -118
  97. package/dist/commands/block.spec.js +1 -1
  98. package/dist/commands/branch/work-start.js +1 -1
  99. package/dist/commands/commit.spec.js +1 -1
  100. package/dist/commands/doctor/branch-pr.js +1 -1
  101. package/dist/commands/doctor/fixes.js +1 -1
  102. package/dist/commands/doctor/runtime.d.ts.map +1 -1
  103. package/dist/commands/doctor/runtime.js +2 -2
  104. package/dist/commands/doctor/workspace.js +1 -1
  105. package/dist/commands/finish.spec.js +1 -1
  106. package/dist/commands/guard/commit.command.js +1 -1
  107. package/dist/commands/guard/impl/clean.d.ts +6 -0
  108. package/dist/commands/guard/impl/clean.d.ts.map +1 -0
  109. package/dist/commands/guard/impl/clean.js +29 -0
  110. package/dist/commands/guard/impl/close-dirt.d.ts +6 -0
  111. package/dist/commands/guard/impl/close-dirt.d.ts.map +1 -0
  112. package/dist/commands/guard/impl/close-dirt.js +56 -0
  113. package/dist/commands/guard/impl/commands.d.ts +4 -36
  114. package/dist/commands/guard/impl/commands.d.ts.map +1 -1
  115. package/dist/commands/guard/impl/commands.js +4 -549
  116. package/dist/commands/guard/impl/comment-commit.js +1 -1
  117. package/dist/commands/guard/impl/commit-diagnostics.d.ts +4 -0
  118. package/dist/commands/guard/impl/commit-diagnostics.d.ts.map +1 -0
  119. package/dist/commands/guard/impl/commit-diagnostics.js +150 -0
  120. package/dist/commands/guard/impl/commit.d.ts +25 -0
  121. package/dist/commands/guard/impl/commit.d.ts.map +1 -0
  122. package/dist/commands/guard/impl/commit.js +366 -0
  123. package/dist/commands/guard/impl/guard-commit.d.ts +3 -0
  124. package/dist/commands/guard/impl/guard-commit.d.ts.map +1 -0
  125. package/dist/commands/guard/impl/guard-commit.js +21 -0
  126. package/dist/commands/guard/impl/policy.d.ts +1 -0
  127. package/dist/commands/guard/impl/policy.d.ts.map +1 -1
  128. package/dist/commands/guard/impl/policy.js +9 -2
  129. package/dist/commands/guard/impl/suggest.d.ts +6 -0
  130. package/dist/commands/guard/impl/suggest.d.ts.map +1 -0
  131. package/dist/commands/guard/impl/suggest.js +33 -0
  132. package/dist/commands/hooks/index.d.ts +3 -0
  133. package/dist/commands/hooks/index.d.ts.map +1 -1
  134. package/dist/commands/hooks/index.js +27 -10
  135. package/dist/commands/pr/integrate/cmd.js +1 -1
  136. package/dist/commands/pr/integrate/internal/prepare.js +1 -1
  137. package/dist/commands/pr/internal/auto-commit.d.ts.map +1 -1
  138. package/dist/commands/pr/internal/auto-commit.js +2 -5
  139. package/dist/commands/pr/internal/gh-api.d.ts.map +1 -1
  140. package/dist/commands/pr/internal/gh-api.js +15 -8
  141. package/dist/commands/pr/internal/sync-branch.d.ts +0 -1
  142. package/dist/commands/pr/internal/sync-branch.d.ts.map +1 -1
  143. package/dist/commands/pr/internal/sync-branch.js +2 -5
  144. package/dist/commands/pr/internal/sync.d.ts.map +1 -1
  145. package/dist/commands/pr/internal/sync.js +30 -0
  146. package/dist/commands/pr/open.d.ts.map +1 -1
  147. package/dist/commands/pr/open.js +98 -8
  148. package/dist/commands/recipes/impl/resolver.js +1 -1
  149. package/dist/commands/recipes/impl/version.js +1 -1
  150. package/dist/commands/release/apply.command.js +1 -1
  151. package/dist/commands/release/apply.mutation.d.ts +1 -0
  152. package/dist/commands/release/apply.mutation.d.ts.map +1 -1
  153. package/dist/commands/release/apply.mutation.js +5 -1
  154. package/dist/commands/release/apply.pipeline/finalize.d.ts +21 -0
  155. package/dist/commands/release/apply.pipeline/finalize.d.ts.map +1 -0
  156. package/dist/commands/release/apply.pipeline/finalize.js +80 -0
  157. package/dist/commands/release/apply.pipeline/mutation.d.ts +18 -0
  158. package/dist/commands/release/apply.pipeline/mutation.d.ts.map +1 -0
  159. package/dist/commands/release/apply.pipeline/mutation.js +78 -0
  160. package/dist/commands/release/apply.pipeline/preflight.d.ts +25 -0
  161. package/dist/commands/release/apply.pipeline/preflight.d.ts.map +1 -0
  162. package/dist/commands/release/apply.pipeline/preflight.js +69 -0
  163. package/dist/commands/release/apply.pipeline/shared.d.ts +2 -0
  164. package/dist/commands/release/apply.pipeline/shared.d.ts.map +1 -0
  165. package/dist/commands/release/apply.pipeline/shared.js +5 -0
  166. package/dist/commands/release/apply.pipeline/state.d.ts +25 -0
  167. package/dist/commands/release/apply.pipeline/state.d.ts.map +1 -0
  168. package/dist/commands/release/apply.pipeline/state.js +129 -0
  169. package/dist/commands/release/apply.pipeline.d.ts +1 -1
  170. package/dist/commands/release/apply.pipeline.d.ts.map +1 -1
  171. package/dist/commands/release/apply.pipeline.js +4 -347
  172. package/dist/commands/release/apply.preflight.d.ts +9 -6
  173. package/dist/commands/release/apply.preflight.d.ts.map +1 -1
  174. package/dist/commands/release/apply.preflight.js +71 -51
  175. package/dist/commands/runtime.command.d.ts +2 -2
  176. package/dist/commands/runtime.command.d.ts.map +1 -1
  177. package/dist/commands/runtime.command.js +2 -2
  178. package/dist/commands/scenario/impl/commands.d.ts.map +1 -1
  179. package/dist/commands/scenario/impl/commands.js +52 -39
  180. package/dist/commands/scenario/impl/report.d.ts.map +1 -1
  181. package/dist/commands/scenario/impl/report.js +4 -7
  182. package/dist/commands/shared/allow-prefix-policy.d.ts.map +1 -0
  183. package/dist/{shared → commands/shared}/allow-prefix-policy.js +1 -1
  184. package/dist/commands/shared/comment-format.d.ts.map +1 -0
  185. package/dist/commands/shared/diagnostics.d.ts.map +1 -0
  186. package/dist/commands/shared/git-context.d.ts +1 -27
  187. package/dist/commands/shared/git-context.d.ts.map +1 -1
  188. package/dist/commands/shared/git-context.js +1 -156
  189. package/dist/commands/shared/git-diff.d.ts +1 -10
  190. package/dist/commands/shared/git-diff.d.ts.map +1 -1
  191. package/dist/commands/shared/git-diff.js +1 -49
  192. package/dist/commands/shared/git-ops.d.ts +1 -14
  193. package/dist/commands/shared/git-ops.d.ts.map +1 -1
  194. package/dist/commands/shared/git-ops.js +20 -150
  195. package/dist/commands/shared/git-worktree.d.ts +1 -9
  196. package/dist/commands/shared/git-worktree.d.ts.map +1 -1
  197. package/dist/commands/shared/git-worktree.js +1 -68
  198. package/dist/commands/shared/git.d.ts +1 -3
  199. package/dist/commands/shared/git.d.ts.map +1 -1
  200. package/dist/commands/shared/git.js +1 -14
  201. package/dist/commands/shared/policy-deny.d.ts +1 -1
  202. package/dist/commands/shared/reconcile-check.js +1 -1
  203. package/dist/commands/shared/task-backend.d.ts.map +1 -1
  204. package/dist/commands/shared/task-backend.js +24 -2
  205. package/dist/commands/shared/task-store/intents.d.ts.map +1 -1
  206. package/dist/commands/shared/task-store/intents.js +1 -1
  207. package/dist/commands/start.spec.js +1 -1
  208. package/dist/commands/task/close-tail-state.d.ts +7 -0
  209. package/dist/commands/task/close-tail-state.d.ts.map +1 -0
  210. package/dist/commands/task/close-tail-state.js +18 -0
  211. package/dist/commands/task/derive.js +1 -1
  212. package/dist/commands/task/finish-close.d.ts +22 -0
  213. package/dist/commands/task/finish-close.d.ts.map +1 -0
  214. package/dist/commands/task/finish-close.js +119 -0
  215. package/dist/commands/task/finish-command.d.ts +3 -0
  216. package/dist/commands/task/finish-command.d.ts.map +1 -0
  217. package/dist/commands/task/finish-command.js +56 -0
  218. package/dist/commands/task/finish-execute.d.ts +8 -0
  219. package/dist/commands/task/finish-execute.d.ts.map +1 -0
  220. package/dist/commands/task/finish-execute.js +272 -0
  221. package/dist/commands/task/finish-findings.d.ts +20 -0
  222. package/dist/commands/task/finish-findings.d.ts.map +1 -0
  223. package/dist/commands/task/finish-findings.js +27 -0
  224. package/dist/commands/task/finish-plan.d.ts +7 -0
  225. package/dist/commands/task/finish-plan.d.ts.map +1 -0
  226. package/dist/commands/task/finish-plan.js +157 -0
  227. package/dist/commands/task/finish-types.d.ts +69 -0
  228. package/dist/commands/task/finish-types.d.ts.map +1 -0
  229. package/dist/commands/task/finish.d.ts +1 -42
  230. package/dist/commands/task/finish.d.ts.map +1 -1
  231. package/dist/commands/task/finish.js +1 -527
  232. package/dist/commands/task/hosted-close-pr.command.d.ts.map +1 -1
  233. package/dist/commands/task/hosted-close-pr.command.js +29 -4
  234. package/dist/commands/task/hosted-close.command.d.ts.map +1 -1
  235. package/dist/commands/task/hosted-close.command.js +23 -2
  236. package/dist/commands/task/hosted-merge-sync/builders.d.ts +35 -0
  237. package/dist/commands/task/hosted-merge-sync/builders.d.ts.map +1 -0
  238. package/dist/commands/task/hosted-merge-sync/builders.js +148 -0
  239. package/dist/commands/task/hosted-merge-sync/github.d.ts +10 -0
  240. package/dist/commands/task/hosted-merge-sync/github.d.ts.map +1 -0
  241. package/dist/commands/task/hosted-merge-sync/github.js +113 -0
  242. package/dist/commands/task/hosted-merge-sync/local-branch.d.ts +12 -0
  243. package/dist/commands/task/hosted-merge-sync/local-branch.d.ts.map +1 -0
  244. package/dist/commands/task/hosted-merge-sync/local-branch.js +143 -0
  245. package/dist/commands/task/hosted-merge-sync/model.d.ts +47 -0
  246. package/dist/commands/task/hosted-merge-sync/model.d.ts.map +1 -0
  247. package/dist/commands/task/hosted-merge-sync/pr-meta.d.ts +12 -0
  248. package/dist/commands/task/hosted-merge-sync/pr-meta.d.ts.map +1 -0
  249. package/dist/commands/task/hosted-merge-sync/pr-meta.js +26 -0
  250. package/dist/commands/task/hosted-merge-sync.d.ts +5 -63
  251. package/dist/commands/task/hosted-merge-sync.d.ts.map +1 -1
  252. package/dist/commands/task/hosted-merge-sync.js +10 -444
  253. package/dist/commands/task/new.js +1 -1
  254. package/dist/commands/task/set-status.command.js +1 -1
  255. package/dist/commands/task/shared/direct-work-lock.d.ts.map +1 -0
  256. package/dist/commands/task/shared/git-log.d.ts.map +1 -0
  257. package/dist/commands/task/shared/transitions.d.ts +1 -1
  258. package/dist/commands/task/shared/transitions.d.ts.map +1 -1
  259. package/dist/commands/task/shared/transitions.js +4 -6
  260. package/dist/commands/upgrade/apply.js +1 -1
  261. package/dist/commands/workflow-playbook.command.d.ts.map +1 -1
  262. package/dist/commands/workflow-playbook.command.js +8 -7
  263. package/dist/harness/hooks-lifecycle.d.ts.map +1 -1
  264. package/dist/harness/hooks-lifecycle.js +11 -7
  265. package/dist/meta/release.d.ts.map +1 -1
  266. package/dist/meta/release.js +8 -4
  267. package/dist/policy/engine.d.ts +1 -1
  268. package/dist/policy/evaluate.d.ts +1 -1
  269. package/dist/policy/{types.d.ts → model.d.ts} +1 -1
  270. package/dist/policy/{types.d.ts.map → model.d.ts.map} +1 -1
  271. package/dist/policy/result.d.ts +1 -1
  272. package/dist/policy/rules/allowlist.d.ts +1 -1
  273. package/dist/policy/rules/branch-pr-base.d.ts +1 -1
  274. package/dist/policy/rules/clean-tree.d.ts +1 -1
  275. package/dist/policy/rules/commit-subject.d.ts +1 -1
  276. package/dist/policy/rules/protected-paths.d.ts +1 -1
  277. package/dist/runner/adapters/base.d.ts +42 -0
  278. package/dist/runner/adapters/base.d.ts.map +1 -0
  279. package/dist/runner/adapters/base.js +107 -0
  280. package/dist/runner/adapters/codex-preparation.d.ts +7 -0
  281. package/dist/runner/adapters/codex-preparation.d.ts.map +1 -0
  282. package/dist/runner/adapters/codex-preparation.js +86 -0
  283. package/dist/runner/adapters/codex.d.ts.map +1 -1
  284. package/dist/runner/adapters/codex.js +30 -175
  285. package/dist/runner/adapters/custom-preparation.d.ts +9 -0
  286. package/dist/runner/adapters/custom-preparation.d.ts.map +1 -0
  287. package/dist/runner/adapters/custom-preparation.js +191 -0
  288. package/dist/runner/adapters/custom.d.ts.map +1 -1
  289. package/dist/runner/adapters/custom.js +26 -279
  290. package/dist/runner/process-supervision/run.d.ts +30 -0
  291. package/dist/runner/process-supervision/run.d.ts.map +1 -0
  292. package/dist/runner/process-supervision/run.js +349 -0
  293. package/dist/runner/process-supervision/signals.d.ts +16 -0
  294. package/dist/runner/process-supervision/signals.d.ts.map +1 -0
  295. package/dist/runner/process-supervision/signals.js +85 -0
  296. package/dist/runner/process-supervision/state.d.ts +10 -0
  297. package/dist/runner/process-supervision/state.d.ts.map +1 -0
  298. package/dist/runner/process-supervision/state.js +42 -0
  299. package/dist/runner/process-supervision/streams.d.ts +6 -0
  300. package/dist/runner/process-supervision/streams.d.ts.map +1 -0
  301. package/dist/runner/process-supervision/streams.js +23 -0
  302. package/dist/runner/process-supervision.d.ts +5 -47
  303. package/dist/runner/process-supervision.d.ts.map +1 -1
  304. package/dist/runner/process-supervision.js +3 -490
  305. package/dist/runner/usecases/scenario-materialize-task.js +1 -1
  306. package/dist/runtime/approvals/index.d.ts +1 -1
  307. package/dist/runtime/approvals/{types.d.ts → model.d.ts} +1 -1
  308. package/dist/runtime/approvals/{types.d.ts.map → model.d.ts.map} +1 -1
  309. package/dist/runtime/approvals/runtime.d.ts +1 -1
  310. package/dist/runtime/behavior/index.d.ts +1 -1
  311. package/dist/runtime/behavior/{types.d.ts → model.d.ts} +1 -1
  312. package/dist/runtime/behavior/{types.d.ts.map → model.d.ts.map} +1 -1
  313. package/dist/runtime/behavior/resolve.d.ts +1 -1
  314. package/dist/runtime/capabilities/backend.d.ts +1 -1
  315. package/dist/runtime/capabilities/index.d.ts +1 -1
  316. package/dist/runtime/capabilities/{types.d.ts → model.d.ts} +1 -1
  317. package/dist/runtime/capabilities/{types.d.ts.map → model.d.ts.map} +1 -1
  318. package/dist/runtime/capabilities/model.js +1 -0
  319. package/dist/runtime/capabilities/recipe.d.ts +1 -1
  320. package/dist/runtime/capabilities/registry.d.ts +1 -1
  321. package/dist/runtime/capabilities/runner.d.ts +1 -1
  322. package/dist/runtime/execution-context.d.ts.map +1 -1
  323. package/dist/runtime/execution-context.js +16 -0
  324. package/dist/runtime/execution-profile/index.d.ts +1 -1
  325. package/dist/runtime/execution-profile/{types.d.ts → model.d.ts} +1 -1
  326. package/dist/runtime/execution-profile/{types.d.ts.map → model.d.ts.map} +1 -1
  327. package/dist/runtime/execution-profile/model.js +1 -0
  328. package/dist/runtime/execution-profile/resolve.d.ts +1 -1
  329. package/dist/runtime/explain/index.d.ts +1 -1
  330. package/dist/runtime/explain/{types.d.ts → model.d.ts} +1 -1
  331. package/dist/runtime/explain/{types.d.ts.map → model.d.ts.map} +1 -1
  332. package/dist/runtime/explain/model.js +1 -0
  333. package/dist/runtime/explain/resolve.d.ts +1 -1
  334. package/dist/runtime/protocol/index.d.ts +1 -1
  335. package/dist/runtime/protocol/index.js +1 -1
  336. package/dist/runtime/protocol/{types.d.ts → model.d.ts} +1 -1
  337. package/dist/runtime/protocol/{types.d.ts.map → model.d.ts.map} +1 -1
  338. package/dist/runtime/protocol/resolve.d.ts +1 -1
  339. package/dist/runtime/protocol/resolve.js +1 -1
  340. package/dist/runtime/shared/repo-cli-version.d.ts.map +1 -0
  341. package/dist/{shared → runtime/shared}/repo-cli-version.js +1 -1
  342. package/dist/runtime/shared/runtime-artifacts.d.ts.map +1 -0
  343. package/dist/{shared → runtime/shared}/runtime-source.d.ts +1 -1
  344. package/dist/runtime/shared/runtime-source.d.ts.map +1 -0
  345. package/dist/{shared → runtime/shared}/runtime-source.js +1 -1
  346. package/dist/runtime/shared/version-compare.d.ts.map +1 -0
  347. package/dist/runtime/task-intake/resolve.js +1 -1
  348. package/dist/shared/errors.d.ts +52 -2
  349. package/dist/shared/errors.d.ts.map +1 -1
  350. package/dist/shared/errors.js +66 -4
  351. package/dist/shared/trace-events.d.ts +13 -0
  352. package/dist/shared/trace-events.d.ts.map +1 -0
  353. package/dist/shared/trace-events.js +17 -0
  354. package/dist/{shared/task-doc-conflicts.d.ts → task-doc/conflicts.d.ts} +1 -1
  355. package/dist/task-doc/conflicts.d.ts.map +1 -0
  356. package/dist/{shared/task-doc-conflicts.js → task-doc/conflicts.js} +1 -1
  357. package/dist/{shared/task-doc-state.d.ts → task-doc/state.d.ts} +1 -1
  358. package/dist/task-doc/state.d.ts.map +1 -0
  359. package/package.json +8 -8
  360. package/dist/cli/run-cli/error-guidance.d.ts +0 -9
  361. package/dist/cli/run-cli/error-guidance.d.ts.map +0 -1
  362. package/dist/cli/run-cli/error-guidance.js +0 -210
  363. package/dist/cli/run-cli.test-helpers.d.ts +0 -2
  364. package/dist/cli/run-cli.test-helpers.d.ts.map +0 -1
  365. package/dist/cli/run-cli.test-helpers.js +0 -1
  366. package/dist/commands/recipes.test-helpers.d.ts +0 -202
  367. package/dist/commands/recipes.test-helpers.d.ts.map +0 -1
  368. package/dist/commands/recipes.test-helpers.js +0 -483
  369. package/dist/commands/release.test-helpers.d.ts +0 -38
  370. package/dist/commands/release.test-helpers.d.ts.map +0 -1
  371. package/dist/commands/release.test-helpers.js +0 -55
  372. package/dist/commands/task.test-helpers.d.ts +0 -13
  373. package/dist/commands/task.test-helpers.d.ts.map +0 -1
  374. package/dist/commands/task.test-helpers.js +0 -65
  375. package/dist/runner/test-helpers.d.ts +0 -30
  376. package/dist/runner/test-helpers.d.ts.map +0 -1
  377. package/dist/runner/test-helpers.js +0 -97
  378. package/dist/shared/agent-emoji.d.ts +0 -5
  379. package/dist/shared/agent-emoji.d.ts.map +0 -1
  380. package/dist/shared/agent-emoji.js +0 -51
  381. package/dist/shared/allow-prefix-policy.d.ts.map +0 -1
  382. package/dist/shared/comment-format.d.ts.map +0 -1
  383. package/dist/shared/diagnostics.d.ts.map +0 -1
  384. package/dist/shared/direct-work-lock.d.ts.map +0 -1
  385. package/dist/shared/git-log.d.ts.map +0 -1
  386. package/dist/shared/repo-cli-version.d.ts.map +0 -1
  387. package/dist/shared/runtime-artifacts.d.ts.map +0 -1
  388. package/dist/shared/runtime-source.d.ts.map +0 -1
  389. package/dist/shared/task-doc-conflicts.d.ts.map +0 -1
  390. package/dist/shared/task-doc-state.d.ts.map +0 -1
  391. package/dist/shared/version-compare.d.ts.map +0 -1
  392. package/dist/testing/cli-harness/recipe-archives.d.ts +0 -28
  393. package/dist/testing/cli-harness/recipe-archives.d.ts.map +0 -1
  394. package/dist/testing/cli-harness/recipe-archives.js +0 -374
  395. package/dist/testing/cli-harness/stdio.d.ts +0 -26
  396. package/dist/testing/cli-harness/stdio.d.ts.map +0 -1
  397. package/dist/testing/cli-harness/stdio.js +0 -84
  398. package/dist/testing/cli-harness.d.ts +0 -25
  399. package/dist/testing/cli-harness.d.ts.map +0 -1
  400. package/dist/testing/cli-harness.js +0 -313
  401. package/dist/testing/index.d.ts +0 -2
  402. package/dist/testing/index.d.ts.map +0 -1
  403. package/dist/testing/index.js +0 -1
  404. /package/dist/{policy/types.js → cli/run-cli/commands/init/model.js} +0 -0
  405. /package/dist/{shared → commands/shared}/allow-prefix-policy.d.ts +0 -0
  406. /package/dist/{shared → commands/shared}/comment-format.d.ts +0 -0
  407. /package/dist/{shared → commands/shared}/comment-format.js +0 -0
  408. /package/dist/{shared → commands/shared}/diagnostics.d.ts +0 -0
  409. /package/dist/{shared → commands/shared}/diagnostics.js +0 -0
  410. /package/dist/{runtime/approvals/types.js → commands/task/finish-types.js} +0 -0
  411. /package/dist/{runtime/behavior/types.js → commands/task/hosted-merge-sync/model.js} +0 -0
  412. /package/dist/{shared → commands/task/shared}/direct-work-lock.d.ts +0 -0
  413. /package/dist/{shared → commands/task/shared}/direct-work-lock.js +0 -0
  414. /package/dist/{shared → commands/task/shared}/git-log.d.ts +0 -0
  415. /package/dist/{shared → commands/task/shared}/git-log.js +0 -0
  416. /package/dist/{runtime/capabilities/types.js → policy/model.js} +0 -0
  417. /package/dist/runtime/{execution-profile/types.js → approvals/model.js} +0 -0
  418. /package/dist/runtime/{explain/types.js → behavior/model.js} +0 -0
  419. /package/dist/runtime/protocol/{types.js → model.js} +0 -0
  420. /package/dist/{shared → runtime/shared}/repo-cli-version.d.ts +0 -0
  421. /package/dist/{shared → runtime/shared}/runtime-artifacts.d.ts +0 -0
  422. /package/dist/{shared → runtime/shared}/runtime-artifacts.js +0 -0
  423. /package/dist/{shared → runtime/shared}/version-compare.d.ts +0 -0
  424. /package/dist/{shared → runtime/shared}/version-compare.js +0 -0
  425. /package/dist/{shared/task-doc-state.js → task-doc/state.js} +0 -0
@@ -1,34 +1,14 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import path from "node:path";
3
2
  import { exitCodeForError } from "../../cli/exit-codes.js";
4
3
  import { CliError } from "../../shared/errors.js";
5
- import { evolveRunnerRunState } from "../artifacts.js";
6
4
  import { runnerAdapterCancelledResult, runnerAdapterFailureResult, runnerAdapterSuccessResult, } from "./shared.js";
7
- import { buildInvocationEventData, buildRunnerExecutionArtifacts, durationMs, } from "./runtime-shared.js";
5
+ import { buildRunnerExecutionArtifacts, durationMs } from "./runtime-shared.js";
8
6
  import { exitCodeForSignal, runSupervisedProcess, } from "../process-supervision.js";
9
7
  import { InvalidRunnerResultManifestError, applyRunnerResultManifest, manifestFromRunnerResult, preserveRunnerResultManifestSource, preserveInvalidRunnerResultManifest, readRunnerResultManifest, writeRunnerResultManifest, } from "../result-manifest.js";
10
8
  import { RunnerRunRepository } from "../run-repository.js";
11
9
  import { assertRunnerManifestArtifactPolicy, readRecipeArtifactPrefixesFromRunnerEnv, } from "../result-manifest-policy.js";
12
- import { buildRecipeRunnerEnv, readRecipeRunProfile } from "./recipe-run-profile.js";
13
- const CODEX_LAST_MESSAGE_FILENAME = "codex-last-message.md";
14
- const CODEX_SANDBOX_VALUES = new Set(["read-only", "workspace-write", "danger-full-access"]);
15
- const SUPPORTED_CODEX_SANDBOXES = [...CODEX_SANDBOX_VALUES];
16
- const CODEX_RUN_PROFILE_CAPABILITIES = {
17
- adapter_id: "codex",
18
- fields: {
19
- sandbox: {
20
- level: "native",
21
- channel: "argv",
22
- supported_values: SUPPORTED_CODEX_SANDBOXES,
23
- note: "Recipe sandbox is enforced through codex --sandbox argv mapping.",
24
- },
25
- writes_artifacts_to: {
26
- level: "advisory",
27
- channel: "env",
28
- note: "Recipe artifact prefixes are exported through env and enforced post-run against external manifest artifacts and evidence paths.",
29
- },
30
- },
31
- };
10
+ import { appendRunnerExecutionEvent, appendRunnerResultEvent, assertAdapterBundle, assertAdapterInvocation, writeRunnerExecutionState, writeRunnerResultState, } from "./base.js";
11
+ import { buildCodexInvocation, CODEX_RUN_PROFILE_CAPABILITIES } from "./codex-preparation.js";
32
12
  function byteLength(text) {
33
13
  return Buffer.byteLength(text ?? "", "utf8");
34
14
  }
@@ -46,64 +26,15 @@ function buildCodexArtifacts(opts) {
46
26
  return buildRunnerExecutionArtifacts({ ...opts, include_output_last_message: true });
47
27
  }
48
28
  function assertCodexBundle(bundle) {
49
- if (bundle.execution.adapter_id !== "codex") {
50
- throw new Error(`Codex adapter cannot prepare bundle for adapter_id=${JSON.stringify(bundle.execution.adapter_id)}`);
51
- }
52
- if (!bundle.execution.artifact_paths.bundle_path.trim()) {
53
- throw new Error("Codex adapter requires a non-empty bundle path");
54
- }
55
- if (!bundle.execution.artifact_paths.run_dir.trim()) {
56
- throw new Error("Codex adapter requires a non-empty run dir");
57
- }
29
+ assertAdapterBundle({ adapterId: "codex", label: "Codex", bundle });
58
30
  }
59
31
  function assertCodexInvocation(invocation) {
60
- if (invocation.adapter_id !== "codex") {
61
- throw new Error(`Codex adapter cannot execute invocation for adapter_id=${JSON.stringify(invocation.adapter_id)}`);
62
- }
63
- if (!invocation.bundle_path.trim()) {
64
- throw new Error("Codex adapter invocation is missing bundle_path");
65
- }
66
- if (!invocation.run_dir.trim()) {
67
- throw new Error("Codex adapter invocation is missing run_dir");
68
- }
69
- if (!invocation.state_path.trim()) {
70
- throw new Error("Codex adapter invocation is missing state_path");
71
- }
72
- if (!invocation.events_path.trim()) {
73
- throw new Error("Codex adapter invocation is missing events_path");
74
- }
75
- if (!invocation.result_path.trim()) {
76
- throw new Error("Codex adapter invocation is missing result_path");
77
- }
78
- if (!invocation.trace_path.trim()) {
79
- throw new Error("Codex adapter invocation is missing trace_path");
80
- }
81
- if (!invocation.stderr_path.trim()) {
82
- throw new Error("Codex adapter invocation is missing stderr_path");
83
- }
84
- if (!invocation.bootstrap_path?.trim()) {
85
- throw new Error("Codex adapter invocation is missing bootstrap_path");
86
- }
87
- if (invocation.argv.length < 5) {
88
- throw new Error("Codex adapter invocation is missing normalized argv metadata");
89
- }
90
- }
91
- function resolveCodexSandbox(value) {
92
- const normalized = typeof value === "string" ? value.trim() : "";
93
- if (!normalized)
94
- return "danger-full-access";
95
- if (CODEX_SANDBOX_VALUES.has(normalized))
96
- return normalized;
97
- throw new CliError({
98
- exitCode: 8,
99
- code: "E_RUNTIME",
100
- message: `Codex runner does not support recipe sandbox ${JSON.stringify(normalized)}; ` +
101
- `supported values: ${SUPPORTED_CODEX_SANDBOXES.join(", ")}.`,
102
- context: {
103
- adapter_id: "codex",
104
- requested_sandbox: normalized,
105
- supported_sandboxes: SUPPORTED_CODEX_SANDBOXES,
106
- },
32
+ assertAdapterInvocation({
33
+ adapterId: "codex",
34
+ label: "Codex",
35
+ invocation,
36
+ requireBootstrap: true,
37
+ minArgvLength: 5,
107
38
  });
108
39
  }
109
40
  function assertExecuteModeManifest(opts) {
@@ -136,48 +67,7 @@ export class CodexRunnerAdapter {
136
67
  }
137
68
  prepare(bundle) {
138
69
  assertCodexBundle(bundle);
139
- const { execution } = bundle;
140
- const runProfile = readRecipeRunProfile(bundle.recipe);
141
- const sandbox = resolveCodexSandbox(runProfile?.sandbox);
142
- const recipeEnv = buildRecipeRunnerEnv(bundle.recipe);
143
- return Promise.resolve({
144
- adapter_id: this.id,
145
- run_id: execution.run_id,
146
- run_dir: execution.artifact_paths.run_dir,
147
- bundle_path: execution.artifact_paths.bundle_path,
148
- state_path: execution.artifact_paths.state_path,
149
- events_path: execution.artifact_paths.events_path,
150
- result_path: execution.artifact_paths.result_path,
151
- trace_path: execution.artifact_paths.trace_path,
152
- stderr_path: execution.artifact_paths.stderr_path,
153
- trace_policy: execution.trace_policy,
154
- timeout_policy: execution.timeout_policy,
155
- bootstrap_path: execution.artifact_paths.bootstrap_path,
156
- output_last_message_path: path.join(execution.artifact_paths.run_dir, CODEX_LAST_MESSAGE_FILENAME),
157
- argv: [
158
- "codex",
159
- "-a",
160
- "never",
161
- "exec",
162
- "--json",
163
- "--output-last-message",
164
- path.join(execution.artifact_paths.run_dir, CODEX_LAST_MESSAGE_FILENAME),
165
- "-C",
166
- bundle.repository.git_root,
167
- "-s",
168
- sandbox,
169
- "-",
170
- ],
171
- env: {
172
- AGENTPLANE_RUNNER_ADAPTER: this.id,
173
- AGENTPLANE_RUNNER_MODE: execution.mode,
174
- AGENTPLANE_RUNNER_API_VERSION: bundle.runner_api_version,
175
- AGENTPLANE_RUNNER_TARGET: bundle.target.kind,
176
- AGENTPLANE_RUNNER_RESULT_PATH: execution.artifact_paths.result_path,
177
- ...recipeEnv,
178
- },
179
- dry_run: execution.mode === "dry_run",
180
- });
70
+ return Promise.resolve(buildCodexInvocation({ adapterId: this.id, bundle }));
181
71
  }
182
72
  execute(invocation) {
183
73
  const started_at = new Date().toISOString();
@@ -281,46 +171,19 @@ export class CodexRunnerAdapter {
281
171
  result_path: invocation.result_path,
282
172
  manifest: manifestFromRunnerResult(result),
283
173
  });
284
- const stateAfter = await repository.readState();
285
- if (stateAfter) {
286
- await repository.writeState(evolveRunnerRunState({
287
- state: stateAfter,
288
- status: result.status,
289
- result,
290
- supervision: {
291
- ...stateAfter.supervision,
292
- pid: processResult.pid,
293
- command: invocation.argv.join(" "),
294
- started_at: processResult.started_at,
295
- heartbeat_at: processResult.heartbeat_at,
296
- exit_signal: processResult.exit_signal,
297
- timeout_reason: processResult.timeout_reason,
298
- timeout_requested_at: processResult.timeout_requested_at,
299
- terminate_sent_at: processResult.terminate_sent_at,
300
- kill_sent_at: processResult.kill_sent_at,
301
- force_killed: processResult.force_killed,
302
- },
303
- }));
304
- }
305
- await repository.appendEvent({
306
- at: result.ended_at,
307
- type: "runner_execute_finish",
174
+ await writeRunnerExecutionState({
175
+ repository,
176
+ result,
177
+ processResult,
178
+ command: invocation.argv.join(" "),
179
+ });
180
+ await appendRunnerExecutionEvent({
181
+ repository,
182
+ invocation,
183
+ result,
184
+ processResult,
308
185
  message: `codex exec finished with status=${result.status}`,
309
- data: {
310
- ...buildInvocationEventData(invocation),
311
- pid: processResult.pid,
312
- exit_signal: processResult.exit_signal,
313
- cancel_requested_at: processResult.cancel_requested_at,
314
- cancel_signal: processResult.cancel_signal,
315
- timeout_reason: processResult.timeout_reason,
316
- timeout_requested_at: processResult.timeout_requested_at,
317
- terminate_sent_at: processResult.terminate_sent_at,
318
- kill_sent_at: processResult.kill_sent_at,
319
- force_killed: processResult.force_killed,
320
- exit_code: result.exit_code,
321
- output_paths,
322
- metrics: result.metrics,
323
- },
186
+ outputPaths: output_paths,
324
187
  });
325
188
  return result;
326
189
  }
@@ -359,23 +222,15 @@ export class CodexRunnerAdapter {
359
222
  capabilities_used: ["codex.exec"],
360
223
  }),
361
224
  });
362
- const stateAfter = await RunnerRunRepository.fromInvocation(invocation).readState();
363
- if (stateAfter) {
364
- await RunnerRunRepository.fromInvocation(invocation).writeState(evolveRunnerRunState({
365
- state: stateAfter,
366
- status: result.status,
367
- result,
368
- }));
369
- }
370
- await RunnerRunRepository.fromInvocation(invocation).appendEvent({
371
- at: result.ended_at,
225
+ const repository = RunnerRunRepository.fromInvocation(invocation);
226
+ await writeRunnerResultState({ repository, result });
227
+ await appendRunnerResultEvent({
228
+ repository,
229
+ invocation,
230
+ result,
372
231
  type: "runner_execute_error",
373
232
  message: result.stderr_summary ?? "codex exec failed",
374
- data: {
375
- ...buildInvocationEventData(invocation),
376
- output_paths,
377
- metrics: result.metrics,
378
- },
233
+ outputPaths: output_paths,
379
234
  });
380
235
  return result;
381
236
  }
@@ -0,0 +1,9 @@
1
+ import type { RunnerCustomConfig } from "@agentplaneorg/core";
2
+ import type { RunnerAdapterCapabilities, RunnerContextBundle, RunnerInvocation } from "../types.js";
3
+ export declare function buildCustomCapabilities(config: RunnerCustomConfig | undefined): RunnerAdapterCapabilities;
4
+ export declare function buildCustomInvocation(opts: {
5
+ adapterId: "custom";
6
+ config: RunnerCustomConfig | undefined;
7
+ bundle: RunnerContextBundle;
8
+ }): RunnerInvocation;
9
+ //# sourceMappingURL=custom-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-preparation.d.ts","sourceRoot":"","sources":["../../../src/runner/adapters/custom-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAepG,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GACrC,yBAAyB,CAiC3B;AA0HD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,mBAAmB,CAAC;CAC7B,GAAG,gBAAgB,CAgDnB"}
@@ -0,0 +1,191 @@
1
+ import { exitCodeForError } from "../../cli/exit-codes.js";
2
+ import { CliError } from "../../shared/errors.js";
3
+ import { buildRecipeRunnerEnv, readRecipeRunProfile } from "./recipe-run-profile.js";
4
+ const CUSTOM_SANDBOX_WRAPPER_SUPPORTED_VALUES = ["workspace-write"];
5
+ function normalizeCustomEnforcement(config) {
6
+ return {
7
+ mode: config?.enforcement?.mode ?? "none",
8
+ platform: config?.enforcement?.platform ?? "auto",
9
+ };
10
+ }
11
+ export function buildCustomCapabilities(config) {
12
+ const enforcement = normalizeCustomEnforcement(config);
13
+ const configuredModeNote = `Configured via runner.custom.enforcement.mode=${JSON.stringify(enforcement.mode)} ` +
14
+ `(platform=${JSON.stringify(enforcement.platform)}).`;
15
+ return {
16
+ adapter_id: "custom",
17
+ fields: {
18
+ sandbox: enforcement.mode === "codex_sandbox_full_auto"
19
+ ? {
20
+ level: "wrapper",
21
+ channel: "argv",
22
+ supported_values: [...CUSTOM_SANDBOX_WRAPPER_SUPPORTED_VALUES],
23
+ note: `${configuredModeNote} Custom runner sandbox is enforced through ` +
24
+ "`codex sandbox <platform> --full-auto` and currently supports workspace-write only, " +
25
+ "because the shared runner contract requires writable result and trace artifacts inside run_dir.",
26
+ }
27
+ : {
28
+ level: "advisory",
29
+ channel: "env",
30
+ note: `${configuredModeNote} Custom runner receives sandbox intent through env only; ` +
31
+ "the adapter does not enforce it.",
32
+ },
33
+ writes_artifacts_to: {
34
+ level: "advisory",
35
+ channel: "env",
36
+ note: "Recipe artifact prefixes are exported through env and enforced post-run against external manifest artifacts and evidence paths.",
37
+ },
38
+ },
39
+ };
40
+ }
41
+ function resolveCodexSandboxPlatform(value) {
42
+ const currentPlatform = (() => {
43
+ switch (process.platform) {
44
+ case "darwin": {
45
+ return "macos";
46
+ }
47
+ case "linux": {
48
+ return "linux";
49
+ }
50
+ case "win32": {
51
+ return "windows";
52
+ }
53
+ default: {
54
+ return null;
55
+ }
56
+ }
57
+ })();
58
+ if (!currentPlatform) {
59
+ throw new CliError({
60
+ exitCode: exitCodeForError("E_RUNTIME"),
61
+ code: "E_RUNTIME",
62
+ message: `Custom runner codex sandbox wrapper does not support current platform ${JSON.stringify(process.platform)}.`,
63
+ context: {
64
+ adapter_id: "custom",
65
+ wrapper_mode: "codex_sandbox_full_auto",
66
+ platform: process.platform,
67
+ policy_field: "sandbox",
68
+ },
69
+ });
70
+ }
71
+ if (value && value !== "auto") {
72
+ if (value !== currentPlatform) {
73
+ throw new CliError({
74
+ exitCode: exitCodeForError("E_RUNTIME"),
75
+ code: "E_RUNTIME",
76
+ message: `Custom runner codex sandbox wrapper is configured for ${JSON.stringify(value)} but current platform is ` +
77
+ `${JSON.stringify(currentPlatform)}.`,
78
+ context: {
79
+ adapter_id: "custom",
80
+ wrapper_mode: "codex_sandbox_full_auto",
81
+ configured_platform: value,
82
+ platform: currentPlatform,
83
+ policy_field: "sandbox",
84
+ },
85
+ });
86
+ }
87
+ return value;
88
+ }
89
+ return currentPlatform;
90
+ }
91
+ function unsupportedCustomSandboxError(opts) {
92
+ const baseContext = {
93
+ adapter_id: "custom",
94
+ wrapper_mode: opts.enforcementMode,
95
+ policy_field: "sandbox",
96
+ declared_value: opts.requestedSandbox,
97
+ supported_values: CUSTOM_SANDBOX_WRAPPER_SUPPORTED_VALUES,
98
+ };
99
+ if (opts.requestedSandbox === "read-only") {
100
+ return new CliError({
101
+ exitCode: exitCodeForError("E_RUNTIME"),
102
+ code: "E_RUNTIME",
103
+ message: `Custom runner wrapper mode ${JSON.stringify(opts.enforcementMode)} cannot support recipe sandbox ` +
104
+ `${JSON.stringify(opts.requestedSandbox)} because the shared runner contract requires write access ` +
105
+ "to result.json and trace artifacts inside run_dir, while the default codex sandbox blocks writes " +
106
+ "to cwd and TMPDIR. Supported values: workspace-write.",
107
+ context: baseContext,
108
+ });
109
+ }
110
+ return new CliError({
111
+ exitCode: exitCodeForError("E_RUNTIME"),
112
+ code: "E_RUNTIME",
113
+ message: `Custom runner wrapper mode ${JSON.stringify(opts.enforcementMode)} does not support recipe sandbox ` +
114
+ `${JSON.stringify(opts.requestedSandbox)}; supported values: ${CUSTOM_SANDBOX_WRAPPER_SUPPORTED_VALUES.join(", ")}.`,
115
+ context: baseContext,
116
+ });
117
+ }
118
+ function buildCustomCommand(opts) {
119
+ const enforcement = normalizeCustomEnforcement(opts.config);
120
+ if (enforcement.mode !== "codex_sandbox_full_auto")
121
+ return opts.command;
122
+ const runProfile = readRecipeRunProfile(opts.bundle.recipe);
123
+ const requestedSandbox = typeof runProfile?.sandbox === "string" ? runProfile.sandbox.trim() : "";
124
+ if (!requestedSandbox)
125
+ return opts.command;
126
+ if (!CUSTOM_SANDBOX_WRAPPER_SUPPORTED_VALUES.includes(requestedSandbox)) {
127
+ throw unsupportedCustomSandboxError({
128
+ enforcementMode: enforcement.mode,
129
+ requestedSandbox,
130
+ });
131
+ }
132
+ return [
133
+ "codex",
134
+ "sandbox",
135
+ resolveCodexSandboxPlatform(enforcement.platform),
136
+ "--full-auto",
137
+ ...opts.command,
138
+ ];
139
+ }
140
+ function normalizeCustomCommand(value) {
141
+ return Array.isArray(value)
142
+ ? value.map((entry) => entry.trim()).filter((entry) => entry.length > 0)
143
+ : [];
144
+ }
145
+ export function buildCustomInvocation(opts) {
146
+ const command = normalizeCustomCommand(opts.config?.command);
147
+ if (command.length === 0) {
148
+ throw new Error("Custom runner adapter requires config.runner.custom.command to contain at least one argv element");
149
+ }
150
+ const { execution } = opts.bundle;
151
+ const recipeEnv = buildRecipeRunnerEnv(opts.bundle.recipe);
152
+ const enforcement = normalizeCustomEnforcement(opts.config);
153
+ const preparedCommand = buildCustomCommand({
154
+ config: opts.config,
155
+ bundle: opts.bundle,
156
+ command,
157
+ });
158
+ return {
159
+ adapter_id: opts.adapterId,
160
+ run_id: execution.run_id,
161
+ run_dir: execution.artifact_paths.run_dir,
162
+ bundle_path: execution.artifact_paths.bundle_path,
163
+ state_path: execution.artifact_paths.state_path,
164
+ events_path: execution.artifact_paths.events_path,
165
+ result_path: execution.artifact_paths.result_path,
166
+ trace_path: execution.artifact_paths.trace_path,
167
+ stderr_path: execution.artifact_paths.stderr_path,
168
+ trace_policy: execution.trace_policy,
169
+ timeout_policy: execution.timeout_policy,
170
+ bootstrap_path: execution.artifact_paths.bootstrap_path,
171
+ output_last_message_path: null,
172
+ argv: preparedCommand,
173
+ env: {
174
+ ...opts.config?.env,
175
+ AGENTPLANE_RUNNER_ADAPTER: opts.adapterId,
176
+ AGENTPLANE_RUNNER_MODE: execution.mode,
177
+ AGENTPLANE_RUNNER_API_VERSION: opts.bundle.runner_api_version,
178
+ AGENTPLANE_RUNNER_TARGET: opts.bundle.target.kind,
179
+ AGENTPLANE_RUNNER_BUNDLE_PATH: execution.artifact_paths.bundle_path,
180
+ AGENTPLANE_RUNNER_RUN_DIR: execution.artifact_paths.run_dir,
181
+ AGENTPLANE_RUNNER_BOOTSTRAP_PATH: execution.artifact_paths.bootstrap_path,
182
+ AGENTPLANE_RUNNER_STATE_PATH: execution.artifact_paths.state_path,
183
+ AGENTPLANE_RUNNER_EVENTS_PATH: execution.artifact_paths.events_path,
184
+ AGENTPLANE_RUNNER_RESULT_PATH: execution.artifact_paths.result_path,
185
+ AGENTPLANE_RUNNER_ENFORCEMENT_MODE: enforcement.mode ?? "none",
186
+ AGENTPLANE_RUNNER_ENFORCEMENT_PLATFORM: enforcement.platform ?? "auto",
187
+ ...recipeEnv,
188
+ },
189
+ dry_run: execution.mode === "dry_run",
190
+ };
191
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/runner/adapters/custom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAoSrB,qBAAa,mBAAoB,YAAW,aAAa;IAG3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,EAAE,EAAG,QAAQ,CAAU;gBAEH,MAAM,EAAE,kBAAkB,GAAG,SAAS;IAEnE,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,yBAAyB;IAI7E,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmD/D,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;CAqN7D"}
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/runner/adapters/custom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAwFrB,qBAAa,mBAAoB,YAAW,aAAa;IAG3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,EAAE,EAAG,QAAQ,CAAU;gBAEH,MAAM,EAAE,kBAAkB,GAAG,SAAS;IAEnE,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,yBAAyB;IAI7E,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAW/D,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;CA4K7D"}