@vitest-agent/mcp 1.3.6 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DataReader, DataStore, OutputRenderer, ProjectDiscovery } from "@vitest-agent/sdk";
2
2
  import { Layer, LogLevel, ManagedRuntime } from "effect";
3
- import * as NodeContext from "@effect/platform-node/NodeContext";
3
+ import * as NodeServices from "@effect/platform-node/NodeServices";
4
4
  import * as SqliteMigrator from "@effect/sql-sqlite-node/SqliteMigrator";
5
5
  //#region src/context.d.ts
6
6
  /**
@@ -98,7 +98,7 @@ declare const createCallerFactory: import("@trpc/server").TRPCRouterCallerFactor
98
98
  * Builds the Effect Layer that provides all services required by the MCP server.
99
99
  *
100
100
  * Composes DataReader, DataStore, ProjectDiscovery, OutputPipeline, SQLite
101
- * client, migrator, NodeContext, NodeFileSystem, and the logger into a single
101
+ * client, migrator, NodeServices, and the logger into a single
102
102
  * layer suitable for `ManagedRuntime.make`.
103
103
  *
104
104
  * @param dbPath - absolute path to the SQLite database file
@@ -107,7 +107,7 @@ declare const createCallerFactory: import("@trpc/server").TRPCRouterCallerFactor
107
107
  * @returns an Effect Layer providing all MCP runtime services
108
108
  * @public
109
109
  */
110
- declare const McpLive: (dbPath: string, logLevel?: LogLevel.LogLevel, logFile?: string) => Layer.Layer<import("@vitest-agent/sdk").DataReader | import("@vitest-agent/sdk").DataStore | import("@vitest-agent/sdk").DetailResolver | import("@vitest-agent/sdk").EnvironmentDetector | import("@vitest-agent/sdk").ExecutorResolver | import("@vitest-agent/sdk").FormatSelector | import("@vitest-agent/sdk").OutputRenderer | import("@vitest-agent/sdk").ProjectDiscovery | import("@effect/sql/SqlClient").SqlClient | import("@effect/sql-sqlite-node/SqliteClient").SqliteClient | NodeContext.NodeContext, SqliteMigrator.MigrationError | import("@effect/sql/SqlError").SqlError | import("effect/ConfigError").ConfigError, never>;
110
+ declare const McpLive: (dbPath: string, logLevel?: LogLevel.LogLevel, logFile?: string) => Layer.Layer<import("@vitest-agent/sdk").DataReader | import("@vitest-agent/sdk").DataStore | import("@vitest-agent/sdk").DetailResolver | import("@vitest-agent/sdk").EnvironmentDetector | import("@vitest-agent/sdk").ExecutorResolver | import("@vitest-agent/sdk").FormatSelector | import("@vitest-agent/sdk").OutputRenderer | import("@vitest-agent/sdk").ProjectDiscovery | import("effect/unstable/sql/SqlClient").SqlClient | import("@effect/sql-sqlite-node/SqliteClient").SqliteClient | NodeServices.NodeServices, SqliteMigrator.MigrationError | import("effect/unstable/sql/SqlError").SqlError, never>;
111
111
  //#endregion
112
112
  //#region src/router.d.ts
113
113
  /**
@@ -126,9 +126,9 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
126
126
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
127
127
  help: import("@trpc/server").TRPCQueryProcedure<{
128
128
  input: void;
129
- output: {
130
- readonly helpText: string;
131
- };
129
+ output: import("effect/Schema").Struct.ReadonlySide<{
130
+ readonly helpText: import("effect/Schema").String;
131
+ }, "Type">;
132
132
  meta: object;
133
133
  }>;
134
134
  test_status: import("@trpc/server").TRPCQueryProcedure<{
@@ -160,15 +160,15 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
160
160
  output: {
161
161
  readonly dataAvailable: true;
162
162
  readonly projectFilter?: string | undefined;
163
- readonly runs: readonly {
164
- readonly project: string;
165
- readonly lastRun: string | null;
166
- readonly lastResult: "failed" | "interrupted" | "passed" | null;
167
- readonly total: number;
168
- readonly passed: number;
169
- readonly failed: number;
170
- readonly skipped: number;
171
- }[];
163
+ readonly runs: readonly import("effect/Schema").Struct.ReadonlySide<{
164
+ readonly project: import("effect/Schema").String;
165
+ readonly lastRun: import("effect/Schema").NullOr<import("effect/Schema").String>;
166
+ readonly lastResult: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>>;
167
+ readonly total: import("effect/Schema").Number;
168
+ readonly passed: import("effect/Schema").Number;
169
+ readonly failed: import("effect/Schema").Number;
170
+ readonly skipped: import("effect/Schema").Number;
171
+ }, "Type">[];
172
172
  } | {
173
173
  readonly dataAvailable: false;
174
174
  readonly projectFilter?: string | undefined;
@@ -180,273 +180,273 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
180
180
  input: {
181
181
  readonly project?: string | undefined;
182
182
  };
183
- output: {
184
- readonly dataAvailable: true;
185
- readonly project: string;
186
- readonly coverage: {
187
- readonly totals: {
188
- readonly statements: number;
189
- readonly branches: number;
190
- readonly functions: number;
191
- readonly lines: number;
192
- };
193
- readonly thresholds: {
194
- readonly global: {
195
- readonly lines?: number | undefined;
196
- readonly functions?: number | undefined;
197
- readonly branches?: number | undefined;
198
- readonly statements?: number | undefined;
199
- };
200
- readonly patterns: readonly (readonly [string, {
201
- readonly lines?: number | undefined;
202
- readonly functions?: number | undefined;
203
- readonly branches?: number | undefined;
204
- readonly statements?: number | undefined;
205
- }])[];
206
- };
207
- readonly targets?: {
208
- readonly global: {
209
- readonly lines?: number | undefined;
210
- readonly functions?: number | undefined;
211
- readonly branches?: number | undefined;
212
- readonly statements?: number | undefined;
213
- };
214
- readonly patterns: readonly (readonly [string, {
215
- readonly lines?: number | undefined;
216
- readonly functions?: number | undefined;
217
- readonly branches?: number | undefined;
218
- readonly statements?: number | undefined;
219
- }])[];
220
- } | undefined;
221
- readonly baselines?: {
222
- readonly global: {
223
- readonly lines?: number | undefined;
224
- readonly functions?: number | undefined;
225
- readonly branches?: number | undefined;
226
- readonly statements?: number | undefined;
227
- };
228
- readonly patterns: readonly (readonly [string, {
229
- readonly lines?: number | undefined;
230
- readonly functions?: number | undefined;
231
- readonly branches?: number | undefined;
232
- readonly statements?: number | undefined;
233
- }])[];
234
- } | undefined;
235
- readonly scoped: boolean;
236
- readonly scopedFiles?: readonly string[] | undefined;
237
- readonly lowCoverage: readonly {
238
- readonly file: string;
239
- readonly summary: {
240
- readonly statements: number;
241
- readonly branches: number;
242
- readonly functions: number;
243
- readonly lines: number;
244
- };
245
- readonly uncoveredLines: string;
246
- }[];
247
- readonly lowCoverageFiles: readonly string[];
248
- readonly belowTarget?: readonly {
249
- readonly file: string;
250
- readonly summary: {
251
- readonly statements: number;
252
- readonly branches: number;
253
- readonly functions: number;
254
- readonly lines: number;
255
- };
256
- readonly uncoveredLines: string;
257
- }[] | undefined;
258
- readonly belowTargetFiles?: readonly string[] | undefined;
259
- };
260
- } | {
261
- readonly dataAvailable: false;
262
- readonly project: string;
263
- };
183
+ output: import("effect/Schema").Struct.ReadonlySide<{
184
+ readonly dataAvailable: import("effect/Schema").Literal<true>;
185
+ readonly project: import("effect/Schema").String;
186
+ readonly coverage: import("effect/Schema").Struct<{
187
+ readonly totals: import("effect/Schema").Struct<{
188
+ readonly statements: import("effect/Schema").Number;
189
+ readonly branches: import("effect/Schema").Number;
190
+ readonly functions: import("effect/Schema").Number;
191
+ readonly lines: import("effect/Schema").Number;
192
+ }>;
193
+ readonly thresholds: import("effect/Schema").Struct<{
194
+ readonly global: import("effect/Schema").Struct<{
195
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
196
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
197
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
198
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
199
+ }>;
200
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
201
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
202
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
203
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
204
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
205
+ }>]>>, never>;
206
+ }>;
207
+ readonly targets: import("effect/Schema").optional<import("effect/Schema").Struct<{
208
+ readonly global: import("effect/Schema").Struct<{
209
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
210
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
211
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
212
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
213
+ }>;
214
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
215
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
216
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
217
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
218
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
219
+ }>]>>, never>;
220
+ }>>;
221
+ readonly baselines: import("effect/Schema").optional<import("effect/Schema").Struct<{
222
+ readonly global: import("effect/Schema").Struct<{
223
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
224
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
225
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
226
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
227
+ }>;
228
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
229
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
230
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
231
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
232
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
233
+ }>]>>, never>;
234
+ }>>;
235
+ readonly scoped: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").Boolean, never>;
236
+ readonly scopedFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
237
+ readonly lowCoverage: import("effect/Schema").$Array<import("effect/Schema").Struct<{
238
+ readonly file: import("effect/Schema").String;
239
+ readonly summary: import("effect/Schema").Struct<{
240
+ readonly statements: import("effect/Schema").Number;
241
+ readonly branches: import("effect/Schema").Number;
242
+ readonly functions: import("effect/Schema").Number;
243
+ readonly lines: import("effect/Schema").Number;
244
+ }>;
245
+ readonly uncoveredLines: import("effect/Schema").String;
246
+ }>>;
247
+ readonly lowCoverageFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
248
+ readonly belowTarget: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
249
+ readonly file: import("effect/Schema").String;
250
+ readonly summary: import("effect/Schema").Struct<{
251
+ readonly statements: import("effect/Schema").Number;
252
+ readonly branches: import("effect/Schema").Number;
253
+ readonly functions: import("effect/Schema").Number;
254
+ readonly lines: import("effect/Schema").Number;
255
+ }>;
256
+ readonly uncoveredLines: import("effect/Schema").String;
257
+ }>>>;
258
+ readonly belowTargetFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
259
+ }>;
260
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
261
+ readonly dataAvailable: import("effect/Schema").Literal<false>;
262
+ readonly project: import("effect/Schema").String;
263
+ }, "Type">;
264
264
  meta: object;
265
265
  }>;
266
266
  test_history: import("@trpc/server").TRPCQueryProcedure<{
267
- input: {
268
- readonly project: string;
269
- };
270
- output: {
271
- readonly project: string;
272
- readonly hasData: boolean;
273
- readonly history: {
274
- readonly project: string;
275
- readonly updatedAt: string;
276
- readonly tests: readonly {
277
- readonly modulePath: string;
278
- readonly fullName: string;
279
- readonly runs: readonly {
280
- readonly timestamp: string;
281
- readonly state: "failed" | "passed";
282
- }[];
283
- }[];
284
- };
285
- readonly flaky: readonly {
286
- readonly fullName: string;
287
- readonly modulePath: string;
288
- readonly project: string;
289
- readonly passCount: number;
290
- readonly failCount: number;
291
- readonly lastState: "failed" | "passed";
292
- readonly lastTimestamp: string;
293
- }[];
294
- readonly persistent: readonly {
295
- readonly fullName: string;
296
- readonly modulePath: string;
297
- readonly project: string;
298
- readonly consecutiveFailures: number;
299
- readonly firstFailedAt: string;
300
- readonly lastFailedAt: string;
301
- readonly lastErrorMessage: string | null;
302
- }[];
303
- readonly recovered: readonly {
304
- readonly modulePath: string;
305
- readonly fullName: string;
306
- readonly recentRuns: readonly ("failed" | "passed")[];
307
- }[];
308
- };
267
+ input: import("effect/Schema").Struct.ReadonlySide<{
268
+ readonly project: import("effect/Schema").String;
269
+ }, "Encoded">;
270
+ output: import("effect/Schema").Struct.ReadonlySide<{
271
+ readonly project: import("effect/Schema").String;
272
+ readonly hasData: import("effect/Schema").Boolean;
273
+ readonly history: import("effect/Schema").Struct<{
274
+ readonly project: import("effect/Schema").String;
275
+ readonly updatedAt: import("effect/Schema").String;
276
+ readonly tests: import("effect/Schema").$Array<import("effect/Schema").Struct<{
277
+ readonly modulePath: import("effect/Schema").String;
278
+ readonly fullName: import("effect/Schema").String;
279
+ readonly runs: import("effect/Schema").$Array<import("effect/Schema").Struct<{
280
+ readonly timestamp: import("effect/Schema").String;
281
+ readonly state: import("effect/Schema").Literals<readonly ["passed", "failed"]>;
282
+ }>>;
283
+ }>>;
284
+ }>;
285
+ readonly flaky: import("effect/Schema").$Array<import("effect/Schema").Struct<{
286
+ readonly fullName: import("effect/Schema").String;
287
+ readonly modulePath: import("effect/Schema").String;
288
+ readonly project: import("effect/Schema").String;
289
+ readonly passCount: import("effect/Schema").Number;
290
+ readonly failCount: import("effect/Schema").Number;
291
+ readonly lastState: import("effect/Schema").Literals<readonly ["passed", "failed"]>;
292
+ readonly lastTimestamp: import("effect/Schema").String;
293
+ }>>;
294
+ readonly persistent: import("effect/Schema").$Array<import("effect/Schema").Struct<{
295
+ readonly fullName: import("effect/Schema").String;
296
+ readonly modulePath: import("effect/Schema").String;
297
+ readonly project: import("effect/Schema").String;
298
+ readonly consecutiveFailures: import("effect/Schema").Number;
299
+ readonly firstFailedAt: import("effect/Schema").String;
300
+ readonly lastFailedAt: import("effect/Schema").String;
301
+ readonly lastErrorMessage: import("effect/Schema").NullOr<import("effect/Schema").String>;
302
+ }>>;
303
+ readonly recovered: import("effect/Schema").$Array<import("effect/Schema").Struct<{
304
+ readonly modulePath: import("effect/Schema").String;
305
+ readonly fullName: import("effect/Schema").String;
306
+ readonly recentRuns: import("effect/Schema").$Array<import("effect/Schema").Literals<readonly ["passed", "failed"]>>;
307
+ }>>;
308
+ }, "Type">;
309
309
  meta: object;
310
310
  }>;
311
311
  test_trends: import("@trpc/server").TRPCQueryProcedure<{
312
312
  input: {
313
- readonly limit?: number | undefined;
314
- readonly project: string;
315
- };
316
- output: {
317
- readonly dataAvailable: true;
318
- readonly project: string;
319
- readonly trends: {
320
- readonly entries: readonly {
321
- readonly timestamp: string;
322
- readonly coverage: {
323
- readonly statements: number;
324
- readonly branches: number;
325
- readonly functions: number;
326
- readonly lines: number;
327
- };
328
- readonly delta: {
329
- readonly statements: number;
330
- readonly branches: number;
331
- readonly functions: number;
332
- readonly lines: number;
333
- };
334
- readonly direction: "improving" | "regressing" | "stable";
335
- readonly targetsHash?: string | undefined;
336
- }[];
337
- };
338
- } | {
339
- readonly dataAvailable: false;
340
313
  readonly project: string;
314
+ readonly limit?: number | undefined;
341
315
  };
316
+ output: import("effect/Schema").Struct.ReadonlySide<{
317
+ readonly dataAvailable: import("effect/Schema").Literal<true>;
318
+ readonly project: import("effect/Schema").String;
319
+ readonly trends: import("effect/Schema").Struct<{
320
+ readonly entries: import("effect/Schema").$Array<import("effect/Schema").Struct<{
321
+ readonly timestamp: import("effect/Schema").String;
322
+ readonly coverage: import("effect/Schema").Struct<{
323
+ readonly statements: import("effect/Schema").Number;
324
+ readonly branches: import("effect/Schema").Number;
325
+ readonly functions: import("effect/Schema").Number;
326
+ readonly lines: import("effect/Schema").Number;
327
+ }>;
328
+ readonly delta: import("effect/Schema").Struct<{
329
+ readonly statements: import("effect/Schema").Number;
330
+ readonly branches: import("effect/Schema").Number;
331
+ readonly functions: import("effect/Schema").Number;
332
+ readonly lines: import("effect/Schema").Number;
333
+ }>;
334
+ readonly direction: import("effect/Schema").Literals<readonly ["improving", "regressing", "stable"]>;
335
+ readonly targetsHash: import("effect/Schema").optional<import("effect/Schema").String>;
336
+ }>>;
337
+ }>;
338
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
339
+ readonly dataAvailable: import("effect/Schema").Literal<false>;
340
+ readonly project: import("effect/Schema").String;
341
+ }, "Type">;
342
342
  meta: object;
343
343
  }>;
344
344
  test_errors: import("@trpc/server").TRPCQueryProcedure<{
345
345
  input: {
346
- readonly errorName?: string | undefined;
347
346
  readonly project: string;
347
+ readonly errorName?: string | undefined;
348
348
  };
349
349
  output: {
350
350
  readonly project: string;
351
351
  readonly errorName?: string | undefined;
352
352
  readonly count: number;
353
- readonly errors: readonly {
354
- readonly id: number;
355
- readonly topStackFrameId: number | null;
356
- readonly name: string | null;
357
- readonly message: string;
358
- readonly diff: string | null;
359
- readonly actual: string | null;
360
- readonly expected: string | null;
361
- readonly stack: string | null;
362
- readonly scope: "module" | "suite" | "test" | "unhandled";
363
- readonly testFullName: string | null;
364
- readonly moduleFile: string | null;
365
- }[];
353
+ readonly errors: readonly import("effect/Schema").Struct.ReadonlySide<{
354
+ readonly id: import("effect/Schema").Number;
355
+ readonly topStackFrameId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
356
+ readonly name: import("effect/Schema").NullOr<import("effect/Schema").String>;
357
+ readonly message: import("effect/Schema").String;
358
+ readonly diff: import("effect/Schema").NullOr<import("effect/Schema").String>;
359
+ readonly actual: import("effect/Schema").NullOr<import("effect/Schema").String>;
360
+ readonly expected: import("effect/Schema").NullOr<import("effect/Schema").String>;
361
+ readonly stack: import("effect/Schema").NullOr<import("effect/Schema").String>;
362
+ readonly scope: import("effect/Schema").Literals<readonly ["test", "suite", "module", "unhandled"]>;
363
+ readonly testFullName: import("effect/Schema").NullOr<import("effect/Schema").String>;
364
+ readonly moduleFile: import("effect/Schema").NullOr<import("effect/Schema").String>;
365
+ }, "Type">[];
366
366
  };
367
367
  meta: object;
368
368
  }>;
369
369
  test: import("@trpc/server").TRPCQueryProcedure<{
370
- input: {
370
+ input: import("effect/Schema").Struct.ReadonlySide<{
371
+ readonly action: import("effect/Schema").Literal<"for_file">;
372
+ readonly filePath: import("effect/Schema").String;
373
+ }, "Encoded"> | {
371
374
  readonly action: "list";
372
- readonly limit?: number | undefined;
373
- readonly module?: string | undefined;
374
375
  readonly project?: string | undefined;
375
376
  readonly state?: string | undefined;
377
+ readonly module?: string | undefined;
378
+ readonly limit?: number | undefined;
376
379
  } | {
377
380
  readonly action: "get";
378
381
  readonly fullName: string;
379
382
  readonly project?: string | undefined;
380
- } | {
381
- readonly action: "for_file";
382
- readonly filePath: string;
383
383
  } | {
384
384
  readonly action: "for_tag";
385
- readonly project?: string | undefined;
386
385
  readonly tag: string;
386
+ readonly project?: string | undefined;
387
387
  };
388
- output: {
389
- readonly action: "list";
390
- readonly count: number;
391
- readonly groups: readonly {
392
- readonly project: string;
393
- readonly tests: readonly {
394
- readonly id: number;
395
- readonly fullName: string;
396
- readonly state: string;
397
- readonly duration: number | null;
398
- readonly module: string;
399
- readonly classification: string | null;
400
- }[];
401
- }[];
402
- } | {
403
- readonly action: "get";
404
- readonly found: true;
405
- readonly project: string;
406
- readonly test: {
407
- readonly id: number;
408
- readonly fullName: string;
409
- readonly state: string;
410
- readonly duration: number | null;
411
- readonly module: string;
412
- readonly classification: string | null;
413
- };
414
- readonly errors: readonly {
415
- readonly name: string | null;
416
- readonly message: string;
417
- readonly diff: string | null;
418
- readonly stack: string | null;
419
- }[];
420
- readonly runs: readonly {
421
- readonly state: "failed" | "passed";
422
- readonly timestamp: string;
423
- }[];
424
- } | {
425
- readonly action: "get";
426
- readonly found: false;
427
- readonly project: string;
428
- readonly fullName: string;
429
- } | {
430
- readonly action: "for_file";
431
- readonly filePath: string;
432
- readonly count: number;
433
- readonly testFiles: readonly string[];
434
- } | {
435
- readonly action: "for_tag";
436
- readonly tag: string;
437
- readonly count: number;
438
- readonly groups: readonly {
439
- readonly project: string;
440
- readonly tests: readonly {
441
- readonly id: number;
442
- readonly fullName: string;
443
- readonly state: string;
444
- readonly duration: number | null;
445
- readonly module: string;
446
- readonly classification: string | null;
447
- }[];
448
- }[];
449
- };
388
+ output: import("effect/Schema").Struct.ReadonlySide<{
389
+ readonly action: import("effect/Schema").Literal<"list">;
390
+ readonly count: import("effect/Schema").Number;
391
+ readonly groups: import("effect/Schema").$Array<import("effect/Schema").Struct<{
392
+ readonly project: import("effect/Schema").String;
393
+ readonly tests: import("effect/Schema").$Array<import("effect/Schema").Struct<{
394
+ readonly id: import("effect/Schema").Number;
395
+ readonly fullName: import("effect/Schema").String;
396
+ readonly state: import("effect/Schema").String;
397
+ readonly duration: import("effect/Schema").NullOr<import("effect/Schema").Number>;
398
+ readonly module: import("effect/Schema").String;
399
+ readonly classification: import("effect/Schema").NullOr<import("effect/Schema").String>;
400
+ }>>;
401
+ }>>;
402
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
403
+ readonly action: import("effect/Schema").Literal<"get">;
404
+ readonly found: import("effect/Schema").Literal<true>;
405
+ readonly project: import("effect/Schema").String;
406
+ readonly test: import("effect/Schema").Struct<{
407
+ readonly id: import("effect/Schema").Number;
408
+ readonly fullName: import("effect/Schema").String;
409
+ readonly state: import("effect/Schema").String;
410
+ readonly duration: import("effect/Schema").NullOr<import("effect/Schema").Number>;
411
+ readonly module: import("effect/Schema").String;
412
+ readonly classification: import("effect/Schema").NullOr<import("effect/Schema").String>;
413
+ }>;
414
+ readonly errors: import("effect/Schema").$Array<import("effect/Schema").Struct<{
415
+ readonly name: import("effect/Schema").NullOr<import("effect/Schema").String>;
416
+ readonly message: import("effect/Schema").String;
417
+ readonly diff: import("effect/Schema").NullOr<import("effect/Schema").String>;
418
+ readonly stack: import("effect/Schema").NullOr<import("effect/Schema").String>;
419
+ }>>;
420
+ readonly runs: import("effect/Schema").$Array<import("effect/Schema").Struct<{
421
+ readonly state: import("effect/Schema").Literals<readonly ["passed", "failed"]>;
422
+ readonly timestamp: import("effect/Schema").String;
423
+ }>>;
424
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
425
+ readonly action: import("effect/Schema").Literal<"get">;
426
+ readonly found: import("effect/Schema").Literal<false>;
427
+ readonly project: import("effect/Schema").String;
428
+ readonly fullName: import("effect/Schema").String;
429
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
430
+ readonly action: import("effect/Schema").Literal<"for_file">;
431
+ readonly filePath: import("effect/Schema").String;
432
+ readonly count: import("effect/Schema").Number;
433
+ readonly testFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
434
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
435
+ readonly action: import("effect/Schema").Literal<"for_tag">;
436
+ readonly tag: import("effect/Schema").String;
437
+ readonly count: import("effect/Schema").Number;
438
+ readonly groups: import("effect/Schema").$Array<import("effect/Schema").Struct<{
439
+ readonly project: import("effect/Schema").String;
440
+ readonly tests: import("effect/Schema").$Array<import("effect/Schema").Struct<{
441
+ readonly id: import("effect/Schema").Number;
442
+ readonly fullName: import("effect/Schema").String;
443
+ readonly state: import("effect/Schema").String;
444
+ readonly duration: import("effect/Schema").NullOr<import("effect/Schema").Number>;
445
+ readonly module: import("effect/Schema").String;
446
+ readonly classification: import("effect/Schema").NullOr<import("effect/Schema").String>;
447
+ }>>;
448
+ }>>;
449
+ }, "Type">;
450
450
  meta: object;
451
451
  }>;
452
452
  file_coverage: import("@trpc/server").TRPCQueryProcedure<{
@@ -454,75 +454,93 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
454
454
  readonly filePath: string;
455
455
  readonly project?: string | undefined;
456
456
  };
457
- output: {
458
- readonly dataAvailable: true;
459
- readonly matched: true;
460
- readonly filePath: string;
461
- readonly report: {
462
- readonly file: string;
463
- readonly summary: {
464
- readonly statements: number;
465
- readonly branches: number;
466
- readonly functions: number;
467
- readonly lines: number;
468
- };
469
- readonly uncoveredLines: string;
470
- };
471
- readonly globalThresholds: {
472
- readonly statements?: number | undefined;
473
- readonly branches?: number | undefined;
474
- readonly functions?: number | undefined;
475
- readonly lines?: number | undefined;
476
- };
477
- readonly relatedTestFiles: readonly string[];
478
- } | {
479
- readonly dataAvailable: true;
480
- readonly matched: false;
481
- readonly filePath: string;
482
- readonly totals: {
483
- readonly statements: number;
484
- readonly branches: number;
485
- readonly functions: number;
486
- readonly lines: number;
487
- };
488
- readonly relatedTestFiles: readonly string[];
489
- } | {
490
- readonly dataAvailable: false;
491
- readonly filePath: string;
492
- };
457
+ output: import("effect/Schema").Struct.ReadonlySide<{
458
+ readonly dataAvailable: import("effect/Schema").Literal<true>;
459
+ readonly matched: import("effect/Schema").Literal<true>;
460
+ readonly filePath: import("effect/Schema").String;
461
+ readonly report: import("effect/Schema").Struct<{
462
+ readonly file: import("effect/Schema").String;
463
+ readonly summary: import("effect/Schema").Struct<{
464
+ readonly statements: import("effect/Schema").Number;
465
+ readonly branches: import("effect/Schema").Number;
466
+ readonly functions: import("effect/Schema").Number;
467
+ readonly lines: import("effect/Schema").Number;
468
+ }>;
469
+ readonly uncoveredLines: import("effect/Schema").String;
470
+ }>;
471
+ readonly globalThresholds: import("effect/Schema").Struct<{
472
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
473
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
474
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
475
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
476
+ }>;
477
+ readonly relatedTestFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
478
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
479
+ readonly dataAvailable: import("effect/Schema").Literal<true>;
480
+ readonly matched: import("effect/Schema").Literal<false>;
481
+ readonly filePath: import("effect/Schema").String;
482
+ readonly totals: import("effect/Schema").Struct<{
483
+ readonly statements: import("effect/Schema").Number;
484
+ readonly branches: import("effect/Schema").Number;
485
+ readonly functions: import("effect/Schema").Number;
486
+ readonly lines: import("effect/Schema").Number;
487
+ }>;
488
+ readonly relatedTestFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
489
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
490
+ readonly dataAvailable: import("effect/Schema").Literal<false>;
491
+ readonly filePath: import("effect/Schema").String;
492
+ }, "Type">;
493
493
  meta: object;
494
494
  }>;
495
495
  run_tests: import("@trpc/server").TRPCMutationProcedure<{
496
496
  input: {
497
- readonly _sessionContext?: {
498
- readonly chatId: string;
499
- readonly conversationId: string;
500
- readonly mainAgentId: string;
501
- } | undefined;
502
497
  readonly files?: readonly string[] | undefined;
503
- readonly passWithNoTests?: boolean | undefined;
504
498
  readonly project?: string | undefined;
505
499
  readonly tags?: {
506
500
  readonly all?: readonly string[] | undefined;
507
501
  readonly any?: readonly string[] | undefined;
508
502
  readonly none?: readonly string[] | undefined;
509
503
  } | undefined;
504
+ readonly passWithNoTests?: boolean | undefined;
510
505
  readonly timeout?: number | undefined;
506
+ readonly _sessionContext?: import("effect/Schema").Struct.ReadonlySide<{
507
+ readonly chatId: import("effect/Schema").String;
508
+ readonly conversationId: import("effect/Schema").String;
509
+ readonly mainAgentId: import("effect/Schema").String;
510
+ }, "Encoded"> | undefined;
511
511
  };
512
- output: {
512
+ output: import("effect/Schema").Struct.ReadonlySide<{
513
+ readonly kind: import("effect/Schema").Literal<"timeout">;
514
+ readonly timeoutSeconds: import("effect/Schema").Number;
515
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
516
+ readonly kind: import("effect/Schema").Literal<"error">;
517
+ readonly message: import("effect/Schema").String;
518
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
519
+ readonly kind: import("effect/Schema").Literal<"no-match">;
520
+ readonly filter: import("effect/Schema").Struct<{
521
+ readonly project: import("effect/Schema").NullOr<import("effect/Schema").String>;
522
+ readonly files: import("effect/Schema").$Array<import("effect/Schema").String>;
523
+ readonly tags: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
524
+ readonly all: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
525
+ readonly any: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
526
+ readonly none: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
527
+ }>>;
528
+ readonly resolvedExpression: import("effect/Schema").NullOr<import("effect/Schema").String>;
529
+ }>;
530
+ }, "Type"> | {
513
531
  readonly kind: "ok";
514
532
  readonly project?: string | undefined;
515
533
  readonly report: {
516
534
  readonly timestamp: string;
517
535
  readonly project?: string | undefined;
518
536
  readonly reason: "failed" | "interrupted" | "passed";
519
- readonly summary: {
520
- readonly total: number;
521
- readonly passed: number;
522
- readonly failed: number;
523
- readonly skipped: number;
524
- readonly duration: number;
525
- };
537
+ readonly summary: import("effect/Schema").Struct.ReadonlySide<{
538
+ readonly total: import("effect/Schema").Number;
539
+ readonly passed: import("effect/Schema").Number;
540
+ readonly failed: import("effect/Schema").Number;
541
+ readonly skipped: import("effect/Schema").Number;
542
+ readonly duration: import("effect/Schema").Number;
543
+ }, "Type">;
526
544
  readonly failed: readonly {
527
545
  readonly file: string;
528
546
  readonly state: "failed" | "passed" | "pending" | "skipped";
@@ -560,77 +578,77 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
560
578
  }[];
561
579
  readonly failedFiles: readonly string[];
562
580
  readonly coverage?: {
563
- readonly totals: {
564
- readonly statements: number;
565
- readonly branches: number;
566
- readonly functions: number;
567
- readonly lines: number;
568
- };
569
- readonly thresholds: {
570
- readonly global: {
571
- readonly lines?: number | undefined;
572
- readonly functions?: number | undefined;
573
- readonly branches?: number | undefined;
574
- readonly statements?: number | undefined;
575
- };
576
- readonly patterns: readonly (readonly [string, {
577
- readonly lines?: number | undefined;
578
- readonly functions?: number | undefined;
579
- readonly branches?: number | undefined;
580
- readonly statements?: number | undefined;
581
- }])[];
582
- };
583
- readonly targets?: {
584
- readonly global: {
585
- readonly lines?: number | undefined;
586
- readonly functions?: number | undefined;
587
- readonly branches?: number | undefined;
588
- readonly statements?: number | undefined;
589
- };
590
- readonly patterns: readonly (readonly [string, {
591
- readonly lines?: number | undefined;
592
- readonly functions?: number | undefined;
593
- readonly branches?: number | undefined;
594
- readonly statements?: number | undefined;
595
- }])[];
596
- } | undefined;
597
- readonly baselines?: {
598
- readonly global: {
599
- readonly lines?: number | undefined;
600
- readonly functions?: number | undefined;
601
- readonly branches?: number | undefined;
602
- readonly statements?: number | undefined;
603
- };
604
- readonly patterns: readonly (readonly [string, {
605
- readonly lines?: number | undefined;
606
- readonly functions?: number | undefined;
607
- readonly branches?: number | undefined;
608
- readonly statements?: number | undefined;
609
- }])[];
610
- } | undefined;
581
+ readonly totals: import("effect/Schema").Struct.ReadonlySide<{
582
+ readonly statements: import("effect/Schema").Number;
583
+ readonly branches: import("effect/Schema").Number;
584
+ readonly functions: import("effect/Schema").Number;
585
+ readonly lines: import("effect/Schema").Number;
586
+ }, "Type">;
587
+ readonly thresholds: import("effect/Schema").Struct.ReadonlySide<{
588
+ readonly global: import("effect/Schema").Struct<{
589
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
590
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
591
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
592
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
593
+ }>;
594
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
595
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
596
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
597
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
598
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
599
+ }>]>>, never>;
600
+ }, "Type">;
601
+ readonly targets?: import("effect/Schema").Struct.ReadonlySide<{
602
+ readonly global: import("effect/Schema").Struct<{
603
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
604
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
605
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
606
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
607
+ }>;
608
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
609
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
610
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
611
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
612
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
613
+ }>]>>, never>;
614
+ }, "Type"> | undefined;
615
+ readonly baselines?: import("effect/Schema").Struct.ReadonlySide<{
616
+ readonly global: import("effect/Schema").Struct<{
617
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
618
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
619
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
620
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
621
+ }>;
622
+ readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
623
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
624
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
625
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
626
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
627
+ }>]>>, never>;
628
+ }, "Type"> | undefined;
611
629
  readonly scoped: boolean;
612
630
  readonly scopedFiles?: readonly string[] | undefined;
613
- readonly lowCoverage: readonly {
614
- readonly file: string;
615
- readonly summary: {
616
- readonly statements: number;
617
- readonly branches: number;
618
- readonly functions: number;
619
- readonly lines: number;
620
- };
621
- readonly uncoveredLines: string;
622
- }[];
631
+ readonly lowCoverage: readonly import("effect/Schema").Struct.ReadonlySide<{
632
+ readonly file: import("effect/Schema").String;
633
+ readonly summary: import("effect/Schema").Struct<{
634
+ readonly statements: import("effect/Schema").Number;
635
+ readonly branches: import("effect/Schema").Number;
636
+ readonly functions: import("effect/Schema").Number;
637
+ readonly lines: import("effect/Schema").Number;
638
+ }>;
639
+ readonly uncoveredLines: import("effect/Schema").String;
640
+ }, "Type">[];
623
641
  readonly lowCoverageFiles: readonly string[];
624
- readonly belowTarget?: readonly {
625
- readonly file: string;
626
- readonly summary: {
627
- readonly statements: number;
628
- readonly branches: number;
629
- readonly functions: number;
630
- readonly lines: number;
631
- };
632
- readonly uncoveredLines: string;
633
- }[] | undefined;
642
+ readonly belowTarget?: readonly import("effect/Schema").Struct.ReadonlySide<{
643
+ readonly file: import("effect/Schema").String;
644
+ readonly summary: import("effect/Schema").Struct<{
645
+ readonly statements: import("effect/Schema").Number;
646
+ readonly branches: import("effect/Schema").Number;
647
+ readonly functions: import("effect/Schema").Number;
648
+ readonly lines: import("effect/Schema").Number;
649
+ }>;
650
+ readonly uncoveredLines: import("effect/Schema").String;
651
+ }, "Type">[] | undefined;
634
652
  readonly belowTargetFiles?: readonly string[] | undefined;
635
653
  } | undefined;
636
654
  readonly tagCounts?: {
@@ -656,101 +674,81 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
656
674
  readonly [x: string]: string;
657
675
  };
658
676
  readonly discoveryLastScannedAt?: string | null | undefined;
659
- } | {
660
- readonly kind: "timeout";
661
- readonly timeoutSeconds: number;
662
- } | {
663
- readonly kind: "error";
664
- readonly message: string;
665
- } | {
666
- readonly kind: "no-match";
667
- readonly filter: {
668
- readonly project: string | null;
669
- readonly files: readonly string[];
670
- readonly tags: {
671
- readonly all?: readonly string[] | undefined;
672
- readonly any?: readonly string[] | undefined;
673
- readonly none?: readonly string[] | undefined;
674
- } | null;
675
- readonly resolvedExpression: string | null;
676
- };
677
677
  };
678
678
  meta: object;
679
679
  }>;
680
680
  register_agent: import("@trpc/server").TRPCMutationProcedure<{
681
681
  input: {
682
- readonly agentType: string;
683
682
  readonly chatId: string;
684
- readonly clientNonce?: string | undefined;
685
683
  readonly conversationId?: string | undefined;
686
684
  readonly hostKind?: string | undefined;
685
+ readonly agentType: string;
687
686
  readonly parentAgentId?: string | undefined;
687
+ readonly clientNonce?: string | undefined;
688
688
  readonly startGitBranch?: string | undefined;
689
689
  readonly startGitCommitSha?: string | undefined;
690
690
  readonly startWorktreeDir?: string | undefined;
691
691
  };
692
- output: {
693
- readonly ok: true;
694
- readonly agentId: string;
695
- readonly conversationId: string | null;
696
- readonly idempotencyKey: string;
697
- } | {
698
- readonly ok: false;
699
- readonly error: {
700
- readonly code: "AGENT_ALREADY_REGISTERED" | "INVALID_AGENT_TYPE_PREFIX" | "PARENT_AGENT_NOT_FOUND" | "SESSION_NOT_FOUND";
701
- readonly message: string;
702
- readonly existingAgentId?: string | undefined;
703
- readonly expectedPrefix?: string | undefined;
704
- };
705
- };
692
+ output: import("effect/Schema").Struct.ReadonlySide<{
693
+ readonly ok: import("effect/Schema").Literal<true>;
694
+ readonly agentId: import("effect/Schema").String;
695
+ readonly conversationId: import("effect/Schema").NullOr<import("effect/Schema").String>;
696
+ readonly idempotencyKey: import("effect/Schema").String;
697
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
698
+ readonly ok: import("effect/Schema").Literal<false>;
699
+ readonly error: import("effect/Schema").Struct<{
700
+ readonly code: import("effect/Schema").Literals<readonly ["AGENT_ALREADY_REGISTERED", "PARENT_AGENT_NOT_FOUND", "SESSION_NOT_FOUND", "INVALID_AGENT_TYPE_PREFIX"]>;
701
+ readonly message: import("effect/Schema").String;
702
+ readonly existingAgentId: import("effect/Schema").optional<import("effect/Schema").String>;
703
+ readonly expectedPrefix: import("effect/Schema").optional<import("effect/Schema").String>;
704
+ }>;
705
+ }, "Type">;
706
706
  meta: object;
707
707
  }>;
708
708
  cache_health: import("@trpc/server").TRPCQueryProcedure<{
709
709
  input: void;
710
- output: {
711
- readonly manifestPresent: true;
712
- readonly manifest: {
713
- readonly updatedAt: string;
714
- readonly cacheDir: string;
715
- readonly projects: readonly {
716
- readonly project: string;
717
- readonly reportFile: string;
718
- readonly historyFile?: string | undefined;
719
- readonly lastRun: string | null;
720
- readonly lastResult: "failed" | "interrupted" | "passed" | null;
721
- }[];
722
- };
723
- readonly ageMs: number;
724
- readonly stale: boolean;
725
- } | {
726
- readonly manifestPresent: false;
727
- };
710
+ output: import("effect/Schema").Struct.ReadonlySide<{
711
+ readonly manifestPresent: import("effect/Schema").Literal<true>;
712
+ readonly manifest: import("effect/Schema").Struct<{
713
+ readonly updatedAt: import("effect/Schema").String;
714
+ readonly cacheDir: import("effect/Schema").String;
715
+ readonly projects: import("effect/Schema").$Array<import("effect/Schema").Struct<{
716
+ readonly project: import("effect/Schema").String;
717
+ readonly reportFile: import("effect/Schema").String;
718
+ readonly historyFile: import("effect/Schema").optional<import("effect/Schema").String>;
719
+ readonly lastRun: import("effect/Schema").NullOr<import("effect/Schema").String>;
720
+ readonly lastResult: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>>;
721
+ }>>;
722
+ }>;
723
+ readonly ageMs: import("effect/Schema").Number;
724
+ readonly stale: import("effect/Schema").Boolean;
725
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
726
+ readonly manifestPresent: import("effect/Schema").Literal<false>;
727
+ }, "Type">;
728
728
  meta: object;
729
729
  }>;
730
730
  configure: import("@trpc/server").TRPCQueryProcedure<{
731
731
  input: {
732
732
  readonly settingsHash?: string | undefined;
733
733
  };
734
- output: {
735
- readonly found: true;
736
- readonly source: "latest" | "requested";
737
- readonly settings: {
738
- readonly hash: string;
739
- readonly reporters: string | null;
740
- readonly coverageEnabled: boolean;
741
- readonly coverageProvider: string | null;
742
- readonly coverageThresholds: string | null;
743
- readonly coverageTargets: string | null;
744
- readonly pool: string | null;
745
- readonly shard: string | null;
746
- readonly project: string | null;
747
- readonly environment: string | null;
748
- readonly envVars: {
749
- readonly [x: string]: string;
750
- };
751
- readonly capturedAt: string;
752
- };
753
- } | {
734
+ output: import("effect/Schema").Struct.ReadonlySide<{
735
+ readonly found: import("effect/Schema").Literal<true>;
736
+ readonly source: import("effect/Schema").Literals<readonly ["requested", "latest"]>;
737
+ readonly settings: import("effect/Schema").Struct<{
738
+ readonly hash: import("effect/Schema").String;
739
+ readonly reporters: import("effect/Schema").NullOr<import("effect/Schema").String>;
740
+ readonly coverageEnabled: import("effect/Schema").Boolean;
741
+ readonly coverageProvider: import("effect/Schema").NullOr<import("effect/Schema").String>;
742
+ readonly coverageThresholds: import("effect/Schema").NullOr<import("effect/Schema").String>;
743
+ readonly coverageTargets: import("effect/Schema").NullOr<import("effect/Schema").String>;
744
+ readonly pool: import("effect/Schema").NullOr<import("effect/Schema").String>;
745
+ readonly shard: import("effect/Schema").NullOr<import("effect/Schema").String>;
746
+ readonly project: import("effect/Schema").NullOr<import("effect/Schema").String>;
747
+ readonly environment: import("effect/Schema").NullOr<import("effect/Schema").String>;
748
+ readonly envVars: import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").String>;
749
+ readonly capturedAt: import("effect/Schema").String;
750
+ }>;
751
+ }, "Type"> | {
754
752
  readonly found: false;
755
753
  readonly source: "latest" | "requested";
756
754
  readonly requestedHash?: string | undefined;
@@ -758,398 +756,398 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
758
756
  meta: object;
759
757
  }>;
760
758
  inventory: import("@trpc/server").TRPCQueryProcedure<{
761
- input: {
762
- readonly kind: "project";
763
- } | {
759
+ input: import("effect/Schema").Struct.ReadonlySide<{
760
+ readonly kind: import("effect/Schema").Literal<"project">;
761
+ }, "Encoded"> | {
764
762
  readonly kind: "module";
765
763
  readonly project?: string | undefined;
766
764
  } | {
767
765
  readonly kind: "suite";
768
- readonly module?: string | undefined;
769
766
  readonly project?: string | undefined;
767
+ readonly module?: string | undefined;
770
768
  } | {
771
- readonly agentKind?: "main" | "subagent" | undefined;
772
- readonly id?: number | undefined;
773
769
  readonly kind: "session";
774
- readonly limit?: number | undefined;
770
+ readonly id?: number | undefined;
775
771
  readonly project?: string | undefined;
772
+ readonly agentKind?: "main" | "subagent" | undefined;
773
+ readonly limit?: number | undefined;
776
774
  } | {
777
775
  readonly kind: "tag";
778
776
  readonly project?: string | undefined;
779
777
  };
780
- output: {
781
- readonly inventoryKind: "project";
782
- readonly count: number;
783
- readonly projects: readonly {
784
- readonly project: string;
785
- readonly lastRun: string | null;
786
- readonly lastResult: "failed" | "interrupted" | "passed" | null;
787
- readonly total: number;
788
- readonly passed: number;
789
- readonly failed: number;
790
- readonly skipped: number;
791
- }[];
792
- } | {
793
- readonly inventoryKind: "module";
794
- readonly count: number;
795
- readonly groups: readonly {
796
- readonly project: string;
797
- readonly modules: readonly {
798
- readonly id: number;
799
- readonly file: string;
800
- readonly state: string;
801
- readonly testCount: number;
802
- readonly duration: number | null;
803
- }[];
804
- }[];
805
- } | {
806
- readonly inventoryKind: "suite";
807
- readonly count: number;
808
- readonly groups: readonly {
809
- readonly project: string;
810
- readonly suites: readonly {
811
- readonly id: number;
812
- readonly name: string;
813
- readonly module: string;
814
- readonly state: string;
815
- readonly testCount: number;
816
- }[];
817
- }[];
818
- } | {
819
- readonly inventoryKind: "session_detail";
820
- readonly found: true;
821
- readonly session: {
822
- readonly id: number;
823
- readonly chatId: string;
824
- readonly project: string;
825
- readonly cwd: string;
826
- readonly agentKind: "main" | "subagent";
827
- readonly agentType: string | null;
828
- readonly parentSessionId: number | null;
829
- readonly triageWasNonEmpty: boolean;
830
- readonly startedAt: string;
831
- readonly endedAt: string | null;
832
- readonly endReason: string | null;
833
- };
834
- } | {
835
- readonly inventoryKind: "session_detail";
836
- readonly found: false;
837
- readonly id: number;
838
- } | {
839
- readonly inventoryKind: "session_list";
840
- readonly count: number;
841
- readonly sessions: readonly {
842
- readonly id: number;
843
- readonly chatId: string;
844
- readonly project: string;
845
- readonly cwd: string;
846
- readonly agentKind: "main" | "subagent";
847
- readonly agentType: string | null;
848
- readonly parentSessionId: number | null;
849
- readonly triageWasNonEmpty: boolean;
850
- readonly startedAt: string;
851
- readonly endedAt: string | null;
852
- readonly endReason: string | null;
853
- }[];
854
- } | {
855
- readonly inventoryKind: "tag_scoped";
856
- readonly project: string;
857
- readonly count: number;
858
- readonly tags: readonly {
859
- readonly tag: string;
860
- readonly moduleCount: number;
861
- readonly testCount: number;
862
- }[];
863
- } | {
864
- readonly inventoryKind: "tag_unscoped";
865
- readonly count: number;
866
- readonly tags: readonly {
867
- readonly tag: string;
868
- readonly moduleCount: number;
869
- readonly testCount: number;
870
- readonly byProject: readonly {
871
- readonly project: string;
872
- readonly moduleCount: number;
873
- readonly testCount: number;
874
- }[];
875
- }[];
876
- };
778
+ output: import("effect/Schema").Struct.ReadonlySide<{
779
+ readonly inventoryKind: import("effect/Schema").Literal<"project">;
780
+ readonly count: import("effect/Schema").Number;
781
+ readonly projects: import("effect/Schema").$Array<import("effect/Schema").Struct<{
782
+ readonly project: import("effect/Schema").String;
783
+ readonly lastRun: import("effect/Schema").NullOr<import("effect/Schema").String>;
784
+ readonly lastResult: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>>;
785
+ readonly total: import("effect/Schema").Number;
786
+ readonly passed: import("effect/Schema").Number;
787
+ readonly failed: import("effect/Schema").Number;
788
+ readonly skipped: import("effect/Schema").Number;
789
+ }>>;
790
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
791
+ readonly inventoryKind: import("effect/Schema").Literal<"module">;
792
+ readonly count: import("effect/Schema").Number;
793
+ readonly groups: import("effect/Schema").$Array<import("effect/Schema").Struct<{
794
+ readonly project: import("effect/Schema").String;
795
+ readonly modules: import("effect/Schema").$Array<import("effect/Schema").Struct<{
796
+ readonly id: import("effect/Schema").Number;
797
+ readonly file: import("effect/Schema").String;
798
+ readonly state: import("effect/Schema").String;
799
+ readonly testCount: import("effect/Schema").Number;
800
+ readonly duration: import("effect/Schema").NullOr<import("effect/Schema").Number>;
801
+ }>>;
802
+ }>>;
803
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
804
+ readonly inventoryKind: import("effect/Schema").Literal<"suite">;
805
+ readonly count: import("effect/Schema").Number;
806
+ readonly groups: import("effect/Schema").$Array<import("effect/Schema").Struct<{
807
+ readonly project: import("effect/Schema").String;
808
+ readonly suites: import("effect/Schema").$Array<import("effect/Schema").Struct<{
809
+ readonly id: import("effect/Schema").Number;
810
+ readonly name: import("effect/Schema").String;
811
+ readonly module: import("effect/Schema").String;
812
+ readonly state: import("effect/Schema").String;
813
+ readonly testCount: import("effect/Schema").Number;
814
+ }>>;
815
+ }>>;
816
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
817
+ readonly inventoryKind: import("effect/Schema").Literal<"session_detail">;
818
+ readonly found: import("effect/Schema").Literal<true>;
819
+ readonly session: import("effect/Schema").Struct<{
820
+ readonly id: import("effect/Schema").Number;
821
+ readonly chatId: import("effect/Schema").String;
822
+ readonly project: import("effect/Schema").String;
823
+ readonly cwd: import("effect/Schema").String;
824
+ readonly agentKind: import("effect/Schema").Literals<readonly ["main", "subagent"]>;
825
+ readonly agentType: import("effect/Schema").NullOr<import("effect/Schema").String>;
826
+ readonly parentSessionId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
827
+ readonly triageWasNonEmpty: import("effect/Schema").Boolean;
828
+ readonly startedAt: import("effect/Schema").String;
829
+ readonly endedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
830
+ readonly endReason: import("effect/Schema").NullOr<import("effect/Schema").String>;
831
+ }>;
832
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
833
+ readonly inventoryKind: import("effect/Schema").Literal<"session_detail">;
834
+ readonly found: import("effect/Schema").Literal<false>;
835
+ readonly id: import("effect/Schema").Number;
836
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
837
+ readonly inventoryKind: import("effect/Schema").Literal<"session_list">;
838
+ readonly count: import("effect/Schema").Number;
839
+ readonly sessions: import("effect/Schema").$Array<import("effect/Schema").Struct<{
840
+ readonly id: import("effect/Schema").Number;
841
+ readonly chatId: import("effect/Schema").String;
842
+ readonly project: import("effect/Schema").String;
843
+ readonly cwd: import("effect/Schema").String;
844
+ readonly agentKind: import("effect/Schema").Literals<readonly ["main", "subagent"]>;
845
+ readonly agentType: import("effect/Schema").NullOr<import("effect/Schema").String>;
846
+ readonly parentSessionId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
847
+ readonly triageWasNonEmpty: import("effect/Schema").Boolean;
848
+ readonly startedAt: import("effect/Schema").String;
849
+ readonly endedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
850
+ readonly endReason: import("effect/Schema").NullOr<import("effect/Schema").String>;
851
+ }>>;
852
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
853
+ readonly inventoryKind: import("effect/Schema").Literal<"tag_scoped">;
854
+ readonly project: import("effect/Schema").String;
855
+ readonly count: import("effect/Schema").Number;
856
+ readonly tags: import("effect/Schema").$Array<import("effect/Schema").Struct<{
857
+ readonly tag: import("effect/Schema").String;
858
+ readonly moduleCount: import("effect/Schema").Number;
859
+ readonly testCount: import("effect/Schema").Number;
860
+ }>>;
861
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
862
+ readonly inventoryKind: import("effect/Schema").Literal<"tag_unscoped">;
863
+ readonly count: import("effect/Schema").Number;
864
+ readonly tags: import("effect/Schema").$Array<import("effect/Schema").Struct<{
865
+ readonly tag: import("effect/Schema").String;
866
+ readonly moduleCount: import("effect/Schema").Number;
867
+ readonly testCount: import("effect/Schema").Number;
868
+ readonly byProject: import("effect/Schema").$Array<import("effect/Schema").Struct<{
869
+ readonly project: import("effect/Schema").String;
870
+ readonly moduleCount: import("effect/Schema").Number;
871
+ readonly testCount: import("effect/Schema").Number;
872
+ }>>;
873
+ }>>;
874
+ }, "Type">;
877
875
  meta: object;
878
876
  }>;
879
877
  settings_list: import("@trpc/server").TRPCQueryProcedure<{
880
- input: {};
881
- output: {
882
- readonly count: number;
883
- readonly settings: readonly {
884
- readonly hash: string;
885
- readonly capturedAt: string;
886
- }[];
887
- };
878
+ input: import("effect/Schema").Struct.ReadonlySide<{}, "Encoded">;
879
+ output: import("effect/Schema").Struct.ReadonlySide<{
880
+ readonly count: import("effect/Schema").Number;
881
+ readonly settings: import("effect/Schema").$Array<import("effect/Schema").Struct<{
882
+ readonly hash: import("effect/Schema").String;
883
+ readonly capturedAt: import("effect/Schema").String;
884
+ }>>;
885
+ }, "Type">;
888
886
  meta: object;
889
887
  }>;
890
888
  note: import("@trpc/server").TRPCMutationProcedure<{
891
- input: {
889
+ input: import("effect/Schema").Struct.ReadonlySide<{
890
+ readonly action: import("effect/Schema").Literal<"get">;
891
+ readonly id: import("effect/Schema").Number;
892
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
893
+ readonly action: import("effect/Schema").Literal<"delete">;
894
+ readonly id: import("effect/Schema").Number;
895
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
896
+ readonly action: import("effect/Schema").Literal<"search">;
897
+ readonly query: import("effect/Schema").String;
898
+ }, "Encoded"> | {
892
899
  readonly action: "create";
900
+ readonly title: string;
893
901
  readonly content: string;
894
- readonly createdBy?: string | undefined;
895
- readonly expiresAt?: string | undefined;
902
+ readonly scope: "global" | "module" | "note" | "project" | "suite" | "test";
903
+ readonly project?: string | undefined;
904
+ readonly testFullName?: string | undefined;
896
905
  readonly modulePath?: string | undefined;
897
906
  readonly parentNoteId?: number | undefined;
907
+ readonly createdBy?: string | undefined;
908
+ readonly expiresAt?: string | undefined;
898
909
  readonly pinned?: boolean | undefined;
899
- readonly project?: string | undefined;
900
- readonly scope: "global" | "module" | "note" | "project" | "suite" | "test";
901
- readonly testFullName?: string | undefined;
902
- readonly title: string;
903
910
  } | {
904
911
  readonly action: "list";
905
- readonly project?: string | undefined;
906
912
  readonly scope?: string | undefined;
913
+ readonly project?: string | undefined;
907
914
  readonly testFullName?: string | undefined;
908
- } | {
909
- readonly action: "get";
910
- readonly id: number;
911
915
  } | {
912
916
  readonly action: "update";
913
- readonly content?: string | undefined;
914
- readonly expiresAt?: string | undefined;
915
917
  readonly id: number;
916
- readonly pinned?: boolean | undefined;
917
918
  readonly title?: string | undefined;
918
- } | {
919
- readonly action: "delete";
920
- readonly id: number;
921
- } | {
922
- readonly action: "search";
923
- readonly query: string;
924
- };
925
- output: {
926
- readonly action: "create";
927
- readonly id: number;
928
- } | {
929
- readonly action: "list";
930
- readonly count: number;
931
- readonly notes: readonly {
932
- readonly id: number;
933
- readonly title: string;
934
- readonly content: string;
935
- readonly scope: "global" | "module" | "note" | "project" | "suite" | "test";
936
- readonly project: string | null;
937
- readonly testFullName: string | null;
938
- readonly modulePath: string | null;
939
- readonly parentNoteId: number | null;
940
- readonly createdBy: string | null;
941
- readonly expiresAt: string | null;
942
- readonly pinned: boolean;
943
- readonly createdAt: string;
944
- readonly updatedAt: string;
945
- }[];
946
- } | {
947
- readonly action: "get";
948
- readonly found: true;
949
- readonly note: {
950
- readonly id: number;
951
- readonly title: string;
952
- readonly content: string;
953
- readonly scope: "global" | "module" | "note" | "project" | "suite" | "test";
954
- readonly project: string | null;
955
- readonly testFullName: string | null;
956
- readonly modulePath: string | null;
957
- readonly parentNoteId: number | null;
958
- readonly createdBy: string | null;
959
- readonly expiresAt: string | null;
960
- readonly pinned: boolean;
961
- readonly createdAt: string;
962
- readonly updatedAt: string;
963
- };
964
- } | {
965
- readonly action: "get";
966
- readonly found: false;
967
- readonly id: number;
968
- } | {
969
- readonly action: "update";
970
- readonly success: true;
971
- } | {
972
- readonly action: "delete";
973
- readonly success: true;
974
- } | {
975
- readonly action: "search";
976
- readonly query: string;
977
- readonly count: number;
978
- readonly notes: readonly {
979
- readonly id: number;
980
- readonly title: string;
981
- readonly content: string;
982
- readonly scope: "global" | "module" | "note" | "project" | "suite" | "test";
983
- readonly project: string | null;
984
- readonly testFullName: string | null;
985
- readonly modulePath: string | null;
986
- readonly parentNoteId: number | null;
987
- readonly createdBy: string | null;
988
- readonly expiresAt: string | null;
989
- readonly pinned: boolean;
990
- readonly createdAt: string;
991
- readonly updatedAt: string;
992
- }[];
919
+ readonly content?: string | undefined;
920
+ readonly pinned?: boolean | undefined;
921
+ readonly expiresAt?: string | undefined;
993
922
  };
923
+ output: import("effect/Schema").Struct.ReadonlySide<{
924
+ readonly action: import("effect/Schema").Literal<"create">;
925
+ readonly id: import("effect/Schema").Number;
926
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
927
+ readonly action: import("effect/Schema").Literal<"list">;
928
+ readonly count: import("effect/Schema").Number;
929
+ readonly notes: import("effect/Schema").$Array<import("effect/Schema").Struct<{
930
+ readonly id: import("effect/Schema").Number;
931
+ readonly title: import("effect/Schema").String;
932
+ readonly content: import("effect/Schema").String;
933
+ readonly scope: import("effect/Schema").Literals<readonly ["global", "project", "module", "suite", "test", "note"]>;
934
+ readonly project: import("effect/Schema").NullOr<import("effect/Schema").String>;
935
+ readonly testFullName: import("effect/Schema").NullOr<import("effect/Schema").String>;
936
+ readonly modulePath: import("effect/Schema").NullOr<import("effect/Schema").String>;
937
+ readonly parentNoteId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
938
+ readonly createdBy: import("effect/Schema").NullOr<import("effect/Schema").String>;
939
+ readonly expiresAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
940
+ readonly pinned: import("effect/Schema").Boolean;
941
+ readonly createdAt: import("effect/Schema").String;
942
+ readonly updatedAt: import("effect/Schema").String;
943
+ }>>;
944
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
945
+ readonly action: import("effect/Schema").Literal<"get">;
946
+ readonly found: import("effect/Schema").Literal<true>;
947
+ readonly note: import("effect/Schema").Struct<{
948
+ readonly id: import("effect/Schema").Number;
949
+ readonly title: import("effect/Schema").String;
950
+ readonly content: import("effect/Schema").String;
951
+ readonly scope: import("effect/Schema").Literals<readonly ["global", "project", "module", "suite", "test", "note"]>;
952
+ readonly project: import("effect/Schema").NullOr<import("effect/Schema").String>;
953
+ readonly testFullName: import("effect/Schema").NullOr<import("effect/Schema").String>;
954
+ readonly modulePath: import("effect/Schema").NullOr<import("effect/Schema").String>;
955
+ readonly parentNoteId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
956
+ readonly createdBy: import("effect/Schema").NullOr<import("effect/Schema").String>;
957
+ readonly expiresAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
958
+ readonly pinned: import("effect/Schema").Boolean;
959
+ readonly createdAt: import("effect/Schema").String;
960
+ readonly updatedAt: import("effect/Schema").String;
961
+ }>;
962
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
963
+ readonly action: import("effect/Schema").Literal<"get">;
964
+ readonly found: import("effect/Schema").Literal<false>;
965
+ readonly id: import("effect/Schema").Number;
966
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
967
+ readonly action: import("effect/Schema").Literal<"update">;
968
+ readonly success: import("effect/Schema").Literal<true>;
969
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
970
+ readonly action: import("effect/Schema").Literal<"delete">;
971
+ readonly success: import("effect/Schema").Literal<true>;
972
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
973
+ readonly action: import("effect/Schema").Literal<"search">;
974
+ readonly query: import("effect/Schema").String;
975
+ readonly count: import("effect/Schema").Number;
976
+ readonly notes: import("effect/Schema").$Array<import("effect/Schema").Struct<{
977
+ readonly id: import("effect/Schema").Number;
978
+ readonly title: import("effect/Schema").String;
979
+ readonly content: import("effect/Schema").String;
980
+ readonly scope: import("effect/Schema").Literals<readonly ["global", "project", "module", "suite", "test", "note"]>;
981
+ readonly project: import("effect/Schema").NullOr<import("effect/Schema").String>;
982
+ readonly testFullName: import("effect/Schema").NullOr<import("effect/Schema").String>;
983
+ readonly modulePath: import("effect/Schema").NullOr<import("effect/Schema").String>;
984
+ readonly parentNoteId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
985
+ readonly createdBy: import("effect/Schema").NullOr<import("effect/Schema").String>;
986
+ readonly expiresAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
987
+ readonly pinned: import("effect/Schema").Boolean;
988
+ readonly createdAt: import("effect/Schema").String;
989
+ readonly updatedAt: import("effect/Schema").String;
990
+ }>>;
991
+ }, "Type">;
994
992
  meta: object;
995
993
  }>;
996
994
  turn_search: import("@trpc/server").TRPCQueryProcedure<{
997
995
  input: {
998
- readonly limit?: number | undefined;
999
996
  readonly sessionId?: number | undefined;
1000
997
  readonly since?: string | undefined;
1001
998
  readonly type?: "file_edit" | "hook_fire" | "hypothesis" | "note" | "tool_call" | "tool_result" | "user_prompt" | undefined;
999
+ readonly limit?: number | undefined;
1002
1000
  };
1003
- output: {
1004
- readonly count: number;
1005
- readonly turns: readonly {
1006
- readonly id: number;
1007
- readonly sessionId: number;
1008
- readonly turnNo: number;
1009
- readonly type: string;
1010
- readonly payload: string;
1011
- readonly occurredAt: string;
1012
- }[];
1013
- };
1001
+ output: import("effect/Schema").Struct.ReadonlySide<{
1002
+ readonly count: import("effect/Schema").Number;
1003
+ readonly turns: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1004
+ readonly id: import("effect/Schema").Number;
1005
+ readonly sessionId: import("effect/Schema").Number;
1006
+ readonly turnNo: import("effect/Schema").Number;
1007
+ readonly type: import("effect/Schema").String;
1008
+ readonly payload: import("effect/Schema").String;
1009
+ readonly occurredAt: import("effect/Schema").String;
1010
+ }>>;
1011
+ }, "Type">;
1014
1012
  meta: object;
1015
1013
  }>;
1016
1014
  failure_signature_get: import("@trpc/server").TRPCQueryProcedure<{
1017
- input: {
1018
- readonly hash: string;
1019
- };
1020
- output: {
1021
- readonly found: true;
1022
- readonly signatureHash: string;
1023
- readonly firstSeenRunId: number | null;
1024
- readonly firstSeenAt: string;
1025
- readonly lastSeenAt: string | null;
1026
- readonly occurrenceCount: number;
1027
- readonly recentErrors: readonly {
1028
- readonly runId: number;
1029
- readonly errorName: string | null;
1030
- readonly message: string;
1031
- }[];
1032
- } | {
1033
- readonly found: false;
1034
- readonly requestedHash: string;
1035
- };
1015
+ input: import("effect/Schema").Struct.ReadonlySide<{
1016
+ readonly hash: import("effect/Schema").String;
1017
+ }, "Encoded">;
1018
+ output: import("effect/Schema").Struct.ReadonlySide<{
1019
+ readonly found: import("effect/Schema").Literal<true>;
1020
+ readonly signatureHash: import("effect/Schema").String;
1021
+ readonly firstSeenRunId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1022
+ readonly firstSeenAt: import("effect/Schema").String;
1023
+ readonly lastSeenAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
1024
+ readonly occurrenceCount: import("effect/Schema").Number;
1025
+ readonly recentErrors: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1026
+ readonly runId: import("effect/Schema").Number;
1027
+ readonly errorName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1028
+ readonly message: import("effect/Schema").String;
1029
+ }>>;
1030
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1031
+ readonly found: import("effect/Schema").Literal<false>;
1032
+ readonly requestedHash: import("effect/Schema").String;
1033
+ }, "Type">;
1036
1034
  meta: object;
1037
1035
  }>;
1038
1036
  tdd_task: import("@trpc/server").TRPCMutationProcedure<{
1039
- input: {
1037
+ input: import("effect/Schema").Struct.ReadonlySide<{
1038
+ readonly action: import("effect/Schema").Literal<"get">;
1039
+ readonly tddTaskId: import("effect/Schema").Number;
1040
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1041
+ readonly action: import("effect/Schema").Literal<"resume">;
1042
+ readonly tddTaskId: import("effect/Schema").Number;
1043
+ }, "Encoded"> | {
1040
1044
  readonly action: "start";
1041
- readonly chatId?: string | undefined;
1042
1045
  readonly goal: string;
1043
- readonly parentTddTaskId?: number | undefined;
1044
- readonly runId?: string | undefined;
1045
1046
  readonly sessionId?: number | undefined;
1047
+ readonly chatId?: string | undefined;
1048
+ readonly parentTddTaskId?: number | undefined;
1046
1049
  readonly startedAt?: string | undefined;
1050
+ readonly runId?: string | undefined;
1047
1051
  } | {
1048
1052
  readonly action: "end";
1053
+ readonly tddTaskId: number;
1049
1054
  readonly outcome: "abandoned" | "blocked" | "succeeded";
1050
1055
  readonly summaryNoteId?: number | undefined;
1051
- readonly tddTaskId: number;
1052
- } | {
1053
- readonly action: "get";
1054
- readonly tddTaskId: number;
1055
- } | {
1056
- readonly action: "resume";
1057
- readonly tddTaskId: number;
1058
1056
  };
1059
- output: {
1057
+ output: import("effect/Schema").Struct.ReadonlySide<{
1058
+ readonly action: import("effect/Schema").Literal<"end">;
1059
+ readonly tddTaskId: import("effect/Schema").Number;
1060
+ readonly outcome: import("effect/Schema").Literals<readonly ["succeeded", "blocked", "abandoned"]>;
1061
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1062
+ readonly action: import("effect/Schema").Literal<"get">;
1063
+ readonly found: import("effect/Schema").Literal<true>;
1064
+ readonly task: import("effect/Schema").Struct<{
1065
+ readonly tddTaskId: import("effect/Schema").Number;
1066
+ readonly sessionId: import("effect/Schema").Number;
1067
+ readonly goal: import("effect/Schema").String;
1068
+ readonly startedAt: import("effect/Schema").String;
1069
+ readonly endedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
1070
+ readonly outcome: import("effect/Schema").NullOr<import("effect/Schema").String>;
1071
+ readonly runId: import("effect/Schema").NullOr<import("effect/Schema").String>;
1072
+ readonly goals: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1073
+ readonly id: import("effect/Schema").Number;
1074
+ readonly sessionId: import("effect/Schema").Number;
1075
+ readonly ordinal: import("effect/Schema").Number;
1076
+ readonly goal: import("effect/Schema").String;
1077
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1078
+ readonly createdAt: import("effect/Schema").String;
1079
+ readonly behaviors: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1080
+ readonly id: import("effect/Schema").Number;
1081
+ readonly goalId: import("effect/Schema").Number;
1082
+ readonly ordinal: import("effect/Schema").Number;
1083
+ readonly behavior: import("effect/Schema").String;
1084
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1085
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1086
+ readonly createdAt: import("effect/Schema").String;
1087
+ }>>;
1088
+ }>>;
1089
+ readonly phases: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1090
+ readonly id: import("effect/Schema").Number;
1091
+ readonly behaviorId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1092
+ readonly phase: import("effect/Schema").String;
1093
+ readonly startedAt: import("effect/Schema").String;
1094
+ readonly endedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
1095
+ readonly transitionReason: import("effect/Schema").NullOr<import("effect/Schema").String>;
1096
+ }>>;
1097
+ readonly artifacts: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1098
+ readonly id: import("effect/Schema").Number;
1099
+ readonly phaseId: import("effect/Schema").Number;
1100
+ readonly artifactKind: import("effect/Schema").String;
1101
+ readonly testCaseId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1102
+ readonly testRunId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1103
+ readonly recordedAt: import("effect/Schema").String;
1104
+ }>>;
1105
+ }>;
1106
+ readonly currentPhase: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
1107
+ readonly id: import("effect/Schema").Number;
1108
+ readonly phase: import("effect/Schema").String;
1109
+ readonly startedAt: import("effect/Schema").String;
1110
+ readonly behaviorId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1111
+ }>>;
1112
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1113
+ readonly action: import("effect/Schema").Literal<"get">;
1114
+ readonly found: import("effect/Schema").Literal<false>;
1115
+ readonly tddTaskId: import("effect/Schema").Number;
1116
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1117
+ readonly action: import("effect/Schema").Literal<"resume">;
1118
+ readonly found: import("effect/Schema").Literal<true>;
1119
+ readonly tddTaskId: import("effect/Schema").Number;
1120
+ readonly goal: import("effect/Schema").String;
1121
+ readonly status: import("effect/Schema").String;
1122
+ readonly currentPhase: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
1123
+ readonly id: import("effect/Schema").Number;
1124
+ readonly phase: import("effect/Schema").String;
1125
+ readonly startedAt: import("effect/Schema").String;
1126
+ readonly behaviorId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1127
+ }>>;
1128
+ readonly phasesRecorded: import("effect/Schema").Number;
1129
+ readonly artifactsRecorded: import("effect/Schema").Number;
1130
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1131
+ readonly action: import("effect/Schema").Literal<"resume">;
1132
+ readonly found: import("effect/Schema").Literal<false>;
1133
+ readonly tddTaskId: import("effect/Schema").Number;
1134
+ }, "Type"> | {
1060
1135
  readonly action: "start";
1061
1136
  readonly tddTaskId: number;
1062
1137
  readonly goal: string;
1063
1138
  readonly runId?: string | undefined;
1064
- } | {
1065
- readonly action: "end";
1066
- readonly tddTaskId: number;
1067
- readonly outcome: "abandoned" | "blocked" | "succeeded";
1068
- } | {
1069
- readonly action: "get";
1070
- readonly found: true;
1071
- readonly task: {
1072
- readonly tddTaskId: number;
1073
- readonly sessionId: number;
1074
- readonly goal: string;
1075
- readonly startedAt: string;
1076
- readonly endedAt: string | null;
1077
- readonly outcome: string | null;
1078
- readonly runId: string | null;
1079
- readonly goals: readonly {
1080
- readonly id: number;
1081
- readonly sessionId: number;
1082
- readonly ordinal: number;
1083
- readonly goal: string;
1084
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1085
- readonly createdAt: string;
1086
- readonly behaviors: readonly {
1087
- readonly id: number;
1088
- readonly goalId: number;
1089
- readonly ordinal: number;
1090
- readonly behavior: string;
1091
- readonly suggestedTestName: string | null;
1092
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1093
- readonly createdAt: string;
1094
- }[];
1095
- }[];
1096
- readonly phases: readonly {
1097
- readonly id: number;
1098
- readonly behaviorId: number | null;
1099
- readonly phase: string;
1100
- readonly startedAt: string;
1101
- readonly endedAt: string | null;
1102
- readonly transitionReason: string | null;
1103
- }[];
1104
- readonly artifacts: readonly {
1105
- readonly id: number;
1106
- readonly phaseId: number;
1107
- readonly artifactKind: string;
1108
- readonly testCaseId: number | null;
1109
- readonly testRunId: number | null;
1110
- readonly recordedAt: string;
1111
- }[];
1112
- };
1113
- readonly currentPhase: {
1114
- readonly id: number;
1115
- readonly phase: string;
1116
- readonly startedAt: string;
1117
- readonly behaviorId: number | null;
1118
- } | null;
1119
- } | {
1120
- readonly action: "get";
1121
- readonly found: false;
1122
- readonly tddTaskId: number;
1123
- } | {
1124
- readonly action: "resume";
1125
- readonly found: true;
1126
- readonly tddTaskId: number;
1127
- readonly goal: string;
1128
- readonly status: string;
1129
- readonly currentPhase: {
1130
- readonly id: number;
1131
- readonly phase: string;
1132
- readonly startedAt: string;
1133
- readonly behaviorId: number | null;
1134
- } | null;
1135
- readonly phasesRecorded: number;
1136
- readonly artifactsRecorded: number;
1137
- } | {
1138
- readonly action: "resume";
1139
- readonly found: false;
1140
- readonly tddTaskId: number;
1141
1139
  };
1142
1140
  meta: object;
1143
1141
  }>;
1144
1142
  tdd_phase_transition_request: import("@trpc/server").TRPCMutationProcedure<{
1145
1143
  input: {
1146
- readonly behaviorId?: number | undefined;
1144
+ readonly tddTaskId: number;
1145
+ readonly goalId: number;
1146
+ readonly requestedPhase: "extended-red" | "green" | "green-without-red" | "green.fake-it" | "red" | "red.triangulate" | "refactor" | "spike";
1147
1147
  readonly citedArtifactId?: number | undefined;
1148
1148
  readonly citedArtifactKind?: "code_written" | "refactor" | "test_failed_run" | "test_passed_run" | "test_weakened" | "test_written" | undefined;
1149
- readonly goalId: number;
1149
+ readonly behaviorId?: number | undefined;
1150
1150
  readonly reason?: string | undefined;
1151
- readonly requestedPhase: "extended-red" | "green" | "green-without-red" | "green.fake-it" | "red" | "red.triangulate" | "refactor" | "spike";
1152
- readonly tddTaskId: number;
1153
1151
  };
1154
1152
  output: {
1155
1153
  readonly accepted: false;
@@ -1167,47 +1165,47 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1167
1165
  meta: object;
1168
1166
  }>;
1169
1167
  tdd_goal: import("@trpc/server").TRPCMutationProcedure<{
1170
- input: {
1171
- readonly action: "create";
1172
- readonly goal: string;
1173
- readonly tddTaskId: number;
1174
- } | {
1168
+ input: import("effect/Schema").Struct.ReadonlySide<{
1169
+ readonly action: import("effect/Schema").Literal<"create">;
1170
+ readonly tddTaskId: import("effect/Schema").Number;
1171
+ readonly goal: import("effect/Schema").String;
1172
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1173
+ readonly action: import("effect/Schema").Literal<"delete">;
1174
+ readonly id: import("effect/Schema").Number;
1175
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1176
+ readonly action: import("effect/Schema").Literal<"get">;
1177
+ readonly id: import("effect/Schema").Number;
1178
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1179
+ readonly action: import("effect/Schema").Literal<"list">;
1180
+ readonly tddTaskId: import("effect/Schema").Number;
1181
+ }, "Encoded"> | {
1175
1182
  readonly action: "update";
1176
- readonly goal?: string | undefined;
1177
1183
  readonly id: number;
1184
+ readonly goal?: string | undefined;
1178
1185
  readonly status?: "abandoned" | "done" | "in_progress" | "pending" | undefined;
1179
- } | {
1180
- readonly action: "delete";
1181
- readonly id: number;
1182
- } | {
1183
- readonly action: "get";
1184
- readonly id: number;
1185
- } | {
1186
- readonly action: "list";
1187
- readonly tddTaskId: number;
1188
1186
  };
1189
1187
  output: TddErrorEnvelope | {
1190
1188
  ok: true;
1191
1189
  action: "create";
1192
- goal: {
1193
- readonly id: number;
1194
- readonly sessionId: number;
1195
- readonly ordinal: number;
1196
- readonly goal: string;
1197
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1198
- readonly createdAt: string;
1199
- };
1190
+ goal: import("effect/Schema").Struct.ReadonlySide<{
1191
+ readonly id: import("effect/Schema").Number;
1192
+ readonly sessionId: import("effect/Schema").Number;
1193
+ readonly ordinal: import("effect/Schema").Number;
1194
+ readonly goal: import("effect/Schema").String;
1195
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1196
+ readonly createdAt: import("effect/Schema").String;
1197
+ }, "Type">;
1200
1198
  } | {
1201
1199
  ok: true;
1202
1200
  action: "update";
1203
- goal: {
1204
- readonly id: number;
1205
- readonly sessionId: number;
1206
- readonly ordinal: number;
1207
- readonly goal: string;
1208
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1209
- readonly createdAt: string;
1210
- };
1201
+ goal: import("effect/Schema").Struct.ReadonlySide<{
1202
+ readonly id: import("effect/Schema").Number;
1203
+ readonly sessionId: import("effect/Schema").Number;
1204
+ readonly ordinal: import("effect/Schema").Number;
1205
+ readonly goal: import("effect/Schema").String;
1206
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1207
+ readonly createdAt: import("effect/Schema").String;
1208
+ }, "Type">;
1211
1209
  } | {
1212
1210
  ok: true;
1213
1211
  action: "delete";
@@ -1221,98 +1219,98 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1221
1219
  id?: undefined;
1222
1220
  action: "get";
1223
1221
  found: true;
1224
- goal: {
1225
- readonly id: number;
1226
- readonly sessionId: number;
1227
- readonly ordinal: number;
1228
- readonly goal: string;
1229
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1230
- readonly createdAt: string;
1231
- readonly behaviors: readonly {
1232
- readonly id: number;
1233
- readonly goalId: number;
1234
- readonly ordinal: number;
1235
- readonly behavior: string;
1236
- readonly suggestedTestName: string | null;
1237
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1238
- readonly createdAt: string;
1239
- }[];
1240
- };
1222
+ goal: import("effect/Schema").Struct.ReadonlySide<{
1223
+ readonly id: import("effect/Schema").Number;
1224
+ readonly sessionId: import("effect/Schema").Number;
1225
+ readonly ordinal: import("effect/Schema").Number;
1226
+ readonly goal: import("effect/Schema").String;
1227
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1228
+ readonly createdAt: import("effect/Schema").String;
1229
+ readonly behaviors: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1230
+ readonly id: import("effect/Schema").Number;
1231
+ readonly goalId: import("effect/Schema").Number;
1232
+ readonly ordinal: import("effect/Schema").Number;
1233
+ readonly behavior: import("effect/Schema").String;
1234
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1235
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1236
+ readonly createdAt: import("effect/Schema").String;
1237
+ }>>;
1238
+ }, "Type">;
1241
1239
  } | {
1242
1240
  ok: true;
1243
1241
  action: "list";
1244
1242
  tddTaskId: number;
1245
- goals: readonly {
1246
- readonly id: number;
1247
- readonly sessionId: number;
1248
- readonly ordinal: number;
1249
- readonly goal: string;
1250
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1251
- readonly createdAt: string;
1252
- readonly behaviors: readonly {
1253
- readonly id: number;
1254
- readonly goalId: number;
1255
- readonly ordinal: number;
1256
- readonly behavior: string;
1257
- readonly suggestedTestName: string | null;
1258
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1259
- readonly createdAt: string;
1260
- }[];
1261
- }[];
1243
+ goals: readonly import("effect/Schema").Struct.ReadonlySide<{
1244
+ readonly id: import("effect/Schema").Number;
1245
+ readonly sessionId: import("effect/Schema").Number;
1246
+ readonly ordinal: import("effect/Schema").Number;
1247
+ readonly goal: import("effect/Schema").String;
1248
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1249
+ readonly createdAt: import("effect/Schema").String;
1250
+ readonly behaviors: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1251
+ readonly id: import("effect/Schema").Number;
1252
+ readonly goalId: import("effect/Schema").Number;
1253
+ readonly ordinal: import("effect/Schema").Number;
1254
+ readonly behavior: import("effect/Schema").String;
1255
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1256
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1257
+ readonly createdAt: import("effect/Schema").String;
1258
+ }>>;
1259
+ }, "Type">[];
1262
1260
  };
1263
1261
  meta: object;
1264
1262
  }>;
1265
1263
  tdd_behavior: import("@trpc/server").TRPCMutationProcedure<{
1266
- input: {
1264
+ input: import("effect/Schema").Struct.ReadonlySide<{
1265
+ readonly action: import("effect/Schema").Literal<"delete">;
1266
+ readonly id: import("effect/Schema").Number;
1267
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1268
+ readonly action: import("effect/Schema").Literal<"get">;
1269
+ readonly id: import("effect/Schema").Number;
1270
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1271
+ readonly action: import("effect/Schema").Literal<"list_by_goal">;
1272
+ readonly goalId: import("effect/Schema").Number;
1273
+ }, "Encoded"> | import("effect/Schema").Struct.ReadonlySide<{
1274
+ readonly action: import("effect/Schema").Literal<"list_by_tdd_task">;
1275
+ readonly tddTaskId: import("effect/Schema").Number;
1276
+ }, "Encoded"> | {
1267
1277
  readonly action: "create";
1268
- readonly behavior: string;
1269
- readonly dependsOnBehaviorIds?: readonly number[] | undefined;
1270
1278
  readonly goalId: number;
1279
+ readonly behavior: string;
1271
1280
  readonly suggestedTestName?: string | undefined;
1281
+ readonly dependsOnBehaviorIds?: readonly number[] | undefined;
1272
1282
  } | {
1273
1283
  readonly action: "update";
1274
- readonly behavior?: string | undefined;
1275
- readonly dependsOnBehaviorIds?: readonly number[] | undefined;
1276
1284
  readonly id: number;
1277
- readonly status?: "abandoned" | "done" | "in_progress" | "pending" | undefined;
1285
+ readonly behavior?: string | undefined;
1278
1286
  readonly suggestedTestName?: string | null | undefined;
1279
- } | {
1280
- readonly action: "delete";
1281
- readonly id: number;
1282
- } | {
1283
- readonly action: "get";
1284
- readonly id: number;
1285
- } | {
1286
- readonly action: "list_by_goal";
1287
- readonly goalId: number;
1288
- } | {
1289
- readonly action: "list_by_tdd_task";
1290
- readonly tddTaskId: number;
1287
+ readonly status?: "abandoned" | "done" | "in_progress" | "pending" | undefined;
1288
+ readonly dependsOnBehaviorIds?: readonly number[] | undefined;
1291
1289
  };
1292
1290
  output: TddErrorEnvelope | {
1293
1291
  ok: true;
1294
1292
  action: "create";
1295
- behavior: {
1296
- readonly id: number;
1297
- readonly goalId: number;
1298
- readonly ordinal: number;
1299
- readonly behavior: string;
1300
- readonly suggestedTestName: string | null;
1301
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1302
- readonly createdAt: string;
1303
- };
1293
+ behavior: import("effect/Schema").Struct.ReadonlySide<{
1294
+ readonly id: import("effect/Schema").Number;
1295
+ readonly goalId: import("effect/Schema").Number;
1296
+ readonly ordinal: import("effect/Schema").Number;
1297
+ readonly behavior: import("effect/Schema").String;
1298
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1299
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1300
+ readonly createdAt: import("effect/Schema").String;
1301
+ }, "Type">;
1304
1302
  } | {
1305
1303
  ok: true;
1306
1304
  action: "update";
1307
- behavior: {
1308
- readonly id: number;
1309
- readonly goalId: number;
1310
- readonly ordinal: number;
1311
- readonly behavior: string;
1312
- readonly suggestedTestName: string | null;
1313
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1314
- readonly createdAt: string;
1315
- };
1305
+ behavior: import("effect/Schema").Struct.ReadonlySide<{
1306
+ readonly id: import("effect/Schema").Number;
1307
+ readonly goalId: import("effect/Schema").Number;
1308
+ readonly ordinal: import("effect/Schema").Number;
1309
+ readonly behavior: import("effect/Schema").String;
1310
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1311
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1312
+ readonly createdAt: import("effect/Schema").String;
1313
+ }, "Type">;
1316
1314
  } | {
1317
1315
  ok: true;
1318
1316
  action: "delete";
@@ -1325,179 +1323,179 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1325
1323
  } | {
1326
1324
  action: "get";
1327
1325
  found: true;
1328
- behavior: {
1329
- readonly id: number;
1330
- readonly goalId: number;
1331
- readonly ordinal: number;
1332
- readonly behavior: string;
1333
- readonly suggestedTestName: string | null;
1334
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1335
- readonly createdAt: string;
1336
- readonly parentGoal: {
1337
- readonly id: number;
1338
- readonly goal: string;
1339
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1340
- };
1341
- readonly dependencies: readonly {
1342
- readonly id: number;
1343
- readonly goalId: number;
1344
- readonly ordinal: number;
1345
- readonly behavior: string;
1346
- readonly suggestedTestName: string | null;
1347
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1348
- readonly createdAt: string;
1349
- }[];
1350
- };
1326
+ behavior: import("effect/Schema").Struct.ReadonlySide<{
1327
+ readonly id: import("effect/Schema").Number;
1328
+ readonly goalId: import("effect/Schema").Number;
1329
+ readonly ordinal: import("effect/Schema").Number;
1330
+ readonly behavior: import("effect/Schema").String;
1331
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1332
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1333
+ readonly createdAt: import("effect/Schema").String;
1334
+ readonly parentGoal: import("effect/Schema").Struct<{
1335
+ readonly id: import("effect/Schema").Number;
1336
+ readonly goal: import("effect/Schema").String;
1337
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1338
+ }>;
1339
+ readonly dependencies: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1340
+ readonly id: import("effect/Schema").Number;
1341
+ readonly goalId: import("effect/Schema").Number;
1342
+ readonly ordinal: import("effect/Schema").Number;
1343
+ readonly behavior: import("effect/Schema").String;
1344
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1345
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1346
+ readonly createdAt: import("effect/Schema").String;
1347
+ }>>;
1348
+ }, "Type">;
1351
1349
  id?: undefined;
1352
1350
  } | {
1353
1351
  ok: true;
1354
1352
  action: "list_by_goal";
1355
1353
  goalId: number;
1356
- behaviors: readonly {
1357
- readonly id: number;
1358
- readonly goalId: number;
1359
- readonly ordinal: number;
1360
- readonly behavior: string;
1361
- readonly suggestedTestName: string | null;
1362
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1363
- readonly createdAt: string;
1364
- }[];
1354
+ behaviors: readonly import("effect/Schema").Struct.ReadonlySide<{
1355
+ readonly id: import("effect/Schema").Number;
1356
+ readonly goalId: import("effect/Schema").Number;
1357
+ readonly ordinal: import("effect/Schema").Number;
1358
+ readonly behavior: import("effect/Schema").String;
1359
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1360
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1361
+ readonly createdAt: import("effect/Schema").String;
1362
+ }, "Type">[];
1365
1363
  } | {
1366
1364
  ok: true;
1367
1365
  action: "list_by_tdd_task";
1368
1366
  tddTaskId: number;
1369
- behaviors: readonly {
1370
- readonly id: number;
1371
- readonly goalId: number;
1372
- readonly ordinal: number;
1373
- readonly behavior: string;
1374
- readonly suggestedTestName: string | null;
1375
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
1376
- readonly createdAt: string;
1377
- }[];
1367
+ behaviors: readonly import("effect/Schema").Struct.ReadonlySide<{
1368
+ readonly id: import("effect/Schema").Number;
1369
+ readonly goalId: import("effect/Schema").Number;
1370
+ readonly ordinal: import("effect/Schema").Number;
1371
+ readonly behavior: import("effect/Schema").String;
1372
+ readonly suggestedTestName: import("effect/Schema").NullOr<import("effect/Schema").String>;
1373
+ readonly status: import("effect/Schema").Literals<readonly ["pending", "in_progress", "done", "abandoned"]>;
1374
+ readonly createdAt: import("effect/Schema").String;
1375
+ }, "Type">[];
1378
1376
  };
1379
1377
  meta: object;
1380
1378
  }>;
1381
1379
  tdd_artifact_list: import("@trpc/server").TRPCQueryProcedure<{
1382
1380
  input: {
1381
+ readonly tddTaskId: number;
1383
1382
  readonly artifactKind?: "code_written" | "refactor" | "test_failed_run" | "test_passed_run" | "test_weakened" | "test_written" | undefined;
1383
+ readonly phaseId?: number | undefined;
1384
1384
  readonly behaviorId?: number | undefined;
1385
1385
  readonly limit?: number | undefined;
1386
- readonly phaseId?: number | undefined;
1387
- readonly tddTaskId: number;
1388
- };
1389
- output: {
1390
- readonly tddTaskId: number;
1391
- readonly filters: {
1392
- readonly artifactKind?: "code_written" | "refactor" | "test_failed_run" | "test_passed_run" | "test_weakened" | "test_written" | undefined;
1393
- readonly phaseId?: number | undefined;
1394
- readonly behaviorId?: number | undefined;
1395
- };
1396
- readonly count: number;
1397
- readonly artifacts: readonly {
1398
- readonly id: number;
1399
- readonly tddTaskId: number;
1400
- readonly phaseId: number;
1401
- readonly phaseName: "extended-red" | "green" | "green-without-red" | "green.fake-it" | "red" | "red.triangulate" | "refactor" | "spike";
1402
- readonly artifactKind: "code_written" | "refactor" | "test_failed_run" | "test_passed_run" | "test_weakened" | "test_written";
1403
- readonly behaviorId: number | null;
1404
- readonly testCaseId: number | null;
1405
- readonly testRunId: number | null;
1406
- readonly testFirstFailureRunId: number | null;
1407
- readonly recordedAt: string;
1408
- }[];
1409
1386
  };
1387
+ output: import("effect/Schema").Struct.ReadonlySide<{
1388
+ readonly tddTaskId: import("effect/Schema").Number;
1389
+ readonly filters: import("effect/Schema").Struct<{
1390
+ readonly artifactKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1391
+ readonly phaseId: import("effect/Schema").optional<import("effect/Schema").Number>;
1392
+ readonly behaviorId: import("effect/Schema").optional<import("effect/Schema").Number>;
1393
+ }>;
1394
+ readonly count: import("effect/Schema").Number;
1395
+ readonly artifacts: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1396
+ readonly id: import("effect/Schema").Number;
1397
+ readonly tddTaskId: import("effect/Schema").Number;
1398
+ readonly phaseId: import("effect/Schema").Number;
1399
+ readonly phaseName: import("effect/Schema").Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1400
+ readonly artifactKind: import("effect/Schema").Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>;
1401
+ readonly behaviorId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1402
+ readonly testCaseId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1403
+ readonly testRunId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1404
+ readonly testFirstFailureRunId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1405
+ readonly recordedAt: import("effect/Schema").String;
1406
+ }>>;
1407
+ }, "Type">;
1410
1408
  meta: object;
1411
1409
  }>;
1412
1410
  hypothesis: import("@trpc/server").TRPCMutationProcedure<{
1413
1411
  input: {
1414
1412
  readonly action: "record";
1415
- readonly citedStackFrameId?: number | undefined;
1416
- readonly citedTestErrorId?: number | undefined;
1413
+ readonly sessionId?: number | undefined;
1417
1414
  readonly content: string;
1418
1415
  readonly createdTurnId?: number | undefined;
1419
- readonly sessionId?: number | undefined;
1416
+ readonly citedTestErrorId?: number | undefined;
1417
+ readonly citedStackFrameId?: number | undefined;
1420
1418
  } | {
1421
1419
  readonly action: "validate";
1422
1420
  readonly id: number;
1423
1421
  readonly outcome: "abandoned" | "confirmed" | "refuted";
1424
- readonly validatedAt: string;
1425
1422
  readonly validatedTurnId?: number | undefined;
1423
+ readonly validatedAt: string;
1426
1424
  } | {
1427
1425
  readonly action: "list";
1428
- readonly limit?: number | undefined;
1429
- readonly outcome?: "abandoned" | "confirmed" | "open" | "refuted" | undefined;
1430
1426
  readonly sessionId?: number | undefined;
1427
+ readonly outcome?: "abandoned" | "confirmed" | "open" | "refuted" | undefined;
1428
+ readonly limit?: number | undefined;
1431
1429
  };
1432
- output: {
1433
- readonly action: "record";
1434
- readonly id: number;
1435
- } | {
1436
- readonly action: "validate";
1437
- } | {
1438
- readonly action: "list";
1439
- readonly count: number;
1440
- readonly hypotheses: readonly {
1441
- readonly id: number;
1442
- readonly sessionId: number;
1443
- readonly content: string;
1444
- readonly citedTestErrorId: number | null;
1445
- readonly citedStackFrameId: number | null;
1446
- readonly validationOutcome: "abandoned" | "confirmed" | "refuted" | null;
1447
- readonly validatedAt: string | null;
1448
- }[];
1449
- };
1430
+ output: import("effect/Schema").Struct.ReadonlySide<{
1431
+ readonly action: import("effect/Schema").Literal<"record">;
1432
+ readonly id: import("effect/Schema").Number;
1433
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1434
+ readonly action: import("effect/Schema").Literal<"validate">;
1435
+ }, "Type"> | import("effect/Schema").Struct.ReadonlySide<{
1436
+ readonly action: import("effect/Schema").Literal<"list">;
1437
+ readonly count: import("effect/Schema").Number;
1438
+ readonly hypotheses: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1439
+ readonly id: import("effect/Schema").Number;
1440
+ readonly sessionId: import("effect/Schema").Number;
1441
+ readonly content: import("effect/Schema").String;
1442
+ readonly citedTestErrorId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1443
+ readonly citedStackFrameId: import("effect/Schema").NullOr<import("effect/Schema").Number>;
1444
+ readonly validationOutcome: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["confirmed", "refuted", "abandoned"]>>;
1445
+ readonly validatedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
1446
+ }>>;
1447
+ }, "Type">;
1450
1448
  meta: object;
1451
1449
  }>;
1452
1450
  acceptance_metrics: import("@trpc/server").TRPCQueryProcedure<{
1453
- input: {};
1454
- output: {
1455
- readonly phaseEvidenceIntegrity: {
1456
- readonly total: number;
1457
- readonly compliant: number;
1458
- readonly ratio: number;
1459
- };
1460
- readonly complianceHookResponsiveness: {
1461
- readonly total: number;
1462
- readonly withFollowup: number;
1463
- readonly ratio: number;
1464
- };
1465
- readonly orientationUsefulness: {
1466
- readonly total: number;
1467
- readonly referencedCount: number;
1468
- readonly ratio: number;
1469
- };
1470
- readonly antiPatternDetectionRate: {
1471
- readonly total: number;
1472
- readonly cleanSessions: number;
1473
- readonly ratio: number;
1474
- };
1475
- };
1451
+ input: import("effect/Schema").Struct.ReadonlySide<{}, "Encoded">;
1452
+ output: import("effect/Schema").Struct.ReadonlySide<{
1453
+ readonly phaseEvidenceIntegrity: import("effect/Schema").Struct<{
1454
+ readonly total: import("effect/Schema").Number;
1455
+ readonly compliant: import("effect/Schema").Number;
1456
+ readonly ratio: import("effect/Schema").Number;
1457
+ }>;
1458
+ readonly complianceHookResponsiveness: import("effect/Schema").Struct<{
1459
+ readonly total: import("effect/Schema").Number;
1460
+ readonly withFollowup: import("effect/Schema").Number;
1461
+ readonly ratio: import("effect/Schema").Number;
1462
+ }>;
1463
+ readonly orientationUsefulness: import("effect/Schema").Struct<{
1464
+ readonly total: import("effect/Schema").Number;
1465
+ readonly referencedCount: import("effect/Schema").Number;
1466
+ readonly ratio: import("effect/Schema").Number;
1467
+ }>;
1468
+ readonly antiPatternDetectionRate: import("effect/Schema").Struct<{
1469
+ readonly total: import("effect/Schema").Number;
1470
+ readonly cleanSessions: import("effect/Schema").Number;
1471
+ readonly ratio: import("effect/Schema").Number;
1472
+ }>;
1473
+ }, "Type">;
1476
1474
  meta: object;
1477
1475
  }>;
1478
1476
  triage_brief: import("@trpc/server").TRPCQueryProcedure<{
1479
1477
  input: {
1480
- readonly maxLines?: number | undefined;
1481
1478
  readonly project?: string | undefined;
1479
+ readonly maxLines?: number | undefined;
1482
1480
  };
1483
- output: {
1484
- readonly hasContent: boolean;
1485
- readonly markdown: string;
1486
- };
1481
+ output: import("effect/Schema").Struct.ReadonlySide<{
1482
+ readonly hasContent: import("effect/Schema").Boolean;
1483
+ readonly markdown: import("effect/Schema").String;
1484
+ }, "Type">;
1487
1485
  meta: object;
1488
1486
  }>;
1489
1487
  wrapup_prompt: import("@trpc/server").TRPCQueryProcedure<{
1490
1488
  input: {
1489
+ readonly sessionId?: number | undefined;
1491
1490
  readonly chatId?: string | undefined;
1492
1491
  readonly kind?: "pre_compact" | "session_end" | "stop" | "tdd_handoff" | "user_prompt_nudge" | undefined;
1493
- readonly sessionId?: number | undefined;
1494
1492
  readonly userPromptHint?: string | undefined;
1495
1493
  };
1496
- output: {
1497
- readonly hasContent: boolean;
1498
- readonly kind: "pre_compact" | "session_end" | "stop" | "tdd_handoff" | "user_prompt_nudge";
1499
- readonly markdown: string;
1500
- };
1494
+ output: import("effect/Schema").Struct.ReadonlySide<{
1495
+ readonly hasContent: import("effect/Schema").Boolean;
1496
+ readonly kind: import("effect/Schema").Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>;
1497
+ readonly markdown: import("effect/Schema").String;
1498
+ }, "Type">;
1501
1499
  meta: object;
1502
1500
  }>;
1503
1501
  commit_changes: import("@trpc/server").TRPCQueryProcedure<{
@@ -1507,26 +1505,26 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1507
1505
  output: {
1508
1506
  readonly filterSha?: string | undefined;
1509
1507
  readonly count: number;
1510
- readonly commits: readonly {
1511
- readonly sha: string;
1512
- readonly parentSha: string | null;
1513
- readonly message: string | null;
1514
- readonly author: string | null;
1515
- readonly committedAt: string | null;
1516
- readonly branch: string | null;
1517
- readonly files: readonly {
1518
- readonly filePath: string;
1519
- readonly changeKind: "added" | "deleted" | "modified" | "renamed" | "untracked-modified";
1520
- }[];
1521
- }[];
1508
+ readonly commits: readonly import("effect/Schema").Struct.ReadonlySide<{
1509
+ readonly sha: import("effect/Schema").String;
1510
+ readonly parentSha: import("effect/Schema").NullOr<import("effect/Schema").String>;
1511
+ readonly message: import("effect/Schema").NullOr<import("effect/Schema").String>;
1512
+ readonly author: import("effect/Schema").NullOr<import("effect/Schema").String>;
1513
+ readonly committedAt: import("effect/Schema").NullOr<import("effect/Schema").String>;
1514
+ readonly branch: import("effect/Schema").NullOr<import("effect/Schema").String>;
1515
+ readonly files: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1516
+ readonly filePath: import("effect/Schema").String;
1517
+ readonly changeKind: import("effect/Schema").Literals<readonly ["added", "modified", "deleted", "renamed", "untracked-modified"]>;
1518
+ }>>;
1519
+ }, "Type">[];
1522
1520
  };
1523
1521
  meta: object;
1524
1522
  }>;
1525
1523
  ping: import("@trpc/server").TRPCQueryProcedure<{
1526
1524
  input: void;
1527
- output: {
1528
- readonly message: "pong";
1529
- };
1525
+ output: import("effect/Schema").Struct.ReadonlySide<{
1526
+ readonly message: import("effect/Schema").Literal<"pong">;
1527
+ }, "Type">;
1530
1528
  meta: object;
1531
1529
  }>;
1532
1530
  }>>;