wicked-crew 0.7.35 → 0.7.36

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 (117) hide show
  1. package/dist/api/chat-scope.d.ts +25 -1
  2. package/dist/api/chat-scope.d.ts.map +1 -1
  3. package/dist/api/chat-scope.js +59 -10
  4. package/dist/api/chat-scope.js.map +1 -1
  5. package/dist/api/delivery-cache.d.ts +23 -6
  6. package/dist/api/delivery-cache.d.ts.map +1 -1
  7. package/dist/api/delivery-cache.js +27 -17
  8. package/dist/api/delivery-cache.js.map +1 -1
  9. package/dist/api/delivery-index.d.ts +45 -3
  10. package/dist/api/delivery-index.d.ts.map +1 -1
  11. package/dist/api/delivery-index.js +79 -4
  12. package/dist/api/delivery-index.js.map +1 -1
  13. package/dist/api/retry-index.d.ts +14 -0
  14. package/dist/api/retry-index.d.ts.map +1 -1
  15. package/dist/api/retry-index.js +29 -0
  16. package/dist/api/retry-index.js.map +1 -1
  17. package/dist/api/roster-standing.d.ts +4 -4
  18. package/dist/api/roster-standing.d.ts.map +1 -1
  19. package/dist/api/roster-standing.js +24 -12
  20. package/dist/api/roster-standing.js.map +1 -1
  21. package/dist/api/routes.d.ts +138 -10
  22. package/dist/api/routes.d.ts.map +1 -1
  23. package/dist/api/routes.js +261 -39
  24. package/dist/api/routes.js.map +1 -1
  25. package/dist/api/run-timing-index.d.ts +22 -0
  26. package/dist/api/run-timing-index.d.ts.map +1 -1
  27. package/dist/api/run-timing-index.js +34 -0
  28. package/dist/api/run-timing-index.js.map +1 -1
  29. package/dist/api/seat-health.d.ts +2 -46
  30. package/dist/api/seat-health.d.ts.map +1 -1
  31. package/dist/api/seat-health.js +28 -111
  32. package/dist/api/seat-health.js.map +1 -1
  33. package/dist/api/seat-standing.d.ts +9 -8
  34. package/dist/api/seat-standing.d.ts.map +1 -1
  35. package/dist/api/seat-standing.js +22 -32
  36. package/dist/api/seat-standing.js.map +1 -1
  37. package/dist/api/server.d.ts.map +1 -1
  38. package/dist/api/server.js +96 -9
  39. package/dist/api/server.js.map +1 -1
  40. package/dist/api/skills.d.ts +2 -2
  41. package/dist/api/stall-frame-index.d.ts +68 -0
  42. package/dist/api/stall-frame-index.d.ts.map +1 -0
  43. package/dist/api/stall-frame-index.js +106 -0
  44. package/dist/api/stall-frame-index.js.map +1 -0
  45. package/dist/api/stall-watchdog.d.ts +22 -2
  46. package/dist/api/stall-watchdog.d.ts.map +1 -1
  47. package/dist/api/stall-watchdog.js +41 -11
  48. package/dist/api/stall-watchdog.js.map +1 -1
  49. package/dist/campaigns/plan.d.ts +12 -2
  50. package/dist/campaigns/plan.d.ts.map +1 -1
  51. package/dist/campaigns/plan.js +3 -0
  52. package/dist/campaigns/plan.js.map +1 -1
  53. package/dist/campaigns/rollup.d.ts +5 -0
  54. package/dist/campaigns/rollup.d.ts.map +1 -1
  55. package/dist/campaigns/rollup.js +3 -2
  56. package/dist/campaigns/rollup.js.map +1 -1
  57. package/dist/campaigns/routes.d.ts +5 -2
  58. package/dist/campaigns/routes.d.ts.map +1 -1
  59. package/dist/campaigns/routes.js +13 -3
  60. package/dist/campaigns/routes.js.map +1 -1
  61. package/dist/cli/index.js +73 -16
  62. package/dist/cli/index.js.map +1 -1
  63. package/dist/cli/port.d.ts +19 -0
  64. package/dist/cli/port.d.ts.map +1 -0
  65. package/dist/cli/port.js +39 -0
  66. package/dist/cli/port.js.map +1 -0
  67. package/dist/core/adapter.d.ts +56 -11
  68. package/dist/core/adapter.d.ts.map +1 -1
  69. package/dist/core/adapter.js +119 -31
  70. package/dist/core/adapter.js.map +1 -1
  71. package/dist/core/bridge-reaper.d.ts +57 -1
  72. package/dist/core/bridge-reaper.d.ts.map +1 -1
  73. package/dist/core/bridge-reaper.js +143 -21
  74. package/dist/core/bridge-reaper.js.map +1 -1
  75. package/dist/core/cursor.d.ts +7 -0
  76. package/dist/core/cursor.d.ts.map +1 -1
  77. package/dist/core/cursor.js +7 -1
  78. package/dist/core/cursor.js.map +1 -1
  79. package/dist/core/deliver-text.d.ts +35 -2
  80. package/dist/core/deliver-text.d.ts.map +1 -1
  81. package/dist/core/deliver-text.js +127 -17
  82. package/dist/core/deliver-text.js.map +1 -1
  83. package/dist/core/deliver-triage.d.ts.map +1 -1
  84. package/dist/core/deliver-triage.js +5 -2
  85. package/dist/core/deliver-triage.js.map +1 -1
  86. package/dist/core/deliver.d.ts +76 -2
  87. package/dist/core/deliver.d.ts.map +1 -1
  88. package/dist/core/deliver.js +209 -16
  89. package/dist/core/deliver.js.map +1 -1
  90. package/dist/core/engine-roster.d.ts +4 -3
  91. package/dist/core/engine-roster.d.ts.map +1 -1
  92. package/dist/core/engine-roster.js +10 -14
  93. package/dist/core/engine-roster.js.map +1 -1
  94. package/dist/core/types.d.ts +20 -0
  95. package/dist/core/types.d.ts.map +1 -1
  96. package/dist/core/types.js.map +1 -1
  97. package/dist/interactive/bridge-pool.d.ts +48 -5
  98. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  99. package/dist/interactive/bridge-pool.js +100 -8
  100. package/dist/interactive/bridge-pool.js.map +1 -1
  101. package/dist/projects/graph.d.ts +4 -0
  102. package/dist/projects/graph.d.ts.map +1 -1
  103. package/dist/projects/graph.js +4 -2
  104. package/dist/projects/graph.js.map +1 -1
  105. package/dist/projects/routes.d.ts +2 -2
  106. package/dist/qe/acceptance.d.ts.map +1 -1
  107. package/dist/qe/acceptance.js +7 -1
  108. package/dist/qe/acceptance.js.map +1 -1
  109. package/dist/skills/base-skill.d.ts +10 -0
  110. package/dist/skills/base-skill.d.ts.map +1 -1
  111. package/dist/skills/base-skill.js +16 -4
  112. package/dist/skills/base-skill.js.map +1 -1
  113. package/dist/studio/assets/{index-CJp35PKj.js → index-Dk98qXKv.js} +103 -102
  114. package/dist/studio/index.html +1 -1
  115. package/dist/studio/testid-inventory.json +29 -5
  116. package/endpoint-manifest.json +12 -0
  117. package/package.json +3 -3
@@ -21,7 +21,70 @@
21
21
  * the per-run output endpoint.
22
22
  */
23
23
  import { execCapped } from '../core/exec.js';
24
- import { DELIVER_LIFT_CONFLICT_MARKER } from '../core/deliver.js';
24
+ import { DELIVER_LIFT_CONFLICT_MARKER, DELIVER_PHASE_ID } from '../core/deliver.js';
25
+ import { resolveRunWorkflow } from '../qe/acceptance.js';
26
+ /**
27
+ * Does this workflow DEFINITION do code work — the ONE predicate crew already applies at launch
28
+ * (`routes.ts` `POST /runs`: `deliver` defaults to `'pr'` only for such a def): some phase declares
29
+ * `executes_code` and is not the evaluator's. Hoisted here (DES-L8 §5 PR-8A; adjudicated §4.8) so
30
+ * the launch-time default and the read-time classification below cannot drift —
31
+ * `tests/delivery-classification.test.ts` pins this function equal to the inline rule for every
32
+ * shipped def — by DRIVING `POST /runs` with no `deliver` and reading the `run.launched` audit
33
+ * `detail.deliver` the closure's own rule produced (never a copy of the predicate). The inline call
34
+ * in the `POST /runs` closure stays this train; its 3-line swap to this import is a follow-up in
35
+ * that closure's owner lane.
36
+ */
37
+ export function isCodeWorkDef(def) {
38
+ return def.phases.some((p) => p.executes_code === true && p.role !== 'evaluator');
39
+ }
40
+ /** The phase id a planned unit carries — the `<base>:<phase>` suffix (`qe/acceptance.ts`'s rule);
41
+ * `''` for a free-text unit (`u1`, `u2`, …) or a legacy id with no colon. */
42
+ export function phaseIdOf(unitId) {
43
+ const colonIdx = unitId.indexOf(':');
44
+ return colonIdx >= 0 ? unitId.slice(colonIdx + 1) : '';
45
+ }
46
+ /**
47
+ * Could THIS run ever have delivered (crew#481 / F-BM-006 list half; D-14 — a READ-TIME derivation,
48
+ * nothing persisted)? TRUE when a `deliver` unit was planned (the composed per-run phase or an
49
+ * operator overlay's own), when the def is unknown (`null` — a free-text `wf-…` run or a def the
50
+ * registry no longer holds: today's candidacy, never narrowed on a guess), or when the def does
51
+ * code work ({@link isCodeWorkDef}). FALSE only for a RESOLVED def with no deliver unit and no
52
+ * code-work phase — `onboarding`, `capture-learnings`, `domain-graph-slice`, `chat`, … — whose
53
+ * completed runs then read `delivery: 'none'` instead of the stranded/vacuous a live worktree used
54
+ * to earn them (the board's "nine runs need you" after onboarding). A code-work run launched with
55
+ * `deliver: 'none'` stays a candidate: its work is on `wicked/<id>`, liftable post hoc.
56
+ */
57
+ export function runCanDeliver(view, def) {
58
+ if ((view.units ?? []).some((u) => phaseIdOf(u.id) === DELIVER_PHASE_ID))
59
+ return true;
60
+ if (def === null)
61
+ return true;
62
+ return isCodeWorkDef(def);
63
+ }
64
+ /**
65
+ * The ONE def-awareness closure the daemon hands its delivery cache and its campaigns rollup —
66
+ * `runCanDeliver` over the run's def resolved through the registry (`resolveRunWorkflow`). Built
67
+ * for a READ path: a run record with no `workflow_id` (a fake adapter's minimal session, an older
68
+ * record), no `units`, or a registry that throws resolves NO def ⇒ `runCanDeliver(view, null)` ⇒
69
+ * today's candidacy — never a 500 on `GET /runs` (the auth-required suite's `{ id, status }`
70
+ * sessions are exactly this shape). Absence of an answer is today's label, not an error.
71
+ */
72
+ export function canDeliverResolver(listWorkflows, log) {
73
+ return (view) => {
74
+ let def = null;
75
+ try {
76
+ def =
77
+ typeof view.session?.workflow_id === 'string' ? resolveRunWorkflow(view, listWorkflows() ?? []) : null;
78
+ }
79
+ catch (err) {
80
+ // A registry that cannot answer is the ABSENCE of a def, not a verdict: the run keeps today's
81
+ // candidacy (never `none` on an error, never a 500) — and the defect is SAID, never swallowed.
82
+ log?.(`[runs] delivery classification: the workflow registry could not answer for ${view.session?.id ?? '?'} (reads as a candidate): ${err instanceof Error ? err.message : String(err)}`);
83
+ def = null;
84
+ }
85
+ return runCanDeliver(view, def);
86
+ };
87
+ }
25
88
  /**
26
89
  * The tri-state delivery derivation (crew#393) — HONEST by construction, computed at DTO
27
90
  * assembly from three facts and nothing else:
@@ -37,10 +100,18 @@ import { DELIVER_LIFT_CONFLICT_MARKER } from '../core/deliver.js';
37
100
  *
38
101
  * `worktreeExists` is injected (a `fs.existsSync` in production) so route tests can pin the
39
102
  * derivation without staging real directories.
103
+ *
104
+ * `canDeliver` (crew#481, D-14) is the def-awareness — {@link runCanDeliver}'s answer, resolved by
105
+ * the caller (the cache dep / the rollup dep) so this fn stays a pure derivation: `false` answers
106
+ * `'none'` for a completed run whose def could never have delivered, AFTER the url check (a recorded
107
+ * PR always wins, whatever the def) and BEFORE the worktree stat (nothing there is liftable work).
108
+ * Defaults to `true` = today's behaviour for every caller that has no def in hand.
40
109
  */
41
- export function deliveryStateOf(session, url, worktreeExists) {
110
+ export function deliveryStateOf(session, url, worktreeExists, canDeliver = true) {
42
111
  if (url !== undefined)
43
112
  return { delivery: 'delivered', deliverUrl: url };
113
+ if (!canDeliver)
114
+ return { delivery: 'none' };
44
115
  if (session.status === 'completed' &&
45
116
  session.repo_ref != null &&
46
117
  typeof session.workdir === 'string' &&
@@ -89,8 +160,12 @@ export class VacuityProbeUnavailable extends Error {
89
160
  * completed run's branch has made its work unreachable — it reads vacuous, which is what the
90
161
  * run now amounts to.)
91
162
  */
92
- export async function deliveryStateWithVacuity(session, url, probes) {
93
- const state = deliveryStateOf(session, url, probes.worktreeExists);
163
+ export async function deliveryStateWithVacuity(session, url, probes, canDeliver = true) {
164
+ const state = deliveryStateOf(session, url, probes.worktreeExists, canDeliver);
165
+ // A run that could never have delivered is 'none' by definition (crew#481): no probe can turn
166
+ // "nothing was ever liftable" into vacuous — and the git pair must not be spent finding out.
167
+ if (!canDeliver)
168
+ return state;
94
169
  if (state.delivery === 'stranded') {
95
170
  // `deliveryStateOf` only answers 'stranded' after proving workdir is a non-empty string.
96
171
  return (await probes.worktreeIsClean(session.workdir))
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-index.js","sourceRoot":"","sources":["../../src/api/delivery-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-index.js","sourceRoot":"","sources":["../../src/api/delivery-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AASzD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,GAAgB;IAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AACpF,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,GAAuB;IACtE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAAkC,EAClC,GAA2B;IAE3B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,GAAG,GAAuB,IAAI,CAAC;QACnC,IAAI,CAAC;YACH,GAAG;gBACD,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8FAA8F;YAC9F,+FAA+F;YAC/F,GAAG,EAAE,CACH,8EAA8E,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,GAAG,4BACnG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACF,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA8D,EAC9D,GAAuB,EACvB,cAAyC,EACzC,aAAsB,IAAI;IAE1B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACzE,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC7C,IACE,OAAO,CAAC,MAAM,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ,IAAI,IAAI;QACxB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,CAAC,OAAO,KAAK,EAAE;QACtB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/B,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAqBD;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,IAAY,EAAE,KAAc;QACtC,KAAK,CAAC,GAAG,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAqE,EACrE,GAAuB,EACvB,MAAqB,EACrB,aAAsB,IAAI;IAE1B,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC/E,8FAA8F;IAC9F,6FAA6F;IAC7F,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClC,yFAAyF;QACzF,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC;YAC9D,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE;YACzB,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IACD,IACE,KAAK,CAAC,QAAQ,KAAK,MAAM;QACzB,OAAO,CAAC,MAAM,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ,IAAI,IAAI;QACxB,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAC7D,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;gFAEgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;;6CAI6C;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAI1C;oFACoF;AACpF,SAAS,QAAQ,CACf,KAAkC,EAClC,KAAa,EACb,GAAiB;IAEjB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,OAAO,KAAK,EAAE,GAAW,EAAc,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACxF,IAAI,KAAK,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC,GAAG,CAAC;YAChC,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GACL,GAAG,YAAY,uBAAuB;gBACpC,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,qBAAqB,EACrC,MAAoB,IAAI,CAAC,GAAG;IAE5B,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QACrD,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAc,EAAoB,EAAE;YAC1D,IAAI,CAAC;gBACH,wFAAwF;gBACxF,4EAA4E;gBAC5E,oFAAoF;gBACpF,8EAA8E;gBAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;oBAC/C,GAAG,EAAE,IAAI;oBACT,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,IAAI;oBACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE;iBACjD,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,uBAAuB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,0BAA0B,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CACL,CAAC,MAAM,QAAQ,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;YAC3C,CAAC,MAAM,QAAQ,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,CAC5F,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,eAAiE,EACjE,QAAgB,qBAAqB,EACrC,MAAoB,IAAI,CAAC,GAAG;IAE5B,MAAM,KAAK,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;QACpD,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;QAC7D,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iFAAiF;YACjF,qCAAqC;YACrC,MAAM,IAAI,uBAAuB,CAAC,sCAAsC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,gDAAgD;QACtF,MAAM,MAAM,GAAG,qBAAqB,KAAK,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE;QAChC,0FAA0F;QAC1F,yFAAyF;QACzF,4EAA4E;QAC5E,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;YACtB,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE;SACjD,CAAC,CAAC;QACL,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qFAAqF;YACrF,iFAAiF;YACjF,qDAAqD;YACrD,IAAK,GAA0B,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxD,MAAM,IAAI,uBAAuB,CAAC,uCAAuC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;gBAC9B,KAAK;gBACL,WAAW;gBACX,MAAM;gBACN,OAAO;gBACP,oBAAoB;gBACpB,YAAY;aACb,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACxD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAiB;IACzD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACpE,2FAA2F;IAC3F,8CAA8C;IAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,OAAO,aAAa;IACP,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,KAAe,EAAE,GAA2B;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;gBACrE,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;oBAAE,SAAS;gBAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACpC,kFAAkF;gBAClF,qFAAqF;gBACrF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;oBAAE,SAAS;gBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,CACH,wFACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,GAAG,CAAC,KAAa,EAAE,GAAW;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -14,8 +14,17 @@
14
14
  */
15
15
  import type { AuditLog } from './audit.js';
16
16
  import type { AuditEntry } from '../core/types.js';
17
+ /** The pull request a run REVISES (DES-L9 / crew#550) — the durable record is the `run.launched`
18
+ * audit entry's `detail.revisesPr` (number, head branch, URL), written beside `retryOf`. */
19
+ export interface RevisesPrRecord {
20
+ number: number;
21
+ headRef: string;
22
+ url: string;
23
+ }
17
24
  export declare class RetryIndex {
18
25
  private readonly runToRetryOf;
26
+ /** DES-L9: run → the PR it revises, from the same `run.launched` entry (post-hoc re-push reads it). */
27
+ private readonly runToRevisesPr;
19
28
  /**
20
29
  * Consume pre-read `run.launched` entries — the seam that lets `createServer` feed this index
21
30
  * and `GroupIndex` from ONE trail scan (the delivery-index consolidation note, crew#321).
@@ -32,5 +41,10 @@ export declare class RetryIndex {
32
41
  set(runId: string, retryOf: string): void;
33
42
  /** The run id this run retries, or `undefined` (the DTO spells that as an ABSENT field). */
34
43
  retryOfFor(runId: string): string | undefined;
44
+ /** DES-L9: record the PR a run revises (the same post-commit point that writes the trail entry). */
45
+ setRevisesPr(runId: string, pr: RevisesPrRecord): void;
46
+ /** The PR this run revises, or `undefined` — a post-hoc `POST /runs/:id/deliver` on a stranded
47
+ * revision re-pushes to THAT branch (after re-checking the PR is still OPEN), never a new PR. */
48
+ revisesPrFor(runId: string): RevisesPrRecord | undefined;
35
49
  }
36
50
  //# sourceMappingURL=retry-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry-index.d.ts","sourceRoot":"","sources":["../../src/api/retry-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D;;;OAGG;IACH,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IASrD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,4FAA4F;IAC5F,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAG9C"}
1
+ {"version":3,"file":"retry-index.d.ts","sourceRoot":"","sources":["../../src/api/retry-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;6FAC6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAcD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,uGAAuG;IACvG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IAErE;;;OAGG;IACH,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAarD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1E,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,4FAA4F;IAC5F,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C,oGAAoG;IACpG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,GAAG,IAAI;IAItD;sGACkG;IAClG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;CAGzD"}
@@ -12,8 +12,24 @@
12
12
  * pre-CREW-UX-3 behavior, not an error) and updated at the same post-commit point that writes
13
13
  * the audit entry, so the map can only lag by a failed hydrate, never diverge silently.
14
14
  */
15
+ function revisesPrOf(detail) {
16
+ const v = detail?.['revisesPr'];
17
+ if (v === null || typeof v !== 'object')
18
+ return undefined;
19
+ const r = v;
20
+ const number = r['number'];
21
+ const headRef = r['headRef'];
22
+ const url = r['url'];
23
+ if (typeof number !== 'number' || !Number.isInteger(number) || number <= 0)
24
+ return undefined;
25
+ if (typeof headRef !== 'string' || headRef === '' || typeof url !== 'string')
26
+ return undefined;
27
+ return { number, headRef, url };
28
+ }
15
29
  export class RetryIndex {
16
30
  runToRetryOf = new Map();
31
+ /** DES-L9: run → the PR it revises, from the same `run.launched` entry (post-hoc re-push reads it). */
32
+ runToRevisesPr = new Map();
17
33
  /**
18
34
  * Consume pre-read `run.launched` entries — the seam that lets `createServer` feed this index
19
35
  * and `GroupIndex` from ONE trail scan (the delivery-index consolidation note, crew#321).
@@ -24,6 +40,10 @@ export class RetryIndex {
24
40
  if (typeof entry.runId === 'string' && typeof retryOf === 'string') {
25
41
  this.runToRetryOf.set(entry.runId, retryOf);
26
42
  }
43
+ const revises = revisesPrOf(entry.detail);
44
+ if (typeof entry.runId === 'string' && revises !== undefined) {
45
+ this.runToRevisesPr.set(entry.runId, revises);
46
+ }
27
47
  }
28
48
  }
29
49
  /**
@@ -48,5 +68,14 @@ export class RetryIndex {
48
68
  retryOfFor(runId) {
49
69
  return this.runToRetryOf.get(runId);
50
70
  }
71
+ /** DES-L9: record the PR a run revises (the same post-commit point that writes the trail entry). */
72
+ setRevisesPr(runId, pr) {
73
+ this.runToRevisesPr.set(runId, pr);
74
+ }
75
+ /** The PR this run revises, or `undefined` — a post-hoc `POST /runs/:id/deliver` on a stranded
76
+ * revision re-pushes to THAT branch (after re-checking the PR is still OPEN), never a new PR. */
77
+ revisesPrFor(runId) {
78
+ return this.runToRevisesPr.get(runId);
79
+ }
51
80
  }
52
81
  //# sourceMappingURL=retry-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry-index.js","sourceRoot":"","sources":["../../src/api/retry-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,OAAO,UAAU;IACJ,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1D;;;OAGG;IACH,wBAAwB,CAAC,OAAqB;QAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,KAAe,EAAE,GAA2B;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,CACH,qFACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,OAAe;QAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,4FAA4F;IAC5F,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"retry-index.js","sourceRoot":"","sources":["../../src/api/retry-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,SAAS,WAAW,CAAC,MAA2C;IAC9D,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7F,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC/F,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,UAAU;IACJ,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1D,uGAAuG;IACtF,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErE;;;OAGG;IACH,wBAAwB,CAAC,OAAqB;QAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,KAAe,EAAE,GAA2B;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,CACH,qFACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,OAAe;QAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,4FAA4F;IAC5F,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,oGAAoG;IACpG,YAAY,CAAC,KAAa,EAAE,EAAmB;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;sGACkG;IAClG,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The ONE roster accessor every launch path shares: the registry roster decorated with crew's
3
- * STANDING (F-2R2-009) — runtime `health`, `signed_in`, `auth`, `council_eligible` + its reason,
4
- * the council bench — so `engineRosterJson` (core/engine-roster.ts) can bench a seat the daemon
5
- * already knows is unusable before the engine convenes it.
3
+ * STANDING (F-2R2-009) — runtime `health`, `signed_in`, `auth`, `council_eligible` + its reason —
4
+ * so `engineRosterJson` (core/engine-roster.ts) can bench a seat the daemon already knows is
5
+ * unusable before the engine convenes it. (R5b: crew keeps no council bench of its own.)
6
6
  *
7
7
  * F-RECON-002 / F-RECON-003: this used to be a closure inside `registerRoutes`, so ONLY the routes
8
8
  * (`POST /runs`, `/testing/*`, campaigns, steering) launched with standing. The interactive seams
@@ -36,7 +36,7 @@ export interface RosterStandingDeps {
36
36
  * Build the accessor. Each seat's registry fields ride through verbatim — the spread is
37
37
  * deliberately NOT a field whitelist, which is what lets the engine's `login_invocation` pass
38
38
  * untouched — and gains `health`, `signed_in`, and the standing readings (`auth`, `free_tier*`,
39
- * `council_eligible`, `council_ineligible_reason`, `council_bench`, `auth_source/evidence`).
39
+ * `council_eligible`, `council_ineligible_reason`, `auth_source/evidence`).
40
40
  */
41
41
  export declare function rosterWithStandingFactory(deps: RosterStandingDeps): RosterWithStanding;
42
42
  //# sourceMappingURL=roster-standing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.d.ts","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,EAAE,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,UAAU,EAAE,iBAAiB,CAAC;IAC9B;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC1E;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CA8BtF"}
1
+ {"version":3,"file":"roster-standing.d.ts","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,EAAE,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,UAAU,EAAE,iBAAiB,CAAC;IAC9B;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC1E;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC;IAC3B,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAwCtF"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The ONE roster accessor every launch path shares: the registry roster decorated with crew's
3
- * STANDING (F-2R2-009) — runtime `health`, `signed_in`, `auth`, `council_eligible` + its reason,
4
- * the council bench — so `engineRosterJson` (core/engine-roster.ts) can bench a seat the daemon
5
- * already knows is unusable before the engine convenes it.
3
+ * STANDING (F-2R2-009) — runtime `health`, `signed_in`, `auth`, `council_eligible` + its reason —
4
+ * so `engineRosterJson` (core/engine-roster.ts) can bench a seat the daemon already knows is
5
+ * unusable before the engine convenes it. (R5b: crew keeps no council bench of its own.)
6
6
  *
7
7
  * F-RECON-002 / F-RECON-003: this used to be a closure inside `registerRoutes`, so ONLY the routes
8
8
  * (`POST /runs`, `/testing/*`, campaigns, steering) launched with standing. The interactive seams
@@ -18,12 +18,12 @@
18
18
  */
19
19
  import { CoreAdapter } from '../core/adapter.js';
20
20
  import { signedInHeuristic } from './seat-signin.js';
21
- import { seatStanding } from './seat-standing.js';
21
+ import { seatStanding, chatSeatAdmission } from './seat-standing.js';
22
22
  /**
23
23
  * Build the accessor. Each seat's registry fields ride through verbatim — the spread is
24
24
  * deliberately NOT a field whitelist, which is what lets the engine's `login_invocation` pass
25
25
  * untouched — and gains `health`, `signed_in`, and the standing readings (`auth`, `free_tier*`,
26
- * `council_eligible`, `council_ineligible_reason`, `council_bench`, `auth_source/evidence`).
26
+ * `council_eligible`, `council_ineligible_reason`, `auth_source/evidence`).
27
27
  */
28
28
  export function rosterWithStandingFactory(deps) {
29
29
  const { seatHealth } = deps;
@@ -36,17 +36,29 @@ export function rosterWithStandingFactory(deps) {
36
36
  const key = String(seat.key);
37
37
  const health = seatHealth.healthFor(key);
38
38
  const signed = signedIn(key, workerRoot === '' ? undefined : workerRoot);
39
+ // (R5b, DES-L3 PR-3D) No crew-side council bench any more: the engine's per-run ballot ledger
40
+ // (`session.benched_seats`) is the one bench, so there is no bench reading to pass and no
41
+ // health reading to weigh — the roster's standing is the auth picture alone.
42
+ const standing = seatStanding(seat, signed,
43
+ // F-A45-006: the seat's OWN "no credential" report (a ballot's "No API key found", a
44
+ // worker's 401, an auth ACP fallback) overrides the file probe — `auth` flips, not only
45
+ // `council_eligible`, and the evidence rides on the wire.
46
+ seatHealth.authFailureFor(key));
47
+ // F-W1-005 (wave-1 P6): the chat admission verdict the daemon itself applies when `POST /chats`
48
+ // picks its default seats — the SAME `chatSeatAdmission` call, for both scope modes — so the
49
+ // studio's picker offers exactly the seats an open would seat, from one source of truth (no
50
+ // client-side copy of the rule). Additive on the wire (`RosterSeat` index signature until
51
+ // api-types 0.39.0 types it).
52
+ const standingSeat = seat;
39
53
  return {
40
54
  ...seat,
41
55
  health,
42
56
  signed_in: signed,
43
- // The bench is THIS daemon's council evidence (councilSeatFailed, bounded window) — the
44
- // prediction learns from what the engine actually did with the seat (#533 review, F-1).
45
- ...seatStanding(seat, signed, health, seatHealth.councilBenchFor(key),
46
- // F-A45-006: the seat's OWN "no credential" report (a ballot's "No API key found", a
47
- // worker's 401, an auth ACP fallback) overrides the file probe — `auth` flips, not only
48
- // `council_eligible`, and the evidence rides on the wire.
49
- seatHealth.authFailureFor(key)),
57
+ ...standing,
58
+ chat_admission: {
59
+ unscoped: chatSeatAdmission(standingSeat, standing.auth, false),
60
+ scoped: chatSeatAdmission(standingSeat, standing.auth, true),
61
+ },
50
62
  };
51
63
  });
52
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkBlD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,OAAO,GAAiB,EAAE;QACxB,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC7C,OAAQ,QAAQ,EAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACzE,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM;gBACN,SAAS,EAAE,MAAM;gBACjB,wFAAwF;gBACxF,wFAAwF;gBACxF,GAAG,YAAY,CACb,IAA+F,EAC/F,MAAM,EACN,MAAM,EACN,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC;gBAC/B,qFAAqF;gBACrF,wFAAwF;gBACxF,0DAA0D;gBAC1D,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAC/B;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"roster-standing.js","sourceRoot":"","sources":["../../src/api/roster-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAkBxF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,OAAO,GAAiB,EAAE;QACxB,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC7C,OAAQ,QAAQ,EAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACzE,8FAA8F;YAC9F,0FAA0F;YAC1F,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,YAAY,CAC3B,IAA+F,EAC/F,MAAM;YACN,qFAAqF;YACrF,wFAAwF;YACxF,0DAA0D;YAC1D,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAC/B,CAAC;YACF,gGAAgG;YAChG,6FAA6F;YAC7F,4FAA4F;YAC5F,0FAA0F;YAC1F,8BAA8B;YAC9B,MAAM,YAAY,GAAG,IAA+B,CAAC;YACrD,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM;gBACN,SAAS,EAAE,MAAM;gBACjB,GAAG,QAAQ;gBACX,cAAc,EAAE;oBACd,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;oBAC/D,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;iBAC7D;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { FastifyInstance } from 'fastify';
2
+ import type { RecordedStallFrame } from './stall-frame-index.js';
2
3
  import { z } from 'zod';
3
4
  import { CoreAdapter } from '../core/adapter.js';
4
5
  import type { CodeGraphData, CoreEvent, RepoFinding } from '../core/types.js';
5
6
  import { type GateCache } from './gate-cache.js';
6
7
  import type { ElicitationCache } from './elicitation-cache.js';
7
8
  import { QeGateCache } from '../qe/gate-events.js';
8
- import type { ConformanceRule, SteeringType } from '../core/types.js';
9
+ import type { ConformanceRule, SessionView, SteeringType } from '../core/types.js';
9
10
  import { SeatHealthTracker } from './seat-health.js';
10
11
  import { type RosterWithStanding } from './roster-standing.js';
11
12
  import { ChatTurnIndex } from './chat-turns.js';
@@ -18,6 +19,7 @@ import { type SkillsRuntime } from '../skills/runtime.js';
18
19
  import { type StateHomeWatch } from '../projects/state-home-preflight.js';
19
20
  import type { EvalRunStore } from './eval-store.js';
20
21
  import { InteractiveBridgePool } from '../interactive/bridge-pool.js';
22
+ import { type PullRequestResolution } from '../core/deliver.js';
21
23
  import type { DocGroundingStore } from '../interactive/doc-grounding.js';
22
24
  import type { DocLedgerSweep } from '../interactive/doc-ledger-sweep.js';
23
25
  import { AuditLog } from './audit.js';
@@ -49,6 +51,16 @@ export interface RepoGraphReply {
49
51
  reason?: string;
50
52
  finding?: RepoFinding;
51
53
  }
54
+ /**
55
+ * The whole-graph counts from `wicked-estate stats --db` stdout (`nodes=N edges=M files=F …`, the
56
+ * first line estate prints — `main.rs`'s `stats` summary). `undefined` when the line does not parse
57
+ * (an older/newer estate, an error message): the caller leaves `CodeGraphData.totals` ABSENT.
58
+ */
59
+ export declare function parseEstateTotals(stdout: string): {
60
+ nodes: number;
61
+ edges: number;
62
+ files: number;
63
+ } | undefined;
52
64
  /**
53
65
  * Map an APPROVED policy proposal (estate `proposal.approve` → `handed_off`) into a steering
54
66
  * ConformanceRule (DES-MEM-FACETED-001 §5.2). A policy proposal's `kind_type` is
@@ -86,7 +98,7 @@ export declare function policyProposalToRule(proposalId: string, kindType: strin
86
98
  * schema does not accept — so `.strict()` is what turns that trip into a 400 instead of an
87
99
  * unworkflowed run reported as `201`.
88
100
  */
89
- export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
101
+ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
90
102
  problem: z.ZodString;
91
103
  sessionId: z.ZodOptional<z.ZodString>;
92
104
  clisJson: z.ZodOptional<z.ZodString>;
@@ -125,10 +137,78 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
125
137
  * sharing a label form one `RunGroup` on `GET /campaigns`. Persisted/echoed like
126
138
  * `campaignId` (as `AgentSession.group_label`). */
127
139
  groupLabel: z.ZodOptional<z.ZodString>;
140
+ /** DES-L9 / crew#550 (api-types 0.38.0) — REVISE an OPEN same-repository pull request: its head
141
+ * branch becomes the run's base and the deliver phase pushes the run's commits onto it (no
142
+ * second PR), commenting the run record. Needs `repoRef` + `workflow` and `deliver: "pr"`
143
+ * (explicit `"none"` is a 400; a daemon that resolves the omitted field to `none` is a 409).
144
+ * Resolved via `gh pr view` at launch — not OPEN / a fork / gh failure ⇒ 409, nothing launched.
145
+ * Send it only when `GET /health.capabilities.revisesPr === true` (engine ≥ 0.7.27). */
146
+ revisesPr: z.ZodOptional<z.ZodNumber>;
128
147
  }, "strict", z.ZodTypeAny, {
129
148
  problem: string;
130
149
  workflow?: string | undefined;
131
150
  deliver?: "pr" | "none" | undefined;
151
+ revisesPr?: number | undefined;
152
+ projectId?: string | undefined;
153
+ repoRef?: string | undefined;
154
+ campaignId?: string | undefined;
155
+ groupLabel?: string | undefined;
156
+ clisJson?: string | undefined;
157
+ sessionId?: string | undefined;
158
+ retryOf?: string | undefined;
159
+ entityMode?: "shared" | "isolated" | undefined;
160
+ humanConfirm?: string | undefined;
161
+ deliverGate?: "auto" | "human" | undefined;
162
+ }, {
163
+ problem: string;
164
+ workflow?: string | undefined;
165
+ deliver?: "pr" | "none" | undefined;
166
+ revisesPr?: number | undefined;
167
+ projectId?: string | undefined;
168
+ repoRef?: string | undefined;
169
+ campaignId?: string | undefined;
170
+ groupLabel?: string | undefined;
171
+ clisJson?: string | undefined;
172
+ sessionId?: string | undefined;
173
+ retryOf?: string | undefined;
174
+ entityMode?: "shared" | "isolated" | undefined;
175
+ humanConfirm?: string | undefined;
176
+ deliverGate?: "auto" | "human" | undefined;
177
+ }>, {
178
+ problem: string;
179
+ workflow?: string | undefined;
180
+ deliver?: "pr" | "none" | undefined;
181
+ revisesPr?: number | undefined;
182
+ projectId?: string | undefined;
183
+ repoRef?: string | undefined;
184
+ campaignId?: string | undefined;
185
+ groupLabel?: string | undefined;
186
+ clisJson?: string | undefined;
187
+ sessionId?: string | undefined;
188
+ retryOf?: string | undefined;
189
+ entityMode?: "shared" | "isolated" | undefined;
190
+ humanConfirm?: string | undefined;
191
+ deliverGate?: "auto" | "human" | undefined;
192
+ }, {
193
+ problem: string;
194
+ workflow?: string | undefined;
195
+ deliver?: "pr" | "none" | undefined;
196
+ revisesPr?: number | undefined;
197
+ projectId?: string | undefined;
198
+ repoRef?: string | undefined;
199
+ campaignId?: string | undefined;
200
+ groupLabel?: string | undefined;
201
+ clisJson?: string | undefined;
202
+ sessionId?: string | undefined;
203
+ retryOf?: string | undefined;
204
+ entityMode?: "shared" | "isolated" | undefined;
205
+ humanConfirm?: string | undefined;
206
+ deliverGate?: "auto" | "human" | undefined;
207
+ }>, {
208
+ problem: string;
209
+ workflow?: string | undefined;
210
+ deliver?: "pr" | "none" | undefined;
211
+ revisesPr?: number | undefined;
132
212
  projectId?: string | undefined;
133
213
  repoRef?: string | undefined;
134
214
  campaignId?: string | undefined;
@@ -143,6 +223,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
143
223
  problem: string;
144
224
  workflow?: string | undefined;
145
225
  deliver?: "pr" | "none" | undefined;
226
+ revisesPr?: number | undefined;
146
227
  projectId?: string | undefined;
147
228
  repoRef?: string | undefined;
148
229
  campaignId?: string | undefined;
@@ -157,6 +238,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
157
238
  problem: string;
158
239
  workflow?: string | undefined;
159
240
  deliver?: "pr" | "none" | undefined;
241
+ revisesPr?: number | undefined;
160
242
  projectId?: string | undefined;
161
243
  repoRef?: string | undefined;
162
244
  campaignId?: string | undefined;
@@ -171,6 +253,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
171
253
  problem: string;
172
254
  workflow?: string | undefined;
173
255
  deliver?: "pr" | "none" | undefined;
256
+ revisesPr?: number | undefined;
174
257
  projectId?: string | undefined;
175
258
  repoRef?: string | undefined;
176
259
  campaignId?: string | undefined;
@@ -185,6 +268,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
185
268
  problem: string;
186
269
  workflow?: string | undefined;
187
270
  deliver?: "pr" | "none" | undefined;
271
+ revisesPr?: number | undefined;
188
272
  projectId?: string | undefined;
189
273
  repoRef?: string | undefined;
190
274
  campaignId?: string | undefined;
@@ -199,6 +283,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
199
283
  problem: string;
200
284
  workflow?: string | undefined;
201
285
  deliver?: "pr" | "none" | undefined;
286
+ revisesPr?: number | undefined;
202
287
  projectId?: string | undefined;
203
288
  repoRef?: string | undefined;
204
289
  campaignId?: string | undefined;
@@ -213,6 +298,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
213
298
  problem: string;
214
299
  workflow?: string | undefined;
215
300
  deliver?: "pr" | "none" | undefined;
301
+ revisesPr?: number | undefined;
216
302
  projectId?: string | undefined;
217
303
  repoRef?: string | undefined;
218
304
  campaignId?: string | undefined;
@@ -227,6 +313,7 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
227
313
  problem: string;
228
314
  workflow?: string | undefined;
229
315
  deliver?: "pr" | "none" | undefined;
316
+ revisesPr?: number | undefined;
230
317
  projectId?: string | undefined;
231
318
  repoRef?: string | undefined;
232
319
  campaignId?: string | undefined;
@@ -238,15 +325,48 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodO
238
325
  humanConfirm?: string | undefined;
239
326
  deliverGate?: "auto" | "human" | undefined;
240
327
  }>;
241
- export declare const GateSchema: z.ZodObject<{
328
+ /** `POST /runs/:id/gate` (api-types 0.38.0 `GateDecision`; DES-L1 PR-2). Additive arms: `action`
329
+ * names the arm (`approve` | `request_changes` | `reject`; absent = today's two-arm mapping of
330
+ * `approve`), `amendScope` says where an approve's `amend` lands (`cursor` = the gated unit, today's
331
+ * behaviour | `creator` = the first creator phase at/after the cursor — an intake steer reaches the
332
+ * phase that implements). `request_changes` sends a NOT-PASS review back to the creator with the
333
+ * findings in context (`amend` = the operator's note). A disagreement between `action` and
334
+ * `approve` is a 400 that names both. */
335
+ export declare const GateSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
242
336
  approve: z.ZodBoolean;
243
337
  amend: z.ZodOptional<z.ZodString>;
338
+ action: z.ZodOptional<z.ZodEnum<["approve", "request_changes", "reject"]>>;
339
+ amendScope: z.ZodOptional<z.ZodEnum<["cursor", "creator"]>>;
244
340
  }, "strict", z.ZodTypeAny, {
245
341
  approve: boolean;
342
+ action?: "approve" | "request_changes" | "reject" | undefined;
343
+ amend?: string | undefined;
344
+ amendScope?: "creator" | "cursor" | undefined;
345
+ }, {
346
+ approve: boolean;
347
+ action?: "approve" | "request_changes" | "reject" | undefined;
348
+ amend?: string | undefined;
349
+ amendScope?: "creator" | "cursor" | undefined;
350
+ }>, {
351
+ approve: boolean;
352
+ action?: "approve" | "request_changes" | "reject" | undefined;
246
353
  amend?: string | undefined;
354
+ amendScope?: "creator" | "cursor" | undefined;
247
355
  }, {
248
356
  approve: boolean;
357
+ action?: "approve" | "request_changes" | "reject" | undefined;
358
+ amend?: string | undefined;
359
+ amendScope?: "creator" | "cursor" | undefined;
360
+ }>, {
361
+ approve: boolean;
362
+ action?: "approve" | "request_changes" | "reject" | undefined;
249
363
  amend?: string | undefined;
364
+ amendScope?: "creator" | "cursor" | undefined;
365
+ }, {
366
+ approve: boolean;
367
+ action?: "approve" | "request_changes" | "reject" | undefined;
368
+ amend?: string | undefined;
369
+ amendScope?: "creator" | "cursor" | undefined;
250
370
  }>;
251
371
  /** `PUT /runs/:id/guidance` (DES-UX-002 §7.2, CREW-UX-7) — the durable pre-gate note body.
252
372
  * The empty string is a legal body: it CLEARS the note. The byte cap is checked in the route
@@ -304,13 +424,15 @@ export interface SecurityDeps {
304
424
  audit: AuditLog;
305
425
  authMode: AuthMode;
306
426
  }
307
- /**
308
- * Daemon-runtime deps the routes read but `createServer` owns: the seat-health fold (crew#274,
309
- * fed by the daemon's single CoreEvent subscription) and the OS opener for `/open` (crew#273,
310
- * injectable so tests never actually open anything).
311
- */
312
427
  export interface RuntimeDeps {
428
+ /** DES-L9: how `revisesPr` is resolved to a PR head branch (`gh pr view`, 5 s). Injectable so
429
+ * route tests answer without gh; production uses `core/deliver.ts::resolvePullRequest`. */
430
+ resolvePullRequest?: (repoRoot: string, number: number) => Promise<PullRequestResolution>;
313
431
  seatHealth?: SeatHealthTracker;
432
+ /** wicked-studio#284: the stall watchdog's remembered frames for a run — merged into
433
+ * `GET /runs/:id/events` at serve time so a reloaded page sees the `workerStalled` /
434
+ * `workerStallEscalated` facts the live socket carried. Absent ⇒ engine events only. */
435
+ stallFrames?: (runId: string) => readonly RecordedStallFrame[];
314
436
  /** Run→retry-lineage index (CREW-UX-3) — `createServer` hydrates one from the audit trail so
315
437
  * a restarted daemon still echoes `retry_of`; a directly-driven route set gets a fresh one. */
316
438
  retryIndex?: RetryIndex;
@@ -359,6 +481,12 @@ export interface RuntimeDeps {
359
481
  * directly-driven route set gets a COLD, unstarted one over the same injectable probes:
360
482
  * reads then answer the stat-only tri-state until a test sweeps or warms it explicitly. */
361
483
  deliveryCache?: DeliveryDerivationCache;
484
+ /** Def-awareness for the delivery derivation (crew#481 / D-14) — `createServer` injects the
485
+ * `runCanDeliver(view, resolveRunWorkflow(view, adapter.listWorkflows()))` closure it also hands
486
+ * its cache, so the campaigns rollup and the run DTOs classify from ONE predicate. A
487
+ * directly-driven route set derives the same closure over the adapter's registry when it has
488
+ * one, else every completed repo-scoped run stays a candidate (today's read). */
489
+ canDeliver?: (view: SessionView) => boolean;
362
490
  /** The post-hoc deliver exec (crew#393, `POST /runs/:id/deliver`) — spawns the hardened
363
491
  * deliver script in a run's worktree. Injectable so route tests aim the spawn's HOME/PATH at
364
492
  * a fixture (stub `gh`, local bare origin); defaults to the real `bash -lc` spawn. */
@@ -454,15 +582,15 @@ export declare const ChatOpenSchema: z.ZodObject<{
454
582
  projectId: z.ZodOptional<z.ZodString>;
455
583
  }, "strict", z.ZodTypeAny, {
456
584
  projectId?: string | undefined;
585
+ repoRef?: string | undefined;
457
586
  chatId?: string | undefined;
458
587
  clis?: string[] | undefined;
459
- repoRef?: string | undefined;
460
588
  repoRefs?: string[] | undefined;
461
589
  }, {
462
590
  projectId?: string | undefined;
591
+ repoRef?: string | undefined;
463
592
  chatId?: string | undefined;
464
593
  clis?: string[] | undefined;
465
- repoRef?: string | undefined;
466
594
  repoRefs?: string[] | undefined;
467
595
  }>;
468
596
  export declare function registerRoutes(app: FastifyInstance, adapter: CoreAdapter, gateCache: GateCache, elicitationCache: ElicitationCache, qeGateEvents?: QeGateCache, projects?: ProjectRoutesDeps, security?: SecurityDeps, runtime?: RuntimeDeps): void;