@on-par/factory-core 0.9.28-next.9 → 0.9.29-next.1

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 (296) hide show
  1. package/dist/checkers/app-smoke.d.ts.map +1 -1
  2. package/dist/checkers/app-smoke.js +4 -1
  3. package/dist/checkers/app-smoke.js.map +1 -1
  4. package/dist/checkers/evidence-plan.d.ts +2 -0
  5. package/dist/checkers/evidence-plan.d.ts.map +1 -1
  6. package/dist/checkers/evidence-plan.js +13 -6
  7. package/dist/checkers/evidence-plan.js.map +1 -1
  8. package/dist/checkers/evidence-selector.d.ts +2 -0
  9. package/dist/checkers/evidence-selector.d.ts.map +1 -1
  10. package/dist/checkers/evidence-selector.js +13 -10
  11. package/dist/checkers/evidence-selector.js.map +1 -1
  12. package/dist/checkers/evidence-workspace.d.ts +21 -0
  13. package/dist/checkers/evidence-workspace.d.ts.map +1 -0
  14. package/dist/checkers/evidence-workspace.js +118 -0
  15. package/dist/checkers/evidence-workspace.js.map +1 -0
  16. package/dist/checkers/index.js +1 -1
  17. package/dist/checkers/index.js.map +1 -1
  18. package/dist/checkers/internal-exports.d.ts +3 -1
  19. package/dist/checkers/internal-exports.d.ts.map +1 -1
  20. package/dist/checkers/internal-exports.js +3 -1
  21. package/dist/checkers/internal-exports.js.map +1 -1
  22. package/dist/checkers/resolve-commands.d.ts.map +1 -1
  23. package/dist/checkers/resolve-commands.js +5 -1
  24. package/dist/checkers/resolve-commands.js.map +1 -1
  25. package/dist/config/example.d.ts.map +1 -1
  26. package/dist/config/example.js +14 -2
  27. package/dist/config/example.js.map +1 -1
  28. package/dist/config/index.d.ts +14 -33
  29. package/dist/config/index.d.ts.map +1 -1
  30. package/dist/config/index.js +26 -35
  31. package/dist/config/index.js.map +1 -1
  32. package/dist/config/merge-policy.d.ts +36 -0
  33. package/dist/config/merge-policy.d.ts.map +1 -0
  34. package/dist/config/merge-policy.js +31 -0
  35. package/dist/config/merge-policy.js.map +1 -0
  36. package/dist/config/repo.js +1 -1
  37. package/dist/config/repo.js.map +1 -1
  38. package/dist/config/run-config-env.d.ts +5 -0
  39. package/dist/config/run-config-env.d.ts.map +1 -0
  40. package/dist/config/run-config-env.js +11 -0
  41. package/dist/config/run-config-env.js.map +1 -0
  42. package/dist/config/run-config-ladder.d.ts +18 -0
  43. package/dist/config/run-config-ladder.d.ts.map +1 -0
  44. package/dist/config/run-config-ladder.js +110 -0
  45. package/dist/config/run-config-ladder.js.map +1 -0
  46. package/dist/config/run-config-source.d.ts +6 -6
  47. package/dist/config/run-config-source.d.ts.map +1 -1
  48. package/dist/config/run-config-source.js +16 -15
  49. package/dist/config/run-config-source.js.map +1 -1
  50. package/dist/config/runtime-config-keys.d.ts.map +1 -1
  51. package/dist/config/runtime-config-keys.js +1 -0
  52. package/dist/config/runtime-config-keys.js.map +1 -1
  53. package/dist/constitutions/index.d.ts.map +1 -1
  54. package/dist/constitutions/index.js +8 -0
  55. package/dist/constitutions/index.js.map +1 -1
  56. package/dist/environment/process-groups.d.ts +5 -0
  57. package/dist/environment/process-groups.d.ts.map +1 -1
  58. package/dist/environment/process-groups.js +19 -0
  59. package/dist/environment/process-groups.js.map +1 -1
  60. package/dist/events/config-traits.d.ts +1 -1
  61. package/dist/events/config-traits.d.ts.map +1 -1
  62. package/dist/events/config-traits.js +2 -0
  63. package/dist/events/config-traits.js.map +1 -1
  64. package/dist/events/queue-traits.d.ts +1 -1
  65. package/dist/events/queue-traits.d.ts.map +1 -1
  66. package/dist/events/queue-traits.js +8 -1
  67. package/dist/events/queue-traits.js.map +1 -1
  68. package/dist/events/rotation.js +1 -1
  69. package/dist/events/rotation.js.map +1 -1
  70. package/dist/fakes/octokit.d.ts +13 -1
  71. package/dist/fakes/octokit.d.ts.map +1 -1
  72. package/dist/fakes/octokit.js +13 -0
  73. package/dist/fakes/octokit.js.map +1 -1
  74. package/dist/filing/redact.d.ts +1 -0
  75. package/dist/filing/redact.d.ts.map +1 -1
  76. package/dist/filing/redact.js +1 -1
  77. package/dist/filing/redact.js.map +1 -1
  78. package/dist/harness/opencode-version.d.ts +2 -2
  79. package/dist/harness/opencode-version.d.ts.map +1 -1
  80. package/dist/harness/opencode-version.js +3 -3
  81. package/dist/harness/opencode-version.js.map +1 -1
  82. package/dist/internal.d.ts +13 -1
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +14 -0
  85. package/dist/internal.js.map +1 -1
  86. package/dist/kpis/index.d.ts.map +1 -1
  87. package/dist/kpis/index.js +2 -1
  88. package/dist/kpis/index.js.map +1 -1
  89. package/dist/kpis/park.d.ts.map +1 -1
  90. package/dist/kpis/park.js +2 -1
  91. package/dist/kpis/park.js.map +1 -1
  92. package/dist/kpis/phase.d.ts.map +1 -1
  93. package/dist/kpis/phase.js +1 -0
  94. package/dist/kpis/phase.js.map +1 -1
  95. package/dist/land/changelog.d.ts +8 -0
  96. package/dist/land/changelog.d.ts.map +1 -0
  97. package/dist/land/changelog.js +90 -0
  98. package/dist/land/changelog.js.map +1 -0
  99. package/dist/land/sync.d.ts.map +1 -1
  100. package/dist/land/sync.js +93 -32
  101. package/dist/land/sync.js.map +1 -1
  102. package/dist/phases/check-evidence.d.ts.map +1 -1
  103. package/dist/phases/check-evidence.js +5 -1
  104. package/dist/phases/check-evidence.js.map +1 -1
  105. package/dist/phases/ship-approval.d.ts +17 -0
  106. package/dist/phases/ship-approval.d.ts.map +1 -0
  107. package/dist/phases/ship-approval.js +21 -0
  108. package/dist/phases/ship-approval.js.map +1 -0
  109. package/dist/phases/ship-branch-push.d.ts +17 -0
  110. package/dist/phases/ship-branch-push.d.ts.map +1 -0
  111. package/dist/phases/ship-branch-push.js +77 -0
  112. package/dist/phases/ship-branch-push.js.map +1 -0
  113. package/dist/phases/ship-evidence-comment.d.ts +14 -0
  114. package/dist/phases/ship-evidence-comment.d.ts.map +1 -0
  115. package/dist/phases/ship-evidence-comment.js +31 -0
  116. package/dist/phases/ship-evidence-comment.js.map +1 -0
  117. package/dist/phases/ship-existing-pr.d.ts +11 -0
  118. package/dist/phases/ship-existing-pr.d.ts.map +1 -0
  119. package/dist/phases/ship-existing-pr.js +36 -0
  120. package/dist/phases/ship-existing-pr.js.map +1 -0
  121. package/dist/phases/ship-finish.d.ts +15 -0
  122. package/dist/phases/ship-finish.d.ts.map +1 -0
  123. package/dist/phases/ship-finish.js +70 -0
  124. package/dist/phases/ship-finish.js.map +1 -0
  125. package/dist/phases/ship-git-detail.d.ts +31 -0
  126. package/dist/phases/ship-git-detail.d.ts.map +1 -0
  127. package/dist/phases/ship-git-detail.js +71 -0
  128. package/dist/phases/ship-git-detail.js.map +1 -0
  129. package/dist/phases/ship-git-remote.d.ts +51 -0
  130. package/dist/phases/ship-git-remote.d.ts.map +1 -0
  131. package/dist/phases/ship-git-remote.js +70 -0
  132. package/dist/phases/ship-git-remote.js.map +1 -0
  133. package/dist/phases/ship-git.d.ts +4 -79
  134. package/dist/phases/ship-git.d.ts.map +1 -1
  135. package/dist/phases/ship-git.js +2 -135
  136. package/dist/phases/ship-git.js.map +1 -1
  137. package/dist/phases/ship-main-sync.d.ts +18 -0
  138. package/dist/phases/ship-main-sync.d.ts.map +1 -0
  139. package/dist/phases/ship-main-sync.js +34 -0
  140. package/dist/phases/ship-main-sync.js.map +1 -0
  141. package/dist/phases/ship-open-pr.d.ts +24 -0
  142. package/dist/phases/ship-open-pr.d.ts.map +1 -0
  143. package/dist/phases/ship-open-pr.js +75 -0
  144. package/dist/phases/ship-open-pr.js.map +1 -0
  145. package/dist/phases/ship-options.d.ts +81 -0
  146. package/dist/phases/ship-options.d.ts.map +1 -0
  147. package/dist/phases/ship-options.js +4 -0
  148. package/dist/phases/ship-options.js.map +1 -0
  149. package/dist/phases/ship-reentry.d.ts +20 -0
  150. package/dist/phases/ship-reentry.d.ts.map +1 -0
  151. package/dist/phases/ship-reentry.js +47 -0
  152. package/dist/phases/ship-reentry.js.map +1 -0
  153. package/dist/phases/ship-types.d.ts +4 -0
  154. package/dist/phases/ship-types.d.ts.map +1 -1
  155. package/dist/phases/ship.d.ts +4 -76
  156. package/dist/phases/ship.d.ts.map +1 -1
  157. package/dist/phases/ship.js +40 -297
  158. package/dist/phases/ship.js.map +1 -1
  159. package/dist/phases/stack-order.d.ts +9 -0
  160. package/dist/phases/stack-order.d.ts.map +1 -1
  161. package/dist/phases/stack-order.js +13 -0
  162. package/dist/phases/stack-order.js.map +1 -1
  163. package/dist/queue/comment-rework-trigger.d.ts +24 -0
  164. package/dist/queue/comment-rework-trigger.d.ts.map +1 -0
  165. package/dist/queue/comment-rework-trigger.js +128 -0
  166. package/dist/queue/comment-rework-trigger.js.map +1 -0
  167. package/dist/queue/github-queue.d.ts +4 -2
  168. package/dist/queue/github-queue.d.ts.map +1 -1
  169. package/dist/queue/github-queue.js.map +1 -1
  170. package/dist/queue/internal-exports.d.ts +4 -1
  171. package/dist/queue/internal-exports.d.ts.map +1 -1
  172. package/dist/queue/internal-exports.js +3 -1
  173. package/dist/queue/internal-exports.js.map +1 -1
  174. package/dist/queue/iterate-command.d.ts +18 -0
  175. package/dist/queue/iterate-command.d.ts.map +1 -1
  176. package/dist/queue/iterate-command.js +38 -0
  177. package/dist/queue/iterate-command.js.map +1 -1
  178. package/dist/queue/lane-discovery-interval.d.ts +6 -0
  179. package/dist/queue/lane-discovery-interval.d.ts.map +1 -0
  180. package/dist/queue/lane-discovery-interval.js +9 -0
  181. package/dist/queue/lane-discovery-interval.js.map +1 -0
  182. package/dist/queue/linear-queue-backend.d.ts +17 -0
  183. package/dist/queue/linear-queue-backend.d.ts.map +1 -0
  184. package/dist/queue/linear-queue-backend.js +42 -0
  185. package/dist/queue/linear-queue-backend.js.map +1 -0
  186. package/dist/queue/linear-queue.d.ts +4 -2
  187. package/dist/queue/linear-queue.d.ts.map +1 -1
  188. package/dist/queue/linear-queue.js +79 -2
  189. package/dist/queue/linear-queue.js.map +1 -1
  190. package/dist/queue/prerequisite-stack.d.ts +47 -0
  191. package/dist/queue/prerequisite-stack.d.ts.map +1 -0
  192. package/dist/queue/prerequisite-stack.js +41 -0
  193. package/dist/queue/prerequisite-stack.js.map +1 -0
  194. package/dist/queue/queue-backend.d.ts +11 -5
  195. package/dist/queue/queue-backend.d.ts.map +1 -1
  196. package/dist/queue/queue-backend.js +8 -3
  197. package/dist/queue/queue-backend.js.map +1 -1
  198. package/dist/queue/review-rework-trigger.d.ts +7 -2
  199. package/dist/queue/review-rework-trigger.d.ts.map +1 -1
  200. package/dist/queue/review-rework-trigger.js +16 -8
  201. package/dist/queue/review-rework-trigger.js.map +1 -1
  202. package/dist/reports/pr-body.d.ts +5 -2
  203. package/dist/reports/pr-body.d.ts.map +1 -1
  204. package/dist/reports/pr-body.js +21 -10
  205. package/dist/reports/pr-body.js.map +1 -1
  206. package/dist/router/breaker.d.ts +1 -1
  207. package/dist/router/breaker.d.ts.map +1 -1
  208. package/dist/router/breaker.js +3 -2
  209. package/dist/router/breaker.js.map +1 -1
  210. package/dist/run/ci-rework-loop.d.ts.map +1 -1
  211. package/dist/run/ci-rework-loop.js +5 -1
  212. package/dist/run/ci-rework-loop.js.map +1 -1
  213. package/dist/run/feedback-github.d.ts +50 -0
  214. package/dist/run/feedback-github.d.ts.map +1 -0
  215. package/dist/run/feedback-github.js +87 -0
  216. package/dist/run/feedback-github.js.map +1 -0
  217. package/dist/run/feedback-round-hooks.d.ts +19 -0
  218. package/dist/run/feedback-round-hooks.d.ts.map +1 -0
  219. package/dist/run/feedback-round-hooks.js +106 -0
  220. package/dist/run/feedback-round-hooks.js.map +1 -0
  221. package/dist/run/feedback-round.d.ts +97 -0
  222. package/dist/run/feedback-round.d.ts.map +1 -0
  223. package/dist/run/feedback-round.js +275 -0
  224. package/dist/run/feedback-round.js.map +1 -0
  225. package/dist/run/linear-run.d.ts +23 -0
  226. package/dist/run/linear-run.d.ts.map +1 -0
  227. package/dist/run/linear-run.js +18 -0
  228. package/dist/run/linear-run.js.map +1 -0
  229. package/dist/run/outcome.d.ts +9 -0
  230. package/dist/run/outcome.d.ts.map +1 -1
  231. package/dist/run/outcome.js +8 -0
  232. package/dist/run/outcome.js.map +1 -1
  233. package/dist/run/park-comment.d.ts +9 -0
  234. package/dist/run/park-comment.d.ts.map +1 -1
  235. package/dist/run/park-comment.js +12 -0
  236. package/dist/run/park-comment.js.map +1 -1
  237. package/dist/run/ports.d.ts +10 -0
  238. package/dist/run/ports.d.ts.map +1 -1
  239. package/dist/run/ports.js +12 -0
  240. package/dist/run/ports.js.map +1 -1
  241. package/dist/run/pr-run-state.d.ts +102 -0
  242. package/dist/run/pr-run-state.d.ts.map +1 -0
  243. package/dist/run/pr-run-state.js +240 -0
  244. package/dist/run/pr-run-state.js.map +1 -0
  245. package/dist/run/prerequisite-restack.d.ts +39 -0
  246. package/dist/run/prerequisite-restack.d.ts.map +1 -0
  247. package/dist/run/prerequisite-restack.js +79 -0
  248. package/dist/run/prerequisite-restack.js.map +1 -0
  249. package/dist/run/review-rework-cap.d.ts +3 -1
  250. package/dist/run/review-rework-cap.d.ts.map +1 -1
  251. package/dist/run/review-rework-cap.js +2 -1
  252. package/dist/run/review-rework-cap.js.map +1 -1
  253. package/dist/run/review-rework.d.ts +17 -2
  254. package/dist/run/review-rework.d.ts.map +1 -1
  255. package/dist/run/review-rework.js +99 -33
  256. package/dist/run/review-rework.js.map +1 -1
  257. package/dist/run/run-issue.d.ts +5 -1
  258. package/dist/run/run-issue.d.ts.map +1 -1
  259. package/dist/run/run-issue.js +37 -31
  260. package/dist/run/run-issue.js.map +1 -1
  261. package/dist/run/run-state-record.d.ts.map +1 -1
  262. package/dist/run/run-state-record.js +1 -0
  263. package/dist/run/run-state-record.js.map +1 -1
  264. package/dist/run/stack-rebase.d.ts +28 -0
  265. package/dist/run/stack-rebase.d.ts.map +1 -0
  266. package/dist/run/stack-rebase.js +79 -0
  267. package/dist/run/stack-rebase.js.map +1 -0
  268. package/dist/run/stack-restack.d.ts.map +1 -1
  269. package/dist/run/stack-restack.js +21 -49
  270. package/dist/run/stack-restack.js.map +1 -1
  271. package/dist/run/state.d.ts +2 -0
  272. package/dist/run/state.d.ts.map +1 -1
  273. package/dist/run/state.js.map +1 -1
  274. package/dist/utils/command-runner.d.ts.map +1 -1
  275. package/dist/utils/command-runner.js +4 -1
  276. package/dist/utils/command-runner.js.map +1 -1
  277. package/dist/utils/exec.d.ts.map +1 -1
  278. package/dist/utils/exec.js +4 -1
  279. package/dist/utils/exec.js.map +1 -1
  280. package/dist/utils/in-place.d.ts +24 -0
  281. package/dist/utils/in-place.d.ts.map +1 -0
  282. package/dist/utils/in-place.js +105 -0
  283. package/dist/utils/in-place.js.map +1 -0
  284. package/dist/work/internal-exports.d.ts +3 -0
  285. package/dist/work/internal-exports.d.ts.map +1 -0
  286. package/dist/work/internal-exports.js +4 -0
  287. package/dist/work/internal-exports.js.map +1 -0
  288. package/dist/work/ticket-writeback.d.ts +22 -0
  289. package/dist/work/ticket-writeback.d.ts.map +1 -0
  290. package/dist/work/ticket-writeback.js +73 -0
  291. package/dist/work/ticket-writeback.js.map +1 -0
  292. package/dist/work/work-key.d.ts +2 -0
  293. package/dist/work/work-key.d.ts.map +1 -1
  294. package/dist/work/work-key.js +4 -0
  295. package/dist/work/work-key.js.map +1 -1
  296. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"park-comment.js","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"park-comment.js","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { WorktreeSandbox } from '../utils/microvm.js';
6
6
  import type { PrLookup } from '../phases/ship.js';
7
7
  import type { RemoteBranchRecord } from '../types/index.js';
8
8
  import { cleanupWorktree, setupWorktree } from '../utils/index.js';
9
+ import { setupInPlaceCheckout } from '../utils/in-place.js';
9
10
  import type { LocalOnlyPolicy } from '../work/local-only.js';
10
11
  /** The workspace-provisioning seam runIssue needs: a working tree the pipeline
11
12
  * phases run in (cwd), and a teardown. */
@@ -49,6 +50,15 @@ export declare function worktreeWorkspace(opts: {
49
50
  setup?: typeof setupWorktree;
50
51
  cleanup?: typeof cleanupWorktree;
51
52
  }): Promise<Workspace>;
53
+ /** In-place adapter (#3904): the current checkout IS the working tree. The factory did not
54
+ * create it, so dispose never tears it down. Locking stays the caller's responsibility. */
55
+ export declare function inPlaceWorkspace(opts: {
56
+ repoRoot: string;
57
+ branch: string;
58
+ log?: (type: EventKind, msg: string) => void;
59
+ findOpenPr?: (branch: string) => Promise<PrLookup>;
60
+ setup?: typeof setupInPlaceCheckout;
61
+ }): Promise<Workspace>;
52
62
  /** Sim throwaway-workspace adapter: the sim's repoRoot IS the working tree; its
53
63
  * dispose already removes every directory it created. */
54
64
  export declare function simWorkspace(sim: SimWorkspace): Workspace;
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEL,KAAK,uBAAuB,EAI7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;2CAC2C;AAC3C,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;kCAC8B;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C;AAED;;wCAEwC;AACxC,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;kEAC8D;IAC9D,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sFAAsF;IACtF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8EAA8E;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;aAGa;AACb,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,eAAe,CAAC;CAClC,GAAG,OAAO,CAAC,SAAS,CAAC,CAYrB;AAED;0DAC0D;AAC1D,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAEzD;AAED;mDACmD;AACnD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAErE;AAED;;;sCAGsC;AACtC,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,uBAAuB,GAAG;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"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"}
package/dist/run/ports.js CHANGED
@@ -6,6 +6,7 @@
6
6
  import { acquirePortLease, laneEnv, recordLeasePgid, releasePortLease, } from '../environment/index.js';
7
7
  import { ProcessGroupTracker } from '../environment/process-groups.js';
8
8
  import { cleanupWorktree, setupWorktree } from '../utils/index.js';
9
+ import { setupInPlaceCheckout } from '../utils/in-place.js';
9
10
  /** Locked-CLI-worktree adapter: provisions via setupWorktree, tears down via
10
11
  * cleanupWorktree. Locking stays the caller's responsibility (unchanged from the
11
12
  * CLI today); this adapter only names the seam. setup/cleanup are injectable for
@@ -23,6 +24,17 @@ export async function worktreeWorkspace(opts) {
23
24
  dispose: () => cleanup(opts.repoRoot, opts.worktreePath, opts.log, opts.sandbox),
24
25
  };
25
26
  }
27
+ /** In-place adapter (#3904): the current checkout IS the working tree. The factory did not
28
+ * create it, so dispose never tears it down. Locking stays the caller's responsibility. */
29
+ export async function inPlaceWorkspace(opts) {
30
+ const setup = opts.setup ?? setupInPlaceCheckout;
31
+ const result = await setup(opts.repoRoot, opts.branch, opts.log, { findOpenPr: opts.findOpenPr });
32
+ return {
33
+ path: opts.repoRoot,
34
+ ...(result?.remoteBranch ? { remoteBranch: result.remoteBranch } : {}),
35
+ dispose: async () => { },
36
+ };
37
+ }
26
38
  /** Sim throwaway-workspace adapter: the sim's repoRoot IS the working tree; its
27
39
  * dispose already removes every directory it created. */
28
40
  export function simWorkspace(sim) {
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,qFAAqF;AACrF,sFAAsF;AACtF,iFAAiF;AACjF,gFAAgF;AAGhF,OAAO,EACL,gBAAgB,EAEhB,OAAO,EACP,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA8BnE;;;aAGa;AACb,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAYvC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACjH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,YAAY,CAAC,GAAiB;IAC5C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AAC9D,CAAC;AAED;mDACmD;AACnD,MAAM,UAAU,kBAAkB,CAAC,MAAuB;IACxD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;sCAGsC;AACtC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAqG;IAErG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,mBAAmB,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QACzD,UAAU,CAAC,IAAY;YACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,KAAK,eAAe,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import type { Octokit } from '@octokit/rest';
2
+ import type { RunStatus } from '../types/index.js';
3
+ import { type WorkKey } from '../work/work-key.js';
4
+ export declare const PR_RUN_STATE_VERSION = "v1";
5
+ export declare const PR_RUN_STATUSES: readonly ['building', 'awaiting-ci', 'awaiting-review', 'parked'];
6
+ export type PrRunStatus = (typeof PR_RUN_STATUSES)[number];
7
+ /** Why SHIP left the PR as a draft (#3932): 'ci-pending' lets the sweep land it, 'requested' is intentional. */
8
+ export declare const PR_DRAFT_REASONS: readonly ['ci-pending', 'requested'];
9
+ export declare const SPEC_SUMMARY_MAX = 1000;
10
+ export declare const MAX_HANDLED_IDS = 200;
11
+ export declare const MAX_ROUNDS = 50;
12
+ export declare const MAX_ENCODED_CHARS = 60000;
13
+ export declare function prRunStateMarker(key: WorkKey): string;
14
+ export interface PrRunRound {
15
+ kind: 'check' | 'review' | 'ci';
16
+ id?: number;
17
+ headSha: string;
18
+ at: string;
19
+ }
20
+ export interface PrRunState {
21
+ version: 1;
22
+ key: WorkKey;
23
+ prNumber: number;
24
+ status: PrRunStatus;
25
+ draftReason?: (typeof PR_DRAFT_REASONS)[number];
26
+ spec: {
27
+ sha256: string;
28
+ summary: string;
29
+ };
30
+ checkRework: {
31
+ used: number;
32
+ cap: number;
33
+ };
34
+ reviewRework: {
35
+ used: number;
36
+ cap: number;
37
+ };
38
+ handledReviewIds: number[];
39
+ handledCommentIds: number[];
40
+ rounds: PrRunRound[];
41
+ updatedAt: string;
42
+ }
43
+ export type PrRunStateRejectReason = 'untrusted-author' | 'digest-mismatch' | 'key-mismatch' | 'malformed' | 'identity-unavailable';
44
+ export interface PrStateComment {
45
+ id: number;
46
+ authorId: number | undefined;
47
+ body: string;
48
+ }
49
+ type Ignored = {
50
+ commentId: number;
51
+ reason: PrRunStateRejectReason;
52
+ }[];
53
+ export type PrRunStateLoad = {
54
+ status: 'found';
55
+ commentId: number;
56
+ state: PrRunState;
57
+ ignored: Ignored;
58
+ } | {
59
+ status: 'none';
60
+ ignored: Ignored;
61
+ };
62
+ /** Allow-list step: rebuilds the state from known fields only, redacts the summary and bounds every list. */
63
+ export declare function sanitizePrRunState(state: PrRunState, maxIds?: number, maxRounds?: number): PrRunState;
64
+ /** The hidden marker block for a state; halves rounds and handled ids until it fits one comment. */
65
+ export declare function encodePrRunState(state: PrRunState): string;
66
+ export declare function decodePrRunState(body: string, key: WorkKey): {
67
+ ok: true;
68
+ state: PrRunState;
69
+ } | {
70
+ ok: false;
71
+ reason: PrRunStateRejectReason;
72
+ } | null;
73
+ /**
74
+ * Picks the state to trust: only a comment by `selfId` (the authenticated identity) is decoded. Lowest comment id
75
+ * wins, as in `readParkState`. An unknown identity fails closed: every marker comment is ignored.
76
+ */
77
+ export declare function selectTrustedPrRunState(comments: readonly PrStateComment[], selfId: number | undefined, key: WorkKey): PrRunStateLoad;
78
+ /**
79
+ * Monotonic merge of local and remote state. `used` counters take the max (a restore can only raise them, never
80
+ * reset a cap), `cap` comes from local because local config is current, handled ids and rounds are unioned (rounds
81
+ * deduped by kind+id+headSha, sorted by `at`), and `status`, `spec` and `prNumber` come from the side with the
82
+ * later `updatedAt`. One missing side returns the other.
83
+ */
84
+ export declare function reconcilePrRunState(local: PrRunState | null, remote: PrRunState | null): PrRunState | null;
85
+ export declare function prRunStatusFor(status: RunStatus, ciPending?: boolean): PrRunStatus;
86
+ export declare function loadPrRunState(deps: {
87
+ octokit: Pick<Octokit, 'rest'>;
88
+ repo: string;
89
+ prNumber: number;
90
+ key: WorkKey;
91
+ }): Promise<PrRunStateLoad>;
92
+ export declare function savePrRunState(deps: {
93
+ octokit: Octokit;
94
+ repo: string;
95
+ prNumber: number;
96
+ state: PrRunState;
97
+ }): Promise<{
98
+ commentId: number;
99
+ created: boolean;
100
+ }>;
101
+ export {};
102
+ //# sourceMappingURL=pr-run-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-run-state.d.ts","sourceRoot":"","sources":["../../src/run/pr-run-state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGrE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,eAAe,YAAI,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,CAAU,CAAC;AACjG,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,gHAAgH;AAChH,eAAO,MAAM,gBAAgB,YAAI,YAAY,EAAE,WAAW,CAAU,CAAC;AAErE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAOxC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAChC,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,EAAE,CAAC;AACvE,MAAM,MAAM,cAAc,GACxB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AA8BrH,6GAA6G;AAC7G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,SAAkB,EAAE,SAAS,SAAa,GAAG,UAAU,CAoBlH;AAWD,oGAAoG;AACpG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAU1D;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAAG,IAAI,CAkBxF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,cAAc,CAmBhB;AAQD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAkB1G;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAwBlF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd,GAAG,OAAO,CAAC,cAAc,CAAC,CAsB1B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CASnD"}
@@ -0,0 +1,240 @@
1
+ // packages/core/src/run/pr-run-state.ts — a run's resumable state in a factory-owned PR comment (#3909, ADR-0174)
2
+ //
3
+ // A disposable host loses `.factory/state` with the container. The run persists the state it needs to resume
4
+ // (rework counters, handled review ids, status, spec summary) in one hidden comment on its open PR. Anyone can post
5
+ // the marker, so only a comment by the authenticated identity whose sha256 digest matches is trusted.
6
+ import { createHash } from 'node:crypto';
7
+ import { z } from 'zod';
8
+ import { redactSecrets } from '../filing/redact.js';
9
+ import { workKeyFromIssue } from '../work/work-key.js';
10
+ import { upsertMarkerComment } from './park-comment.js';
11
+ export const PR_RUN_STATE_VERSION = 'v1';
12
+ export const PR_RUN_STATUSES = ['building', 'awaiting-ci', 'awaiting-review', 'parked'];
13
+ /** Why SHIP left the PR as a draft (#3932): 'ci-pending' lets the sweep land it, 'requested' is intentional. */
14
+ export const PR_DRAFT_REASONS = ['ci-pending', 'requested'];
15
+ export const SPEC_SUMMARY_MAX = 1000;
16
+ export const MAX_HANDLED_IDS = 200;
17
+ export const MAX_ROUNDS = 50;
18
+ export const MAX_ENCODED_CHARS = 60_000;
19
+ const MARKER_PREFIX = `<!-- factory:run-state ${PR_RUN_STATE_VERSION} key:`;
20
+ const MARKER_RE = new RegExp(`<!-- factory:run-state ${PR_RUN_STATE_VERSION} key:(\\S+) -->`);
21
+ const DATA_RE = /<!-- factory:run-state-data ([A-Za-z0-9+/=]*) sha256:([0-9a-f]{64}) -->/;
22
+ const PAGE_SIZE = 100;
23
+ export function prRunStateMarker(key) {
24
+ return `${MARKER_PREFIX}${key} -->`;
25
+ }
26
+ const count = z.number().int().nonnegative();
27
+ const sha = z.string().regex(/^[0-9a-f]{7,40}$/);
28
+ const counter = z.object({ used: count, cap: count }).strict();
29
+ const schema = z
30
+ .object({
31
+ version: z.literal(1),
32
+ key: z.string().min(1),
33
+ prNumber: count,
34
+ status: z.enum(PR_RUN_STATUSES),
35
+ draftReason: z.enum(PR_DRAFT_REASONS).optional(),
36
+ spec: z.object({ sha256: z.string().regex(/^[0-9a-f]{64}$|^$/), summary: z.string() }).strict(),
37
+ checkRework: counter,
38
+ reviewRework: counter,
39
+ handledReviewIds: z.array(count),
40
+ handledCommentIds: z.array(count),
41
+ rounds: z.array(z
42
+ .object({ kind: z.enum(['check', 'review', 'ci']), id: count.optional(), headSha: sha, at: z.string() })
43
+ .strict()),
44
+ updatedAt: z.string(),
45
+ })
46
+ .strict();
47
+ const sha256 = (text) => createHash('sha256').update(text).digest('hex');
48
+ const clampCount = (n) => (Number.isFinite(n) ? Math.max(0, Math.trunc(n)) : 0);
49
+ const uniqueSorted = (ids) => [...new Set(ids.map(clampCount))].sort((a, b) => a - b);
50
+ /** Allow-list step: rebuilds the state from known fields only, redacts the summary and bounds every list. */
51
+ export function sanitizePrRunState(state, maxIds = MAX_HANDLED_IDS, maxRounds = MAX_ROUNDS) {
52
+ return {
53
+ version: 1,
54
+ key: state.key,
55
+ prNumber: clampCount(state.prNumber),
56
+ status: state.status,
57
+ ...(state.draftReason ? { draftReason: state.draftReason } : {}),
58
+ spec: { sha256: state.spec.sha256, summary: redactSecrets(state.spec.summary).slice(0, SPEC_SUMMARY_MAX) },
59
+ checkRework: { used: clampCount(state.checkRework.used), cap: clampCount(state.checkRework.cap) },
60
+ reviewRework: { used: clampCount(state.reviewRework.used), cap: clampCount(state.reviewRework.cap) },
61
+ handledReviewIds: uniqueSorted(state.handledReviewIds).slice(-maxIds),
62
+ handledCommentIds: uniqueSorted(state.handledCommentIds).slice(-maxIds),
63
+ rounds: state.rounds.slice(-maxRounds).map((r) => ({
64
+ kind: r.kind,
65
+ ...(r.id === undefined ? {} : { id: clampCount(r.id) }),
66
+ headSha: r.headSha,
67
+ at: r.at,
68
+ })),
69
+ updatedAt: state.updatedAt,
70
+ };
71
+ }
72
+ function render(state) {
73
+ const json = JSON.stringify(state);
74
+ return [
75
+ prRunStateMarker(state.key),
76
+ '_Factory run state for resuming on another host. Do not edit; edits are ignored._',
77
+ `<!-- factory:run-state-data ${Buffer.from(json).toString('base64')} sha256:${sha256(json)} -->`,
78
+ ].join('\n');
79
+ }
80
+ /** The hidden marker block for a state; halves rounds and handled ids until it fits one comment. */
81
+ export function encodePrRunState(state) {
82
+ let ids = MAX_HANDLED_IDS;
83
+ let rounds = MAX_ROUNDS;
84
+ let body = render(sanitizePrRunState(state, ids, rounds));
85
+ while (body.length > MAX_ENCODED_CHARS && (ids > 0 || rounds > 0)) {
86
+ ids = Math.floor(ids / 2);
87
+ rounds = Math.floor(rounds / 2);
88
+ body = render(sanitizePrRunState(state, ids, rounds));
89
+ }
90
+ return body;
91
+ }
92
+ export function decodePrRunState(body, key) {
93
+ const marker = MARKER_RE.exec(body);
94
+ if (!marker)
95
+ return null;
96
+ if (marker[1] !== key)
97
+ return { ok: false, reason: 'key-mismatch' };
98
+ const data = DATA_RE.exec(body);
99
+ if (!data)
100
+ return { ok: false, reason: 'malformed' };
101
+ const json = Buffer.from(data[1] ?? '', 'base64').toString('utf8');
102
+ let parsed;
103
+ try {
104
+ parsed = JSON.parse(json);
105
+ }
106
+ catch {
107
+ return { ok: false, reason: 'malformed' };
108
+ }
109
+ const checked = schema.safeParse(parsed);
110
+ if (!checked.success)
111
+ return { ok: false, reason: 'malformed' };
112
+ if (sha256(json) !== data[2])
113
+ return { ok: false, reason: 'digest-mismatch' };
114
+ if (checked.data.key !== key)
115
+ return { ok: false, reason: 'key-mismatch' };
116
+ return { ok: true, state: { ...checked.data, key } };
117
+ }
118
+ /**
119
+ * Picks the state to trust: only a comment by `selfId` (the authenticated identity) is decoded. Lowest comment id
120
+ * wins, as in `readParkState`. An unknown identity fails closed: every marker comment is ignored.
121
+ */
122
+ export function selectTrustedPrRunState(comments, selfId, key) {
123
+ const ignored = [];
124
+ let winner;
125
+ for (const c of [...comments].sort((a, b) => a.id - b.id)) {
126
+ if (!MARKER_RE.test(c.body))
127
+ continue;
128
+ if (selfId === undefined) {
129
+ ignored.push({ commentId: c.id, reason: 'identity-unavailable' });
130
+ continue;
131
+ }
132
+ if (c.authorId !== selfId) {
133
+ ignored.push({ commentId: c.id, reason: 'untrusted-author' });
134
+ continue;
135
+ }
136
+ const decoded = decodePrRunState(c.body, key);
137
+ if (decoded === null)
138
+ continue;
139
+ if (!decoded.ok)
140
+ ignored.push({ commentId: c.id, reason: decoded.reason });
141
+ else
142
+ winner ??= { commentId: c.id, state: decoded.state };
143
+ }
144
+ return winner ? { status: 'found', ...winner, ignored } : { status: 'none', ignored };
145
+ }
146
+ function mergeRounds(a, b) {
147
+ const seen = new Map();
148
+ for (const r of [...a, ...b])
149
+ seen.set(`${r.kind}:${r.id ?? ''}:${r.headSha}`, r);
150
+ return [...seen.values()].sort((x, y) => x.at.localeCompare(y.at));
151
+ }
152
+ /**
153
+ * Monotonic merge of local and remote state. `used` counters take the max (a restore can only raise them, never
154
+ * reset a cap), `cap` comes from local because local config is current, handled ids and rounds are unioned (rounds
155
+ * deduped by kind+id+headSha, sorted by `at`), and `status`, `spec` and `prNumber` come from the side with the
156
+ * later `updatedAt`. One missing side returns the other.
157
+ */
158
+ export function reconcilePrRunState(local, remote) {
159
+ if (local === null)
160
+ return remote;
161
+ if (remote === null)
162
+ return local;
163
+ const later = remote.updatedAt > local.updatedAt ? remote : local;
164
+ return {
165
+ version: 1,
166
+ key: local.key,
167
+ prNumber: later.prNumber,
168
+ status: later.status,
169
+ ...(later.draftReason ? { draftReason: later.draftReason } : {}),
170
+ spec: later.spec,
171
+ checkRework: { used: Math.max(local.checkRework.used, remote.checkRework.used), cap: local.checkRework.cap },
172
+ reviewRework: { used: Math.max(local.reviewRework.used, remote.reviewRework.used), cap: local.reviewRework.cap },
173
+ handledReviewIds: uniqueSorted([...local.handledReviewIds, ...remote.handledReviewIds]),
174
+ handledCommentIds: uniqueSorted([...local.handledCommentIds, ...remote.handledCommentIds]),
175
+ rounds: mergeRounds(local.rounds, remote.rounds),
176
+ updatedAt: local.updatedAt > remote.updatedAt ? local.updatedAt : remote.updatedAt,
177
+ };
178
+ }
179
+ export function prRunStatusFor(status, ciPending) {
180
+ switch (status) {
181
+ case 'pending':
182
+ case 'planning':
183
+ case 'building':
184
+ case 'checking':
185
+ case 'reworking':
186
+ return 'building';
187
+ case 'shipping':
188
+ return 'awaiting-ci';
189
+ case 'ready':
190
+ return ciPending ? 'awaiting-ci' : 'awaiting-review';
191
+ case 'awaiting-review':
192
+ case 'merged':
193
+ return 'awaiting-review';
194
+ case 'parked':
195
+ case 'escalated':
196
+ case 'failed':
197
+ return 'parked';
198
+ default: {
199
+ const unreachable = status;
200
+ return unreachable;
201
+ }
202
+ }
203
+ }
204
+ export async function loadPrRunState(deps) {
205
+ const { octokit, repo, prNumber, key } = deps;
206
+ const [owner, name] = repo.split('/');
207
+ let selfId;
208
+ try {
209
+ selfId = (await octokit.rest.users.getAuthenticated()).data.id;
210
+ }
211
+ catch {
212
+ selfId = undefined;
213
+ }
214
+ const comments = [];
215
+ for (let page = 1;; page++) {
216
+ const { data } = await octokit.rest.issues.listComments({
217
+ owner,
218
+ repo: name,
219
+ issue_number: prNumber,
220
+ per_page: PAGE_SIZE,
221
+ page,
222
+ });
223
+ for (const c of data)
224
+ comments.push({ id: c.id, authorId: c.user?.id, body: c.body ?? '' });
225
+ if (data.length < PAGE_SIZE)
226
+ break;
227
+ }
228
+ return selectTrustedPrRunState(comments, selfId, key);
229
+ }
230
+ export function savePrRunState(deps) {
231
+ const { octokit, repo, prNumber, state } = deps;
232
+ return upsertMarkerComment({
233
+ octokit,
234
+ repo,
235
+ issue: workKeyFromIssue(prNumber),
236
+ marker: prRunStateMarker(state.key),
237
+ body: encodePrRunState(state),
238
+ });
239
+ }
240
+ //# sourceMappingURL=pr-run-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-run-state.js","sourceRoot":"","sources":["../../src/run/pr-run-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Octokit } from '@octokit/rest';
2
+ import type { PrerequisiteStackTarget } from '../queue/prerequisite-stack.js';
3
+ export interface PrerequisiteRestackOptions {
4
+ /** Main checkout; a short-lived detached worktree is added from it. */
5
+ repoRoot: string;
6
+ octokit: Octokit;
7
+ /** owner/name */
8
+ repo: string;
9
+ /** The stacked PR. */
10
+ prNumber: number;
11
+ branch: string;
12
+ /** The stacked branch head the factory last saw; the push lease and the ownership check. */
13
+ recordedHead: string;
14
+ /** The prerequisite PR and head the stacked branch was built on (from the PR body marker). */
15
+ stackedOn: PrerequisiteStackTarget;
16
+ onto: {
17
+ kind: 'main';
18
+ mergedHead: string;
19
+ } | {
20
+ kind: 'prerequisite';
21
+ newHead: string;
22
+ };
23
+ /** Default 'origin'. */
24
+ remote?: string;
25
+ /** Default 'main'. */
26
+ baseBranch?: string;
27
+ }
28
+ export type PrerequisiteRestackOutcome = {
29
+ status: 'restacked';
30
+ headSha: string;
31
+ retargeted: boolean;
32
+ } | {
33
+ status: 'park';
34
+ reason: string;
35
+ files: string[];
36
+ };
37
+ /** Rebases the stacked branch `--onto` main (prerequisite merged) or the prerequisite's new head, then updates the PR. */
38
+ export declare function restackOnPrerequisite(opts: PrerequisiteRestackOptions): Promise<PrerequisiteRestackOutcome>;
39
+ //# sourceMappingURL=prerequisite-restack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerequisite-restack.d.ts","sourceRoot":"","sources":["../../src/run/prerequisite-restack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAI9E,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,SAAS,EAAE,uBAAuB,CAAC;IACnC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,0BAA0B,GACpC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAQtH,0HAA0H;AAC1H,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+EjH"}
@@ -0,0 +1,79 @@
1
+ // packages/core/src/run/prerequisite-restack.ts — cross-issue stacks (#3916): rebase a stacked PR onto main after its
2
+ // prerequisite squash-merged, or onto the prerequisite's new head after it moved. Reuses ADR-0161's rebase/push.
3
+ import { prerequisiteStackOrder, renderPrerequisiteStackLine, replaceStackOrderLine } from '../phases/stack-order.js';
4
+ import { execGit } from '../utils/git-exec.js';
5
+ import { gitErrorDetail, rebaseAndPushStack } from './stack-rebase.js';
6
+ const PREREQUISITE_MARKER_PREFIX = '<!-- factory:prerequisite-stack ';
7
+ async function git(cwd, ...args) {
8
+ return (await execGit(args, { cwd })).stdout.trim();
9
+ }
10
+ /** Rebases the stacked branch `--onto` main (prerequisite merged) or the prerequisite's new head, then updates the PR. */
11
+ export async function restackOnPrerequisite(opts) {
12
+ const { repoRoot, octokit, prNumber, branch, recordedHead, stackedOn, onto } = opts;
13
+ const remote = opts.remote ?? 'origin';
14
+ const base = opts.baseBranch ?? 'main';
15
+ const [owner, repoName] = opts.repo.split('/');
16
+ const park = (reason, files = []) => ({
17
+ status: 'park',
18
+ reason,
19
+ files,
20
+ });
21
+ const label = `PR #${prNumber} (${branch})`;
22
+ let startBase;
23
+ try {
24
+ await git(repoRoot, 'fetch', remote, `+refs/heads/${base}:refs/remotes/${remote}/${base}`);
25
+ await git(repoRoot, 'fetch', remote, `+refs/heads/${branch}:refs/remotes/${remote}/${branch}`);
26
+ if (onto.kind === 'prerequisite') {
27
+ await git(repoRoot, 'fetch', remote, `+refs/heads/${stackedOn.branch}:refs/remotes/${remote}/${stackedOn.branch}`);
28
+ await git(repoRoot, 'cat-file', '-e', `${onto.newHead}^{commit}`);
29
+ startBase = onto.newHead;
30
+ }
31
+ else {
32
+ startBase = `${remote}/${base}`;
33
+ }
34
+ const head = await git(repoRoot, 'rev-parse', `refs/remotes/${remote}/${branch}`);
35
+ if (head !== recordedHead) {
36
+ return park(`${label} moved since the factory recorded ${recordedHead}; a human may have pushed — not restacking onto prerequisite PR #${stackedOn.prNumber}`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ return park(`restack of ${label} onto prerequisite PR #${stackedOn.prNumber} could not fetch: ${gitErrorDetail(err)}`);
41
+ }
42
+ const rebased = await rebaseAndPushStack({
43
+ repoRoot,
44
+ remote,
45
+ startBase,
46
+ layers: [{ branch, recordedHead, upstream: stackedOn.headSha }],
47
+ });
48
+ if (!rebased.ok) {
49
+ return park(`restack of ${label} ${rebased.reason}`, rebased.files);
50
+ }
51
+ const headSha = rebased.newHeads[0];
52
+ try {
53
+ const { data } = await octokit.rest.pulls.get({ owner, repo: repoName, pull_number: prNumber });
54
+ const merged = onto.kind === 'main';
55
+ const retargeted = merged && data.base.ref !== base;
56
+ const without = (data.body ?? '')
57
+ .split('\n')
58
+ .filter((l) => !l.startsWith(PREREQUISITE_MARKER_PREFIX))
59
+ .join('\n');
60
+ const issue = Number(/^factory\/(\d+)-/.exec(branch)?.[1]);
61
+ const body = merged
62
+ ? replaceStackOrderLine(without, renderPrerequisiteStackLine({ prerequisite: stackedOn, issue, base }))
63
+ : replaceStackOrderLine(without, prerequisiteStackOrder({ ...stackedOn, headSha: onto.newHead }, issue, stackedOn.branch));
64
+ if (retargeted || body !== (data.body ?? '')) {
65
+ await octokit.rest.pulls.update({
66
+ owner,
67
+ repo: repoName,
68
+ pull_number: prNumber,
69
+ body,
70
+ ...(retargeted ? { base } : {}),
71
+ });
72
+ }
73
+ return { status: 'restacked', headSha, retargeted };
74
+ }
75
+ catch (err) {
76
+ return park(`${label} restacked and pushed but updating the PR failed: ${gitErrorDetail(err)}`);
77
+ }
78
+ }
79
+ //# sourceMappingURL=prerequisite-restack.js.map