wicked-crew 0.7.48 → 0.8.0

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 (146) hide show
  1. package/dist/api/discovery-source.d.ts +51 -0
  2. package/dist/api/discovery-source.d.ts.map +1 -0
  3. package/dist/api/discovery-source.js +176 -0
  4. package/dist/api/discovery-source.js.map +1 -0
  5. package/dist/api/governance-steering.d.ts +4 -5
  6. package/dist/api/governance-steering.d.ts.map +1 -1
  7. package/dist/api/governance-steering.js +11 -16
  8. package/dist/api/governance-steering.js.map +1 -1
  9. package/dist/api/recording.d.ts +23 -0
  10. package/dist/api/recording.d.ts.map +1 -1
  11. package/dist/api/recording.js +151 -4
  12. package/dist/api/recording.js.map +1 -1
  13. package/dist/api/routes.d.ts +4 -1
  14. package/dist/api/routes.d.ts.map +1 -1
  15. package/dist/api/routes.js +36 -4
  16. package/dist/api/routes.js.map +1 -1
  17. package/dist/api/run-files.d.ts +13 -1
  18. package/dist/api/run-files.d.ts.map +1 -1
  19. package/dist/api/run-files.js +30 -6
  20. package/dist/api/run-files.js.map +1 -1
  21. package/dist/api/seat-standing.d.ts +16 -0
  22. package/dist/api/seat-standing.d.ts.map +1 -1
  23. package/dist/api/seat-standing.js +54 -4
  24. package/dist/api/seat-standing.js.map +1 -1
  25. package/dist/api/server.d.ts +15 -0
  26. package/dist/api/server.d.ts.map +1 -1
  27. package/dist/api/server.js +67 -3
  28. package/dist/api/server.js.map +1 -1
  29. package/dist/api/steering-landing.d.ts +7 -7
  30. package/dist/api/steering-landing.js +7 -7
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +16 -1
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/core/adapter.d.ts +16 -1
  35. package/dist/core/adapter.d.ts.map +1 -1
  36. package/dist/core/adapter.js +48 -10
  37. package/dist/core/adapter.js.map +1 -1
  38. package/dist/core/types.d.ts +7 -0
  39. package/dist/core/types.d.ts.map +1 -1
  40. package/dist/core/types.js.map +1 -1
  41. package/dist/interactive/doc-checks-routes.d.ts +38 -0
  42. package/dist/interactive/doc-checks-routes.d.ts.map +1 -0
  43. package/dist/interactive/doc-checks-routes.js +122 -0
  44. package/dist/interactive/doc-checks-routes.js.map +1 -0
  45. package/dist/interactive/doc-delete-routes.d.ts +1 -1
  46. package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
  47. package/dist/interactive/doc-delete-routes.js +1 -1
  48. package/dist/interactive/doc-delete-routes.js.map +1 -1
  49. package/dist/interactive/doc-ledger-sweep.d.ts +3 -2
  50. package/dist/interactive/doc-ledger-sweep.d.ts.map +1 -1
  51. package/dist/interactive/doc-ledger-sweep.js +4 -3
  52. package/dist/interactive/doc-ledger-sweep.js.map +1 -1
  53. package/dist/interactive/doc-run-index.d.ts +10 -2
  54. package/dist/interactive/doc-run-index.d.ts.map +1 -1
  55. package/dist/interactive/doc-run-index.js +16 -3
  56. package/dist/interactive/doc-run-index.js.map +1 -1
  57. package/dist/interactive/ledger.d.ts +4 -1
  58. package/dist/interactive/ledger.d.ts.map +1 -1
  59. package/dist/interactive/ledger.js +5 -2
  60. package/dist/interactive/ledger.js.map +1 -1
  61. package/dist/interactive/review-events.d.ts +185 -0
  62. package/dist/interactive/review-events.d.ts.map +1 -0
  63. package/dist/interactive/review-events.js +856 -0
  64. package/dist/interactive/review-events.js.map +1 -0
  65. package/dist/interactive/review-ledger.d.ts +79 -0
  66. package/dist/interactive/review-ledger.d.ts.map +1 -0
  67. package/dist/interactive/review-ledger.js +131 -0
  68. package/dist/interactive/review-ledger.js.map +1 -0
  69. package/dist/interactive/ws-relay.d.ts +2 -1
  70. package/dist/interactive/ws-relay.d.ts.map +1 -1
  71. package/dist/interactive/ws-relay.js +2 -1
  72. package/dist/interactive/ws-relay.js.map +1 -1
  73. package/dist/projects/graph.d.ts.map +1 -1
  74. package/dist/projects/graph.js +10 -0
  75. package/dist/projects/graph.js.map +1 -1
  76. package/dist/projects/membership-index.d.ts +2 -0
  77. package/dist/projects/membership-index.d.ts.map +1 -1
  78. package/dist/projects/membership-index.js +8 -0
  79. package/dist/projects/membership-index.js.map +1 -1
  80. package/dist/qe/acceptance.d.ts +6 -1
  81. package/dist/qe/acceptance.d.ts.map +1 -1
  82. package/dist/qe/acceptance.js +11 -9
  83. package/dist/qe/acceptance.js.map +1 -1
  84. package/dist/qe/ledger.d.ts +35 -0
  85. package/dist/qe/ledger.d.ts.map +1 -1
  86. package/dist/qe/ledger.js +47 -0
  87. package/dist/qe/ledger.js.map +1 -1
  88. package/dist/qe/walkthrough-acceptance.d.ts +6 -0
  89. package/dist/qe/walkthrough-acceptance.d.ts.map +1 -1
  90. package/dist/qe/walkthrough-acceptance.js +12 -4
  91. package/dist/qe/walkthrough-acceptance.js.map +1 -1
  92. package/dist/studio/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
  93. package/dist/studio/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
  94. package/dist/studio/assets/index-BnJlrMxp.css +32 -0
  95. package/dist/studio/assets/index-DG0nwF7c.js +582 -0
  96. package/dist/studio/assets/inter-latin-ext-opsz-italic-BLMf5All.woff2 +0 -0
  97. package/dist/studio/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2 +0 -0
  98. package/dist/studio/assets/inter-latin-opsz-italic-BbqH_2Ar.woff2 +0 -0
  99. package/dist/studio/assets/inter-latin-opsz-normal-BwkfbSeq.woff2 +0 -0
  100. package/dist/studio/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
  101. package/dist/studio/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  102. package/dist/studio/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
  103. package/dist/studio/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  104. package/dist/studio/editors/wicked-page/editor.json +35 -0
  105. package/dist/studio/editors/wicked-page/index.html +144 -0
  106. package/dist/studio/fonts/LICENSE-Archivo.txt +93 -0
  107. package/dist/studio/fonts/LICENSE-Inter.txt +93 -0
  108. package/dist/studio/fonts/LICENSE-JetBrainsMono.txt +93 -0
  109. package/dist/studio/index.html +3 -8
  110. package/dist/studio/testid-inventory.json +5801 -2440
  111. package/dist/watch/bounded-read.d.ts +26 -0
  112. package/dist/watch/bounded-read.d.ts.map +1 -0
  113. package/dist/watch/bounded-read.js +59 -0
  114. package/dist/watch/bounded-read.js.map +1 -0
  115. package/dist/watch/checks/discovery.d.ts +65 -0
  116. package/dist/watch/checks/discovery.d.ts.map +1 -0
  117. package/dist/watch/checks/discovery.js +168 -0
  118. package/dist/watch/checks/discovery.js.map +1 -0
  119. package/dist/watch/checks/index.d.ts.map +1 -1
  120. package/dist/watch/checks/index.js +7 -0
  121. package/dist/watch/checks/index.js.map +1 -1
  122. package/dist/watch/checks/scope-drift.d.ts +47 -0
  123. package/dist/watch/checks/scope-drift.d.ts.map +1 -0
  124. package/dist/watch/checks/scope-drift.js +212 -0
  125. package/dist/watch/checks/scope-drift.js.map +1 -0
  126. package/dist/watch/emit.d.ts +19 -0
  127. package/dist/watch/emit.d.ts.map +1 -1
  128. package/dist/watch/emit.js +144 -18
  129. package/dist/watch/emit.js.map +1 -1
  130. package/dist/watch/registry.d.ts +20 -11
  131. package/dist/watch/registry.d.ts.map +1 -1
  132. package/dist/watch/registry.js +50 -42
  133. package/dist/watch/registry.js.map +1 -1
  134. package/dist/watch/sources.d.ts +2 -1
  135. package/dist/watch/sources.d.ts.map +1 -1
  136. package/dist/watch/sources.js +2 -1
  137. package/dist/watch/sources.js.map +1 -1
  138. package/dist/watch/types.d.ts +42 -0
  139. package/dist/watch/types.d.ts.map +1 -1
  140. package/endpoint-manifest.json +26 -1
  141. package/package.json +3 -3
  142. package/watch/entries/added-by-hand.json +16 -0
  143. package/watch/entries/scope-drift.json +13 -0
  144. package/watch/entries/what-catches.json +16 -0
  145. package/dist/studio/assets/index-CvV5qITf.css +0 -32
  146. package/dist/studio/assets/index-jCOy6Ns7.js +0 -568
@@ -66,6 +66,16 @@ export interface WorktreeDiff {
66
66
  * — the caller's 409 stands). Throws `UnresolvableDiffBaseError` when no base can be derived.
67
67
  */
68
68
  export declare function branchDiff(repoRoot: string, branch: string, base: string | null, relPath?: string): Promise<WorktreeDiff | null>;
69
+ /** How long the untracked-file pass may run before the answer is cut (`truncated: true`, crew#790). */
70
+ export declare const UNTRACKED_BUDGET_MS = 8000;
71
+ /**
72
+ * A git the DAEMON stopped before it answered — execFile's `timeout` fired and Node killed the child
73
+ * (`killed: true`). Not the caller's fault and not a broken repo, so the route answers 503
74
+ * `diff_busy` and a client retries instead of reading a bare 500 (crew#790). Only that: a git that
75
+ * died of its own signal (SIGSEGV, SIGABRT, a crashed diff driver) is a real fault and stays a 500
76
+ * — telling a client to retry a deterministic crash would hide it (codex on #795).
77
+ */
78
+ export declare function isGitStopped(err: unknown): boolean;
69
79
  /** `?base=merge-base` — the one non-ref literal: diff against `git merge-base <default-branch>
70
80
  * HEAD`, i.e. the run branch's fork point, so committed run work is visible (§8.1). */
71
81
  export declare const MERGE_BASE_LITERAL = "merge-base";
@@ -95,5 +105,7 @@ export declare function isPlainRef(base: string): boolean;
95
105
  * ref, resolved inside this repo first (`resolveDiffBase` — the raw parameter never reaches
96
106
  * `git diff`). Throws `InvalidDiffBaseError` / `UnresolvableDiffBaseError` for the route's 400s.
97
107
  */
98
- export declare function worktreeDiff(workdir: string, relPath?: string, base?: string): Promise<WorktreeDiff>;
108
+ export declare function worktreeDiff(workdir: string, relPath?: string, base?: string, opts?: {
109
+ budgetMs?: number;
110
+ }): Promise<WorktreeDiff>;
99
111
  //# sourceMappingURL=run-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-files.d.ts","sourceRoot":"","sources":["../../src/api/run-files.ts"],"names":[],"mappings":"AAeA;qGACqG;AACrG,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;iFACiF;AACjF,eAAO,MAAM,kBAAkB,QAAW,CAAC;AAE3C,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAEjD,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;uFACuF;AACvF,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,MAAM,GAAE,MAA6B;CAKxC;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2JAA2J;IAC3J,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgC1G;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gGAC4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+D9B;AAMD;wFACwF;AACxF,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C;mGACmG;AACnG,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAOlC;AAED;2FAC2F;AAC3F,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAIlD;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AA0FD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAyGvB"}
1
+ {"version":3,"file":"run-files.d.ts","sourceRoot":"","sources":["../../src/api/run-files.ts"],"names":[],"mappings":"AAeA;qGACqG;AACrG,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;iFACiF;AACjF,eAAO,MAAM,kBAAkB,QAAW,CAAC;AAE3C,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAEjD,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;uFACuF;AACvF,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,MAAM,GAAE,MAA6B;CAKxC;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2JAA2J;IAC3J,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgC1G;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gGAC4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+D9B;AAGD,uGAAuG;AACvG,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGlD;AAID;wFACwF;AACxF,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C;mGACmG;AACnG,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAOlC;AAED;2FAC2F;AAC3F,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAIlD;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AA0FD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,YAAY,CAAC,CAmHvB"}
@@ -151,6 +151,20 @@ export async function branchDiff(repoRoot, branch, base, relPath) {
151
151
  return { diff: stdout, truncated: false, source: 'branch', branch: branchLabel, base: shortBase };
152
152
  }
153
153
  const GIT_TIMEOUT_MS = 10_000;
154
+ /** How long the untracked-file pass may run before the answer is cut (`truncated: true`, crew#790). */
155
+ export const UNTRACKED_BUDGET_MS = 8_000;
156
+ /**
157
+ * A git the DAEMON stopped before it answered — execFile's `timeout` fired and Node killed the child
158
+ * (`killed: true`). Not the caller's fault and not a broken repo, so the route answers 503
159
+ * `diff_busy` and a client retries instead of reading a bare 500 (crew#790). Only that: a git that
160
+ * died of its own signal (SIGSEGV, SIGABRT, a crashed diff driver) is a real fault and stays a 500
161
+ * — telling a client to retry a deterministic crash would hide it (codex on #795).
162
+ */
163
+ export function isGitStopped(err) {
164
+ if (typeof err !== 'object' || err === null)
165
+ return false;
166
+ return err.killed === true;
167
+ }
154
168
  // ── Diff base (DES-UX-001 §8.1, CREW-UX-1) ─────────────────────────────────────────────────────
155
169
  /** `?base=merge-base` — the one non-ref literal: diff against `git merge-base <default-branch>
156
170
  * HEAD`, i.e. the run branch's fork point, so committed run work is visible (§8.1). */
@@ -191,7 +205,7 @@ export function isPlainRef(base) {
191
205
  * than masquerading as a 400 "unresolvable base" (Copilot, #307). */
192
206
  async function gitQuery(workdir, args) {
193
207
  try {
194
- const { stdout } = await execCapped('git', args, { timeout: GIT_TIMEOUT_MS, cwd: workdir });
208
+ const { stdout } = await execCapped('git', args, { timeout: GIT_TIMEOUT_MS, cwd: workdir, env: { ...process.env, GIT_OPTIONAL_LOCKS: '0' } });
195
209
  return stdout.trim();
196
210
  }
197
211
  catch (err) {
@@ -282,9 +296,13 @@ function isEmptyDiffAnswer(msg) {
282
296
  * ref, resolved inside this repo first (`resolveDiffBase` — the raw parameter never reaches
283
297
  * `git diff`). Throws `InvalidDiffBaseError` / `UnresolvableDiffBaseError` for the route's 400s.
284
298
  */
285
- export async function worktreeDiff(workdir, relPath, base) {
299
+ export async function worktreeDiff(workdir, relPath, base, opts = {}) {
300
+ const started = Date.now();
301
+ const budgetMs = opts.budgetMs ?? UNTRACKED_BUDGET_MS;
286
302
  const limit = relPath === undefined ? [] : ['--', relPath];
303
+ const env = { ...process.env, GIT_OPTIONAL_LOCKS: '0' };
287
304
  let out = '';
305
+ let outOfTime = false;
288
306
  // Resolve the baseline BEFORE any diff pass: a bad `base` must 400 without partial output.
289
307
  let baseRev = 'HEAD';
290
308
  if (base !== undefined && base.length > 0) {
@@ -306,7 +324,7 @@ export async function worktreeDiff(workdir, relPath, base) {
306
324
  // Tracked changes (staged + unstaged, plus committed-since-base when a base was resolved):
307
325
  // diff the worktree against the baseline.
308
326
  try {
309
- const { stdout } = await execCapped('git', ['diff', '--no-color', '--no-ext-diff', baseRev, ...limit], { timeout: GIT_TIMEOUT_MS, cwd: workdir });
327
+ const { stdout } = await execCapped('git', ['diff', '--no-color', '--no-ext-diff', baseRev, ...limit], { timeout: GIT_TIMEOUT_MS, cwd: workdir, env });
310
328
  out = stdout;
311
329
  }
312
330
  catch (err) {
@@ -321,7 +339,7 @@ export async function worktreeDiff(workdir, relPath, base) {
321
339
  }
322
340
  // Untracked files → all-addition hunks. `-z` (NUL separators, no quoting) + `-uall` (individual
323
341
  // files, never a collapsed `?? dir/` entry that --no-index could not diff).
324
- const { stdout: statusOut } = await execCapped('git', ['status', '--porcelain', '-z', '-uall', ...limit], { timeout: GIT_TIMEOUT_MS, cwd: workdir });
342
+ const { stdout: statusOut } = await execCapped('git', ['status', '--porcelain', '-z', '-uall', ...limit], { timeout: GIT_TIMEOUT_MS, cwd: workdir, env });
325
343
  const candidates = statusOut
326
344
  .split('\0')
327
345
  .filter((entry) => entry.startsWith('?? '))
@@ -358,8 +376,14 @@ export async function worktreeDiff(workdir, relPath, base) {
358
376
  // already done — spawning one more git only to discard its output is waste (Copilot, #305).
359
377
  if (Buffer.byteLength(out, 'utf8') >= DIFF_OUTPUT_CAP_BYTES)
360
378
  break;
379
+ // crew#790: one git per untracked file, and a busy host makes each one slow — an executing run's
380
+ // diff ran past every client timeout. Past the budget the answer stops and says it is cut.
381
+ if (Date.now() - started >= budgetMs) {
382
+ outOfTime = true;
383
+ break;
384
+ }
361
385
  try {
362
- const { stdout } = await execCapped('git', ['diff', '--no-color', '--no-ext-diff', '--no-index', '--', '/dev/null', file], { timeout: GIT_TIMEOUT_MS, cwd: workdir });
386
+ const { stdout } = await execCapped('git', ['diff', '--no-color', '--no-ext-diff', '--no-index', '--', '/dev/null', file], { timeout: GIT_TIMEOUT_MS, cwd: workdir, env });
363
387
  out += stdout;
364
388
  }
365
389
  catch (err) {
@@ -385,6 +409,6 @@ export async function worktreeDiff(workdir, relPath, base) {
385
409
  end--; // land on a sequence boundary
386
410
  return { diff: outBytes.subarray(0, end).toString('utf8'), truncated: true };
387
411
  }
388
- return { diff: out, truncated: false };
412
+ return { diff: out, truncated: outOfTime };
389
413
  }
390
414
  //# sourceMappingURL=run-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-files.js","sourceRoot":"","sources":["../../src/api/run-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-files.js","sourceRoot":"","sources":["../../src/api/run-files.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,20 @@
35
35
  */
36
36
  import type { SeatAuthFailure, SeatRecentBench } from './seat-health.js';
37
37
  import type { SeatProbeReading } from './seat-probe.js';
38
+ /**
39
+ * crew#771: a seat's own words, when they are one short plain line — what the plain sentence
40
+ * (`council_ineligible_reason`, a chat refusal) may quote. `null` for anything else: a JSON blob
41
+ * (claude's `auth status` prints its whole config, two home paths included), a path, several lines
42
+ * or a long text. Those stay in `auth_evidence`, the technical-details field.
43
+ */
44
+ export declare function plainEvidence(detail: string): string | null;
45
+ /**
46
+ * `auth_evidence` with the operator's home directory written `~` (crew#771: screen shares and
47
+ * recordings). Only the home as a whole path segment — `/home/al` never eats the start of
48
+ * `/home/alice` — and in every separator spelling: `/`, `\`, and the JSON-escaped `\\` a Windows
49
+ * home takes inside a CLI's JSON status (codex on #797). A root home (`/`) is left alone.
50
+ */
51
+ export declare function homeless(detail: string, home?: string): string;
38
52
  /** The seat's auth state, read for what it MEANS for the seat's usability. */
39
53
  export type SeatAuth = 'signed_in' | 'signed_out' | 'not_required' | 'unknown';
40
54
  /**
@@ -100,6 +114,8 @@ export interface SeatStanding {
100
114
  /** Present when `council_eligible` is false: the one reason, in the operator's words. */
101
115
  council_ineligible_reason?: string;
102
116
  }
117
+ /** The cause a "no credential" sentence names: `<source>: <its own words>` when they are plain, else the source alone (crew#771). */
118
+ export declare function noCredentialCause(failure: Pick<SeatAuthFailure, 'source' | 'detail'>): string;
103
119
  /** See {@link SeatStanding.login_check}. */
104
120
  export type LoginCheck = 'live' | 'status' | 'unverified';
105
121
  /** The probe input: its answer, `'pending'` for a probed seat whose check has not answered yet,
@@ -1 +1 @@
1
- {"version":3,"file":"seat-standing.d.ts","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seat-standing.d.ts","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,46 @@
33
33
  * runtime HEALTH record is not one any more (R5 / R5b, DES-L3 PR-3D) — `inactive` is never produced
34
34
  * and the one bench is the engine's per-run ballot ledger.
35
35
  */
36
+ import { homedir } from 'node:os';
37
+ /** The longest piece of a seat's own words that may ride in the plain sentence. */
38
+ const PLAIN_EVIDENCE_MAX = 120;
39
+ /**
40
+ * crew#771: a seat's own words, when they are one short plain line — what the plain sentence
41
+ * (`council_ineligible_reason`, a chat refusal) may quote. `null` for anything else: a JSON blob
42
+ * (claude's `auth status` prints its whole config, two home paths included), a path, several lines
43
+ * or a long text. Those stay in `auth_evidence`, the technical-details field.
44
+ */
45
+ export function plainEvidence(detail) {
46
+ const t = detail.trim();
47
+ if (t === '' || t.length > PLAIN_EVIDENCE_MAX || /[\r\n{}\[\]]/.test(t))
48
+ return null;
49
+ // Any separator at all: absolute, relative (`.wicked-worker/claude/…`), `~/`, a drive letter, a
50
+ // URL without a scheme (`example.com/<account>/…`) — none can be told apart from a harmless `a/b`
51
+ // cheaply and safely, so a slash or a backslash keeps the words out of the sentence (codex on #797).
52
+ if (/[\\/]/.test(t))
53
+ return null;
54
+ return t;
55
+ }
56
+ function escapeRegExp(s) {
57
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
58
+ }
59
+ /**
60
+ * `auth_evidence` with the operator's home directory written `~` (crew#771: screen shares and
61
+ * recordings). Only the home as a whole path segment — `/home/al` never eats the start of
62
+ * `/home/alice` — and in every separator spelling: `/`, `\`, and the JSON-escaped `\\` a Windows
63
+ * home takes inside a CLI's JSON status (codex on #797). A root home (`/`) is left alone.
64
+ */
65
+ export function homeless(detail, home = homedir()) {
66
+ const trimmed = home.replace(/[\\/]+$/, '');
67
+ if (trimmed === '')
68
+ return detail;
69
+ const back = trimmed.replace(/\//g, '\\');
70
+ const spellings = new Set([trimmed, trimmed.replace(/\\/g, '/'), back, back.replace(/\\/g, '\\\\')]);
71
+ let out = detail;
72
+ for (const h of [...spellings].sort((a, b) => b.length - a.length))
73
+ out = out.replace(new RegExp(`${escapeRegExp(h)}(?=$|[\\\\/\\s"'),;:])`, 'g'), '~');
74
+ return out;
75
+ }
36
76
  /**
37
77
  * Seats known to answer with NO credential at all — a free tier the CLI selects by itself when no
38
78
  * provider is configured. A CREW-SIDE HEURISTIC, keyed by roster `key` (independent review of #533,
@@ -67,6 +107,16 @@ export function seatAuth(seat, signedIn) {
67
107
  }
68
108
  return { auth: 'signed_out' };
69
109
  }
110
+ /** The cause a "no credential" sentence names: `<source>: <its own words>` when they are plain, else the source alone (crew#771). */
111
+ export function noCredentialCause(failure) {
112
+ const words = plainEvidence(failure.detail);
113
+ return words === null ? failure.source : `${failure.source}: ${words}`;
114
+ }
115
+ /** What a signed-out probe says, in the sentence: its own plain words, else "it is not logged in". */
116
+ function probeWords(evidence) {
117
+ const words = evidence === undefined ? null : plainEvidence(evidence);
118
+ return words === null ? 'it is not logged in' : `it cannot authenticate (${words})`;
119
+ }
70
120
  /** A seat whose `auth` lets it take a turn — the ONE predicate the roster and the chat share. */
71
121
  export function authUsable(auth) {
72
122
  return auth !== 'signed_out';
@@ -79,13 +129,13 @@ export function seatStanding(seat, signedIn, authFailure = null, probeInput = un
79
129
  // (a seat that answers on a free tier does not say "No API key") — and the evidence rides along.
80
130
  // crew#630: next, the seat's own auth-status command, when it answered; the file last.
81
131
  const read = authFailure !== null
82
- ? { auth: 'signed_out', auth_source: 'seat-stderr', auth_evidence: authFailure.detail }
132
+ ? { auth: 'signed_out', auth_source: 'seat-stderr', auth_evidence: homeless(authFailure.detail) }
83
133
  : probe !== undefined && probe.signedIn !== null
84
134
  ? {
85
135
  auth: probe.signedIn ? 'signed_in' : 'signed_out',
86
136
  auth_source: 'probe',
87
137
  probed_at: probe.probedAt,
88
- ...(probe.signedIn ? {} : { auth_evidence: probe.detail }),
138
+ ...(probe.signedIn ? {} : { auth_evidence: homeless(probe.detail) }),
89
139
  }
90
140
  : seatAuth(seat, signedIn);
91
141
  const auth = read.auth;
@@ -103,9 +153,9 @@ export function seatStanding(seat, signedIn, authFailure = null, probeInput = un
103
153
  ...base,
104
154
  council_eligible: false,
105
155
  council_ineligible_reason: authFailure !== null
106
- ? `signed out — the seat itself reported no credential (${authFailure.source}: ${authFailure.detail}); sign it in from the System page`
156
+ ? `signed out — the seat itself reported no credential (${noCredentialCause(authFailure)}); sign it in from the System page`
107
157
  : read.auth_source === 'probe'
108
- ? `signed out — the seat's own auth check says it cannot authenticate (${read.auth_evidence ?? 'not logged in'}); sign it in from the System page`
158
+ ? `signed out — the seat's own auth check says ${probeWords(read.auth_evidence)}; sign it in from the System page`
109
159
  : 'signed out — a council would bench this seat on its first ballot; sign it in from the System page',
110
160
  };
111
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seat-standing.js","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAQH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,8CAA8C;CACzD,CAAC,CAAC;AAKH,4GAA4G;AAC5G,MAAM,UAAU,QAAQ,CAAC,IAAkB,EAAE,QAAwB;IACnE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClD,8FAA8F;IAC9F,8FAA8F;IAC9F,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;YAClI,gBAAgB,EAAE,UAAU;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACtH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC;AAmDD,iGAAiG;AACjG,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,OAAO,IAAI,KAAK,YAAY,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAkB,EAClB,QAAwB,EACxB,cAAsC,IAAI,EAC1C,aAAyB,SAAS,EAClC,cAAsC,IAAI;IAE1C,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAChE,6FAA6F;IAC7F,kGAAkG;IAClG,iGAAiG;IACjG,iGAAiG;IACjG,uFAAuF;IACvF,MAAM,IAAI,GACR,WAAW,KAAK,IAAI;QAClB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,WAAW,EAAE,aAAsB,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE;QACzG,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAC9C,CAAC,CAAC;gBACE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,WAAqB,CAAC,CAAC,CAAE,YAAsB;gBACvE,WAAW,EAAE,OAAgB;gBAC7B,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAC3D;YACH,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAiB;QACzB,GAAG,IAAI;QACP,GAAG,KAAK;QACR,gBAAgB,EAAE,IAAI;KACvB,CAAC;IACF,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,WAAW,KAAK,IAAI;gBAClB,CAAC,CAAC,wDAAwD,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,oCAAoC;gBACvI,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO;oBAC5B,CAAC,CAAC,uEAAuE,IAAI,CAAC,aAAa,IAAI,eAAe,oCAAoC;oBAClJ,CAAC,CAAC,mGAAmG;SAC5G,CAAC;IACJ,CAAC;IACD,iGAAiG;IACjG,8FAA8F;IAC9F,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,6EAA6E;IAC7E,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,UAAU,KAAK,2BAA2B,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI;gBACnG,GAAG,WAAW,CAAC,MAAM,wBAAwB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,sCAAsC;SAC7G,CAAC;IACJ,CAAC;IACD,gGAAgG;IAChG,iGAAiG;IACjG,yFAAyF;IACzF,kGAAkG;IAClG,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,8HAA8H;SACjI,CAAC;IACJ,CAAC;IACD,8FAA8F;IAC9F,8FAA8F;IAC9F,iGAAiG;IACjG,gGAAgG;IAChG,6FAA6F;IAC7F,qBAAqB;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAkB,EAAE,IAAc,EAAE,MAAe;IACnF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAsB,OAAO,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAC9F,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,sFAAsF;QACtF,8FAA8F;QAC9F,6FAA6F;QAC7F,8EAA8E;QAC9E,OAAO,CAAC,IAAI,CACV,6FAA6F;YAC3F,8CAA8C,CACjD,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,IAAI,GAAG,CAAC,oBAAoB,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CACV,0FAA0F;YACxF,yFAAyF,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;AACjG,CAAC;AAED,iFAAiF;AACjF,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACjC,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,GAAW,EAAE,WAAmC,EAAE,KAAiB;IACrF,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,mEAAmE,EAAE,CAAC;IACxH,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,oCAAoC,GAAG,uIAAuI;SAC3L,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,gEAAgE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IACpI,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAC3D,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,8GAA8G,KAAK,CAAC,MAAM,GAAG;KAC1I,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"seat-standing.js","sourceRoot":"","sources":["../../src/api/seat-standing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,mFAAmF;AACnF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,kBAAkB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,gGAAgG;IAChG,kGAAkG;IAClG,qGAAqG;IACrG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,OAAe,OAAO,EAAE;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrG,IAAI,GAAG,GAAG,MAAM,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,wBAAwB,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACxJ,OAAO,GAAG,CAAC;AACb,CAAC;AAKD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,8CAA8C;CACzD,CAAC,CAAC;AAKH,4GAA4G;AAC5G,MAAM,UAAU,QAAQ,CAAC,IAAkB,EAAE,QAAwB;IACnE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClD,8FAA8F;IAC9F,8FAA8F;IAC9F,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;YAClI,gBAAgB,EAAE,UAAU;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACtH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC;AA4CD,qIAAqI;AACrI,MAAM,UAAU,iBAAiB,CAAC,OAAmD;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;AACzE,CAAC;AAED,sGAAsG;AACtG,SAAS,UAAU,CAAC,QAA4B;IAC9C,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,KAAK,GAAG,CAAC;AACtF,CAAC;AASD,iGAAiG;AACjG,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,OAAO,IAAI,KAAK,YAAY,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAkB,EAClB,QAAwB,EACxB,cAAsC,IAAI,EAC1C,aAAyB,SAAS,EAClC,cAAsC,IAAI;IAE1C,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAChE,6FAA6F;IAC7F,kGAAkG;IAClG,iGAAiG;IACjG,iGAAiG;IACjG,uFAAuF;IACvF,MAAM,IAAI,GACR,WAAW,KAAK,IAAI;QAClB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,WAAW,EAAE,aAAsB,EAAE,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACnH,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAC9C,CAAC,CAAC;gBACE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,WAAqB,CAAC,CAAC,CAAE,YAAsB;gBACvE,WAAW,EAAE,OAAgB;gBAC7B,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;aACrE;YACH,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAiB;QACzB,GAAG,IAAI;QACP,GAAG,KAAK;QACR,gBAAgB,EAAE,IAAI;KACvB,CAAC;IACF,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,WAAW,KAAK,IAAI;gBAClB,CAAC,CAAC,wDAAwD,iBAAiB,CAAC,WAAW,CAAC,oCAAoC;gBAC5H,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO;oBAC5B,CAAC,CAAC,+CAA+C,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,mCAAmC;oBAClH,CAAC,CAAC,mGAAmG;SAC5G,CAAC;IACJ,CAAC;IACD,iGAAiG;IACjG,8FAA8F;IAC9F,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,6EAA6E;IAC7E,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,UAAU,KAAK,2BAA2B,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI;gBACnG,GAAG,WAAW,CAAC,MAAM,wBAAwB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,sCAAsC;SAC7G,CAAC;IACJ,CAAC;IACD,gGAAgG;IAChG,iGAAiG;IACjG,yFAAyF;IACzF,kGAAkG;IAClG,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,EAAE,KAAK;YACvB,yBAAyB,EACvB,8HAA8H;SACjI,CAAC;IACJ,CAAC;IACD,8FAA8F;IAC9F,8FAA8F;IAC9F,iGAAiG;IACjG,gGAAgG;IAChG,6FAA6F;IAC7F,qBAAqB;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAkB,EAAE,IAAc,EAAE,MAAe;IACnF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAsB,OAAO,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAC9F,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,sFAAsF;QACtF,8FAA8F;QAC9F,6FAA6F;QAC7F,8EAA8E;QAC9E,OAAO,CAAC,IAAI,CACV,6FAA6F;YAC3F,8CAA8C,CACjD,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,IAAI,GAAG,CAAC,oBAAoB,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CACV,0FAA0F;YACxF,yFAAyF,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;AACjG,CAAC;AAED,iFAAiF;AACjF,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACjC,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,GAAW,EAAE,WAAmC,EAAE,KAAiB;IACrF,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,mEAAmE,EAAE,CAAC;IACxH,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,oCAAoC,GAAG,uIAAuI;SAC3L,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,gEAAgE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IACpI,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAC3D,OAAO;QACL,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,8GAA8G,KAAK,CAAC,MAAM,GAAG;KAC1I,CAAC;AACJ,CAAC"}
@@ -93,6 +93,21 @@ export interface CreateServerOptions {
93
93
  clisJson?: string;
94
94
  resolveDocsRoot?: (projectId: string | undefined) => string;
95
95
  };
96
+ /**
97
+ * Opt-in governed document reviews (DES-artifact-editor-plugins §7.6, EP-C2): a durable subscriber
98
+ * answers `wicked.interactive.review.requested` with one read-only `interactive-review` run (the
99
+ * four reviewers; the document's own authors are kept out of the roster and the judge choice),
100
+ * records one wicked-ledger verdict row per reviewer and announces `review.completed` from the
101
+ * record. Shares the edit seam's ledger and handoff root. When absent, a request goes unanswered.
102
+ */
103
+ interactiveReviewEvents?: {
104
+ enabled: boolean;
105
+ dbPath?: string;
106
+ pollIntervalMs?: number;
107
+ heartbeatMs?: number;
108
+ clisJson?: string;
109
+ resolveDocsRoot?: (projectId: string | undefined) => string;
110
+ };
96
111
  interactiveChatEvents?: {
97
112
  enabled: boolean;
98
113
  /** The bus db; omit for the one the adapter handed its engine (`busDbPath`, core/bus.ts). */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAe9B,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAQ7E,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AA4C7B,OAAO,EAC2B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA+B1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM/D,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBzE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,2CAA2C;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,+FAA+F;QAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gGAAgG;QAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;iEACyD;QACzD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC7D,CAAC;IACF;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,2CAA2C;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8FAA8F;QAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;0DACkD;QAClD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;iGACyF;QACzF,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC7D,CAAC;IACF;;;;;;;;;OASG;IACH;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC7D,CAAC;IACF;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC7D,CAAC;IACF,qBAAqB,CAAC,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,2CAA2C;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8FAA8F;QAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,wGAAwG;QACxG,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,wDAAwD;QACxD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mEAAmE;QACnE,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,4FAA4F;QAC5F,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC7D,CAAC;IACF;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,uEAAuE;QACvE,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE;QAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF;;;;OAIG;IACH;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,2CAA2C;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,2CAA2C;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;4FAEwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,0DAA0D;QAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wEAAwE;QACxE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mFAAmF;QACnF,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uEAAuE;QACvE,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;QACvC,uFAAuF;QACvF,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;sFAC8E;QAC9E,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KAC5E,CAAC;IACF;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,4CAA4C;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;QACnC,aAAa,CAAC,EAAE,eAAe,CAAC;KACjC,CAAC;IACF;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;CACH;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAkkDrC;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,SAAO,EACX,IAAI,SAAc,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAYxB"}
@@ -28,6 +28,8 @@ import { TerminalHub, registerTerminalWs } from '../events/terminals.js';
28
28
  import { INTERACTIVE_DRAFT_WORKFLOW_DEF, startInteractiveDraftSubscriber } from '../interactive/draft-events.js';
29
29
  import { INTERACTIVE_EDIT_WORKFLOW_DEF, startInteractiveEditSubscriber } from '../interactive/edit-events.js';
30
30
  import { putLearnedThemeViaBridge, startInteractiveThemeSubscriber } from '../interactive/theme-events.js';
31
+ import { authoringRunsFromLedgers, isAnotherProjectsReviewKey, readDocVersionViaBridge, startInteractiveReviewSubscriber } from '../interactive/review-events.js';
32
+ import { REVIEWS_DIRNAME, removeDocReviews } from '../interactive/review-ledger.js';
31
33
  import { InteractiveBridgePool, boundOrigin } from '../interactive/bridge-pool.js';
32
34
  import { INTERACTIVE_CHAT_WORKFLOW_DEF, startInteractiveChatSubscriber } from '../interactive/chat-events.js';
33
35
  import { PhaseSkillArming, RunSkillGapIndex } from '../skills/phase-skill-gaps.js';
@@ -68,6 +70,7 @@ import { StandingOrderStore } from '../standing-orders/store.js';
68
70
  import { StandingOrderEvaluator } from '../standing-orders/evaluator.js';
69
71
  import { registerStandingOrderRoutes } from '../standing-orders/routes.js';
70
72
  import { WatchRegistry } from '../watch/registry.js';
73
+ import { makeDiscoverySource } from './discovery-source.js';
71
74
  import { registerWatchRoutes } from './watch-routes.js';
72
75
  import { callEstateTool } from '../core/estate-mcp-client.js';
73
76
  import { seatParser } from '../standing-orders/parse.js';
@@ -470,6 +473,7 @@ export async function createServer(adapter, options) {
470
473
  let draftSub = null;
471
474
  let editSub = null;
472
475
  let themeSub = null;
476
+ let reviewSub = null;
473
477
  let chatSub = null;
474
478
  /** The crew-side half of deleting an interactive doc (crew#338): drop the doc's replay-dedup
475
479
  * rows from all four handoff ledgers — the draft leg keys by DOCUMENT ID ("one first draft
@@ -506,7 +510,24 @@ export async function createServer(adapter, options) {
506
510
  join(crewStateDir, 'interactive-chat-ledger.json'),
507
511
  },
508
512
  ];
509
- const dropDocLedgerRows = (documentId) => sweepDocLedgers(documentId, docLedgerSources());
513
+ /** Where the interactive-review seam records every document's reviews (EP-C2): under the edit
514
+ * seam's handoff root, so no new state-home entry exists. */
515
+ const docReviewsDir = () => reviewSub?.reviewsDir ?? join(options?.interactiveEditEvents?.editDir ?? join(crewStateDir, 'interactive-edits'), REVIEWS_DIRNAME);
516
+ const dropDocLedgerRows = (documentId, projectId) => {
517
+ // EP-C2: a review row names its project, so the same-named document of ANOTHER project keeps its rows.
518
+ const sweep = sweepDocLedgers(documentId, docLedgerSources(), (key) => isAnotherProjectsReviewKey(key, documentId, projectId));
519
+ // EP-C2: the document's recorded reviews go with it — a later document of the same name must
520
+ // not inherit them (the same ghost the ledger rows would be). Its own project's only: the
521
+ // review store is partitioned per project, like the docs roots.
522
+ try {
523
+ removeDocReviews(docReviewsDir(), documentId, projectId);
524
+ return sweep;
525
+ }
526
+ catch (err) {
527
+ const error = err instanceof Error ? err.message : String(err);
528
+ return { ...sweep, ok: false, errors: [...(sweep.errors ?? []), { ledger: 'reviews', error }] };
529
+ }
530
+ };
510
531
  // Wave 6 (F-4R2-006 root fix): the document ↔ run binding as a direct read off the SAME four
511
532
  // ledgers — `AgentSession.document_id` on the run DTO and `GET /runs?doc=`.
512
533
  const docRuns = new DocRunIndex(docLedgerSources, { log: (m) => app.log.warn(m) });
@@ -527,8 +548,8 @@ export async function createServer(adapter, options) {
527
548
  // crew#338 — a retirement that bypassed the governed DELETE route (direct bridge call,
528
549
  // another tool) still drops the doc's ledger rows. Idempotent, so overlapping with the
529
550
  // route's own synchronous sweep is harmless.
530
- onDocRetired: (documentId) => {
531
- const sweep = dropDocLedgerRows(documentId);
551
+ onDocRetired: (documentId, projectId) => {
552
+ const sweep = dropDocLedgerRows(documentId, projectId);
532
553
  if (sweep.removed_keys.length > 0) {
533
554
  app.log.info(`[interactive] doc.retired(${documentId}): dropped handoff-ledger row(s) ${sweep.removed_keys.join(', ')}`);
534
555
  }
@@ -587,6 +608,17 @@ export async function createServer(adapter, options) {
587
608
  // TR-W6 `warned_rule`: the fired rule ids are classified against the daemon's own steering
588
609
  // store (effect: warn), read on a cadence by the registry — never per frame.
589
610
  rules: () => adapter.listConformanceRules(),
611
+ // WT-W4 discovery: the project view the two discovery entries count over (the run's plan rows on
612
+ // the bus, the recorder's seal, the ledger's attributed test verdict), read per project on a
613
+ // cadence with a deadline — never per frame. Proposals go to the review queue below; nothing lands.
614
+ discovery: makeDiscoverySource({
615
+ dbPath: engineBusDb,
616
+ runsOf: (projectId) => membershipIndex.runsOf(projectId),
617
+ sessions: () => adapter.sessionsDetail(),
618
+ runEvents: (runId) => adapter.runEvents(runId),
619
+ workOutput: (unitId) => adapter.workOutput(unitId),
620
+ repos: () => adapter.listRepos(),
621
+ }),
590
622
  broadcast: (frame) => broadcast(frame),
591
623
  auditEmitFailed: (detail) => {
592
624
  audit.record('watch.emit.failed', { id: 'watch-registry', kind: 'system', trust: 'admin' }, { detail });
@@ -793,6 +825,36 @@ export async function createServer(adapter, options) {
793
825
  });
794
826
  }
795
827
  }
828
+ // EP-C2: document reviews. Shares the edit seam's ledger instance and handoff root; reads the
829
+ // version under review through the doc's bridge; keeps the document's authors (the creator seats
830
+ // of its draft, edit and chat runs) out of the review.
831
+ if (options?.interactiveReviewEvents?.enabled === true && !refuseStubSeam('interactive-review')) {
832
+ const o = options.interactiveReviewEvents;
833
+ const resolveDocsRoot = o.resolveDocsRoot ?? interactiveDocsRoot;
834
+ reviewSub = await startInteractiveReviewSubscriber(adapter, {
835
+ ...busOf(o.dbPath),
836
+ ...(o.pollIntervalMs !== undefined ? { pollIntervalMs: o.pollIntervalMs } : {}),
837
+ ...(o.heartbeatMs !== undefined ? { heartbeatMs: o.heartbeatMs } : {}),
838
+ ...(o.clisJson !== undefined ? { clisJson: o.clisJson } : {}),
839
+ ...(editSub !== null ? { ledger: editSub.ledger } : {}),
840
+ ...(options?.interactiveEditEvents?.ledgerPath !== undefined ? { ledgerPath: options.interactiveEditEvents.ledgerPath } : {}),
841
+ ...(options?.interactiveEditEvents?.editDir !== undefined ? { editDir: options.interactiveEditEvents.editDir } : {}),
842
+ roster: rosterWithStanding,
843
+ readDocVersion: readDocVersionViaBridge(interactiveBridges, resolveDocsRoot),
844
+ authoringRuns: (documentId, version) => authoringRunsFromLedgers(docLedgerSources(), documentId, version),
845
+ skillHeld,
846
+ onRunFiled: fileRun,
847
+ log: (m) => app.log.warn(m),
848
+ logError: (m) => app.log.error(m),
849
+ });
850
+ if (reviewSub !== null) {
851
+ const sub = reviewSub;
852
+ app.log.info('interactive-review subscription armed (filter wicked.interactive.review.requested)');
853
+ app.addHook('onClose', async () => {
854
+ await sub.stop();
855
+ });
856
+ }
857
+ }
796
858
  // Arm the opt-in interactive CHAT answering seam (CREW-UX-5 — the iteration ask). Same
797
859
  // posture again: failure to arm is LOUD but non-fatal. Armed AFTER the sibling seams so the
798
860
  // per-doc serialization contract (no draft/edit/chat run races another on one doc) can
@@ -1391,6 +1453,8 @@ export async function createServer(adapter, options) {
1391
1453
  interactiveBridgeBusDataDir: options?.interactiveBridge?.busDataDir ?? null,
1392
1454
  // EP-C4: the one pool, shared with the theme seam above.
1393
1455
  interactiveBridges,
1456
+ // EP-C2: where the checks read finds a document's recorded reviews.
1457
+ docReviewsDir,
1394
1458
  docGrounding,
1395
1459
  ...(skillsRuntime !== undefined ? { skills: skillsRuntime } : {}),
1396
1460
  // DES-MCP-TOOLS-001 S2: the registry over `<state home>/mcp` (created on the first save).