wicked-crew 0.7.38 → 0.7.40

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 (82) hide show
  1. package/dist/api/chat-scope.d.ts +37 -1
  2. package/dist/api/chat-scope.d.ts.map +1 -1
  3. package/dist/api/chat-scope.js +133 -9
  4. package/dist/api/chat-scope.js.map +1 -1
  5. package/dist/api/chat-transcripts.d.ts +45 -2
  6. package/dist/api/chat-transcripts.d.ts.map +1 -1
  7. package/dist/api/chat-transcripts.js +89 -5
  8. package/dist/api/chat-transcripts.js.map +1 -1
  9. package/dist/api/routes.d.ts +70 -10
  10. package/dist/api/routes.d.ts.map +1 -1
  11. package/dist/api/routes.js +206 -20
  12. package/dist/api/routes.js.map +1 -1
  13. package/dist/api/run-timing-index.d.ts +22 -0
  14. package/dist/api/run-timing-index.d.ts.map +1 -1
  15. package/dist/api/run-timing-index.js +63 -0
  16. package/dist/api/run-timing-index.js.map +1 -1
  17. package/dist/api/server.d.ts.map +1 -1
  18. package/dist/api/server.js +120 -17
  19. package/dist/api/server.js.map +1 -1
  20. package/dist/api/testing.d.ts +26 -0
  21. package/dist/api/testing.d.ts.map +1 -1
  22. package/dist/api/testing.js +48 -2
  23. package/dist/api/testing.js.map +1 -1
  24. package/dist/api/worktree-sweep.d.ts +12 -0
  25. package/dist/api/worktree-sweep.d.ts.map +1 -0
  26. package/dist/api/worktree-sweep.js +41 -0
  27. package/dist/api/worktree-sweep.js.map +1 -0
  28. package/dist/cli/bearer.d.ts +8 -0
  29. package/dist/cli/bearer.d.ts.map +1 -0
  30. package/dist/cli/bearer.js +16 -0
  31. package/dist/cli/bearer.js.map +1 -0
  32. package/dist/cli/index.d.ts +1 -1
  33. package/dist/cli/index.d.ts.map +1 -1
  34. package/dist/cli/index.js +21 -7
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/core/adapter.d.ts +11 -2
  37. package/dist/core/adapter.d.ts.map +1 -1
  38. package/dist/core/adapter.js +23 -4
  39. package/dist/core/adapter.js.map +1 -1
  40. package/dist/interactive/demo-events.d.ts +3 -0
  41. package/dist/interactive/demo-events.d.ts.map +1 -1
  42. package/dist/interactive/demo-events.js +14 -1
  43. package/dist/interactive/demo-events.js.map +1 -1
  44. package/dist/interactive/doc-grounding.d.ts +6 -0
  45. package/dist/interactive/doc-grounding.d.ts.map +1 -1
  46. package/dist/interactive/doc-grounding.js +4 -0
  47. package/dist/interactive/doc-grounding.js.map +1 -1
  48. package/dist/interactive/draft-events.d.ts +4 -0
  49. package/dist/interactive/draft-events.d.ts.map +1 -1
  50. package/dist/interactive/draft-events.js +12 -2
  51. package/dist/interactive/draft-events.js.map +1 -1
  52. package/dist/interactive/proxy-routes.d.ts +14 -0
  53. package/dist/interactive/proxy-routes.d.ts.map +1 -1
  54. package/dist/interactive/proxy-routes.js +98 -3
  55. package/dist/interactive/proxy-routes.js.map +1 -1
  56. package/dist/interactive/repo-snapshot.d.ts.map +1 -1
  57. package/dist/interactive/repo-snapshot.js +3 -2
  58. package/dist/interactive/repo-snapshot.js.map +1 -1
  59. package/dist/projects/graph.d.ts +11 -0
  60. package/dist/projects/graph.d.ts.map +1 -1
  61. package/dist/projects/graph.js +12 -0
  62. package/dist/projects/graph.js.map +1 -1
  63. package/dist/qe/author-workflow.d.ts +2 -0
  64. package/dist/qe/author-workflow.d.ts.map +1 -1
  65. package/dist/qe/author-workflow.js +55 -12
  66. package/dist/qe/author-workflow.js.map +1 -1
  67. package/dist/skills/phase-skill-gaps.d.ts +108 -0
  68. package/dist/skills/phase-skill-gaps.d.ts.map +1 -0
  69. package/dist/skills/phase-skill-gaps.js +199 -0
  70. package/dist/skills/phase-skill-gaps.js.map +1 -0
  71. package/dist/skills/runtime.d.ts +1 -1
  72. package/dist/skills/runtime.d.ts.map +1 -1
  73. package/dist/skills/runtime.js +2 -1
  74. package/dist/skills/runtime.js.map +1 -1
  75. package/dist/studio/assets/index-Bg7Z3BR-.css +32 -0
  76. package/dist/studio/assets/index-BvOFMjf9.js +554 -0
  77. package/dist/studio/index.html +2 -2
  78. package/dist/studio/testid-inventory.json +100 -10
  79. package/endpoint-manifest.json +1 -1
  80. package/package.json +3 -3
  81. package/dist/studio/assets/index-C12tVMLX.css +0 -32
  82. package/dist/studio/assets/index-DFkL6Rzf.js +0 -546
@@ -12,8 +12,9 @@
12
12
  * Retention = the chat's LIFETIME (D-13, as designed — no age sweep, no second mechanism):
13
13
  * - the file is DROPPED on the engine's `chatClosed` (requested, idle and pool_cap alike — the one
14
14
  * arm `server.ts` already folds for the scope index);
15
- * - the directory is CLEARED at daemon boot — no chat survives a restart (the engine's pool is in
16
- * memory), so every file present at boot is an orphan;
15
+ * - the directory is CLEARED at daemon boot (orphaned files), EXCEPT transcripts held for a
16
+ * promoted run that is still non-terminal — those are preserved so Continue-in-Build prefill
17
+ * remains reproducible across a daemon restart (crew#619);
17
18
  * - only frames a live turn STAMPED (`turn_id` present) are persisted, so a straggler `chatReply`
18
19
  * after the close cannot recreate a file, and `turnId` is never null on a record.
19
20
  *
@@ -25,12 +26,37 @@
25
26
  * Registered in `tests/fixtures/state-home-subtrees.json` as `chats` (crew half; the core half —
26
27
  * the worker Read fence — landed with core-ts 0.7.26), and named in `state-home-registry.ts`.
27
28
  */
28
- import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, rmSync } from 'node:fs';
29
- import { join } from 'node:path';
29
+ import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync } from 'node:fs';
30
+ import { join, sep } from 'node:path';
30
31
  import { crewStateHome } from '../projects/state-home.js';
31
32
  import { CHAT_ID } from './chat-scope.js';
32
33
  /** The state-home entry (`<state home>/chats/`) — the name the fixture registers. */
33
34
  export const CHAT_TRANSCRIPTS_DIRNAME = 'chats';
35
+ /**
36
+ * Rewrite absolute host paths in seat reply text to repo-relative form (crew#618).
37
+ *
38
+ * `/srv/repos/alpha/src/foo.ts` → `alpha/src/foo.ts` when `alpha`'s root is `/srv/repos/alpha`.
39
+ * Longest roots are matched first so a path under a more-specific root is never truncated by a
40
+ * parent root. Pure string substitution: no regex, no parsing — LLM-generated paths rarely use
41
+ * special characters in the path components themselves.
42
+ */
43
+ export function rewriteHostPaths(text, roots) {
44
+ if (roots.length === 0)
45
+ return text;
46
+ const sorted = [...roots].sort((a, b) => b.absRoot.length - a.absRoot.length);
47
+ let result = text;
48
+ for (const { absRoot, name } of sorted) {
49
+ const prefix = absRoot.endsWith(sep) || absRoot.endsWith('/') ? absRoot : `${absRoot}/`;
50
+ // Replace all occurrences of the absolute prefix with the repo-name prefix.
51
+ result = result.split(prefix).join(`${name}/`);
52
+ // Also handle the path spelling with the other separator (LLMs on Windows may use '/').
53
+ if (sep === '\\') {
54
+ const fwdPrefix = prefix.replace(/\\/g, '/');
55
+ result = result.split(fwdPrefix).join(`${name}/`);
56
+ }
57
+ }
58
+ return result;
59
+ }
34
60
  /** Where the transcripts live: under the daemon's state home, like every other crew store. */
35
61
  export function defaultChatTranscriptsDir() {
36
62
  return join(crewStateHome(), 'chats');
@@ -52,10 +78,21 @@ function usageOf(value) {
52
78
  export class ChatTranscriptStore {
53
79
  dir;
54
80
  now;
81
+ /** Per-chat roots registered at open time, used to rewrite absolute host paths (crew#618). */
82
+ chatRoots = new Map();
55
83
  constructor(opts = {}) {
56
84
  this.dir = opts.dir ?? defaultChatTranscriptsDir();
57
85
  this.now = opts.now ?? Date.now;
58
86
  }
87
+ /**
88
+ * Register the repo roots for a chat so that absolute host paths in seat replies are rewritten
89
+ * to repo-relative form before being stored (crew#618). Must be called at chat open time, after
90
+ * `ChatScopeIndex.set()` confirms the chat is live. Idempotent: a second call for the same
91
+ * `chatId` replaces the previous roots.
92
+ */
93
+ registerRoots(chatId, repos) {
94
+ this.chatRoots.set(chatId, repos);
95
+ }
59
96
  /** The directory this store writes under (diagnostics / tests). */
60
97
  get directory() {
61
98
  return this.dir;
@@ -87,6 +124,9 @@ export class ChatTranscriptStore {
87
124
  * Fold one STAMPED frame (call with `chatTurns.decorate(event)`'s result): a seat's `chatReply`
88
125
  * carrying `turn_id` becomes a `seat` record — ok or not (an eviction's `ok: false` text names the
89
126
  * budget). Every other frame, and a reply no live turn stamped, is ignored.
127
+ *
128
+ * Absolute host paths in the reply text are rewritten to repo-relative form (crew#618) using the
129
+ * roots registered for the chat via {@link registerRoots}.
90
130
  */
91
131
  observe(stamped) {
92
132
  if (stamped.type !== 'chatReply')
@@ -97,12 +137,15 @@ export class ChatTranscriptStore {
97
137
  const turnId = typeof frame['turn_id'] === 'string' ? frame['turn_id'] : undefined;
98
138
  if (chatId === undefined || cliKey === undefined || turnId === undefined)
99
139
  return;
140
+ const rawText = typeof frame['text'] === 'string' ? frame['text'] : '';
141
+ const roots = this.chatRoots.get(chatId);
142
+ const text = roots !== undefined && roots.length > 0 ? rewriteHostPaths(rawText, roots) : rawText;
100
143
  this.append(chatId, {
101
144
  at: this.now(),
102
145
  turnId,
103
146
  kind: 'seat',
104
147
  cliKey,
105
- text: typeof frame['text'] === 'string' ? frame['text'] : '',
148
+ text,
106
149
  ok: frame['ok'] === true,
107
150
  usage: usageOf(frame['usage']),
108
151
  });
@@ -125,12 +168,53 @@ export class ChatTranscriptStore {
125
168
  }
126
169
  return out;
127
170
  }
171
+ /**
172
+ * Rewrite absolute host paths in a `chatReply` frame's `text` field, returning a NEW event
173
+ * object when the text changed or the SAME object when not applicable (crew#618).
174
+ *
175
+ * Call BEFORE `observe` and `broadcast` so the live `/ws` frame already carries the
176
+ * repo-relative form that studio renders and promotes from (Acceptance 1).
177
+ */
178
+ rewriteEvent(event) {
179
+ if (event.type !== 'chatReply')
180
+ return event;
181
+ const frame = event;
182
+ const chatId = typeof frame['chat'] === 'string' ? frame['chat'] : undefined;
183
+ if (chatId === undefined)
184
+ return event;
185
+ const roots = this.chatRoots.get(chatId);
186
+ if (roots === undefined || roots.length === 0)
187
+ return event;
188
+ const rawText = typeof frame['text'] === 'string' ? frame['text'] : '';
189
+ const text = rewriteHostPaths(rawText, roots);
190
+ if (text === rawText)
191
+ return event;
192
+ return { ...frame, text };
193
+ }
128
194
  /** The chat is gone (`chatClosed`, any reason): its transcript goes with it. */
129
195
  drop(chatId) {
196
+ this.chatRoots.delete(chatId);
130
197
  const file = this.fileOf(chatId);
131
198
  if (file !== null)
132
199
  rmSync(file, { force: true });
133
200
  }
201
+ /**
202
+ * Daemon boot: remove every transcript NOT in `retainedChatIds` (crew#619 — promoted-run
203
+ * transcripts must survive a restart so Continue-in-Build prefill is reproducible). Pass an
204
+ * empty set to clear everything (equivalent to the old `clearAll`).
205
+ */
206
+ clearOrphaned(retainedChatIds) {
207
+ if (!existsSync(this.dir))
208
+ return;
209
+ for (const file of readdirSync(this.dir)) {
210
+ if (!file.endsWith('.jsonl'))
211
+ continue;
212
+ const chatId = file.slice(0, -6);
213
+ if (!retainedChatIds.has(chatId)) {
214
+ rmSync(join(this.dir, file), { force: true });
215
+ }
216
+ }
217
+ }
134
218
  /** Daemon boot: no chat survives a restart, so every file here is an orphan — remove them all. */
135
219
  clearAll() {
136
220
  rmSync(this.dir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"chat-transcripts.js","sourceRoot":"","sources":["../../src/api/chat-transcripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-transcripts.js","sourceRoot":"","sources":["../../src/api/chat-transcripts.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,10 @@ import type { ChatTranscriptStore } from './chat-transcripts.js';
14
14
  import { ChatScopeIndex } from './chat-scope.js';
15
15
  import { DocRunIndex } from '../interactive/doc-run-index.js';
16
16
  import { TestSetIndex } from '../qe/test-sets.js';
17
+ import { parseEstateTotals } from '../projects/graph.js';
17
18
  import { type ProjectRoutesDeps } from '../projects/routes.js';
18
19
  import { type SkillsRuntime } from '../skills/runtime.js';
20
+ import { type PhaseSkillArming, type RunSkillGapIndex } from '../skills/phase-skill-gaps.js';
19
21
  import { type StateHomeWatch } from '../projects/state-home-preflight.js';
20
22
  import type { EvalRunStore } from './eval-store.js';
21
23
  import { InteractiveBridgePool } from '../interactive/bridge-pool.js';
@@ -51,16 +53,7 @@ export interface RepoGraphReply {
51
53
  reason?: string;
52
54
  finding?: RepoFinding;
53
55
  }
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;
56
+ export { parseEstateTotals };
64
57
  /**
65
58
  * Map an APPROVED policy proposal (estate `proposal.approve` → `handed_off`) into a steering
66
59
  * ConformanceRule (DES-MEM-FACETED-001 §5.2). A policy proposal's `kind_type` is
@@ -144,6 +137,18 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
144
137
  * Resolved via `gh pr view` at launch — not OPEN / a fork / gh failure ⇒ 409, nothing launched.
145
138
  * Send it only when `GET /health.capabilities.revisesPr === true` (engine ≥ 0.7.27). */
146
139
  revisesPr: z.ZodOptional<z.ZodNumber>;
140
+ /** crew#619 — the chat this run was promoted from; the daemon retains that chat's transcript
141
+ * on disk until this run reaches a terminal state so the Continue-in-Build prefill is
142
+ * always reproducible. Optional; omit when the launch is not promoted from a chat. */
143
+ chatId: z.ZodOptional<z.ZodString>;
144
+ /** crew#632 — the surface that triggered this launch: `studio` (the web UI), `cli` (the
145
+ * wicked-crew CLI), or `api` (a programmatic caller). Persisted on the `run.launched` audit
146
+ * entry (`detail.channel`) and served on the run DTO; absent = origin unknown. */
147
+ channel: z.ZodOptional<z.ZodEnum<["studio", "cli", "api"]>>;
148
+ /** crew#632 — an opaque caller-supplied identifier for the user or system that triggered the
149
+ * launch (e.g. a CI job name or a studio tab id). Persisted on the `run.launched` audit entry
150
+ * (`detail.actor`) and served on the run DTO; absent = caller omitted it. */
151
+ actor: z.ZodOptional<z.ZodString>;
147
152
  }, "strict", z.ZodTypeAny, {
148
153
  problem: string;
149
154
  workflow?: string | undefined;
@@ -151,6 +156,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
151
156
  revisesPr?: number | undefined;
152
157
  projectId?: string | undefined;
153
158
  repoRef?: string | undefined;
159
+ actor?: string | undefined;
160
+ chatId?: string | undefined;
161
+ channel?: "cli" | "studio" | "api" | undefined;
154
162
  campaignId?: string | undefined;
155
163
  groupLabel?: string | undefined;
156
164
  clisJson?: string | undefined;
@@ -166,6 +174,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
166
174
  revisesPr?: number | undefined;
167
175
  projectId?: string | undefined;
168
176
  repoRef?: string | undefined;
177
+ actor?: string | undefined;
178
+ chatId?: string | undefined;
179
+ channel?: "cli" | "studio" | "api" | undefined;
169
180
  campaignId?: string | undefined;
170
181
  groupLabel?: string | undefined;
171
182
  clisJson?: string | undefined;
@@ -181,6 +192,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
181
192
  revisesPr?: number | undefined;
182
193
  projectId?: string | undefined;
183
194
  repoRef?: string | undefined;
195
+ actor?: string | undefined;
196
+ chatId?: string | undefined;
197
+ channel?: "cli" | "studio" | "api" | undefined;
184
198
  campaignId?: string | undefined;
185
199
  groupLabel?: string | undefined;
186
200
  clisJson?: string | undefined;
@@ -196,6 +210,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
196
210
  revisesPr?: number | undefined;
197
211
  projectId?: string | undefined;
198
212
  repoRef?: string | undefined;
213
+ actor?: string | undefined;
214
+ chatId?: string | undefined;
215
+ channel?: "cli" | "studio" | "api" | undefined;
199
216
  campaignId?: string | undefined;
200
217
  groupLabel?: string | undefined;
201
218
  clisJson?: string | undefined;
@@ -211,6 +228,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
211
228
  revisesPr?: number | undefined;
212
229
  projectId?: string | undefined;
213
230
  repoRef?: string | undefined;
231
+ actor?: string | undefined;
232
+ chatId?: string | undefined;
233
+ channel?: "cli" | "studio" | "api" | undefined;
214
234
  campaignId?: string | undefined;
215
235
  groupLabel?: string | undefined;
216
236
  clisJson?: string | undefined;
@@ -226,6 +246,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
226
246
  revisesPr?: number | undefined;
227
247
  projectId?: string | undefined;
228
248
  repoRef?: string | undefined;
249
+ actor?: string | undefined;
250
+ chatId?: string | undefined;
251
+ channel?: "cli" | "studio" | "api" | undefined;
229
252
  campaignId?: string | undefined;
230
253
  groupLabel?: string | undefined;
231
254
  clisJson?: string | undefined;
@@ -241,6 +264,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
241
264
  revisesPr?: number | undefined;
242
265
  projectId?: string | undefined;
243
266
  repoRef?: string | undefined;
267
+ actor?: string | undefined;
268
+ chatId?: string | undefined;
269
+ channel?: "cli" | "studio" | "api" | undefined;
244
270
  campaignId?: string | undefined;
245
271
  groupLabel?: string | undefined;
246
272
  clisJson?: string | undefined;
@@ -256,6 +282,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
256
282
  revisesPr?: number | undefined;
257
283
  projectId?: string | undefined;
258
284
  repoRef?: string | undefined;
285
+ actor?: string | undefined;
286
+ chatId?: string | undefined;
287
+ channel?: "cli" | "studio" | "api" | undefined;
259
288
  campaignId?: string | undefined;
260
289
  groupLabel?: string | undefined;
261
290
  clisJson?: string | undefined;
@@ -271,6 +300,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
271
300
  revisesPr?: number | undefined;
272
301
  projectId?: string | undefined;
273
302
  repoRef?: string | undefined;
303
+ actor?: string | undefined;
304
+ chatId?: string | undefined;
305
+ channel?: "cli" | "studio" | "api" | undefined;
274
306
  campaignId?: string | undefined;
275
307
  groupLabel?: string | undefined;
276
308
  clisJson?: string | undefined;
@@ -286,6 +318,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
286
318
  revisesPr?: number | undefined;
287
319
  projectId?: string | undefined;
288
320
  repoRef?: string | undefined;
321
+ actor?: string | undefined;
322
+ chatId?: string | undefined;
323
+ channel?: "cli" | "studio" | "api" | undefined;
289
324
  campaignId?: string | undefined;
290
325
  groupLabel?: string | undefined;
291
326
  clisJson?: string | undefined;
@@ -301,6 +336,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
301
336
  revisesPr?: number | undefined;
302
337
  projectId?: string | undefined;
303
338
  repoRef?: string | undefined;
339
+ actor?: string | undefined;
340
+ chatId?: string | undefined;
341
+ channel?: "cli" | "studio" | "api" | undefined;
304
342
  campaignId?: string | undefined;
305
343
  groupLabel?: string | undefined;
306
344
  clisJson?: string | undefined;
@@ -316,6 +354,9 @@ export declare const LaunchSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodE
316
354
  revisesPr?: number | undefined;
317
355
  projectId?: string | undefined;
318
356
  repoRef?: string | undefined;
357
+ actor?: string | undefined;
358
+ chatId?: string | undefined;
359
+ channel?: "cli" | "studio" | "api" | undefined;
319
360
  campaignId?: string | undefined;
320
361
  groupLabel?: string | undefined;
321
362
  clisJson?: string | undefined;
@@ -547,6 +588,13 @@ export interface RuntimeDeps {
547
588
  * (seeded from the installed plugin, published); a directly-driven route set gets none and
548
589
  * `/skills*` answers 503 unless a test injects one over a fixture root. */
549
590
  skills?: SkillsRuntime;
591
+ /** crew#661 — each drafting seam's ARM-TIME skill outcome: the subsystems whose phases run without
592
+ * a declared skill (`/diagnostics.skills.phaseSkillGaps` + `skills.phase-skill` findings, and
593
+ * `/health.warnings`). Absent = nothing armed here (a directly-driven route set): no gaps. */
594
+ phaseSkills?: PhaseSkillArming;
595
+ /** crew#661 — the runs launched with such a gap (`AgentSession.skill_gaps`), hydrated from the
596
+ * trail. Absent = no run carries the field. */
597
+ runSkillGaps?: RunSkillGapIndex;
550
598
  /** The live state-home classification (wicked-core#411 / crew#497) — `createServer` surveys the
551
599
  * daemon state home at boot and hands the watch here; the routes re-survey on demand, report it
552
600
  * on `/diagnostics.stateHome` + `/health.warnings`, and answer `POST /runs` 409 while a handed
@@ -561,6 +609,13 @@ export interface RuntimeDeps {
561
609
  * registers into it at each `qe-author-tests` run's terminal frame; a directly-driven route set
562
610
  * gets a fresh, empty one. */
563
611
  testSets?: TestSetIndex;
612
+ /** crew#619 — called when a run is launched with a `chatId`, to retain that chat's transcript
613
+ * until the run terminates. Absent in directly-driven route sets (tests). */
614
+ linkChatRun?: (chatId: string, runId: string) => void;
615
+ /** crew#642 — entity-count probe for the chat scope's `ownGraph` liveness check. Injectable so
616
+ * route tests never shell `wicked-estate` against mkdtemp fixtures. Absent = the dep carries
617
+ * its own default (shells `estate stats --db`). */
618
+ entityCount?: (dbPath: string) => Promise<number>;
564
619
  }
565
620
  /**
566
621
  * The daemon REST surface. Every endpoint is a thin wrapper over one adapter /
@@ -580,18 +635,23 @@ export declare const ChatOpenSchema: z.ZodObject<{
580
635
  /** File the chat into a project (`crew.chat` membership) — and, with no `repoRefs`, scope it to
581
636
  * every registered `crew.repo` member of that project (crew#502). */
582
637
  projectId: z.ZodOptional<z.ZodString>;
638
+ /** The scope the caller NAMES (studio#323 R4) — omitted ⇒ the legacy inference. Shape rules
639
+ * (which kinds need / refuse `projectId` / `repoRefs`) are the resolver's (`chat-scope.ts`). */
640
+ scopeKind: z.ZodOptional<z.ZodEnum<["system", "everything", "project", "repo", "repos", "none"]>>;
583
641
  }, "strict", z.ZodTypeAny, {
584
642
  projectId?: string | undefined;
585
643
  repoRef?: string | undefined;
586
644
  chatId?: string | undefined;
587
645
  clis?: string[] | undefined;
588
646
  repoRefs?: string[] | undefined;
647
+ scopeKind?: "repo" | "repos" | "none" | "system" | "everything" | "project" | undefined;
589
648
  }, {
590
649
  projectId?: string | undefined;
591
650
  repoRef?: string | undefined;
592
651
  chatId?: string | undefined;
593
652
  clis?: string[] | undefined;
594
653
  repoRefs?: string[] | undefined;
654
+ scopeKind?: "repo" | "repos" | "none" | "system" | "everything" | "project" | undefined;
595
655
  }>;
596
656
  export declare function registerRoutes(app: FastifyInstance, adapter: CoreAdapter, gateCache: GateCache, elicitationCache: ElicitationCache, qeGateEvents?: QeGateCache, projects?: ProjectRoutesDeps, security?: SecurityDeps, runtime?: RuntimeDeps): void;
597
657
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}