baxian 1.2.61 → 2.0.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 (245) hide show
  1. package/README.md +7 -4
  2. package/README.zh-CN.md +7 -4
  3. package/dist/agent/bootstrap-poller.d.ts +1 -1
  4. package/dist/agent/bootstrap-poller.d.ts.map +1 -1
  5. package/dist/agent/bootstrap-poller.js.map +1 -1
  6. package/dist/agent/bootstrap.d.ts +1 -1
  7. package/dist/agent/bootstrap.d.ts.map +1 -1
  8. package/dist/agent/bootstrap.js +6 -2
  9. package/dist/agent/bootstrap.js.map +1 -1
  10. package/dist/agent/branch.d.ts +1 -3
  11. package/dist/agent/branch.d.ts.map +1 -1
  12. package/dist/agent/branch.js +2 -2
  13. package/dist/agent/branch.js.map +1 -1
  14. package/dist/agent/dispatch-reconciler.d.ts +0 -1
  15. package/dist/agent/dispatch-reconciler.d.ts.map +1 -1
  16. package/dist/agent/dispatch-reconciler.js +15 -49
  17. package/dist/agent/dispatch-reconciler.js.map +1 -1
  18. package/dist/agent/manager.d.ts +212 -90
  19. package/dist/agent/manager.d.ts.map +1 -1
  20. package/dist/agent/manager.js +2983 -1574
  21. package/dist/agent/manager.js.map +1 -1
  22. package/dist/agent/net-exec.d.ts +3 -0
  23. package/dist/agent/net-exec.d.ts.map +1 -1
  24. package/dist/agent/net-exec.js +6 -0
  25. package/dist/agent/net-exec.js.map +1 -1
  26. package/dist/agent/pane-streamer-manager.d.ts +6 -6
  27. package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
  28. package/dist/agent/pane-streamer-manager.js.map +1 -1
  29. package/dist/agent/pane-streamer.d.ts +2 -2
  30. package/dist/agent/pane-streamer.d.ts.map +1 -1
  31. package/dist/agent/pane-streamer.js +46 -36
  32. package/dist/agent/pane-streamer.js.map +1 -1
  33. package/dist/agent/phase-signal-watcher.d.ts +20 -2
  34. package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
  35. package/dist/agent/phase-signal-watcher.js +135 -17
  36. package/dist/agent/phase-signal-watcher.js.map +1 -1
  37. package/dist/agent/phase-signal.d.ts +9 -7
  38. package/dist/agent/phase-signal.d.ts.map +1 -1
  39. package/dist/agent/phase-signal.js +18 -9
  40. package/dist/agent/phase-signal.js.map +1 -1
  41. package/dist/agent/preflight.d.ts +4 -1
  42. package/dist/agent/preflight.d.ts.map +1 -1
  43. package/dist/agent/preflight.js +46 -45
  44. package/dist/agent/preflight.js.map +1 -1
  45. package/dist/agent/prompt.d.ts +8 -5
  46. package/dist/agent/prompt.d.ts.map +1 -1
  47. package/dist/agent/prompt.js +34 -30
  48. package/dist/agent/prompt.js.map +1 -1
  49. package/dist/agent/repo-store.d.ts +8 -1
  50. package/dist/agent/repo-store.d.ts.map +1 -1
  51. package/dist/agent/repo-store.js +70 -15
  52. package/dist/agent/repo-store.js.map +1 -1
  53. package/dist/agent/review-transport.d.ts +20 -1
  54. package/dist/agent/review-transport.d.ts.map +1 -1
  55. package/dist/agent/review-transport.js +68 -20
  56. package/dist/agent/review-transport.js.map +1 -1
  57. package/dist/agent/root-agent-runtime.d.ts +80 -0
  58. package/dist/agent/root-agent-runtime.d.ts.map +1 -0
  59. package/dist/agent/root-agent-runtime.js +635 -0
  60. package/dist/agent/root-agent-runtime.js.map +1 -0
  61. package/dist/agent/root-recovery-coordinator.d.ts +125 -0
  62. package/dist/agent/root-recovery-coordinator.d.ts.map +1 -0
  63. package/dist/agent/root-recovery-coordinator.js +1579 -0
  64. package/dist/agent/root-recovery-coordinator.js.map +1 -0
  65. package/dist/agent/runner.d.ts +1 -0
  66. package/dist/agent/runner.d.ts.map +1 -1
  67. package/dist/agent/runner.js +103 -7
  68. package/dist/agent/runner.js.map +1 -1
  69. package/dist/agent/tmux-probe-poller.d.ts +1 -0
  70. package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
  71. package/dist/agent/tmux-probe-poller.js +16 -10
  72. package/dist/agent/tmux-probe-poller.js.map +1 -1
  73. package/dist/agent/tmux.d.ts +3 -0
  74. package/dist/agent/tmux.d.ts.map +1 -1
  75. package/dist/agent/tmux.js +11 -5
  76. package/dist/agent/tmux.js.map +1 -1
  77. package/dist/api/agents.d.ts.map +1 -1
  78. package/dist/api/agents.js +42 -1
  79. package/dist/api/agents.js.map +1 -1
  80. package/dist/api/config.d.ts.map +1 -1
  81. package/dist/api/config.js +88 -17
  82. package/dist/api/config.js.map +1 -1
  83. package/dist/api/hosts.d.ts.map +1 -1
  84. package/dist/api/hosts.js +71 -15
  85. package/dist/api/hosts.js.map +1 -1
  86. package/dist/api/platform-guard.d.ts +10 -2
  87. package/dist/api/platform-guard.d.ts.map +1 -1
  88. package/dist/api/platform-guard.js +112 -10
  89. package/dist/api/platform-guard.js.map +1 -1
  90. package/dist/api/projects.d.ts.map +1 -1
  91. package/dist/api/projects.js +57 -16
  92. package/dist/api/projects.js.map +1 -1
  93. package/dist/api/tasks.d.ts.map +1 -1
  94. package/dist/api/tasks.js +21 -36
  95. package/dist/api/tasks.js.map +1 -1
  96. package/dist/app.d.ts +6 -4
  97. package/dist/app.d.ts.map +1 -1
  98. package/dist/app.js +6 -0
  99. package/dist/app.js.map +1 -1
  100. package/dist/cli.d.ts +1 -1
  101. package/dist/cli.d.ts.map +1 -1
  102. package/dist/cli.js +49 -7
  103. package/dist/cli.js.map +1 -1
  104. package/dist/config/hot-reload.d.ts +11 -2
  105. package/dist/config/hot-reload.d.ts.map +1 -1
  106. package/dist/config/hot-reload.js +43 -8
  107. package/dist/config/hot-reload.js.map +1 -1
  108. package/dist/config/loader.d.ts.map +1 -1
  109. package/dist/config/loader.js +23 -2
  110. package/dist/config/loader.js.map +1 -1
  111. package/dist/config/normalizer.d.ts.map +1 -1
  112. package/dist/config/normalizer.js +18 -0
  113. package/dist/config/normalizer.js.map +1 -1
  114. package/dist/config/validator.d.ts +3 -1
  115. package/dist/config/validator.d.ts.map +1 -1
  116. package/dist/config/validator.js +247 -54
  117. package/dist/config/validator.js.map +1 -1
  118. package/dist/event/handlers.d.ts.map +1 -1
  119. package/dist/event/handlers.js +615 -1069
  120. package/dist/event/handlers.js.map +1 -1
  121. package/dist/event/server-handlers.d.ts.map +1 -1
  122. package/dist/event/server-handlers.js +787 -487
  123. package/dist/event/server-handlers.js.map +1 -1
  124. package/dist/index.d.ts +4 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +99 -79
  127. package/dist/index.js.map +1 -1
  128. package/dist/platform/command-renderer.d.ts +1 -0
  129. package/dist/platform/command-renderer.d.ts.map +1 -1
  130. package/dist/platform/command-renderer.js +16 -2
  131. package/dist/platform/command-renderer.js.map +1 -1
  132. package/dist/platform/comment-cursor.d.ts +9 -0
  133. package/dist/platform/comment-cursor.d.ts.map +1 -1
  134. package/dist/platform/comment-cursor.js +63 -5
  135. package/dist/platform/comment-cursor.js.map +1 -1
  136. package/dist/platform/driver-host.d.ts.map +1 -1
  137. package/dist/platform/driver-host.js +0 -2
  138. package/dist/platform/driver-host.js.map +1 -1
  139. package/dist/platform/driver-spec.d.ts.map +1 -1
  140. package/dist/platform/driver-spec.js +17 -6
  141. package/dist/platform/driver-spec.js.map +1 -1
  142. package/dist/platform/feedback.d.ts.map +1 -1
  143. package/dist/platform/feedback.js +0 -9
  144. package/dist/platform/feedback.js.map +1 -1
  145. package/dist/platform/git-driver.d.ts +3 -0
  146. package/dist/platform/git-driver.d.ts.map +1 -1
  147. package/dist/platform/git-driver.js +45 -3
  148. package/dist/platform/git-driver.js.map +1 -1
  149. package/dist/platform/platform-poller.d.ts +18 -5
  150. package/dist/platform/platform-poller.d.ts.map +1 -1
  151. package/dist/platform/platform-poller.js +283 -38
  152. package/dist/platform/platform-poller.js.map +1 -1
  153. package/dist/platform/plugins/github/baxian-plugin.json +1 -1
  154. package/dist/platform/plugins/github/driver.json +14 -3
  155. package/dist/platform/plugins/github/skills/baxian-cli-gh/SKILL.md +7 -6
  156. package/dist/platform/plugins/github/skills/baxian-cli-gh/agents/openai.yaml +2 -0
  157. package/dist/platform/pr-binding.d.ts.map +1 -1
  158. package/dist/platform/pr-binding.js +0 -2
  159. package/dist/platform/pr-binding.js.map +1 -1
  160. package/dist/platform/pr-conversation-cache.d.ts.map +1 -0
  161. package/dist/platform/pr-conversation-cache.js.map +1 -0
  162. package/dist/platform/row-schema.d.ts.map +1 -1
  163. package/dist/platform/row-schema.js +1 -0
  164. package/dist/platform/row-schema.js.map +1 -1
  165. package/dist/platform/startup.d.ts +29 -1
  166. package/dist/platform/startup.d.ts.map +1 -1
  167. package/dist/platform/startup.js +82 -4
  168. package/dist/platform/startup.js.map +1 -1
  169. package/dist/platform/types.d.ts +2 -0
  170. package/dist/platform/types.d.ts.map +1 -1
  171. package/dist/platform/types.js +6 -4
  172. package/dist/platform/types.js.map +1 -1
  173. package/dist/platform/verdict-engine.d.ts.map +1 -1
  174. package/dist/platform/verdict-engine.js +0 -2
  175. package/dist/platform/verdict-engine.js.map +1 -1
  176. package/dist/shared/constants.d.ts +7 -1
  177. package/dist/shared/constants.d.ts.map +1 -1
  178. package/dist/shared/constants.js +5 -0
  179. package/dist/shared/constants.js.map +1 -1
  180. package/dist/shared/types.d.ts +98 -7
  181. package/dist/shared/types.d.ts.map +1 -1
  182. package/dist/shared/types.js +18 -0
  183. package/dist/shared/types.js.map +1 -1
  184. package/dist/skills/baxian-pr-feedback/SKILL.md +5 -15
  185. package/dist/skills/baxian-pr-recheck/SKILL.md +5 -44
  186. package/dist/skills/baxian-pr-review/SKILL.md +6 -43
  187. package/dist/skills/baxian-research/SKILL.md +1 -1
  188. package/dist/skills/baxian-server-feedback/SKILL.md +7 -5
  189. package/dist/skills/baxian-server-review/SKILL.md +2 -2
  190. package/dist/skills/baxian-signals/SKILL.md +11 -7
  191. package/dist/skills/baxian-task-check/SKILL.md +3 -5
  192. package/dist/state/agent-store.js +0 -2
  193. package/dist/state/agent-store.js.map +1 -1
  194. package/dist/state/init.d.ts.map +1 -1
  195. package/dist/state/init.js +1 -0
  196. package/dist/state/init.js.map +1 -1
  197. package/dist/state/lock.d.ts +6 -0
  198. package/dist/state/lock.d.ts.map +1 -1
  199. package/dist/state/lock.js +8 -0
  200. package/dist/state/lock.js.map +1 -1
  201. package/dist/state/review-store.d.ts +21 -1
  202. package/dist/state/review-store.d.ts.map +1 -1
  203. package/dist/state/review-store.js +132 -0
  204. package/dist/state/review-store.js.map +1 -1
  205. package/dist/state/root-recovery-store.d.ts +107 -0
  206. package/dist/state/root-recovery-store.d.ts.map +1 -0
  207. package/dist/state/root-recovery-store.js +400 -0
  208. package/dist/state/root-recovery-store.js.map +1 -0
  209. package/dist/state/task-store.d.ts +6 -0
  210. package/dist/state/task-store.d.ts.map +1 -1
  211. package/dist/state/task-store.js +266 -21
  212. package/dist/state/task-store.js.map +1 -1
  213. package/dist/terminal/attach.d.ts +3 -3
  214. package/dist/terminal/attach.d.ts.map +1 -1
  215. package/dist/terminal/attach.js.map +1 -1
  216. package/dist/terminal/stream-ws.d.ts.map +1 -1
  217. package/dist/terminal/stream-ws.js.map +1 -1
  218. package/dist/web/assets/index-BXfgaFNm.js +18 -0
  219. package/dist/web/index.html +1 -1
  220. package/package.json +1 -1
  221. package/dist/github/mapper.d.ts +0 -9
  222. package/dist/github/mapper.d.ts.map +0 -1
  223. package/dist/github/mapper.js +0 -25
  224. package/dist/github/mapper.js.map +0 -1
  225. package/dist/github/poller.d.ts +0 -73
  226. package/dist/github/poller.d.ts.map +0 -1
  227. package/dist/github/poller.js +0 -556
  228. package/dist/github/poller.js.map +0 -1
  229. package/dist/github/pr-conversation-cache.d.ts.map +0 -1
  230. package/dist/github/pr-conversation-cache.js.map +0 -1
  231. package/dist/github/pr-conversation.d.ts +0 -7
  232. package/dist/github/pr-conversation.d.ts.map +0 -1
  233. package/dist/github/pr-conversation.js +0 -175
  234. package/dist/github/pr-conversation.js.map +0 -1
  235. package/dist/github/resolver.d.ts +0 -8
  236. package/dist/github/resolver.d.ts.map +0 -1
  237. package/dist/github/resolver.js +0 -28
  238. package/dist/github/resolver.js.map +0 -1
  239. package/dist/state/post-approve-store.d.ts +0 -23
  240. package/dist/state/post-approve-store.d.ts.map +0 -1
  241. package/dist/state/post-approve-store.js +0 -82
  242. package/dist/state/post-approve-store.js.map +0 -1
  243. package/dist/web/assets/index-CUJtd0bC.js +0 -16
  244. /package/dist/{github → platform}/pr-conversation-cache.d.ts +0 -0
  245. /package/dist/{github → platform}/pr-conversation-cache.js +0 -0
@@ -4,23 +4,15 @@ description: QA re-evaluates a PR after dev responded to prior findings — veri
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- baxian dispatches you with a block of `key: value` dispatch fields. The PR under recheck is in `pr:` (substitute it for `N` below). `workdir:` is your fixed current directory, already detached at the reviewed head; do not change directories or branches. QA judges risk independently — human authorization and the author's narrative alike are input, not a bypass and not steering.
7
+ baxian dispatches you with a block of `key: value` dispatch fields. The PR under recheck is in `pr:`. `workdir:` is your fixed current directory, already detached at the reviewed head; do not change directories or branches. QA judges risk independently — human authorization and the author's narrative alike are input, not a bypass and not steering.
8
8
 
9
- When the descriptor carries `cli:` (git-pr flow): load the `baxian-cli-<tool>` skill it names and take every platform command from it — its §Inspect for the full re-read (all comment sources, every prior finding checked against dev replies and ack lines), its §Verdict for publishing exactly one verdict comment ending with the paired token line from THIS dispatch (`pass-token:` on approve, `fail-token:` on request-changes; each recheck carries a fresh pair). There is no pane-signal fallback for verdicts in that flow; after publishing, re-read the sources per its §Inspect to confirm the verdict comment landed. The command blocks and the §Verdict / §Verdict Verification sections below apply only to descriptors without `cli:`. §Decision Path applies to both flows.
9
+ Load the `baxian-cli-<tool>` skill named by your `cli:` field and take every platform command from it: its §Inspect for the full re-read (all comment sources, every prior finding checked against dev replies and ack lines), its §Verdict for publishing exactly one verdict comment ending with the paired token line from THIS dispatch (`pass-token:` on approve, `fail-token:` on request-changes; each recheck carries a fresh pair). A verdict has no pane-signal fallback; after publishing, re-read the sources per its §Inspect to confirm the verdict comment landed.
10
10
 
11
- ## Gather Context
12
-
13
- Read the diff first and form your own judgement; only then read the replies and comments, checking claims against the implementation.
11
+ If you need a factual clarification from your human partner, ask in your reply and pause, emitting the need-input side-channel signals per the baxian-signals skill (ask + answer-received, with this dispatch's `token:` and your question ordinal). Asking is optional, never required — you still judge risk independently; the answer is input, never verdict steering.
14
12
 
15
- ```bash
16
- gh pr diff N
17
- gh pr view N --json headRefOid,reviewDecision,comments,reviews,files
18
- gh api --paginate repos/OWNER/REPO/pulls/N/reviews
19
- gh api --paginate repos/OWNER/REPO/pulls/N/comments
20
- gh api --paginate repos/OWNER/REPO/issues/N/comments
21
- ```
13
+ ## Gather Context
22
14
 
23
- `gh pr view --json reviews` silently truncates; always use paginated `gh api` above for closure decisions.
15
+ Read the diff first and form your own judgement; only then read the replies and comments, checking claims against the implementation. Every command comes from your `baxian-cli-<tool>` skill §Inspect: closure decisions need its fully paginated reads, since a single-shot view of a conversation truncates silently.
24
16
 
25
17
  ## Decision Path
26
18
 
@@ -29,34 +21,3 @@ gh api --paginate repos/OWNER/REPO/issues/N/comments
29
21
  - Neither changed: report unchanged, keep prior findings.
30
22
 
31
23
  Whatever the path, post unresolved issues to the PR with concrete evidence.
32
-
33
- ## Verdict
34
-
35
- Submit via `gh pr review N` with a per-pass stamp — substitute `N` = `pr:`, `TOKEN` = `token:`:
36
-
37
- | Verdict | Command |
38
- |---|---|
39
- | approve | `gh pr review N --approve --body ':+1: <!-- baxian:pr-approved:TOKEN -->'` |
40
- | request changes | `gh pr review N --request-changes --body 'FINDINGS <!-- baxian:pr-changes-requested:TOKEN -->'` |
41
-
42
- Multi-line: `--body-file -`, stamp at end.
43
-
44
- No pane signal on success. **422 fallback**: when dev and QA share one GitHub identity, `gh pr review` rejects the verdict with HTTP 422 — emit the matching signal instead (wire format: baxian-signals skill):
45
- - request-changes: `gh pr review N --comment --body 'FINDINGS'`, then emit `pr-changes-requested` with `token:`.
46
- - approve: emit `pr-approved` with `token:`.
47
-
48
- ## Verdict Verification
49
-
50
- After submitting (native `gh pr review` or 422 fallback), verify it landed — substitute `TOKEN` = `token:`:
51
-
52
- ```bash
53
- gh api --paginate repos/OWNER/REPO/pulls/N/reviews \
54
- --jq '.[] | select((.body // "") | contains("TOKEN")) | {id,state,commit_id,submitted_at}'
55
- ```
56
-
57
- - **Native path**: must find a review matching ALL of:
58
- 1. `body` contains the token
59
- 2. `state` is `APPROVED` or `CHANGES_REQUESTED`
60
- 3. `commit_id` equals your `anchor-sha:` field (skip this check when `anchor-sha:` is absent)
61
- - **422 fallback path**: native review won't exist — verify the pane signal was emitted instead. Do NOT claim a GitHub native review was submitted.
62
- - If verification fails, report: "verdict 未落到 GitHub,需人工检查" and do NOT claim completion.
@@ -1,26 +1,20 @@
1
1
  ---
2
2
  name: baxian-pr-review
3
- description: QA performs a full independent pull request review — gather context, findings, verdict, verification.
3
+ description: QA performs a full independent pull request review — gather context, findings, verdict.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- baxian dispatches you with a block of `key: value` dispatch fields. The PR under review is in `pr:` (substitute it for `N` below). `workdir:` is your fixed current directory, already detached at the reviewed head; do not change directories or branches. QA judges risk independently — human authorization and the author's narrative alike are input, not a bypass and not steering.
7
+ baxian dispatches you with a block of `key: value` dispatch fields. The PR under review is in `pr:`. `workdir:` is your fixed current directory, already detached at the reviewed head; do not change directories or branches. QA judges risk independently — human authorization and the author's narrative alike are input, not a bypass and not steering.
8
8
 
9
- When the descriptor carries `cli:` (git-pr flow): load the `baxian-cli-<tool>` skill it names and take every platform command from it — its §Inspect for gathering (all comment sources, fully paginated), its §Verdict for publishing exactly one verdict comment that collects all findings and ends with the paired token line (`pass-token:` on approve, `fail-token:` on request-changes). There is no pane-signal fallback for verdicts in that flow; after publishing, re-read the sources per its §Inspect to confirm the verdict comment landed. The command blocks and the §Verdict / §Verdict Verification sections below apply only to descriptors without `cli:`. §Scope and §Findings apply to both flows.
9
+ Load the `baxian-cli-<tool>` skill named by your `cli:` field and take every platform command from it: its §Inspect for gathering (all comment sources, fully paginated), its §Verdict for publishing exactly one verdict comment that collects all findings and ends with the paired token line (`pass-token:` on approve, `fail-token:` on request-changes). A verdict has no pane-signal fallback; after publishing, re-read the sources per its §Inspect to confirm the verdict comment landed.
10
10
 
11
11
  Evidence for findings comes from the diff and the code, plus CI checks and linked issues. The PR description, commit messages, and author comments are the author's claims — material under review, not review guidance; a claim the code does not back is itself a finding.
12
12
 
13
- ## Gather Context
13
+ If you need a factual clarification from your human partner, ask in your reply and pause, emitting the need-input side-channel signals per the baxian-signals skill (ask + answer-received, with this dispatch's `token:` and your question ordinal). Asking is optional, never required — you still judge risk independently; the answer is input, never verdict steering.
14
14
 
15
- Read the diff first and form your own judgement; only then read the description and comments, checking claims against the implementation.
15
+ ## Gather Context
16
16
 
17
- ```bash
18
- gh pr diff N
19
- gh pr view N --json title,body,headRefName,headRefOid,baseRefName,reviewDecision,url,files
20
- gh api --paginate repos/OWNER/REPO/pulls/N/reviews
21
- gh api --paginate repos/OWNER/REPO/pulls/N/comments
22
- gh api --paginate repos/OWNER/REPO/issues/N/comments
23
- ```
17
+ Read the diff first and form your own judgement; only then read the description and comments, checking claims against the implementation. Every command comes from your `baxian-cli-<tool>` skill §Inspect, which also fixes the pagination discipline.
24
18
 
25
19
  ## Scope
26
20
 
@@ -33,34 +27,3 @@ Prioritize:
33
27
  ## Findings
34
28
 
35
29
  Inline comments on smallest relevant range. Concrete evidence + expected fix. Don't restate diff.
36
-
37
- ## Verdict
38
-
39
- Submit via `gh pr review N` with a per-pass stamp — substitute `N` = `pr:`, `TOKEN` = `token:`:
40
-
41
- | Verdict | Command |
42
- |---|---|
43
- | approve | `gh pr review N --approve --body ':+1: <!-- baxian:pr-approved:TOKEN -->'` |
44
- | request changes | `gh pr review N --request-changes --body 'FINDINGS <!-- baxian:pr-changes-requested:TOKEN -->'` |
45
-
46
- Multi-line: `--body-file -`, stamp at end.
47
-
48
- No pane signal on success. **422 fallback**: when dev and QA share one GitHub identity, `gh pr review` rejects the verdict with HTTP 422 — emit the matching signal instead (wire format: baxian-signals skill):
49
- - request-changes: `gh pr review N --comment --body 'FINDINGS'`, then emit `pr-changes-requested` with `token:`.
50
- - approve: emit `pr-approved` with `token:`.
51
-
52
- ## Verdict Verification
53
-
54
- After submitting (native `gh pr review` or 422 fallback), verify it landed — substitute `TOKEN` = `token:`:
55
-
56
- ```bash
57
- gh api --paginate repos/OWNER/REPO/pulls/N/reviews \
58
- --jq '.[] | select((.body // "") | contains("TOKEN")) | {id,state,commit_id,submitted_at}'
59
- ```
60
-
61
- - **Native path**: must find a review matching ALL of:
62
- 1. `body` contains the token
63
- 2. `state` is `APPROVED` or `CHANGES_REQUESTED`
64
- 3. `commit_id` equals your `anchor-sha:` field (skip this check when `anchor-sha:` is absent)
65
- - **422 fallback path**: native review won't exist — verify the pane signal was emitted instead. Do NOT claim a GitHub native review was submitted.
66
- - If verification fails, report: "verdict 未落到 GitHub,需人工检查" and do NOT claim completion.
@@ -4,7 +4,7 @@ description: Research-side workflow for a baxian dispatch whose phase is researc
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- baxian dispatches a block of `key: value` fields followed by the task title and description. `workdir:` is your fixed current directory, checked out detached at the latest default branch; do not create or switch branches. Signal format and emit rules are defined by the baxian-signals skill.
7
+ baxian dispatches a block of `key: value` fields followed by the task title and description. If an `images:` list is present, read each path (the user's uploaded images) and factor them in. `workdir:` is your fixed current directory, checked out detached at the latest default branch; do not create or switch branches. Signal format and emit rules are defined by the baxian-signals skill.
8
8
 
9
9
  ## Role
10
10
 
@@ -8,7 +8,9 @@ baxian dispatches you with a block of `key: value` dispatch fields. `workdir:` i
8
8
 
9
9
  ## Feedback
10
10
 
11
- QA's findings ride in the `findings:` block, or in a `findings-file:` referenced file when large — read it from the given Workdir-relative path; if the file cannot be read, do not guess at its contents: write `response.json` as `{"round":<round>,"responses":[{"findingId":"findings-file-unreadable","action":"reject","rationale":"<path>: <what failed>"}]}` and emit your signal as usual — the server's coverage check escalates it for human attention; the `feedback:` field says what they target — `code` or `spec`. Judge each finding independently — QA can be wrong; fix only what is actually correct, otherwise reject. Handle EVERY finding by id.
11
+ If an `images:` list is present, read each path (the user's uploaded images) and factor them in. QA's findings ride in the `findings:` block, or in the single `findings-file:` referenced by the current prompt when large — read only that Workdir-relative file, never infer the current set from older inbox files or conversation context. If the file cannot be read, do not guess at its contents: write `response.json` as `{"round":<round>,"token":"<token>","findingsDigest":"<findings-digest>","responses":[{"findingId":"findings-file-unreadable","action":"reject","rationale":"<path>: <what failed>"}]}` and emit your signal as usual — the server's coverage check escalates it for human attention; the `feedback:` field says what they target — `code` or `spec`. Judge each finding independently — QA can be wrong; fix only what is actually correct, otherwise reject. Handle EVERY finding by id.
12
+
13
+ If correction fields are present, rebuild the response against the current findings rather than replaying the rejected file. `correction-reason:` explains the rejection; include every `missing-finding-ids:` entry, omit every `unknown-finding-ids:` entry, and correct the response shape named by `schema-violation-codes:`. The current findings remain authoritative, so every current id still appears exactly once.
12
14
 
13
15
  Do NOT push to any remote and do NOT open a PR in this phase — baxian reads your Workdir directly; publishing is deferred to the `server-after-done` phase.
14
16
 
@@ -19,20 +21,20 @@ For each finding:
19
21
 
20
22
  Write your response to `.baxian/review/response.json` in YOUR Workdir (`mkdir -p .baxian/review` first). Atomic write: write `response.json.tmp` first, then `mv response.json.tmp response.json`.
21
23
 
22
- Schema — substitute `<round>` with your `round:` field:
24
+ Schema — copy `round:`, `token:`, and `findings-digest:` exactly from the current prompt:
23
25
 
24
26
  ```json
25
- {"round":<round>,"responses":[{"findingId":"f-1","action":"fix"|"reject"|"out-of-scope","rationale":"..."}]}
27
+ {"round":<round>,"token":"<token>","findingsDigest":"<findings-digest>","responses":[{"findingId":"f-1","action":"fix"|"reject"|"out-of-scope","rationale":"..."}]}
26
28
  ```
27
29
 
28
- Code-finding responses also carry `"commitSha":"..."` on every `fix`. Spec-finding responses omit `commitSha`. Every finding id MUST have exactly one response item (ids may look like `b0-f-1` when the review was batched).
30
+ Code-finding responses also carry `"commitSha":"..."` on every `fix`. Spec-finding responses omit `commitSha`. Before emitting the signal, compare the response IDs with the IDs in this prompt's findings: every current ID MUST appear exactly once, and no prior-round or invented ID may appear (ids may look like `b0-f-1` when the review was batched).
29
31
 
30
32
  Then emit your `signal:` (`code-fixed` or `spec-fixed`) with `token:`.
31
33
 
32
34
  ## Publish
33
35
 
34
36
  Publish the reviewed `branch:`:
35
- - `publish: pr` — `git push -u origin <branch>`, open a managed PR (`gh pr create`; ready for review, not Draft). Emit `code-ready` carrying the new PR number: `[bx:code-ready:<pr_number>:<token>]`.
37
+ - `publish: pr` — `git push -u origin <branch>`, then open a managed PR ready for review (not Draft). Split the authoritative `repo:` value at its first `/` into `<repo-host>` and `<repo-path>` (`<owner/repo>`); reject a malformed value. Prefix every `gh` command in this flow with `GH_HOST=<repo-host>` so inherited process state cannot select another instance. Strip a leading `Draft:`, `[Draft]`, `(Draft)`, or `WIP:` from `title:`. Stage the title and body in one shell invocation rooted at the descriptor Workdir: bind that Workdir as an absolute logical path; require `"$(cd -- "$workdir" 2>/dev/null && pwd -P)" = "$workdir"`; reject `.baxian` or `.baxian/tmp` when either exists as a symlink; create `.baxian/tmp`; re-check both ancestors as real directories and non-symlinks; generate unpredictable title/body names; require each target to be absent (`[ ! -e "$target" ] && [ ! -L "$target" ]`); write both files with quoted heredocs whose delimiters cannot occur as a line in their payloads; then require both targets to be regular files and non-symlinks. The body must end with `<!-- baxian:managed -->`. Never split the ancestor guards, creation, writes, and final checks across tool calls; if any step fails, stop without invoking `gh`. Create the PR non-interactively with `GH_HOST=<repo-host> gh pr create -R <repo:> --head <branch:> --base <base:> --title "$(cat <title-file>)" --body-file <body-file>`. Never put the title or body directly in the `gh` command. Never let `gh` infer repo, head, or base — inference reads the checkout's remotes and repository default, which can target the wrong fork or base. `repo:` is always present and authoritative; never substitute a local `git remote` lookup. If `base:` is absent, resolve it with `GH_HOST=<repo-host> gh api repos/<repo-path> --jq .default_branch`, then pass it explicitly. Before signalling, run `GH_HOST=<repo-host> gh pr view <pr_number> -R <repo:> --json isDraft --jq .isDraft`; if it returns `true`, run `GH_HOST=<repo-host> gh pr ready <pr_number> -R <repo:>`, then re-check once and require `false`. Do not emit `code-ready` if the ready operation or re-check fails or the PR remains a draft. Then emit `code-ready` carrying the new PR number: `[bx:code-ready:<pr_number>:<token>]`.
36
38
  - `publish: branch` — `git push -u origin <branch>`, then emit `code-ready` with `token:`.
37
39
 
38
40
  Signal wire format and emit rules: see the baxian-signals skill.
@@ -4,7 +4,7 @@ description: QA reviews injected server-review content (a code diff or a spec do
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- baxian dispatches you with a block of `key: value` dispatch fields. Code review normally arrives with `review-checkout: head`: your fixed `workdir:` is already detached at the reviewed head tree, verified by `head-tree`, so inspect files directly without changing directories or branches. The `diffstat:` / `diffstat-file:` and `diff:` / `diff-file:` payloads identify the changed surface and exact hunks; they are references, not a substitute for reading the local code. A draining legacy task may still arrive with `review-checkout: base`; new fixed-Workdir dispatches fail instead of reviewing an unverified checkout. Spec review still rides as `spec:` or `spec-file:`.
7
+ baxian dispatches you with a block of `key: value` dispatch fields. By default (no `review-checkout:` field) your fixed `workdir:` is already detached at the reviewed head tree — the server verified the checkout when materializing it — so inspect files directly without changing directories or branches. The `diffstat:` / `diffstat-file:` and `diff:` / `diff-file:` payloads identify the changed surface and exact hunks; they are references, not a substitute for reading the local code. A prompt that explicitly carries `review-checkout: base` is a draining legacy shape: the local tree holds the base (or an unknowable older state) — treat local files only as unchanged-content reference, and take every post-change content from the `diff` payloads and the read-file side-channel. Spec review still rides as `spec:` or `spec-file:`.
8
8
 
9
9
  Payloads may appear in trailing blocks — `diff:` / `diffstat:` / `spec:`, plus `interdiff:` / `prior-findings:` / `prior-response:` on a recheck — or, when large, as file reference fields: `diff-file:` / `diffstat-file:` / `interdiff-file:` / `spec-file:` / `prior-findings-file:` / `prior-response-file:`, each `<path> (<size>)` relative to your Workdir. Read a referenced file with your file tools; it carries the exact content the block otherwise would. If a referenced file cannot be read, state that in a finding and emit your signal as usual — never guess at missing content. Do NOT fetch branches or use `gh` — the checkout and payloads ARE the review input.
10
10
 
@@ -12,7 +12,7 @@ Payloads may appear in trailing blocks — `diff:` / `diffstat:` / `spec:`, plus
12
12
 
13
13
  ## Code Review
14
14
 
15
- Judge the reviewed checkout against the task spec: correctness, tests, edge cases, security, regressions. Use `diff:` / `diff-file:` and `diffstat:` / `diffstat-file:` to focus the review, then read the affected files directly when `review-checkout: head`.
15
+ Judge the reviewed checkout against the task spec: correctness, tests, edge cases, security, regressions. Use `diff:` / `diff-file:` and `diffstat:` / `diffstat-file:` to focus the review, then read the affected files directly in the default head checkout.
16
16
 
17
17
  - Severity: `critical` = broken/unsafe, `major` = must fix before merge, `minor` = improvement.
18
18
  - Reference file + line for every code finding.
@@ -14,8 +14,8 @@ baxian scans the pane fuzzily (strips ANSI escapes and whitespace), so a TUI sof
14
14
  ## Format
15
15
 
16
16
  - Two-segment: `[bx:KIND:TOKEN]` — for kinds with no payload.
17
- - Three-segment: `[bx:pr-created:<pr_number>:TOKEN]` — `pr-created` always carries the PR number; `code-ready` may carry it (publish-as-PR).
18
- - Actor form: `[bx:pr-created:<pr_number>:<base64url-actor-id>:TOKEN]` — the git-pr flow (descriptor carries `cli:`) inserts your base64url-encoded platform account id between the PR number and the token; your `baxian-cli-<tool>` skill §Create tells you how to compute it. Use the plain three-segment form only when no `cli:` field is present.
17
+ - Three-segment: `[bx:code-ready:<pr_number>:TOKEN]` — `code-ready` may carry the published PR number. The plain `[bx:pr-created:<pr_number>:TOKEN]` form is allowed only when the dispatch has no `cli:` field.
18
+ - Actor form: `[bx:pr-created:<pr_number>:<base64url-actor-id>:TOKEN]` — whenever `cli:` is present, `pr-created` MUST use this form with the platform account id computed by your `baxian-cli-<tool>` skill §Create; omitting the actor prevents feedback acknowledgements from being authorized.
19
19
 
20
20
  If your runtime's TUI renders assistant markdown and would turn a bare `[bx:...]` into a link — dropping the square brackets from what baxian captures — wrap the signal in inline-code backticks so the brackets survive to the pane: `` `[bx:KIND:TOKEN]` ``. Backticks are always safe to add, so when in doubt wrap every signal.
21
21
 
@@ -28,7 +28,7 @@ signal: pr-fixed
28
28
  token: a1b2c3d4e5f6
29
29
  ```
30
30
 
31
- 1. Build the wire form `[bx:KIND:TOKEN]` — KIND = the selected field's value, TOKEN = the `token:` value. A kind that carries a PR number (see Format) takes the number of the PR you just created (with `gh pr create`, or with your `baxian-cli-<tool>` skill's create command in the git-pr flow); the descriptor has no PR-number field.
31
+ 1. Build the wire form `[bx:KIND:TOKEN]` — KIND = the selected field's value, TOKEN = the `token:` value. A kind that carries a PR number (see Format) takes the number of the PR created or published by the current phase's instructions; the descriptor has no PR-number field.
32
32
  2. Emit the filled signal **alone on its own line**.
33
33
  3. **Never emit an angle-bracket placeholder** like `[bx:pr-fixed:<token>]` verbatim — the scanner's strict regex cannot match placeholders, so it fires nothing and the task hangs forever waiting on a signal.
34
34
  4. Emit **exactly once**, only when the route's precondition holds. The token rotates every dispatch, so a stale or guessed token never fires.
@@ -43,17 +43,15 @@ Bootstrap handshake (before any task):
43
43
  |---|---|
44
44
  | `greeting` | one-time capability check at agent startup; prove you can load this skill and signal back. baxian holds the agent until it sees a valid `greeting` echo |
45
45
 
46
- GitHub PR flow:
46
+ PR flow:
47
47
 
48
48
  | Signal | Meaning |
49
49
  |---|---|
50
50
  | `pr-created` (+PR#) | dev opened the PR; hand off to QA review |
51
- | `pr-approved` | QA approves — 422 fallback only; the native path is `gh pr review --approve` |
52
- | `pr-changes-requested` | QA requests changes — 422 fallback only |
53
51
  | `pr-fixed` | dev addressed all review feedback |
54
52
  | `pr-merge-ready` | post-approve feedback handled clean; safe to merge |
55
53
 
56
- In the git-pr flow (descriptor carries `cli:`) verdicts travel only as platform review comments carrying the paired verdict tokens — the `pr-approved` / `pr-changes-requested` pane signals belong to the legacy github-pr flow and are never emitted there.
54
+ QA verdicts are not signals: they travel only as platform review comments carrying the paired verdict tokens, per your `baxian-cli-<tool>` skill §Verdict.
57
55
 
58
56
  SDD spec flow:
59
57
 
@@ -72,6 +70,12 @@ Server review flow (no PR; exchange via `.baxian/review/*.json`):
72
70
  | `code-fixed` | dev handled every code finding |
73
71
  | `code-ready` (opt. PR#) | publish phase pushed the branch / opened the PR |
74
72
 
73
+ Root recovery runtime:
74
+
75
+ | Signal | Meaning |
76
+ |---|---|
77
+ | `root-done` | root agent atomically wrote the requested recovery response; the request prompt supplies the attempt token |
78
+
75
79
  ## Context-request side-channel
76
80
 
77
81
  During server review, request file context only when the prompt says `review-checkout: base`, or during server spec review / legacy batch continuation when the prompt context is insufficient:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: baxian-task-check
3
- description: Use when a baxian dispatch descriptor carries `phase: develop` or `phase: code` — the dev-side entry for analyzing and executing the task.
3
+ description: "Use when a baxian dispatch descriptor carries `phase: develop` or `phase: code` — the dev-side entry for analyzing and executing the task."
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -18,12 +18,11 @@ Installed skills and personal workflows apply as usual — baxian orchestrates t
18
18
 
19
19
  ## Conventions
20
20
 
21
- Stay in scope — out-of-scope work goes to a new GitHub Issue for `exchange: github-pr` (for `git-pr`: a new issue via your platform skill), or into your commit message for `server-files`. Deliver only through this dispatch's signal route, never a skill's own finishing flow, and never merge — baxian owns merging.
21
+ Stay in scope — out-of-scope work goes to a new issue via your platform skill for `exchange: git-pr`, or into your commit message for `server-files`. Deliver only through this dispatch's signal route, never a skill's own finishing flow, and never merge — baxian owns merging.
22
22
 
23
23
  Your `exchange:` field selects the cross-agent medium:
24
24
 
25
- - `github-pr`: communicate via the GitHub PR (description, commits, reviews, comments). Commit on the branch already checked out in `workdir:` — do NOT create or push a differently-named branch, or baxian can't match the PR to your task.
26
- - `git-pr`: the same PR-based flow, platform-neutral. Load the `baxian-cli-<tool>` skill named by your `cli:` field (`cli: gh` means `baxian-cli-gh`) and take every platform command from it. Commit on the branch already checked out in `workdir:` — the PR must come from exactly the `branch:` value.
25
+ - `git-pr`: communicate via the platform PR (description, commits, reviews, comments). Load the `baxian-cli-<tool>` skill named by your `cli:` field (`cli: gh` means `baxian-cli-gh`) and take every platform command from it. Commit on the branch already checked out in `workdir:` — the PR must come from exactly the `branch:` value, or baxian can't match it to your task.
27
26
  - `server-files`: baxian reads your Workdir directly; do NOT push or open a PR (the publish phase does that).
28
27
 
29
28
  ## Develop
@@ -50,6 +49,5 @@ The approved spec is at `.baxian/spec.md`. Implement it, then follow §Deliver.
50
49
 
51
50
  Emit your `signal:` with `token:` when your `exchange:`'s completion step is done:
52
51
 
53
- - `github-pr`: commit + push, `gh pr create` ready for review — do NOT use `--draft`; if the PR is draft after creation, run `gh pr ready` before signaling. Emit `pr-created`.
54
52
  - `git-pr`: commit, then create the PR per your `baxian-cli-<tool>` skill §Create — it owns push, non-interactive create with the source branch, repository, and target identity passed explicitly in that platform's own flags, Draft recovery, and the actor self-report segment. Emit `pr-created` in the actor-segment form that section specifies, only after its checks pass.
55
53
  - `server-files`: local commit only (do NOT push, no PR). Emit `code-done`.
@@ -168,8 +168,6 @@ function normalizeNeedInput(raw) {
168
168
  }
169
169
  if (typeof o.at === 'string')
170
170
  w.at = o.at;
171
- if (typeof o.cutoverToken === 'string')
172
- w.cutoverToken = o.cutoverToken;
173
171
  return w;
174
172
  }
175
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../../src/state/agent-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../../src/state/agent-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/state/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/state/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjE"}
@@ -6,6 +6,7 @@ export async function initStateDir(baseDir) {
6
6
  mkdir(join(baseDir, 'state', 'errors'), { recursive: true }),
7
7
  mkdir(join(baseDir, 'state', 'tasks'), { recursive: true }),
8
8
  mkdir(join(baseDir, 'state', 'post-approve'), { recursive: true }),
9
+ mkdir(join(baseDir, 'state', 'root-recovery'), { recursive: true }),
9
10
  mkdir(join(baseDir, 'events'), { recursive: true }),
10
11
  mkdir(join(baseDir, 'locks'), { recursive: true }),
11
12
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/state/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACnD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/state/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACnD,CAAC,CAAC;AACL,CAAC"}
@@ -20,6 +20,12 @@ export declare class LockManager {
20
20
  token: string;
21
21
  }): Promise<boolean>;
22
22
  isOwner(agentId: string, taskId: string, token: string): Promise<boolean>;
23
+ runIfOwner<T>(agentId: string, taskId: string, token: string, operation: () => Promise<T>): Promise<{
24
+ ran: true;
25
+ value: T;
26
+ } | {
27
+ ran: false;
28
+ }>;
23
29
  claimOf(agentId: string): Promise<AgentLockClaim | null>;
24
30
  isLocked(agentId: string): Promise<boolean>;
25
31
  ownerOf(agentId: string): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IAGV,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,KAAK,CAAuC;gBAEhC,GAAG,EAAE,MAAM;IAEzB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBhE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAehF,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,EAC/D,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,OAAO,CAAC;IAqBb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIxD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAmB/B,SAAS;YAIT,eAAe;IAsB7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IAGV,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,KAAK,CAAuC;gBAEhC,GAAG,EAAE,MAAM;IAEzB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBhE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAehF,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,EAC/D,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,OAAO,CAAC;IAqBb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE,UAAU,CAAC,CAAC,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,KAAK,CAAA;KAAE,CAAC;IAQ9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIxD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAmB/B,SAAS;YAIT,eAAe;IAsB7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,IAAI;CAGb"}
@@ -70,6 +70,14 @@ export class LockManager {
70
70
  const claim = await this.claimOf(agentId);
71
71
  return claim?.taskId === taskId && claim.token === token;
72
72
  }
73
+ async runIfOwner(agentId, taskId, token, operation) {
74
+ return this.runExclusive(agentId, async () => {
75
+ const claim = await this.readClaim(agentId);
76
+ if (!claim || claim.taskId !== taskId || claim.token !== token)
77
+ return { ran: false };
78
+ return { ran: true, value: await operation() };
79
+ });
80
+ }
73
81
  async claimOf(agentId) {
74
82
  return this.runExclusive(agentId, () => this.readClaim(agentId));
75
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,33 @@
1
- import { type ReviewPhase, type ReviewRound } from '../shared/index.js';
1
+ import { type ReviewPhase, type ReviewFindings, type ReviewRound, type ServerResponseFailure, type ServerSignalRecoveryReason } from '../shared/index.js';
2
+ export declare const SERVER_FEEDBACK_AUTO_CORRECTION_LIMIT = 3;
3
+ type ServerResponseFailureReason = Extract<ServerSignalRecoveryReason, 'response-missing' | 'response-invalid' | 'round-mismatch' | 'token-mismatch' | 'findings-digest-mismatch' | 'coverage-gap'>;
4
+ export interface ServerResponseFailureSignatureInput {
5
+ phase: ReviewPhase;
6
+ round: number;
7
+ findingsDigest: string;
8
+ reason: ServerResponseFailureReason;
9
+ missingFindingIds?: readonly string[];
10
+ unknownFindingIds?: readonly string[];
11
+ schemaViolationCodes?: readonly string[];
12
+ }
13
+ export type RecordServerResponseFailureInput = Omit<ServerResponseFailure, 'disposition'>;
14
+ export declare function sha256Hex(value: string): string;
15
+ export declare function reviewFindingsDigest(findings: ReviewFindings): string;
16
+ export declare function serverResponseFailureSignature(input: ServerResponseFailureSignatureInput): string;
2
17
  export declare class ReviewStore {
3
18
  private readonly dir?;
4
19
  private readonly memory;
20
+ private readonly roundLocks;
5
21
  constructor(dir?: string | undefined);
6
22
  getRound(taskId: string, phase: ReviewPhase, round: number): Promise<ReviewRound | null>;
7
23
  putRound(taskId: string, phase: ReviewPhase, data: ReviewRound): Promise<void>;
24
+ recordServerResponseFailure(taskId: string, phase: ReviewPhase, round: number, input: RecordServerResponseFailureInput): Promise<ServerResponseFailure>;
25
+ private writeRound;
26
+ private withRoundLock;
8
27
  listRounds(taskId: string, phase?: ReviewPhase): Promise<ReviewRound[]>;
9
28
  clear(taskId: string): Promise<void>;
10
29
  private key;
11
30
  private path;
12
31
  }
32
+ export {};
13
33
  //# sourceMappingURL=review-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-store.d.ts","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAoD5B,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE5B,GAAG,CAAC,EAAE,MAAM,YAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAexF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCvE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"review-store.d.ts","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAEhC,MAAM,oBAAoB,CAAC;AAa5B,eAAO,MAAM,qCAAqC,IAAI,CAAC;AAEvD,KAAK,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,EACjE,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,0BAA0B,GAC1B,cAAc,CAAC,CAAC;AAEpB,MAAM,WAAW,mCAAmC;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,2BAA2B,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AAE1F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAErE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,mCAAmC,GAAG,MAAM,CAWjG;AAqGD,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAHjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAElC,GAAG,CAAC,EAAE,MAAM,YAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAexF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9E,2BAA2B,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,qBAAqB,CAAC;YA6BnB,UAAU;YAcV,aAAa;IAqBrB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCvE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,IAAI;CAGb"}