@vitest-agent/mcp 5.2.10 → 5.3.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,7 +1,7 @@
1
1
  import { ToolRefusal } from "@effected/mcp";
2
2
  import { Context, Effect, Layer, Schema, Stdio } from "effect";
3
3
  import { DataReader, DataStore, ProjectDiscovery, SessionContext } from "@vitest-agent/engine";
4
- import { Toolkit } from "effect/ai";
4
+ import { McpServer, Toolkit } from "effect/ai";
5
5
  import "@effected/git";
6
6
  import "@vitest-agent/sdk";
7
7
  import { Remediation } from "@effected/engine";
@@ -193,120 +193,179 @@ export declare const SERVER_INSTRUCTIONS: string;
193
193
  */
194
194
  export declare const ServerLayer: (options: ServerLayerOptions) => Layer.Layer<never, never, PlatformServices | McpSession | DataReader | DataStore | ProjectDiscovery>;
195
195
  /**
196
- * The `ping` tool's success payload.
196
+ * The `acceptance_metrics` tool's success payload.
197
197
  *
198
198
  * @public
199
199
  */
200
- export declare const PingResult: Schema.Struct<{
201
- readonly message: Schema.Literal<"pong">;
202
- readonly distribution: Schema.NullOr<Schema.Struct<{
203
- readonly name: Schema.String;
204
- readonly version: Schema.String;
205
- }>>;
200
+ export declare const AcceptanceMetricsResult: Schema.Struct<{
201
+ readonly phaseEvidenceIntegrity: Schema.Struct<{
202
+ readonly total: Schema.Finite;
203
+ readonly compliant: Schema.Finite;
204
+ readonly ratio: Schema.Finite;
205
+ }>;
206
+ readonly complianceHookResponsiveness: Schema.Struct<{
207
+ readonly total: Schema.Finite;
208
+ readonly withFollowup: Schema.Finite;
209
+ readonly ratio: Schema.Finite;
210
+ }>;
211
+ readonly orientationUsefulness: Schema.Struct<{
212
+ readonly total: Schema.Finite;
213
+ readonly referencedCount: Schema.Finite;
214
+ readonly ratio: Schema.Finite;
215
+ }>;
216
+ readonly antiPatternDetectionRate: Schema.Struct<{
217
+ readonly total: Schema.Finite;
218
+ readonly cleanSessions: Schema.Finite;
219
+ readonly ratio: Schema.Finite;
220
+ }>;
206
221
  }>;
207
222
  /**
208
- * The decoded {@link PingResult}.
223
+ * The decoded {@link AcceptanceMetricsResult}.
209
224
  *
210
225
  * @public
211
226
  */
212
- type PingResultType = Schema.Schema.Type<typeof PingResult>;
227
+ type AcceptanceMetricsResultType = Schema.Schema.Type<typeof AcceptanceMetricsResult>;
213
228
  /**
214
- * The `help` tool's success payload.
229
+ * Handler for {@link acceptanceMetricsTool}.
215
230
  *
216
231
  * @public
217
232
  */
218
- export declare const HelpResult: Schema.Struct<{
219
- readonly helpText: Schema.String;
220
- }>;
233
+ declare const handleAcceptanceMetrics: () => Effect.Effect<AcceptanceMetricsResultType, never, DataReader>;
221
234
  /**
222
- * The decoded {@link HelpResult}.
235
+ * The `cache_health` tool's success payload.
223
236
  *
224
237
  * @public
225
238
  */
226
- type HelpResultType = Schema.Schema.Type<typeof HelpResult>;
239
+ export declare const CacheHealthResult: Schema.Union<readonly [Schema.Struct<{
240
+ readonly manifestPresent: Schema.Literal<true>;
241
+ readonly manifest: Schema.Struct<{
242
+ readonly updatedAt: Schema.String;
243
+ readonly cacheDir: Schema.String;
244
+ readonly projects: Schema.$Array<Schema.Struct<{
245
+ readonly project: Schema.String;
246
+ readonly reportFile: Schema.String;
247
+ readonly historyFile: Schema.optional<Schema.String>;
248
+ readonly lastRun: Schema.NullOr<Schema.String>;
249
+ readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
250
+ }>>;
251
+ }>;
252
+ readonly ageMs: Schema.Finite;
253
+ readonly stale: Schema.Boolean;
254
+ }>, Schema.Struct<{
255
+ readonly manifestPresent: Schema.Literal<false>;
256
+ }>]>;
227
257
  /**
228
- * The `test_status` tool's success payload.
258
+ * The decoded {@link CacheHealthResult}.
229
259
  *
230
260
  * @public
231
261
  */
232
- export declare const TestStatusResult: Schema.Union<readonly [Schema.Struct<{
233
- readonly dataAvailable: Schema.Literal<true>;
234
- readonly manifestUpdatedAt: Schema.String;
235
- readonly projectFilter: Schema.optional<Schema.String>;
236
- readonly entries: Schema.$Array<Schema.Struct<{
237
- readonly project: Schema.String;
238
- readonly reportFile: Schema.String;
239
- readonly historyFile: Schema.optional<Schema.String>;
240
- readonly lastRun: Schema.NullOr<Schema.String>;
241
- readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
262
+ type CacheHealthResultType = Schema.Schema.Type<typeof CacheHealthResult>;
263
+ /**
264
+ * Handler for {@link cacheHealthTool}.
265
+ *
266
+ * @public
267
+ */
268
+ declare const handleCacheHealth: () => Effect.Effect<CacheHealthResultType, never, DataReader>;
269
+ /**
270
+ * The `commit_changes` tool's success payload.
271
+ *
272
+ * @public
273
+ */
274
+ export declare const CommitChangesResult: Schema.Struct<{
275
+ readonly filterSha: Schema.optional<Schema.String>;
276
+ readonly count: Schema.Finite;
277
+ readonly commits: Schema.$Array<Schema.Struct<{
278
+ readonly sha: Schema.String;
279
+ readonly parentSha: Schema.NullOr<Schema.String>;
280
+ readonly message: Schema.NullOr<Schema.String>;
281
+ readonly author: Schema.NullOr<Schema.String>;
282
+ readonly committedAt: Schema.NullOr<Schema.String>;
283
+ readonly branch: Schema.NullOr<Schema.String>;
284
+ readonly files: Schema.$Array<Schema.Struct<{
285
+ readonly filePath: Schema.String;
286
+ readonly changeKind: Schema.Literals<readonly ["added", "modified", "deleted", "renamed", "untracked-modified"]>;
287
+ }>>;
242
288
  }>>;
243
- }>, Schema.Struct<{
244
- readonly dataAvailable: Schema.Literal<false>;
245
- readonly projectFilter: Schema.optional<Schema.String>;
246
- readonly reason: Schema.Literals<readonly ["no_manifest", "project_filter_empty"]>;
247
- }>]>;
289
+ }>;
248
290
  /**
249
- * The decoded {@link TestStatusResult}.
291
+ * The decoded {@link CommitChangesResult}.
250
292
  *
251
293
  * @public
252
294
  */
253
- type TestStatusResultType = Schema.Schema.Type<typeof TestStatusResult>;
295
+ type CommitChangesResultType = Schema.Schema.Type<typeof CommitChangesResult>;
254
296
  /**
255
- * The `test_status` tool's parameters.
297
+ * The `commit_changes` tool's parameters.
256
298
  *
257
299
  * @public
258
300
  */
259
- export declare const TestStatusInput: Schema.Struct<{
260
- readonly project: Schema.optionalKey<Schema.String>;
301
+ export declare const CommitChangesInput: Schema.Struct<{
302
+ readonly sha: Schema.optionalKey<Schema.String>;
261
303
  }>;
262
304
  /**
263
- * The decoded {@link TestStatusInput}.
305
+ * The decoded {@link CommitChangesInput}.
264
306
  *
265
307
  * @public
266
308
  */
267
- type TestStatusInputType = Schema.Schema.Type<typeof TestStatusInput>;
309
+ type CommitChangesInputType = Schema.Schema.Type<typeof CommitChangesInput>;
268
310
  /**
269
- * The `test_overview` tool's success payload.
311
+ * Handler for {@link commitChangesTool}.
270
312
  *
271
313
  * @public
272
314
  */
273
- export declare const TestOverviewResult: Schema.Union<readonly [Schema.Struct<{
274
- readonly dataAvailable: Schema.Literal<true>;
275
- readonly projectFilter: Schema.optional<Schema.String>;
276
- readonly runs: Schema.$Array<Schema.Struct<{
277
- readonly project: Schema.String;
278
- readonly lastRun: Schema.NullOr<Schema.String>;
279
- readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
280
- readonly total: Schema.Number;
281
- readonly passed: Schema.Number;
282
- readonly failed: Schema.Number;
283
- readonly skipped: Schema.Number;
284
- }>>;
315
+ declare const handleCommitChanges: (input: CommitChangesInputType) => Effect.Effect<CommitChangesResultType, never, DataReader>;
316
+ /**
317
+ * The `configure` tool's success payload.
318
+ *
319
+ * @public
320
+ */
321
+ export declare const ConfigureResult: Schema.Union<readonly [Schema.Struct<{
322
+ readonly found: Schema.Literal<true>;
323
+ readonly source: Schema.Literals<readonly ["requested", "latest"]>;
324
+ readonly settings: Schema.Struct<{
325
+ readonly hash: Schema.String;
326
+ readonly reporters: Schema.NullOr<Schema.String>;
327
+ readonly coverageEnabled: Schema.Boolean;
328
+ readonly coverageProvider: Schema.NullOr<Schema.String>;
329
+ readonly coverageThresholds: Schema.NullOr<Schema.String>;
330
+ readonly coverageTargets: Schema.NullOr<Schema.String>;
331
+ readonly pool: Schema.NullOr<Schema.String>;
332
+ readonly shard: Schema.NullOr<Schema.String>;
333
+ readonly project: Schema.NullOr<Schema.String>;
334
+ readonly environment: Schema.NullOr<Schema.String>;
335
+ readonly envVars: Schema.$Record<Schema.String, Schema.String>;
336
+ readonly capturedAt: Schema.String;
337
+ }>;
285
338
  }>, Schema.Struct<{
286
- readonly dataAvailable: Schema.Literal<false>;
287
- readonly projectFilter: Schema.optional<Schema.String>;
288
- readonly reason: Schema.Literals<readonly ["no_runs", "project_filter_empty"]>;
339
+ readonly found: Schema.Literal<false>;
340
+ readonly source: Schema.Literals<readonly ["requested", "latest"]>;
341
+ readonly requestedHash: Schema.optional<Schema.String>;
289
342
  }>]>;
290
343
  /**
291
- * The decoded {@link TestOverviewResult}.
344
+ * The decoded {@link ConfigureResult}.
292
345
  *
293
346
  * @public
294
347
  */
295
- type TestOverviewResultType = Schema.Schema.Type<typeof TestOverviewResult>;
348
+ type ConfigureResultType = Schema.Schema.Type<typeof ConfigureResult>;
296
349
  /**
297
- * The `test_overview` tool's parameters.
350
+ * The `configure` tool's parameters.
298
351
  *
299
352
  * @public
300
353
  */
301
- export declare const TestOverviewInput: Schema.Struct<{
302
- readonly project: Schema.optionalKey<Schema.String>;
354
+ export declare const ConfigureInput: Schema.Struct<{
355
+ readonly settingsHash: Schema.optionalKey<Schema.String>;
303
356
  }>;
304
357
  /**
305
- * The decoded {@link TestOverviewInput}.
358
+ * The decoded {@link ConfigureInput}.
306
359
  *
307
360
  * @public
308
361
  */
309
- type TestOverviewInputType = Schema.Schema.Type<typeof TestOverviewInput>;
362
+ type ConfigureInputType = Schema.Schema.Type<typeof ConfigureInput>;
363
+ /**
364
+ * Handler for {@link configureTool}.
365
+ *
366
+ * @public
367
+ */
368
+ declare const handleConfigure: (input: ConfigureInputType) => Effect.Effect<ConfigureResultType, never, DataReader>;
310
369
  /**
311
370
  * The `test_coverage` tool's success payload.
312
371
  *
@@ -317,81 +376,81 @@ export declare const TestCoverageResult: Schema.Union<readonly [Schema.Struct<{
317
376
  readonly project: Schema.String;
318
377
  readonly coverage: Schema.Struct<{
319
378
  readonly totals: Schema.Struct<{
320
- readonly statements: Schema.Number;
321
- readonly branches: Schema.Number;
322
- readonly functions: Schema.Number;
323
- readonly lines: Schema.Number;
379
+ readonly statements: Schema.Finite;
380
+ readonly branches: Schema.Finite;
381
+ readonly functions: Schema.Finite;
382
+ readonly lines: Schema.Finite;
324
383
  }>;
325
384
  readonly thresholds: Schema.Struct<{
326
385
  readonly global: Schema.Struct<{
327
- readonly lines: Schema.optional<Schema.Number>;
328
- readonly functions: Schema.optional<Schema.Number>;
329
- readonly branches: Schema.optional<Schema.Number>;
330
- readonly statements: Schema.optional<Schema.Number>;
386
+ readonly lines: Schema.optional<Schema.Finite>;
387
+ readonly functions: Schema.optional<Schema.Finite>;
388
+ readonly branches: Schema.optional<Schema.Finite>;
389
+ readonly statements: Schema.optional<Schema.Finite>;
331
390
  }>;
332
391
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
333
- readonly lines: Schema.optional<Schema.Number>;
334
- readonly functions: Schema.optional<Schema.Number>;
335
- readonly branches: Schema.optional<Schema.Number>;
336
- readonly statements: Schema.optional<Schema.Number>;
392
+ readonly lines: Schema.optional<Schema.Finite>;
393
+ readonly functions: Schema.optional<Schema.Finite>;
394
+ readonly branches: Schema.optional<Schema.Finite>;
395
+ readonly statements: Schema.optional<Schema.Finite>;
337
396
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
338
- readonly lines: Schema.optional<Schema.Number>;
339
- readonly functions: Schema.optional<Schema.Number>;
340
- readonly branches: Schema.optional<Schema.Number>;
341
- readonly statements: Schema.optional<Schema.Number>;
397
+ readonly lines: Schema.optional<Schema.Finite>;
398
+ readonly functions: Schema.optional<Schema.Finite>;
399
+ readonly branches: Schema.optional<Schema.Finite>;
400
+ readonly statements: Schema.optional<Schema.Finite>;
342
401
  }>]>>;
343
402
  }>]>>, never>;
344
403
  }>;
345
404
  readonly targets: Schema.optional<Schema.Struct<{
346
405
  readonly global: Schema.Struct<{
347
- readonly lines: Schema.optional<Schema.Number>;
348
- readonly functions: Schema.optional<Schema.Number>;
349
- readonly branches: Schema.optional<Schema.Number>;
350
- readonly statements: Schema.optional<Schema.Number>;
406
+ readonly lines: Schema.optional<Schema.Finite>;
407
+ readonly functions: Schema.optional<Schema.Finite>;
408
+ readonly branches: Schema.optional<Schema.Finite>;
409
+ readonly statements: Schema.optional<Schema.Finite>;
351
410
  }>;
352
411
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
353
- readonly lines: Schema.optional<Schema.Number>;
354
- readonly functions: Schema.optional<Schema.Number>;
355
- readonly branches: Schema.optional<Schema.Number>;
356
- readonly statements: Schema.optional<Schema.Number>;
412
+ readonly lines: Schema.optional<Schema.Finite>;
413
+ readonly functions: Schema.optional<Schema.Finite>;
414
+ readonly branches: Schema.optional<Schema.Finite>;
415
+ readonly statements: Schema.optional<Schema.Finite>;
357
416
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
358
- readonly lines: Schema.optional<Schema.Number>;
359
- readonly functions: Schema.optional<Schema.Number>;
360
- readonly branches: Schema.optional<Schema.Number>;
361
- readonly statements: Schema.optional<Schema.Number>;
417
+ readonly lines: Schema.optional<Schema.Finite>;
418
+ readonly functions: Schema.optional<Schema.Finite>;
419
+ readonly branches: Schema.optional<Schema.Finite>;
420
+ readonly statements: Schema.optional<Schema.Finite>;
362
421
  }>]>>;
363
422
  }>]>>, never>;
364
423
  }>>;
365
424
  readonly baselines: Schema.optional<Schema.Struct<{
366
425
  readonly global: Schema.Struct<{
367
- readonly lines: Schema.optional<Schema.Number>;
368
- readonly functions: Schema.optional<Schema.Number>;
369
- readonly branches: Schema.optional<Schema.Number>;
370
- readonly statements: Schema.optional<Schema.Number>;
426
+ readonly lines: Schema.optional<Schema.Finite>;
427
+ readonly functions: Schema.optional<Schema.Finite>;
428
+ readonly branches: Schema.optional<Schema.Finite>;
429
+ readonly statements: Schema.optional<Schema.Finite>;
371
430
  }>;
372
431
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
373
- readonly lines: Schema.optional<Schema.Number>;
374
- readonly functions: Schema.optional<Schema.Number>;
375
- readonly branches: Schema.optional<Schema.Number>;
376
- readonly statements: Schema.optional<Schema.Number>;
432
+ readonly lines: Schema.optional<Schema.Finite>;
433
+ readonly functions: Schema.optional<Schema.Finite>;
434
+ readonly branches: Schema.optional<Schema.Finite>;
435
+ readonly statements: Schema.optional<Schema.Finite>;
377
436
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
378
- readonly lines: Schema.optional<Schema.Number>;
379
- readonly functions: Schema.optional<Schema.Number>;
380
- readonly branches: Schema.optional<Schema.Number>;
381
- readonly statements: Schema.optional<Schema.Number>;
437
+ readonly lines: Schema.optional<Schema.Finite>;
438
+ readonly functions: Schema.optional<Schema.Finite>;
439
+ readonly branches: Schema.optional<Schema.Finite>;
440
+ readonly statements: Schema.optional<Schema.Finite>;
382
441
  }>]>>;
383
442
  }>]>>, never>;
384
443
  }>>;
385
444
  readonly scoped: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
386
445
  readonly scopedFiles: Schema.optional<Schema.$Array<Schema.String>>;
387
- readonly totalFiles: Schema.optional<Schema.Number>;
446
+ readonly totalFiles: Schema.optional<Schema.Finite>;
388
447
  readonly lowCoverage: Schema.$Array<Schema.Struct<{
389
448
  readonly file: Schema.String;
390
449
  readonly summary: Schema.Struct<{
391
- readonly statements: Schema.Number;
392
- readonly branches: Schema.Number;
393
- readonly functions: Schema.Number;
394
- readonly lines: Schema.Number;
450
+ readonly statements: Schema.Finite;
451
+ readonly branches: Schema.Finite;
452
+ readonly functions: Schema.Finite;
453
+ readonly lines: Schema.Finite;
395
454
  }>;
396
455
  readonly uncoveredLines: Schema.String;
397
456
  }>>;
@@ -399,10 +458,10 @@ export declare const TestCoverageResult: Schema.Union<readonly [Schema.Struct<{
399
458
  readonly belowTarget: Schema.optional<Schema.$Array<Schema.Struct<{
400
459
  readonly file: Schema.String;
401
460
  readonly summary: Schema.Struct<{
402
- readonly statements: Schema.Number;
403
- readonly branches: Schema.Number;
404
- readonly functions: Schema.Number;
405
- readonly lines: Schema.Number;
461
+ readonly statements: Schema.Finite;
462
+ readonly branches: Schema.Finite;
463
+ readonly functions: Schema.Finite;
464
+ readonly lines: Schema.Finite;
406
465
  }>;
407
466
  readonly uncoveredLines: Schema.String;
408
467
  }>>>;
@@ -410,16 +469,16 @@ export declare const TestCoverageResult: Schema.Union<readonly [Schema.Struct<{
410
469
  readonly globShortfalls: Schema.optional<Schema.$Array<Schema.Struct<{
411
470
  readonly pattern: Schema.String;
412
471
  readonly summary: Schema.Struct<{
413
- readonly statements: Schema.Number;
414
- readonly branches: Schema.Number;
415
- readonly functions: Schema.Number;
416
- readonly lines: Schema.Number;
472
+ readonly statements: Schema.Finite;
473
+ readonly branches: Schema.Finite;
474
+ readonly functions: Schema.Finite;
475
+ readonly lines: Schema.Finite;
417
476
  }>;
418
477
  readonly thresholds: Schema.Struct<{
419
- readonly lines: Schema.optional<Schema.Number>;
420
- readonly functions: Schema.optional<Schema.Number>;
421
- readonly branches: Schema.optional<Schema.Number>;
422
- readonly statements: Schema.optional<Schema.Number>;
478
+ readonly lines: Schema.optional<Schema.Finite>;
479
+ readonly functions: Schema.optional<Schema.Finite>;
480
+ readonly branches: Schema.optional<Schema.Finite>;
481
+ readonly statements: Schema.optional<Schema.Finite>;
423
482
  }>;
424
483
  }>>>;
425
484
  }>;
@@ -448,177 +507,117 @@ export declare const TestCoverageInput: Schema.Struct<{
448
507
  */
449
508
  type TestCoverageInputType = Schema.Schema.Type<typeof TestCoverageInput>;
450
509
  /**
451
- * The `test_history` tool's success payload.
510
+ * Handler for {@link testCoverageTool}.
452
511
  *
453
512
  * @public
454
513
  */
455
- export declare const TestHistoryResult: Schema.Struct<{
514
+ declare const handleTestCoverage: (input: TestCoverageInputType) => Effect.Effect<TestCoverageResultType, never, DataReader>;
515
+ /**
516
+ * The `test_errors` tool's success payload — populates `structuredContent`.
517
+ *
518
+ * @public
519
+ */
520
+ export declare const TestErrorsResult: Schema.Struct<{
456
521
  readonly project: Schema.String;
457
- readonly hasData: Schema.Boolean;
458
- readonly history: Schema.Struct<{
459
- readonly project: Schema.String;
460
- readonly updatedAt: Schema.String;
461
- readonly tests: Schema.$Array<Schema.Struct<{
462
- readonly modulePath: Schema.String;
463
- readonly fullName: Schema.String;
464
- readonly runs: Schema.$Array<Schema.Struct<{
465
- readonly timestamp: Schema.String;
466
- readonly state: Schema.Literals<readonly ["passed", "failed"]>;
522
+ readonly errorName: Schema.optional<Schema.String>;
523
+ readonly count: Schema.Finite;
524
+ readonly errors: Schema.$Array<Schema.Struct<{
525
+ readonly id: Schema.Finite;
526
+ readonly topStackFrameId: Schema.NullOr<Schema.Number>;
527
+ readonly name: Schema.NullOr<Schema.String>;
528
+ readonly message: Schema.String;
529
+ readonly diff: Schema.NullOr<Schema.String>;
530
+ readonly actual: Schema.NullOr<Schema.String>;
531
+ readonly expected: Schema.NullOr<Schema.String>;
532
+ readonly stack: Schema.NullOr<Schema.String>;
533
+ readonly scope: Schema.Literals<readonly ["test", "suite", "module", "unhandled"]>;
534
+ readonly testFullName: Schema.NullOr<Schema.String>;
535
+ readonly moduleFile: Schema.NullOr<Schema.String>;
536
+ readonly annotations: Schema.$Array<Schema.Struct<{
537
+ readonly type: Schema.String;
538
+ readonly message: Schema.String;
539
+ readonly location: Schema.optional<Schema.Struct<{
540
+ readonly file: Schema.String;
541
+ readonly line: Schema.Number;
542
+ readonly column: Schema.Number;
467
543
  }>>;
468
544
  }>>;
469
- }>;
470
- readonly flaky: Schema.$Array<Schema.Struct<{
471
- readonly fullName: Schema.String;
472
- readonly modulePath: Schema.String;
473
- readonly project: Schema.String;
474
- readonly passCount: Schema.Finite;
475
- readonly failCount: Schema.Finite;
476
- readonly lastState: Schema.Literals<readonly ["passed", "failed"]>;
477
- readonly lastTimestamp: Schema.String;
478
- }>>;
479
- readonly persistent: Schema.$Array<Schema.Struct<{
480
- readonly fullName: Schema.String;
481
- readonly modulePath: Schema.String;
482
- readonly project: Schema.String;
483
- readonly consecutiveFailures: Schema.Finite;
484
- readonly firstFailedAt: Schema.String;
485
- readonly lastFailedAt: Schema.String;
486
- readonly lastErrorMessage: Schema.NullOr<Schema.String>;
487
- }>>;
488
- readonly recovered: Schema.$Array<Schema.Struct<{
489
- readonly modulePath: Schema.String;
490
- readonly fullName: Schema.String;
491
- readonly recentRuns: Schema.$Array<Schema.Literals<readonly ["passed", "failed"]>>;
492
545
  }>>;
493
546
  }>;
494
547
  /**
495
- * The decoded {@link TestHistoryResult}.
548
+ * The decoded {@link TestErrorsResult}.
496
549
  *
497
550
  * @public
498
551
  */
499
- type TestHistoryResultType = Schema.Schema.Type<typeof TestHistoryResult>;
552
+ type TestErrorsResultType = Schema.Schema.Type<typeof TestErrorsResult>;
500
553
  /**
501
- * The `test_history` tool's parameters.
554
+ * The `test_errors` tool's parameters.
502
555
  *
503
556
  * @public
504
557
  */
505
- export declare const TestHistoryInput: Schema.Struct<{
558
+ export declare const TestErrorsInput: Schema.Struct<{
506
559
  readonly project: Schema.String;
507
- readonly testName: Schema.optionalKey<Schema.String>;
508
- readonly modulePath: Schema.optionalKey<Schema.String>;
509
- readonly limit: Schema.optionalKey<Schema.Int>;
560
+ readonly errorName: Schema.optionalKey<Schema.String>;
510
561
  }>;
511
562
  /**
512
- * The decoded {@link TestHistoryInput}.
563
+ * The decoded {@link TestErrorsInput}.
513
564
  *
514
565
  * @public
515
566
  */
516
- type TestHistoryInputType = Schema.Schema.Type<typeof TestHistoryInput>;
567
+ type TestErrorsInputType = Schema.Schema.Type<typeof TestErrorsInput>;
517
568
  /**
518
- * The `test_trends` tool's success payload.
569
+ * Handler for {@link testErrorsTool}.
519
570
  *
520
571
  * @public
521
572
  */
522
- export declare const TestTrendsResult: Schema.Union<readonly [Schema.Struct<{
523
- readonly dataAvailable: Schema.Literal<true>;
524
- readonly project: Schema.String;
525
- readonly trends: Schema.Struct<{
526
- readonly entries: Schema.$Array<Schema.Struct<{
527
- readonly timestamp: Schema.String;
528
- readonly coverage: Schema.Struct<{
529
- readonly statements: Schema.Number;
530
- readonly branches: Schema.Number;
531
- readonly functions: Schema.Number;
532
- readonly lines: Schema.Number;
533
- }>;
534
- readonly delta: Schema.Struct<{
535
- readonly statements: Schema.Number;
536
- readonly branches: Schema.Number;
537
- readonly functions: Schema.Number;
538
- readonly lines: Schema.Number;
539
- }>;
540
- readonly direction: Schema.Literals<readonly ["improving", "regressing", "stable"]>;
541
- readonly targetsHash: Schema.optional<Schema.String>;
542
- }>>;
543
- }>;
544
- }>, Schema.Struct<{
545
- readonly dataAvailable: Schema.Literal<false>;
546
- readonly project: Schema.String;
547
- }>]>;
548
- /**
549
- * The decoded {@link TestTrendsResult}.
550
- *
551
- * @public
552
- */
553
- type TestTrendsResultType = Schema.Schema.Type<typeof TestTrendsResult>;
573
+ declare const handleTestErrors: (input: TestErrorsInputType) => Effect.Effect<TestErrorsResultType, never, DataReader>;
554
574
  /**
555
- * The `test_trends` tool's parameters.
575
+ * The `failure_signature_get` tool's success payload.
556
576
  *
557
577
  * @public
558
578
  */
559
- export declare const TestTrendsInput: Schema.Struct<{
560
- readonly project: Schema.String;
561
- readonly limit: Schema.optionalKey<Schema.Finite>;
562
- }>;
579
+ export declare const FailureSignatureGetResult: Schema.Union<readonly [Schema.Struct<{
580
+ readonly found: Schema.Literal<true>;
581
+ readonly signatureHash: Schema.String;
582
+ readonly firstSeenRunId: Schema.NullOr<Schema.Number>;
583
+ readonly firstSeenAt: Schema.String;
584
+ readonly lastSeenAt: Schema.NullOr<Schema.String>;
585
+ readonly occurrenceCount: Schema.Finite;
586
+ readonly recentErrors: Schema.$Array<Schema.Struct<{
587
+ readonly runId: Schema.Number;
588
+ readonly errorName: Schema.NullOr<Schema.String>;
589
+ readonly message: Schema.String;
590
+ }>>;
591
+ }>, Schema.Struct<{
592
+ readonly found: Schema.Literal<false>;
593
+ readonly requestedHash: Schema.String;
594
+ }>]>;
563
595
  /**
564
- * The decoded {@link TestTrendsInput}.
596
+ * The decoded {@link FailureSignatureGetResult}.
565
597
  *
566
598
  * @public
567
599
  */
568
- type TestTrendsInputType = Schema.Schema.Type<typeof TestTrendsInput>;
600
+ type FailureSignatureGetResultType = Schema.Schema.Type<typeof FailureSignatureGetResult>;
569
601
  /**
570
- * The `test_errors` tool's success payload — populates `structuredContent`.
602
+ * The `failure_signature_get` tool's parameters.
571
603
  *
572
604
  * @public
573
605
  */
574
- export declare const TestErrorsResult: Schema.Struct<{
575
- readonly project: Schema.String;
576
- readonly errorName: Schema.optional<Schema.String>;
577
- readonly count: Schema.Finite;
578
- readonly errors: Schema.$Array<Schema.Struct<{
579
- readonly id: Schema.Finite;
580
- readonly topStackFrameId: Schema.NullOr<Schema.Number>;
581
- readonly name: Schema.NullOr<Schema.String>;
582
- readonly message: Schema.String;
583
- readonly diff: Schema.NullOr<Schema.String>;
584
- readonly actual: Schema.NullOr<Schema.String>;
585
- readonly expected: Schema.NullOr<Schema.String>;
586
- readonly stack: Schema.NullOr<Schema.String>;
587
- readonly scope: Schema.Literals<readonly ["test", "suite", "module", "unhandled"]>;
588
- readonly testFullName: Schema.NullOr<Schema.String>;
589
- readonly moduleFile: Schema.NullOr<Schema.String>;
590
- readonly annotations: Schema.$Array<Schema.Struct<{
591
- readonly type: Schema.String;
592
- readonly message: Schema.String;
593
- readonly location: Schema.optional<Schema.Struct<{
594
- readonly file: Schema.String;
595
- readonly line: Schema.Number;
596
- readonly column: Schema.Number;
597
- }>>;
598
- }>>;
599
- }>>;
606
+ export declare const FailureSignatureGetInput: Schema.Struct<{
607
+ readonly hash: Schema.String;
600
608
  }>;
601
609
  /**
602
- * The decoded {@link TestErrorsResult}.
603
- *
604
- * @public
605
- */
606
- type TestErrorsResultType = Schema.Schema.Type<typeof TestErrorsResult>;
607
- /**
608
- * The `test_errors` tool's parameters.
610
+ * The decoded {@link FailureSignatureGetInput}.
609
611
  *
610
612
  * @public
611
613
  */
612
- export declare const TestErrorsInput: Schema.Struct<{
613
- readonly project: Schema.String;
614
- readonly errorName: Schema.optionalKey<Schema.String>;
615
- }>;
614
+ type FailureSignatureGetInputType = Schema.Schema.Type<typeof FailureSignatureGetInput>;
616
615
  /**
617
- * The decoded {@link TestErrorsInput}.
616
+ * Handler for {@link failureSignatureGetTool}.
618
617
  *
619
618
  * @public
620
619
  */
621
- type TestErrorsInputType = Schema.Schema.Type<typeof TestErrorsInput>;
620
+ declare const handleFailureSignatureGet: (input: FailureSignatureGetInputType) => Effect.Effect<FailureSignatureGetResultType, never, DataReader>;
622
621
  /**
623
622
  * The `file_coverage` tool's success payload.
624
623
  *
@@ -631,10 +630,10 @@ export declare const FileCoverageResult: Schema.Union<readonly [Schema.Struct<{
631
630
  readonly report: Schema.Struct<{
632
631
  readonly file: Schema.String;
633
632
  readonly summary: Schema.Struct<{
634
- readonly statements: Schema.Number;
635
- readonly branches: Schema.Number;
636
- readonly functions: Schema.Number;
637
- readonly lines: Schema.Number;
633
+ readonly statements: Schema.Finite;
634
+ readonly branches: Schema.Finite;
635
+ readonly functions: Schema.Finite;
636
+ readonly lines: Schema.Finite;
638
637
  }>;
639
638
  readonly uncoveredLines: Schema.String;
640
639
  }>;
@@ -650,10 +649,10 @@ export declare const FileCoverageResult: Schema.Union<readonly [Schema.Struct<{
650
649
  readonly matched: Schema.Literal<false>;
651
650
  readonly filePath: Schema.String;
652
651
  readonly totals: Schema.Struct<{
653
- readonly statements: Schema.Number;
654
- readonly branches: Schema.Number;
655
- readonly functions: Schema.Number;
656
- readonly lines: Schema.Number;
652
+ readonly statements: Schema.Finite;
653
+ readonly branches: Schema.Finite;
654
+ readonly functions: Schema.Finite;
655
+ readonly lines: Schema.Finite;
657
656
  }>;
658
657
  readonly relatedTestFiles: Schema.$Array<Schema.String>;
659
658
  }>, Schema.Struct<{
@@ -682,316 +681,190 @@ export declare const FileCoverageInput: Schema.Struct<{
682
681
  */
683
682
  type FileCoverageInputType = Schema.Schema.Type<typeof FileCoverageInput>;
684
683
  /**
685
- * The `settings_list` tool's success payload.
684
+ * Handler for {@link fileCoverageTool}.
686
685
  *
687
686
  * @public
688
687
  */
689
- export declare const SettingsListResult: Schema.Struct<{
690
- readonly count: Schema.Number;
691
- readonly settings: Schema.$Array<Schema.Struct<{
692
- readonly hash: Schema.String;
693
- readonly capturedAt: Schema.String;
694
- }>>;
695
- }>;
688
+ declare const handleFileCoverage: (input: FileCoverageInputType) => Effect.Effect<FileCoverageResultType, never, DataReader>;
696
689
  /**
697
- * The decoded {@link SettingsListResult}.
690
+ * The `help` tool's success payload.
698
691
  *
699
692
  * @public
700
693
  */
701
- type SettingsListResultType = Schema.Schema.Type<typeof SettingsListResult>;
694
+ export declare const HelpResult: Schema.Struct<{
695
+ readonly helpText: Schema.String;
696
+ }>;
702
697
  /**
703
- * The `cache_health` tool's success payload.
698
+ * The decoded {@link HelpResult}.
704
699
  *
705
700
  * @public
706
701
  */
707
- export declare const CacheHealthResult: Schema.Union<readonly [Schema.Struct<{
708
- readonly manifestPresent: Schema.Literal<true>;
709
- readonly manifest: Schema.Struct<{
710
- readonly updatedAt: Schema.String;
711
- readonly cacheDir: Schema.String;
712
- readonly projects: Schema.$Array<Schema.Struct<{
713
- readonly project: Schema.String;
714
- readonly reportFile: Schema.String;
715
- readonly historyFile: Schema.optional<Schema.String>;
716
- readonly lastRun: Schema.NullOr<Schema.String>;
717
- readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
718
- }>>;
719
- }>;
720
- readonly ageMs: Schema.Finite;
721
- readonly stale: Schema.Boolean;
722
- }>, Schema.Struct<{
723
- readonly manifestPresent: Schema.Literal<false>;
724
- }>]>;
702
+ type HelpResultType = Schema.Schema.Type<typeof HelpResult>;
725
703
  /**
726
- * The decoded {@link CacheHealthResult}.
704
+ * Handler for {@link helpTool}.
727
705
  *
728
706
  * @public
729
707
  */
730
- type CacheHealthResultType = Schema.Schema.Type<typeof CacheHealthResult>;
708
+ declare const handleHelp: () => Effect.Effect<HelpResultType>;
731
709
  /**
732
- * The `configure` tool's success payload.
710
+ * The `test_history` tool's success payload.
733
711
  *
734
712
  * @public
735
713
  */
736
- export declare const ConfigureResult: Schema.Union<readonly [Schema.Struct<{
737
- readonly found: Schema.Literal<true>;
738
- readonly source: Schema.Literals<readonly ["requested", "latest"]>;
739
- readonly settings: Schema.Struct<{
740
- readonly hash: Schema.String;
741
- readonly reporters: Schema.NullOr<Schema.String>;
742
- readonly coverageEnabled: Schema.Boolean;
743
- readonly coverageProvider: Schema.NullOr<Schema.String>;
744
- readonly coverageThresholds: Schema.NullOr<Schema.String>;
745
- readonly coverageTargets: Schema.NullOr<Schema.String>;
746
- readonly pool: Schema.NullOr<Schema.String>;
747
- readonly shard: Schema.NullOr<Schema.String>;
748
- readonly project: Schema.NullOr<Schema.String>;
749
- readonly environment: Schema.NullOr<Schema.String>;
750
- readonly envVars: Schema.$Record<Schema.String, Schema.String>;
751
- readonly capturedAt: Schema.String;
714
+ export declare const TestHistoryResult: Schema.Struct<{
715
+ readonly project: Schema.String;
716
+ readonly hasData: Schema.Boolean;
717
+ readonly history: Schema.Struct<{
718
+ readonly project: Schema.String;
719
+ readonly updatedAt: Schema.String;
720
+ readonly tests: Schema.$Array<Schema.Struct<{
721
+ readonly modulePath: Schema.String;
722
+ readonly fullName: Schema.String;
723
+ readonly runs: Schema.$Array<Schema.Struct<{
724
+ readonly timestamp: Schema.String;
725
+ readonly state: Schema.Literals<readonly ["passed", "failed"]>;
726
+ }>>;
727
+ }>>;
752
728
  }>;
753
- }>, Schema.Struct<{
754
- readonly found: Schema.Literal<false>;
755
- readonly source: Schema.Literals<readonly ["requested", "latest"]>;
756
- readonly requestedHash: Schema.optional<Schema.String>;
757
- }>]>;
729
+ readonly flaky: Schema.$Array<Schema.Struct<{
730
+ readonly fullName: Schema.String;
731
+ readonly modulePath: Schema.String;
732
+ readonly project: Schema.String;
733
+ readonly passCount: Schema.Finite;
734
+ readonly failCount: Schema.Finite;
735
+ readonly lastState: Schema.Literals<readonly ["passed", "failed"]>;
736
+ readonly lastTimestamp: Schema.String;
737
+ }>>;
738
+ readonly persistent: Schema.$Array<Schema.Struct<{
739
+ readonly fullName: Schema.String;
740
+ readonly modulePath: Schema.String;
741
+ readonly project: Schema.String;
742
+ readonly consecutiveFailures: Schema.Finite;
743
+ readonly firstFailedAt: Schema.String;
744
+ readonly lastFailedAt: Schema.String;
745
+ readonly lastErrorMessage: Schema.NullOr<Schema.String>;
746
+ }>>;
747
+ readonly recovered: Schema.$Array<Schema.Struct<{
748
+ readonly modulePath: Schema.String;
749
+ readonly fullName: Schema.String;
750
+ readonly recentRuns: Schema.$Array<Schema.Literals<readonly ["passed", "failed"]>>;
751
+ }>>;
752
+ readonly strayOutput: Schema.Struct<{
753
+ readonly runs: Schema.Finite;
754
+ readonly runsWithStrayOutput: Schema.Finite;
755
+ readonly latest: Schema.NullOr<Schema.Struct<{
756
+ readonly total: Schema.Finite;
757
+ readonly stdout: Schema.Finite;
758
+ readonly stderr: Schema.Finite;
759
+ readonly bytes: Schema.Finite;
760
+ readonly samples: Schema.$Array<Schema.Struct<{
761
+ readonly stream: Schema.Literals<readonly ["stdout", "stderr"]>;
762
+ readonly text: Schema.String;
763
+ }>>;
764
+ }>>;
765
+ }>;
766
+ }>;
758
767
  /**
759
- * The decoded {@link ConfigureResult}.
768
+ * The decoded {@link TestHistoryResult}.
760
769
  *
761
770
  * @public
762
771
  */
763
- type ConfigureResultType = Schema.Schema.Type<typeof ConfigureResult>;
772
+ type TestHistoryResultType = Schema.Schema.Type<typeof TestHistoryResult>;
764
773
  /**
765
- * The `configure` tool's parameters.
774
+ * The `test_history` tool's parameters.
766
775
  *
767
776
  * @public
768
777
  */
769
- export declare const ConfigureInput: Schema.Struct<{
770
- readonly settingsHash: Schema.optionalKey<Schema.String>;
778
+ export declare const TestHistoryInput: Schema.Struct<{
779
+ readonly project: Schema.String;
780
+ readonly testName: Schema.optionalKey<Schema.String>;
781
+ readonly modulePath: Schema.optionalKey<Schema.String>;
782
+ readonly limit: Schema.optionalKey<Schema.Int>;
771
783
  }>;
772
784
  /**
773
- * The decoded {@link ConfigureInput}.
785
+ * The decoded {@link TestHistoryInput}.
774
786
  *
775
787
  * @public
776
788
  */
777
- type ConfigureInputType = Schema.Schema.Type<typeof ConfigureInput>;
789
+ type TestHistoryInputType = Schema.Schema.Type<typeof TestHistoryInput>;
778
790
  /**
779
- * The `commit_changes` tool's success payload.
791
+ * Handler for {@link testHistoryTool}.
780
792
  *
781
793
  * @public
782
794
  */
783
- export declare const CommitChangesResult: Schema.Struct<{
784
- readonly filterSha: Schema.optional<Schema.String>;
785
- readonly count: Schema.Finite;
786
- readonly commits: Schema.$Array<Schema.Struct<{
787
- readonly sha: Schema.String;
788
- readonly parentSha: Schema.NullOr<Schema.String>;
789
- readonly message: Schema.NullOr<Schema.String>;
790
- readonly author: Schema.NullOr<Schema.String>;
791
- readonly committedAt: Schema.NullOr<Schema.String>;
792
- readonly branch: Schema.NullOr<Schema.String>;
793
- readonly files: Schema.$Array<Schema.Struct<{
794
- readonly filePath: Schema.String;
795
- readonly changeKind: Schema.Literals<readonly ["added", "modified", "deleted", "renamed", "untracked-modified"]>;
796
- }>>;
797
- }>>;
798
- }>;
795
+ declare const handleTestHistory: (input: TestHistoryInputType) => Effect.Effect<TestHistoryResultType, never, DataReader>;
799
796
  /**
800
- * The decoded {@link CommitChangesResult}.
797
+ * The `test_overview` tool's success payload.
801
798
  *
802
799
  * @public
803
800
  */
804
- type CommitChangesResultType = Schema.Schema.Type<typeof CommitChangesResult>;
801
+ export declare const TestOverviewResult: Schema.Union<readonly [Schema.Struct<{
802
+ readonly dataAvailable: Schema.Literal<true>;
803
+ readonly projectFilter: Schema.optional<Schema.String>;
804
+ readonly runs: Schema.$Array<Schema.Struct<{
805
+ readonly project: Schema.String;
806
+ readonly lastRun: Schema.NullOr<Schema.String>;
807
+ readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
808
+ readonly total: Schema.Number;
809
+ readonly passed: Schema.Number;
810
+ readonly failed: Schema.Number;
811
+ readonly skipped: Schema.Number;
812
+ }>>;
813
+ }>, Schema.Struct<{
814
+ readonly dataAvailable: Schema.Literal<false>;
815
+ readonly projectFilter: Schema.optional<Schema.String>;
816
+ readonly reason: Schema.Literals<readonly ["no_runs", "project_filter_empty"]>;
817
+ }>]>;
805
818
  /**
806
- * The `commit_changes` tool's parameters.
819
+ * The decoded {@link TestOverviewResult}.
807
820
  *
808
821
  * @public
809
822
  */
810
- export declare const CommitChangesInput: Schema.Struct<{
811
- readonly sha: Schema.optionalKey<Schema.String>;
812
- }>;
823
+ type TestOverviewResultType = Schema.Schema.Type<typeof TestOverviewResult>;
813
824
  /**
814
- * The decoded {@link CommitChangesInput}.
815
- *
816
- * @public
817
- */
818
- type CommitChangesInputType = Schema.Schema.Type<typeof CommitChangesInput>;
819
- /**
820
- * The `turn_search` tool's success payload.
825
+ * The `test_overview` tool's parameters.
821
826
  *
822
827
  * @public
823
828
  */
824
- export declare const TurnSearchResult: Schema.Struct<{
825
- readonly count: Schema.Finite;
826
- readonly turns: Schema.$Array<Schema.Struct<{
827
- readonly id: Schema.Finite;
828
- readonly sessionId: Schema.Finite;
829
- readonly turnNo: Schema.Finite;
830
- readonly type: Schema.String;
831
- readonly payload: Schema.String;
832
- readonly occurredAt: Schema.String;
833
- }>>;
829
+ export declare const TestOverviewInput: Schema.Struct<{
830
+ readonly project: Schema.optionalKey<Schema.String>;
834
831
  }>;
835
832
  /**
836
- * The decoded {@link TurnSearchResult}.
837
- *
838
- * @public
839
- */
840
- type TurnSearchResultType = Schema.Schema.Type<typeof TurnSearchResult>;
841
- /**
842
- * The `turn_search` tool's parameters.
833
+ * The decoded {@link TestOverviewInput}.
843
834
  *
844
835
  * @public
845
836
  */
846
- export declare const TurnSearchInput: Schema.Struct<{
847
- readonly sessionId: Schema.optionalKey<Schema.Finite>;
848
- readonly since: Schema.optionalKey<Schema.String>;
849
- readonly type: Schema.optionalKey<Schema.Literals<readonly ["user_prompt", "tool_call", "tool_result", "file_edit", "hook_fire", "note", "hypothesis"]>>;
850
- readonly limit: Schema.optionalKey<Schema.Finite>;
851
- }>;
837
+ type TestOverviewInputType = Schema.Schema.Type<typeof TestOverviewInput>;
852
838
  /**
853
- * The decoded {@link TurnSearchInput}.
839
+ * Handler for {@link testOverviewTool}.
854
840
  *
855
841
  * @public
856
842
  */
857
- type TurnSearchInputType = Schema.Schema.Type<typeof TurnSearchInput>;
843
+ declare const handleTestOverview: (input: TestOverviewInputType) => Effect.Effect<TestOverviewResultType, never, DataReader>;
858
844
  /**
859
- * The `failure_signature_get` tool's success payload.
845
+ * The `ping` tool's success payload.
860
846
  *
861
847
  * @public
862
848
  */
863
- export declare const FailureSignatureGetResult: Schema.Union<readonly [Schema.Struct<{
864
- readonly found: Schema.Literal<true>;
865
- readonly signatureHash: Schema.String;
866
- readonly firstSeenRunId: Schema.NullOr<Schema.Number>;
867
- readonly firstSeenAt: Schema.String;
868
- readonly lastSeenAt: Schema.NullOr<Schema.String>;
869
- readonly occurrenceCount: Schema.Finite;
870
- readonly recentErrors: Schema.$Array<Schema.Struct<{
871
- readonly runId: Schema.Number;
872
- readonly errorName: Schema.NullOr<Schema.String>;
873
- readonly message: Schema.String;
849
+ export declare const PingResult: Schema.Struct<{
850
+ readonly message: Schema.Literal<"pong">;
851
+ readonly distribution: Schema.NullOr<Schema.Struct<{
852
+ readonly name: Schema.String;
853
+ readonly version: Schema.String;
874
854
  }>>;
875
- }>, Schema.Struct<{
876
- readonly found: Schema.Literal<false>;
877
- readonly requestedHash: Schema.String;
878
- }>]>;
879
- /**
880
- * The decoded {@link FailureSignatureGetResult}.
881
- *
882
- * @public
883
- */
884
- type FailureSignatureGetResultType = Schema.Schema.Type<typeof FailureSignatureGetResult>;
885
- /**
886
- * The `failure_signature_get` tool's parameters.
887
- *
888
- * @public
889
- */
890
- export declare const FailureSignatureGetInput: Schema.Struct<{
891
- readonly hash: Schema.String;
892
- }>;
893
- /**
894
- * The decoded {@link FailureSignatureGetInput}.
895
- *
896
- * @public
897
- */
898
- type FailureSignatureGetInputType = Schema.Schema.Type<typeof FailureSignatureGetInput>;
899
- /**
900
- * The `acceptance_metrics` tool's success payload.
901
- *
902
- * @public
903
- */
904
- export declare const AcceptanceMetricsResult: Schema.Struct<{
905
- readonly phaseEvidenceIntegrity: Schema.Struct<{
906
- readonly total: Schema.Finite;
907
- readonly compliant: Schema.Finite;
908
- readonly ratio: Schema.Finite;
909
- }>;
910
- readonly complianceHookResponsiveness: Schema.Struct<{
911
- readonly total: Schema.Finite;
912
- readonly withFollowup: Schema.Finite;
913
- readonly ratio: Schema.Finite;
914
- }>;
915
- readonly orientationUsefulness: Schema.Struct<{
916
- readonly total: Schema.Finite;
917
- readonly referencedCount: Schema.Finite;
918
- readonly ratio: Schema.Finite;
919
- }>;
920
- readonly antiPatternDetectionRate: Schema.Struct<{
921
- readonly total: Schema.Finite;
922
- readonly cleanSessions: Schema.Finite;
923
- readonly ratio: Schema.Finite;
924
- }>;
925
- }>;
926
- /**
927
- * The decoded {@link AcceptanceMetricsResult}.
928
- *
929
- * @public
930
- */
931
- type AcceptanceMetricsResultType = Schema.Schema.Type<typeof AcceptanceMetricsResult>;
932
- /**
933
- * The `triage_brief` tool's success payload.
934
- *
935
- * @public
936
- */
937
- export declare const TriageBriefResult: Schema.Struct<{
938
- readonly hasContent: Schema.Boolean;
939
- readonly markdown: Schema.String;
940
- }>;
941
- /**
942
- * The decoded {@link TriageBriefResult}.
943
- *
944
- * @public
945
- */
946
- type TriageBriefResultType = Schema.Schema.Type<typeof TriageBriefResult>;
947
- /**
948
- * The `triage_brief` tool's parameters.
949
- *
950
- * @public
951
- */
952
- export declare const TriageBriefInput: Schema.Struct<{
953
- readonly project: Schema.optionalKey<Schema.String>;
954
- readonly maxLines: Schema.optionalKey<Schema.Finite>;
955
- }>;
956
- /**
957
- * The decoded {@link TriageBriefInput}.
958
- *
959
- * @public
960
- */
961
- type TriageBriefInputType = Schema.Schema.Type<typeof TriageBriefInput>;
962
- /**
963
- * The `wrapup_prompt` tool's success payload.
964
- *
965
- * @public
966
- */
967
- export declare const WrapupPromptResult: Schema.Struct<{
968
- readonly hasContent: Schema.Boolean;
969
- readonly kind: Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>;
970
- readonly markdown: Schema.String;
971
855
  }>;
972
856
  /**
973
- * The decoded {@link WrapupPromptResult}.
974
- *
975
- * @public
976
- */
977
- type WrapupPromptResultType = Schema.Schema.Type<typeof WrapupPromptResult>;
978
- /**
979
- * The `wrapup_prompt` tool's parameters.
857
+ * The decoded {@link PingResult}.
980
858
  *
981
859
  * @public
982
860
  */
983
- export declare const WrapupPromptInput: Schema.Struct<{
984
- readonly sessionId: Schema.optionalKey<Schema.Finite>;
985
- readonly chatId: Schema.optionalKey<Schema.String>;
986
- readonly kind: Schema.optionalKey<Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>>;
987
- readonly userPromptHint: Schema.optionalKey<Schema.String>;
988
- }>;
861
+ type PingResultType = Schema.Schema.Type<typeof PingResult>;
989
862
  /**
990
- * The decoded {@link WrapupPromptInput}.
863
+ * Handler for {@link pingTool}.
991
864
  *
992
865
  * @public
993
866
  */
994
- type WrapupPromptInputType = Schema.Schema.Type<typeof WrapupPromptInput>;
867
+ declare const handlePing: () => Effect.Effect<PingResultType>;
995
868
  /**
996
869
  * The `register_agent` tool's parameters.
997
870
  *
@@ -1040,174 +913,47 @@ export declare const RegisterAgentResult: Schema.Union<readonly [Schema.Struct<{
1040
913
  */
1041
914
  type RegisterAgentOutput = Schema.Schema.Type<typeof RegisterAgentResult>;
1042
915
  /**
1043
- * The `tdd_phase_transition_request` tool's success payload.
1044
- *
1045
- * @public
1046
- */
1047
- export declare const PhaseTransitionResult: Schema.Union<readonly [Schema.Struct<{
1048
- readonly accepted: Schema.Literal<true>;
1049
- readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1050
- readonly newPhaseId: Schema.Finite;
1051
- readonly previousPhaseId: Schema.NullOr<Schema.Number>;
1052
- readonly citedArtifactId: Schema.optional<Schema.Number>;
1053
- readonly citedArtifactSource: Schema.optional<Schema.Literals<readonly ["explicit-id", "explicit-kind", "transition-derived", "none"]>>;
1054
- }>, Schema.Struct<{
1055
- readonly accepted: Schema.Literal<false>;
1056
- readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1057
- readonly denialReason: Schema.Literals<readonly ["missing_artifact_evidence", "wrong_artifact_kind", "wrong_source_phase", "unknown_tdd_task", "tdd_task_already_ended", "goal_not_started", "goal_not_found", "goal_not_in_progress", "goal_not_in_tdd_task", "behavior_not_found", "behavior_not_in_goal", "refactor_without_passing_run", "evidence_not_in_phase_window", "evidence_not_for_behavior", "evidence_test_was_already_failing"]>;
1058
- readonly remediation: Schema.Struct<{
1059
- readonly hint: Schema.String;
1060
- readonly suggestedTool: Schema.optionalKey<Schema.String>;
1061
- readonly suggestedArgs: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>;
1062
- }>;
1063
- }>]>;
1064
- /**
1065
- * The decoded {@link PhaseTransitionResult}.
1066
- *
1067
- * @public
1068
- */
1069
- type PhaseTransitionResultType = Schema.Schema.Type<typeof PhaseTransitionResult>;
1070
- /**
1071
- * The `tdd_phase_transition_request` tool's parameters.
1072
- *
1073
- * `citedArtifactId` is optional in 2.0+. When omitted, the tool resolves
1074
- * the most recent matching artifact for this session, where "matching" is
1075
- * either the explicit `citedArtifactKind` value, or the kind required by
1076
- * the transition (per `requiredArtifactForTransition`), or "no artifact
1077
- * needed" for transitions like `spike→red` where the validator's
1078
- * `requiredArtifactForTransition` returns null. The accepted response
1079
- * carries `citedArtifactId` so the caller can see which row was used.
1080
- *
1081
- * @public
1082
- */
1083
- export declare const PhaseTransitionInput: Schema.Struct<{
1084
- readonly tddTaskId: Schema.Finite;
1085
- readonly goalId: Schema.Finite;
1086
- readonly requestedPhase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1087
- readonly citedArtifactId: Schema.optionalKey<Schema.Finite>;
1088
- readonly citedArtifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1089
- readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1090
- readonly reason: Schema.optionalKey<Schema.String>;
1091
- }>;
1092
- /**
1093
- * The decoded {@link PhaseTransitionInput}.
916
+ * Handler for {@link registerAgentTool}. Idempotency is the tool's own
917
+ * business rule (the `agents` idempotency key), not the generic
918
+ * `withIdempotency` combinator.
1094
919
  *
1095
920
  * @public
1096
921
  */
1097
- type PhaseTransitionInputType = Schema.Schema.Type<typeof PhaseTransitionInput>;
922
+ declare const handleRegisterAgent: (input: RegisterAgentInputType) => Effect.Effect<RegisterAgentOutput, never, DataReader | DataStore>;
1098
923
  /**
1099
- * The `tdd_artifact_list` tool's success payload.
924
+ * The `run_tests` tool's success payload.
1100
925
  *
1101
926
  * @public
1102
927
  */
1103
- export declare const TddArtifactListResult: Schema.Struct<{
1104
- readonly tddTaskId: Schema.Number;
1105
- readonly filters: Schema.Struct<{
1106
- readonly artifactKind: Schema.optional<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1107
- readonly phaseId: Schema.optional<Schema.Number>;
1108
- readonly behaviorId: Schema.optional<Schema.Number>;
1109
- }>;
1110
- readonly count: Schema.Number;
1111
- readonly artifacts: Schema.$Array<Schema.Struct<{
1112
- readonly id: Schema.Finite;
1113
- readonly tddTaskId: Schema.Number;
1114
- readonly phaseId: Schema.Number;
1115
- readonly phaseName: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1116
- readonly artifactKind: Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>;
1117
- readonly behaviorId: Schema.NullOr<Schema.Number>;
1118
- readonly testCaseId: Schema.NullOr<Schema.Number>;
1119
- readonly testRunId: Schema.NullOr<Schema.Number>;
1120
- readonly testFirstFailureRunId: Schema.NullOr<Schema.Number>;
1121
- readonly recordedAt: Schema.String;
1122
- readonly suite: Schema.Literals<readonly ["vitest", "bats"]>;
1123
- }>>;
1124
- }>;
1125
- /**
1126
- * The decoded {@link TddArtifactListResult}.
1127
- *
1128
- * @public
1129
- */
1130
- type TddArtifactListResultType = Schema.Schema.Type<typeof TddArtifactListResult>;
1131
- /**
1132
- * The `tdd_artifact_list` tool's parameters.
1133
- *
1134
- * @public
1135
- */
1136
- export declare const TddArtifactListInput: Schema.Struct<{
1137
- readonly tddTaskId: Schema.Finite;
1138
- readonly artifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1139
- readonly phaseId: Schema.optionalKey<Schema.Finite>;
1140
- readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1141
- readonly limit: Schema.optionalKey<Schema.Finite>;
1142
- }>;
1143
- /**
1144
- * The decoded {@link TddArtifactListInput}.
1145
- *
1146
- * @public
1147
- */
1148
- type TddArtifactListInputType = Schema.Schema.Type<typeof TddArtifactListInput>;
1149
- /**
1150
- * The `tdd_progress_push` tool's parameters.
1151
- *
1152
- * @public
1153
- */
1154
- export declare const TddProgressPushInput: Schema.Struct<{
1155
- readonly payload: Schema.String;
1156
- }>;
1157
- /**
1158
- * The decoded {@link TddProgressPushInput}.
1159
- *
1160
- * @public
1161
- */
1162
- type TddProgressPushInputType = Schema.Schema.Type<typeof TddProgressPushInput>;
1163
- /**
1164
- * The `tdd_progress_push` result — always `{ ok: true }`.
1165
- *
1166
- * @public
1167
- */
1168
- export declare const TddProgressPushResult: Schema.Struct<{
1169
- readonly ok: Schema.Literal<true>;
1170
- }>;
1171
- /**
1172
- * The decoded {@link TddProgressPushResult}.
1173
- *
1174
- * @public
1175
- */
1176
- type TddProgressPushResultType = Schema.Schema.Type<typeof TddProgressPushResult>;
1177
- /**
1178
- * The `run_tests` tool's success payload.
1179
- *
1180
- * @public
1181
- */
1182
- export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1183
- readonly kind: Schema.Literal<"ok">;
1184
- readonly project: Schema.optional<Schema.String>;
1185
- readonly projectRoot: Schema.String;
1186
- readonly scope: Schema.Struct<{
1187
- readonly project: Schema.NullOr<Schema.String>;
1188
- readonly files: Schema.$Array<Schema.String>;
1189
- readonly tags: Schema.NullOr<Schema.Struct<{
1190
- readonly all: Schema.optionalKey<Schema.$Array<Schema.String>>;
1191
- readonly any: Schema.optionalKey<Schema.$Array<Schema.String>>;
1192
- readonly none: Schema.optionalKey<Schema.$Array<Schema.String>>;
1193
- }>>;
928
+ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
929
+ readonly kind: Schema.Literal<"ok">;
930
+ readonly project: Schema.optional<Schema.String>;
931
+ readonly projectRoot: Schema.String;
932
+ readonly scope: Schema.Struct<{
933
+ readonly project: Schema.NullOr<Schema.String>;
934
+ readonly files: Schema.$Array<Schema.String>;
935
+ readonly tags: Schema.NullOr<Schema.Struct<{
936
+ readonly all: Schema.optionalKey<Schema.$Array<Schema.String>>;
937
+ readonly any: Schema.optionalKey<Schema.$Array<Schema.String>>;
938
+ readonly none: Schema.optionalKey<Schema.$Array<Schema.String>>;
939
+ }>>;
1194
940
  }>;
1195
941
  readonly report: Schema.Struct<{
1196
942
  readonly timestamp: Schema.String;
1197
943
  readonly project: Schema.optional<Schema.String>;
1198
944
  readonly reason: Schema.Literals<readonly ["passed", "failed", "interrupted"]>;
1199
945
  readonly summary: Schema.Struct<{
1200
- readonly total: Schema.Number;
1201
- readonly passed: Schema.Number;
1202
- readonly failed: Schema.Number;
1203
- readonly skipped: Schema.Number;
1204
- readonly duration: Schema.Number;
1205
- readonly modules: Schema.optional<Schema.Number>;
946
+ readonly total: Schema.Finite;
947
+ readonly passed: Schema.Finite;
948
+ readonly failed: Schema.Finite;
949
+ readonly skipped: Schema.Finite;
950
+ readonly duration: Schema.Finite;
951
+ readonly modules: Schema.optional<Schema.Finite>;
1206
952
  }>;
1207
953
  readonly failed: Schema.$Array<Schema.Struct<{
1208
954
  readonly file: Schema.String;
1209
955
  readonly state: Schema.Literals<readonly ["passed", "failed", "skipped", "pending"]>;
1210
- readonly duration: Schema.optional<Schema.Number>;
956
+ readonly duration: Schema.optional<Schema.Finite>;
1211
957
  readonly errors: Schema.optional<Schema.$Array<Schema.Struct<{
1212
958
  readonly message: Schema.String;
1213
959
  readonly stack: Schema.optional<Schema.String>;
@@ -1219,7 +965,7 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1219
965
  readonly name: Schema.String;
1220
966
  readonly fullName: Schema.String;
1221
967
  readonly state: Schema.Literals<readonly ["passed", "failed", "skipped", "pending"]>;
1222
- readonly duration: Schema.optional<Schema.Number>;
968
+ readonly duration: Schema.optional<Schema.Finite>;
1223
969
  readonly flaky: Schema.optional<Schema.Boolean>;
1224
970
  readonly slow: Schema.optional<Schema.Boolean>;
1225
971
  readonly errors: Schema.optional<Schema.$Array<Schema.Struct<{
@@ -1242,81 +988,81 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1242
988
  readonly failedFiles: Schema.$Array<Schema.String>;
1243
989
  readonly coverage: Schema.optional<Schema.Struct<{
1244
990
  readonly totals: Schema.Struct<{
1245
- readonly statements: Schema.Number;
1246
- readonly branches: Schema.Number;
1247
- readonly functions: Schema.Number;
1248
- readonly lines: Schema.Number;
991
+ readonly statements: Schema.Finite;
992
+ readonly branches: Schema.Finite;
993
+ readonly functions: Schema.Finite;
994
+ readonly lines: Schema.Finite;
1249
995
  }>;
1250
996
  readonly thresholds: Schema.Struct<{
1251
997
  readonly global: Schema.Struct<{
1252
- readonly lines: Schema.optional<Schema.Number>;
1253
- readonly functions: Schema.optional<Schema.Number>;
1254
- readonly branches: Schema.optional<Schema.Number>;
1255
- readonly statements: Schema.optional<Schema.Number>;
998
+ readonly lines: Schema.optional<Schema.Finite>;
999
+ readonly functions: Schema.optional<Schema.Finite>;
1000
+ readonly branches: Schema.optional<Schema.Finite>;
1001
+ readonly statements: Schema.optional<Schema.Finite>;
1256
1002
  }>;
1257
1003
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
1258
- readonly lines: Schema.optional<Schema.Number>;
1259
- readonly functions: Schema.optional<Schema.Number>;
1260
- readonly branches: Schema.optional<Schema.Number>;
1261
- readonly statements: Schema.optional<Schema.Number>;
1004
+ readonly lines: Schema.optional<Schema.Finite>;
1005
+ readonly functions: Schema.optional<Schema.Finite>;
1006
+ readonly branches: Schema.optional<Schema.Finite>;
1007
+ readonly statements: Schema.optional<Schema.Finite>;
1262
1008
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
1263
- readonly lines: Schema.optional<Schema.Number>;
1264
- readonly functions: Schema.optional<Schema.Number>;
1265
- readonly branches: Schema.optional<Schema.Number>;
1266
- readonly statements: Schema.optional<Schema.Number>;
1009
+ readonly lines: Schema.optional<Schema.Finite>;
1010
+ readonly functions: Schema.optional<Schema.Finite>;
1011
+ readonly branches: Schema.optional<Schema.Finite>;
1012
+ readonly statements: Schema.optional<Schema.Finite>;
1267
1013
  }>]>>;
1268
1014
  }>]>>, never>;
1269
1015
  }>;
1270
1016
  readonly targets: Schema.optional<Schema.Struct<{
1271
1017
  readonly global: Schema.Struct<{
1272
- readonly lines: Schema.optional<Schema.Number>;
1273
- readonly functions: Schema.optional<Schema.Number>;
1274
- readonly branches: Schema.optional<Schema.Number>;
1275
- readonly statements: Schema.optional<Schema.Number>;
1018
+ readonly lines: Schema.optional<Schema.Finite>;
1019
+ readonly functions: Schema.optional<Schema.Finite>;
1020
+ readonly branches: Schema.optional<Schema.Finite>;
1021
+ readonly statements: Schema.optional<Schema.Finite>;
1276
1022
  }>;
1277
1023
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
1278
- readonly lines: Schema.optional<Schema.Number>;
1279
- readonly functions: Schema.optional<Schema.Number>;
1280
- readonly branches: Schema.optional<Schema.Number>;
1281
- readonly statements: Schema.optional<Schema.Number>;
1024
+ readonly lines: Schema.optional<Schema.Finite>;
1025
+ readonly functions: Schema.optional<Schema.Finite>;
1026
+ readonly branches: Schema.optional<Schema.Finite>;
1027
+ readonly statements: Schema.optional<Schema.Finite>;
1282
1028
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
1283
- readonly lines: Schema.optional<Schema.Number>;
1284
- readonly functions: Schema.optional<Schema.Number>;
1285
- readonly branches: Schema.optional<Schema.Number>;
1286
- readonly statements: Schema.optional<Schema.Number>;
1029
+ readonly lines: Schema.optional<Schema.Finite>;
1030
+ readonly functions: Schema.optional<Schema.Finite>;
1031
+ readonly branches: Schema.optional<Schema.Finite>;
1032
+ readonly statements: Schema.optional<Schema.Finite>;
1287
1033
  }>]>>;
1288
1034
  }>]>>, never>;
1289
1035
  }>>;
1290
1036
  readonly baselines: Schema.optional<Schema.Struct<{
1291
1037
  readonly global: Schema.Struct<{
1292
- readonly lines: Schema.optional<Schema.Number>;
1293
- readonly functions: Schema.optional<Schema.Number>;
1294
- readonly branches: Schema.optional<Schema.Number>;
1295
- readonly statements: Schema.optional<Schema.Number>;
1038
+ readonly lines: Schema.optional<Schema.Finite>;
1039
+ readonly functions: Schema.optional<Schema.Finite>;
1040
+ readonly branches: Schema.optional<Schema.Finite>;
1041
+ readonly statements: Schema.optional<Schema.Finite>;
1296
1042
  }>;
1297
1043
  readonly patterns: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.Struct<{
1298
- readonly lines: Schema.optional<Schema.Number>;
1299
- readonly functions: Schema.optional<Schema.Number>;
1300
- readonly branches: Schema.optional<Schema.Number>;
1301
- readonly statements: Schema.optional<Schema.Number>;
1044
+ readonly lines: Schema.optional<Schema.Finite>;
1045
+ readonly functions: Schema.optional<Schema.Finite>;
1046
+ readonly branches: Schema.optional<Schema.Finite>;
1047
+ readonly statements: Schema.optional<Schema.Finite>;
1302
1048
  readonly perFile: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Struct<{
1303
- readonly lines: Schema.optional<Schema.Number>;
1304
- readonly functions: Schema.optional<Schema.Number>;
1305
- readonly branches: Schema.optional<Schema.Number>;
1306
- readonly statements: Schema.optional<Schema.Number>;
1049
+ readonly lines: Schema.optional<Schema.Finite>;
1050
+ readonly functions: Schema.optional<Schema.Finite>;
1051
+ readonly branches: Schema.optional<Schema.Finite>;
1052
+ readonly statements: Schema.optional<Schema.Finite>;
1307
1053
  }>]>>;
1308
1054
  }>]>>, never>;
1309
1055
  }>>;
1310
1056
  readonly scoped: Schema.withDecodingDefaultKey<Schema.Boolean, never>;
1311
1057
  readonly scopedFiles: Schema.optional<Schema.$Array<Schema.String>>;
1312
- readonly totalFiles: Schema.optional<Schema.Number>;
1058
+ readonly totalFiles: Schema.optional<Schema.Finite>;
1313
1059
  readonly lowCoverage: Schema.$Array<Schema.Struct<{
1314
1060
  readonly file: Schema.String;
1315
1061
  readonly summary: Schema.Struct<{
1316
- readonly statements: Schema.Number;
1317
- readonly branches: Schema.Number;
1318
- readonly functions: Schema.Number;
1319
- readonly lines: Schema.Number;
1062
+ readonly statements: Schema.Finite;
1063
+ readonly branches: Schema.Finite;
1064
+ readonly functions: Schema.Finite;
1065
+ readonly lines: Schema.Finite;
1320
1066
  }>;
1321
1067
  readonly uncoveredLines: Schema.String;
1322
1068
  }>>;
@@ -1324,10 +1070,10 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1324
1070
  readonly belowTarget: Schema.optional<Schema.$Array<Schema.Struct<{
1325
1071
  readonly file: Schema.String;
1326
1072
  readonly summary: Schema.Struct<{
1327
- readonly statements: Schema.Number;
1328
- readonly branches: Schema.Number;
1329
- readonly functions: Schema.Number;
1330
- readonly lines: Schema.Number;
1073
+ readonly statements: Schema.Finite;
1074
+ readonly branches: Schema.Finite;
1075
+ readonly functions: Schema.Finite;
1076
+ readonly lines: Schema.Finite;
1331
1077
  }>;
1332
1078
  readonly uncoveredLines: Schema.String;
1333
1079
  }>>>;
@@ -1335,44 +1081,44 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1335
1081
  readonly globShortfalls: Schema.optional<Schema.$Array<Schema.Struct<{
1336
1082
  readonly pattern: Schema.String;
1337
1083
  readonly summary: Schema.Struct<{
1338
- readonly statements: Schema.Number;
1339
- readonly branches: Schema.Number;
1340
- readonly functions: Schema.Number;
1341
- readonly lines: Schema.Number;
1084
+ readonly statements: Schema.Finite;
1085
+ readonly branches: Schema.Finite;
1086
+ readonly functions: Schema.Finite;
1087
+ readonly lines: Schema.Finite;
1342
1088
  }>;
1343
1089
  readonly thresholds: Schema.Struct<{
1344
- readonly lines: Schema.optional<Schema.Number>;
1345
- readonly functions: Schema.optional<Schema.Number>;
1346
- readonly branches: Schema.optional<Schema.Number>;
1347
- readonly statements: Schema.optional<Schema.Number>;
1090
+ readonly lines: Schema.optional<Schema.Finite>;
1091
+ readonly functions: Schema.optional<Schema.Finite>;
1092
+ readonly branches: Schema.optional<Schema.Finite>;
1093
+ readonly statements: Schema.optional<Schema.Finite>;
1348
1094
  }>;
1349
1095
  }>>>;
1350
1096
  }>>;
1351
1097
  readonly tagCounts: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
1352
- readonly passed: Schema.optional<Schema.Number>;
1353
- readonly failed: Schema.optional<Schema.Number>;
1354
- readonly skipped: Schema.optional<Schema.Number>;
1098
+ readonly passed: Schema.optional<Schema.Finite>;
1099
+ readonly failed: Schema.optional<Schema.Finite>;
1100
+ readonly skipped: Schema.optional<Schema.Finite>;
1355
1101
  }>>>;
1356
1102
  readonly consoleLeaks: Schema.optional<Schema.Struct<{
1357
- readonly total: Schema.Number;
1103
+ readonly total: Schema.Finite;
1358
1104
  readonly byFile: Schema.$Array<Schema.Struct<{
1359
1105
  readonly file: Schema.String;
1360
- readonly stdout: Schema.Number;
1361
- readonly stderr: Schema.Number;
1106
+ readonly stdout: Schema.Finite;
1107
+ readonly stderr: Schema.Finite;
1362
1108
  readonly tests: Schema.optional<Schema.$Array<Schema.String>>;
1363
1109
  readonly sample: Schema.optional<Schema.String>;
1364
1110
  }>>;
1365
1111
  readonly truncated: Schema.optional<Schema.Boolean>;
1366
1112
  readonly fromFailingTests: Schema.optional<Schema.Struct<{
1367
- readonly total: Schema.Number;
1368
- readonly files: Schema.Number;
1113
+ readonly total: Schema.Finite;
1114
+ readonly files: Schema.Finite;
1369
1115
  }>>;
1370
1116
  }>>;
1371
1117
  readonly strayOutput: Schema.optional<Schema.Struct<{
1372
- readonly total: Schema.Number;
1373
- readonly stdout: Schema.Number;
1374
- readonly stderr: Schema.Number;
1375
- readonly bytes: Schema.Number;
1118
+ readonly total: Schema.Finite;
1119
+ readonly stdout: Schema.Finite;
1120
+ readonly stderr: Schema.Finite;
1121
+ readonly bytes: Schema.Finite;
1376
1122
  readonly samples: Schema.$Array<Schema.Struct<{
1377
1123
  readonly stream: Schema.Literals<readonly ["stdout", "stderr"]>;
1378
1124
  readonly text: Schema.String;
@@ -1382,12 +1128,19 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1382
1128
  readonly classifications: Schema.$Record<Schema.String, Schema.String>;
1383
1129
  readonly discoveryLastScannedAt: Schema.optional<Schema.NullOr<Schema.String>>;
1384
1130
  readonly scopedNote: Schema.optional<Schema.NullOr<Schema.String>>;
1131
+ readonly suggestedActions: Schema.optionalKey<Schema.$Array<Schema.Struct<{
1132
+ readonly severity: Schema.Literals<readonly ["info", "warn", "blocker"]>;
1133
+ readonly title: Schema.String;
1134
+ readonly detail: Schema.String;
1135
+ readonly targetTool: Schema.optional<Schema.String>;
1136
+ }>>>;
1385
1137
  }>, Schema.Struct<{
1386
1138
  readonly kind: Schema.Literal<"timeout">;
1387
1139
  readonly timeoutSeconds: Schema.Number;
1388
1140
  }>, Schema.Struct<{
1389
1141
  readonly kind: Schema.Literal<"error">;
1390
1142
  readonly message: Schema.String;
1143
+ readonly reason: Schema.optionalKey<Schema.Literals<readonly ["stale-install"]>>;
1391
1144
  }>, Schema.Struct<{
1392
1145
  readonly kind: Schema.Literal<"no-match">;
1393
1146
  readonly projectRoot: Schema.String;
@@ -1403,40 +1156,467 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1403
1156
  }>;
1404
1157
  }>]>;
1405
1158
  /**
1406
- * The decoded {@link RunTestsResult}.
1159
+ * The decoded {@link RunTestsResult}.
1160
+ *
1161
+ * @public
1162
+ */
1163
+ type RunTestsResultType = Schema.Schema.Type<typeof RunTestsResult>;
1164
+ /**
1165
+ * The `run_tests` tool's parameters. `tags` and `_sessionContext` are
1166
+ * nested structs and are served strict at their own level (issue #243).
1167
+ *
1168
+ * @public
1169
+ */
1170
+ export declare const RunTestsInput: Schema.Struct<{
1171
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
1172
+ readonly project: Schema.optionalKey<Schema.String>;
1173
+ readonly projectRoot: Schema.optionalKey<Schema.String>;
1174
+ readonly tags: Schema.optionalKey<Schema.Struct<{
1175
+ readonly all: Schema.optionalKey<Schema.$Array<Schema.String>>;
1176
+ readonly any: Schema.optionalKey<Schema.$Array<Schema.String>>;
1177
+ readonly none: Schema.optionalKey<Schema.$Array<Schema.String>>;
1178
+ }>>;
1179
+ readonly passWithNoTests: Schema.optionalKey<Schema.Boolean>;
1180
+ readonly timeout: Schema.optionalKey<Schema.Finite>;
1181
+ readonly _sessionContext: Schema.optionalKey<Schema.Struct<{
1182
+ readonly chatId: Schema.String;
1183
+ readonly conversationId: Schema.String;
1184
+ readonly mainAgentId: Schema.String;
1185
+ }>>;
1186
+ }>;
1187
+ /**
1188
+ * The decoded {@link RunTestsInput}.
1189
+ *
1190
+ * @public
1191
+ */
1192
+ type RunTestsInputType = Schema.Schema.Type<typeof RunTestsInput>;
1193
+ /**
1194
+ * Handler for {@link runTestsTool}. Serialized through a one-permit
1195
+ * semaphore: the body assigns the active attribution UUIDs into
1196
+ * `process.env.VITEST_AGENT_*` and then awaits `createVitest` /
1197
+ * `vitest.start`, which spawns the worker pool that snapshots env at
1198
+ * spawn time — two interleaved calls would race, attributing one call's
1199
+ * results to the other's agent.
1200
+ *
1201
+ * @public
1202
+ */
1203
+ declare const handleRunTests: (input: RunTestsInputType) => Effect.Effect<RunTestsResultType, never, McpSession | DataReader | DataStore>;
1204
+ /**
1205
+ * The `settings_list` tool's success payload.
1206
+ *
1207
+ * @public
1208
+ */
1209
+ export declare const SettingsListResult: Schema.Struct<{
1210
+ readonly count: Schema.Number;
1211
+ readonly settings: Schema.$Array<Schema.Struct<{
1212
+ readonly hash: Schema.String;
1213
+ readonly capturedAt: Schema.String;
1214
+ }>>;
1215
+ }>;
1216
+ /**
1217
+ * The decoded {@link SettingsListResult}.
1218
+ *
1219
+ * @public
1220
+ */
1221
+ type SettingsListResultType = Schema.Schema.Type<typeof SettingsListResult>;
1222
+ /**
1223
+ * Handler for {@link settingsListTool}.
1224
+ *
1225
+ * @public
1226
+ */
1227
+ declare const handleSettingsList: () => Effect.Effect<SettingsListResultType, never, DataReader>;
1228
+ /**
1229
+ * The `test_status` tool's success payload.
1230
+ *
1231
+ * @public
1232
+ */
1233
+ export declare const TestStatusResult: Schema.Union<readonly [Schema.Struct<{
1234
+ readonly dataAvailable: Schema.Literal<true>;
1235
+ readonly manifestUpdatedAt: Schema.String;
1236
+ readonly projectFilter: Schema.optional<Schema.String>;
1237
+ readonly entries: Schema.$Array<Schema.Struct<{
1238
+ readonly project: Schema.String;
1239
+ readonly reportFile: Schema.String;
1240
+ readonly historyFile: Schema.optional<Schema.String>;
1241
+ readonly lastRun: Schema.NullOr<Schema.String>;
1242
+ readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
1243
+ readonly strayOutput: Schema.optionalKey<Schema.Struct<{
1244
+ readonly total: Schema.Finite;
1245
+ readonly stdout: Schema.Finite;
1246
+ readonly stderr: Schema.Finite;
1247
+ readonly bytes: Schema.Finite;
1248
+ readonly samples: Schema.$Array<Schema.Struct<{
1249
+ readonly stream: Schema.Literals<readonly ["stdout", "stderr"]>;
1250
+ readonly text: Schema.String;
1251
+ }>>;
1252
+ }>>;
1253
+ }>>;
1254
+ }>, Schema.Struct<{
1255
+ readonly dataAvailable: Schema.Literal<false>;
1256
+ readonly projectFilter: Schema.optional<Schema.String>;
1257
+ readonly reason: Schema.Literals<readonly ["no_manifest", "project_filter_empty"]>;
1258
+ }>]>;
1259
+ /**
1260
+ * The decoded {@link TestStatusResult}.
1261
+ *
1262
+ * @public
1263
+ */
1264
+ type TestStatusResultType = Schema.Schema.Type<typeof TestStatusResult>;
1265
+ /**
1266
+ * The `test_status` tool's parameters.
1267
+ *
1268
+ * @public
1269
+ */
1270
+ export declare const TestStatusInput: Schema.Struct<{
1271
+ readonly project: Schema.optionalKey<Schema.String>;
1272
+ }>;
1273
+ /**
1274
+ * The decoded {@link TestStatusInput}.
1275
+ *
1276
+ * @public
1277
+ */
1278
+ type TestStatusInputType = Schema.Schema.Type<typeof TestStatusInput>;
1279
+ /**
1280
+ * Handler for {@link testStatusTool}: the single implementation of the
1281
+ * tool.
1282
+ *
1283
+ * @public
1284
+ */
1285
+ declare const handleTestStatus: (input: TestStatusInputType) => Effect.Effect<TestStatusResultType, never, DataReader>;
1286
+ /**
1287
+ * The `tdd_artifact_list` tool's success payload.
1288
+ *
1289
+ * @public
1290
+ */
1291
+ export declare const TddArtifactListResult: Schema.Struct<{
1292
+ readonly tddTaskId: Schema.Number;
1293
+ readonly filters: Schema.Struct<{
1294
+ readonly artifactKind: Schema.optional<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1295
+ readonly phaseId: Schema.optional<Schema.Number>;
1296
+ readonly behaviorId: Schema.optional<Schema.Number>;
1297
+ }>;
1298
+ readonly count: Schema.Number;
1299
+ readonly artifacts: Schema.$Array<Schema.Struct<{
1300
+ readonly id: Schema.Finite;
1301
+ readonly tddTaskId: Schema.Number;
1302
+ readonly phaseId: Schema.Number;
1303
+ readonly phaseName: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1304
+ readonly artifactKind: Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>;
1305
+ readonly behaviorId: Schema.NullOr<Schema.Number>;
1306
+ readonly testCaseId: Schema.NullOr<Schema.Number>;
1307
+ readonly testRunId: Schema.NullOr<Schema.Number>;
1308
+ readonly testFirstFailureRunId: Schema.NullOr<Schema.Number>;
1309
+ readonly recordedAt: Schema.String;
1310
+ readonly suite: Schema.Literals<readonly ["vitest", "bats"]>;
1311
+ }>>;
1312
+ }>;
1313
+ /**
1314
+ * The decoded {@link TddArtifactListResult}.
1315
+ *
1316
+ * @public
1317
+ */
1318
+ type TddArtifactListResultType = Schema.Schema.Type<typeof TddArtifactListResult>;
1319
+ /**
1320
+ * The `tdd_artifact_list` tool's parameters.
1321
+ *
1322
+ * @public
1323
+ */
1324
+ export declare const TddArtifactListInput: Schema.Struct<{
1325
+ readonly tddTaskId: Schema.Finite;
1326
+ readonly artifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1327
+ readonly phaseId: Schema.optionalKey<Schema.Finite>;
1328
+ readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1329
+ readonly limit: Schema.optionalKey<Schema.Finite>;
1330
+ }>;
1331
+ /**
1332
+ * The decoded {@link TddArtifactListInput}.
1333
+ *
1334
+ * @public
1335
+ */
1336
+ type TddArtifactListInputType = Schema.Schema.Type<typeof TddArtifactListInput>;
1337
+ /**
1338
+ * Handler for {@link tddArtifactListTool}.
1339
+ *
1340
+ * @public
1341
+ */
1342
+ declare const handleTddArtifactList: (input: TddArtifactListInputType) => Effect.Effect<TddArtifactListResultType, never, DataReader>;
1343
+ /**
1344
+ * The `tdd_phase_transition_request` tool's success payload.
1345
+ *
1346
+ * @public
1347
+ */
1348
+ export declare const PhaseTransitionResult: Schema.Union<readonly [Schema.Struct<{
1349
+ readonly accepted: Schema.Literal<true>;
1350
+ readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1351
+ readonly newPhaseId: Schema.Finite;
1352
+ readonly previousPhaseId: Schema.NullOr<Schema.Number>;
1353
+ readonly citedArtifactId: Schema.optional<Schema.Number>;
1354
+ readonly citedArtifactSource: Schema.optional<Schema.Literals<readonly ["explicit-id", "explicit-kind", "transition-derived", "none"]>>;
1355
+ }>, Schema.Struct<{
1356
+ readonly accepted: Schema.Literal<false>;
1357
+ readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1358
+ readonly denialReason: Schema.Literals<readonly ["missing_artifact_evidence", "wrong_artifact_kind", "wrong_source_phase", "unknown_tdd_task", "tdd_task_already_ended", "goal_not_started", "goal_not_found", "goal_not_in_progress", "goal_not_in_tdd_task", "behavior_not_found", "behavior_not_in_goal", "refactor_without_passing_run", "evidence_not_in_phase_window", "evidence_not_for_behavior", "evidence_test_was_already_failing"]>;
1359
+ readonly remediation: Schema.Struct<{
1360
+ readonly hint: Schema.String;
1361
+ readonly suggestedTool: Schema.optionalKey<Schema.String>;
1362
+ readonly suggestedArgs: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>;
1363
+ }>;
1364
+ }>]>;
1365
+ /**
1366
+ * The decoded {@link PhaseTransitionResult}.
1367
+ *
1368
+ * @public
1369
+ */
1370
+ type PhaseTransitionResultType = Schema.Schema.Type<typeof PhaseTransitionResult>;
1371
+ /**
1372
+ * The `tdd_phase_transition_request` tool's parameters.
1373
+ *
1374
+ * `citedArtifactId` is optional in 2.0+. When omitted, the tool resolves
1375
+ * the most recent matching artifact for this session, where "matching" is
1376
+ * either the explicit `citedArtifactKind` value, or the kind required by
1377
+ * the transition (per `requiredArtifactForTransition`), or "no artifact
1378
+ * needed" for transitions like `spike→red` where the validator's
1379
+ * `requiredArtifactForTransition` returns null. The accepted response
1380
+ * carries `citedArtifactId` so the caller can see which row was used.
1381
+ *
1382
+ * @public
1383
+ */
1384
+ export declare const PhaseTransitionInput: Schema.Struct<{
1385
+ readonly tddTaskId: Schema.Finite;
1386
+ readonly goalId: Schema.Finite;
1387
+ readonly requestedPhase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1388
+ readonly citedArtifactId: Schema.optionalKey<Schema.Finite>;
1389
+ readonly citedArtifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1390
+ readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1391
+ readonly reason: Schema.optionalKey<Schema.String>;
1392
+ }>;
1393
+ /**
1394
+ * The decoded {@link PhaseTransitionInput}.
1395
+ *
1396
+ * @public
1397
+ */
1398
+ type PhaseTransitionInputType = Schema.Schema.Type<typeof PhaseTransitionInput>;
1399
+ /**
1400
+ * Handler for {@link tddPhaseTransitionRequestTool}.
1401
+ *
1402
+ * @public
1403
+ */
1404
+ declare const handlePhaseTransitionRequest: (input: PhaseTransitionInputType) => Effect.Effect<PhaseTransitionResultType, never, DataReader | DataStore>;
1405
+ /**
1406
+ * The `tdd_progress_push` tool's parameters.
1407
+ *
1408
+ * @public
1409
+ */
1410
+ export declare const TddProgressPushInput: Schema.Struct<{
1411
+ readonly payload: Schema.String;
1412
+ }>;
1413
+ /**
1414
+ * The decoded {@link TddProgressPushInput}.
1415
+ *
1416
+ * @public
1417
+ */
1418
+ type TddProgressPushInputType = Schema.Schema.Type<typeof TddProgressPushInput>;
1419
+ /**
1420
+ * The `tdd_progress_push` result — always `{ ok: true }`.
1421
+ *
1422
+ * @public
1423
+ */
1424
+ export declare const TddProgressPushResult: Schema.Struct<{
1425
+ readonly ok: Schema.Literal<true>;
1426
+ }>;
1427
+ /**
1428
+ * The decoded {@link TddProgressPushResult}.
1429
+ *
1430
+ * @public
1431
+ */
1432
+ type TddProgressPushResultType = Schema.Schema.Type<typeof TddProgressPushResult>;
1433
+ /**
1434
+ * Handler for {@link tddProgressPushTool}. Malformed JSON is forwarded as
1435
+ * the raw string; a DB read failure forwards the decoded event unenriched;
1436
+ * a notification failure (no initialized client, transport gone) is
1437
+ * ignored. The result is `{ ok: true }` on every path.
1438
+ *
1439
+ * @public
1440
+ */
1441
+ declare const handleTddProgressPush: (input: TddProgressPushInputType) => Effect.Effect<TddProgressPushResultType, never, DataReader | McpServer.McpServer>;
1442
+ /**
1443
+ * The `test_trends` tool's success payload.
1444
+ *
1445
+ * @public
1446
+ */
1447
+ export declare const TestTrendsResult: Schema.Union<readonly [Schema.Struct<{
1448
+ readonly dataAvailable: Schema.Literal<true>;
1449
+ readonly project: Schema.String;
1450
+ readonly trends: Schema.Struct<{
1451
+ readonly entries: Schema.$Array<Schema.Struct<{
1452
+ readonly timestamp: Schema.String;
1453
+ readonly coverage: Schema.Struct<{
1454
+ readonly statements: Schema.Finite;
1455
+ readonly branches: Schema.Finite;
1456
+ readonly functions: Schema.Finite;
1457
+ readonly lines: Schema.Finite;
1458
+ }>;
1459
+ readonly delta: Schema.Struct<{
1460
+ readonly statements: Schema.Finite;
1461
+ readonly branches: Schema.Finite;
1462
+ readonly functions: Schema.Finite;
1463
+ readonly lines: Schema.Finite;
1464
+ }>;
1465
+ readonly direction: Schema.Literals<readonly ["improving", "regressing", "stable"]>;
1466
+ readonly targetsHash: Schema.optional<Schema.String>;
1467
+ }>>;
1468
+ }>;
1469
+ }>, Schema.Struct<{
1470
+ readonly dataAvailable: Schema.Literal<false>;
1471
+ readonly project: Schema.String;
1472
+ }>]>;
1473
+ /**
1474
+ * The decoded {@link TestTrendsResult}.
1475
+ *
1476
+ * @public
1477
+ */
1478
+ type TestTrendsResultType = Schema.Schema.Type<typeof TestTrendsResult>;
1479
+ /**
1480
+ * The `test_trends` tool's parameters.
1481
+ *
1482
+ * @public
1483
+ */
1484
+ export declare const TestTrendsInput: Schema.Struct<{
1485
+ readonly project: Schema.String;
1486
+ readonly limit: Schema.optionalKey<Schema.Finite>;
1487
+ }>;
1488
+ /**
1489
+ * The decoded {@link TestTrendsInput}.
1490
+ *
1491
+ * @public
1492
+ */
1493
+ type TestTrendsInputType = Schema.Schema.Type<typeof TestTrendsInput>;
1494
+ /**
1495
+ * Handler for {@link testTrendsTool}.
1496
+ *
1497
+ * @public
1498
+ */
1499
+ declare const handleTestTrends: (input: TestTrendsInputType) => Effect.Effect<TestTrendsResultType, never, DataReader>;
1500
+ /**
1501
+ * The `triage_brief` tool's success payload.
1502
+ *
1503
+ * @public
1504
+ */
1505
+ export declare const TriageBriefResult: Schema.Struct<{
1506
+ readonly hasContent: Schema.Boolean;
1507
+ readonly markdown: Schema.String;
1508
+ }>;
1509
+ /**
1510
+ * The decoded {@link TriageBriefResult}.
1511
+ *
1512
+ * @public
1513
+ */
1514
+ type TriageBriefResultType = Schema.Schema.Type<typeof TriageBriefResult>;
1515
+ /**
1516
+ * The `triage_brief` tool's parameters.
1517
+ *
1518
+ * @public
1519
+ */
1520
+ export declare const TriageBriefInput: Schema.Struct<{
1521
+ readonly project: Schema.optionalKey<Schema.String>;
1522
+ readonly maxLines: Schema.optionalKey<Schema.Finite>;
1523
+ }>;
1524
+ /**
1525
+ * The decoded {@link TriageBriefInput}.
1526
+ *
1527
+ * @public
1528
+ */
1529
+ type TriageBriefInputType = Schema.Schema.Type<typeof TriageBriefInput>;
1530
+ /**
1531
+ * Handler for {@link triageBriefTool}.
1532
+ *
1533
+ * @public
1534
+ */
1535
+ declare const handleTriageBrief: (input: TriageBriefInputType) => Effect.Effect<TriageBriefResultType, never, DataReader>;
1536
+ /**
1537
+ * The `turn_search` tool's success payload.
1538
+ *
1539
+ * @public
1540
+ */
1541
+ export declare const TurnSearchResult: Schema.Struct<{
1542
+ readonly count: Schema.Finite;
1543
+ readonly turns: Schema.$Array<Schema.Struct<{
1544
+ readonly id: Schema.Finite;
1545
+ readonly sessionId: Schema.Finite;
1546
+ readonly turnNo: Schema.Finite;
1547
+ readonly type: Schema.String;
1548
+ readonly payload: Schema.String;
1549
+ readonly occurredAt: Schema.String;
1550
+ }>>;
1551
+ }>;
1552
+ /**
1553
+ * The decoded {@link TurnSearchResult}.
1554
+ *
1555
+ * @public
1556
+ */
1557
+ type TurnSearchResultType = Schema.Schema.Type<typeof TurnSearchResult>;
1558
+ /**
1559
+ * The `turn_search` tool's parameters.
1560
+ *
1561
+ * @public
1562
+ */
1563
+ export declare const TurnSearchInput: Schema.Struct<{
1564
+ readonly sessionId: Schema.optionalKey<Schema.Finite>;
1565
+ readonly since: Schema.optionalKey<Schema.String>;
1566
+ readonly type: Schema.optionalKey<Schema.Literals<readonly ["user_prompt", "tool_call", "tool_result", "file_edit", "hook_fire", "note", "hypothesis"]>>;
1567
+ readonly limit: Schema.optionalKey<Schema.Finite>;
1568
+ }>;
1569
+ /**
1570
+ * The decoded {@link TurnSearchInput}.
1407
1571
  *
1408
1572
  * @public
1409
1573
  */
1410
- type RunTestsResultType = Schema.Schema.Type<typeof RunTestsResult>;
1574
+ type TurnSearchInputType = Schema.Schema.Type<typeof TurnSearchInput>;
1411
1575
  /**
1412
- * The `run_tests` tool's parameters. `tags` and `_sessionContext` are
1413
- * nested structs and are served strict at their own level (issue #243).
1576
+ * Handler for {@link turnSearchTool}.
1414
1577
  *
1415
1578
  * @public
1416
1579
  */
1417
- export declare const RunTestsInput: Schema.Struct<{
1418
- readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
1419
- readonly project: Schema.optionalKey<Schema.String>;
1420
- readonly projectRoot: Schema.optionalKey<Schema.String>;
1421
- readonly tags: Schema.optionalKey<Schema.Struct<{
1422
- readonly all: Schema.optionalKey<Schema.$Array<Schema.String>>;
1423
- readonly any: Schema.optionalKey<Schema.$Array<Schema.String>>;
1424
- readonly none: Schema.optionalKey<Schema.$Array<Schema.String>>;
1425
- }>>;
1426
- readonly passWithNoTests: Schema.optionalKey<Schema.Boolean>;
1427
- readonly timeout: Schema.optionalKey<Schema.Finite>;
1428
- readonly _sessionContext: Schema.optionalKey<Schema.Struct<{
1429
- readonly chatId: Schema.String;
1430
- readonly conversationId: Schema.String;
1431
- readonly mainAgentId: Schema.String;
1432
- }>>;
1580
+ declare const handleTurnSearch: (input: TurnSearchInputType) => Effect.Effect<TurnSearchResultType, never, DataReader>;
1581
+ /**
1582
+ * The `wrapup_prompt` tool's success payload.
1583
+ *
1584
+ * @public
1585
+ */
1586
+ export declare const WrapupPromptResult: Schema.Struct<{
1587
+ readonly hasContent: Schema.Boolean;
1588
+ readonly kind: Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>;
1589
+ readonly markdown: Schema.String;
1433
1590
  }>;
1434
1591
  /**
1435
- * The decoded {@link RunTestsInput}.
1592
+ * The decoded {@link WrapupPromptResult}.
1436
1593
  *
1437
1594
  * @public
1438
1595
  */
1439
- type RunTestsInputType = Schema.Schema.Type<typeof RunTestsInput>;
1596
+ type WrapupPromptResultType = Schema.Schema.Type<typeof WrapupPromptResult>;
1597
+ /**
1598
+ * The `wrapup_prompt` tool's parameters.
1599
+ *
1600
+ * @public
1601
+ */
1602
+ export declare const WrapupPromptInput: Schema.Struct<{
1603
+ readonly sessionId: Schema.optionalKey<Schema.Finite>;
1604
+ readonly chatId: Schema.optionalKey<Schema.String>;
1605
+ readonly kind: Schema.optionalKey<Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>>;
1606
+ readonly userPromptHint: Schema.optionalKey<Schema.String>;
1607
+ }>;
1608
+ /**
1609
+ * The decoded {@link WrapupPromptInput}.
1610
+ *
1611
+ * @public
1612
+ */
1613
+ type WrapupPromptInputType = Schema.Schema.Type<typeof WrapupPromptInput>;
1614
+ /**
1615
+ * Handler for {@link wrapupPromptTool}.
1616
+ *
1617
+ * @public
1618
+ */
1619
+ declare const handleWrapupPrompt: (input: WrapupPromptInputType) => Effect.Effect<WrapupPromptResultType, never, DataReader>;
1440
1620
  /**
1441
1621
  * Every tool the server registers.
1442
1622
  *
@@ -1580,10 +1760,10 @@ export declare const Kit: Toolkit.Toolkit<{
1580
1760
  readonly report: import("effect/Schema").Struct<{
1581
1761
  readonly file: import("effect/Schema").String;
1582
1762
  readonly summary: import("effect/Schema").Struct<{
1583
- readonly statements: import("effect/Schema").Number;
1584
- readonly branches: import("effect/Schema").Number;
1585
- readonly functions: import("effect/Schema").Number;
1586
- readonly lines: import("effect/Schema").Number;
1763
+ readonly statements: import("effect/Schema").Finite;
1764
+ readonly branches: import("effect/Schema").Finite;
1765
+ readonly functions: import("effect/Schema").Finite;
1766
+ readonly lines: import("effect/Schema").Finite;
1587
1767
  }>;
1588
1768
  readonly uncoveredLines: import("effect/Schema").String;
1589
1769
  }>;
@@ -1599,10 +1779,10 @@ export declare const Kit: Toolkit.Toolkit<{
1599
1779
  readonly matched: import("effect/Schema").Literal<false>;
1600
1780
  readonly filePath: import("effect/Schema").String;
1601
1781
  readonly totals: import("effect/Schema").Struct<{
1602
- readonly statements: import("effect/Schema").Number;
1603
- readonly branches: import("effect/Schema").Number;
1604
- readonly functions: import("effect/Schema").Number;
1605
- readonly lines: import("effect/Schema").Number;
1782
+ readonly statements: import("effect/Schema").Finite;
1783
+ readonly branches: import("effect/Schema").Finite;
1784
+ readonly functions: import("effect/Schema").Finite;
1785
+ readonly lines: import("effect/Schema").Finite;
1606
1786
  }>;
1607
1787
  readonly relatedTestFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
1608
1788
  }>, import("effect/Schema").Struct<{
@@ -1952,17 +2132,17 @@ export declare const Kit: Toolkit.Toolkit<{
1952
2132
  readonly project: import("effect/Schema").optional<import("effect/Schema").String>;
1953
2133
  readonly reason: import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>;
1954
2134
  readonly summary: import("effect/Schema").Struct<{
1955
- readonly total: import("effect/Schema").Number;
1956
- readonly passed: import("effect/Schema").Number;
1957
- readonly failed: import("effect/Schema").Number;
1958
- readonly skipped: import("effect/Schema").Number;
1959
- readonly duration: import("effect/Schema").Number;
1960
- readonly modules: import("effect/Schema").optional<import("effect/Schema").Number>;
2135
+ readonly total: import("effect/Schema").Finite;
2136
+ readonly passed: import("effect/Schema").Finite;
2137
+ readonly failed: import("effect/Schema").Finite;
2138
+ readonly skipped: import("effect/Schema").Finite;
2139
+ readonly duration: import("effect/Schema").Finite;
2140
+ readonly modules: import("effect/Schema").optional<import("effect/Schema").Finite>;
1961
2141
  }>;
1962
2142
  readonly failed: import("effect/Schema").$Array<import("effect/Schema").Struct<{
1963
2143
  readonly file: import("effect/Schema").String;
1964
2144
  readonly state: import("effect/Schema").Literals<readonly ["passed", "failed", "skipped", "pending"]>;
1965
- readonly duration: import("effect/Schema").optional<import("effect/Schema").Number>;
2145
+ readonly duration: import("effect/Schema").optional<import("effect/Schema").Finite>;
1966
2146
  readonly errors: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
1967
2147
  readonly message: import("effect/Schema").String;
1968
2148
  readonly stack: import("effect/Schema").optional<import("effect/Schema").String>;
@@ -1974,7 +2154,7 @@ export declare const Kit: Toolkit.Toolkit<{
1974
2154
  readonly name: import("effect/Schema").String;
1975
2155
  readonly fullName: import("effect/Schema").String;
1976
2156
  readonly state: import("effect/Schema").Literals<readonly ["passed", "failed", "skipped", "pending"]>;
1977
- readonly duration: import("effect/Schema").optional<import("effect/Schema").Number>;
2157
+ readonly duration: import("effect/Schema").optional<import("effect/Schema").Finite>;
1978
2158
  readonly flaky: import("effect/Schema").optional<import("effect/Schema").Boolean>;
1979
2159
  readonly slow: import("effect/Schema").optional<import("effect/Schema").Boolean>;
1980
2160
  readonly errors: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
@@ -1997,81 +2177,81 @@ export declare const Kit: Toolkit.Toolkit<{
1997
2177
  readonly failedFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
1998
2178
  readonly coverage: import("effect/Schema").optional<import("effect/Schema").Struct<{
1999
2179
  readonly totals: import("effect/Schema").Struct<{
2000
- readonly statements: import("effect/Schema").Number;
2001
- readonly branches: import("effect/Schema").Number;
2002
- readonly functions: import("effect/Schema").Number;
2003
- readonly lines: import("effect/Schema").Number;
2180
+ readonly statements: import("effect/Schema").Finite;
2181
+ readonly branches: import("effect/Schema").Finite;
2182
+ readonly functions: import("effect/Schema").Finite;
2183
+ readonly lines: import("effect/Schema").Finite;
2004
2184
  }>;
2005
2185
  readonly thresholds: import("effect/Schema").Struct<{
2006
2186
  readonly global: import("effect/Schema").Struct<{
2007
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2008
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2009
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2010
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2187
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2188
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2189
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2190
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2011
2191
  }>;
2012
2192
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2013
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2014
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2015
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2016
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2193
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2194
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2195
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2196
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2017
2197
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2018
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2019
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2020
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2021
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2198
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2199
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2200
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2201
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2022
2202
  }>]>>;
2023
2203
  }>]>>, never>;
2024
2204
  }>;
2025
2205
  readonly targets: import("effect/Schema").optional<import("effect/Schema").Struct<{
2026
2206
  readonly global: import("effect/Schema").Struct<{
2027
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2028
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2029
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2030
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2207
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2208
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2209
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2210
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2031
2211
  }>;
2032
2212
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2033
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2034
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2035
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2036
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2213
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2214
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2215
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2216
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2037
2217
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2038
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2039
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2040
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2041
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2218
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2219
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2220
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2221
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2042
2222
  }>]>>;
2043
2223
  }>]>>, never>;
2044
2224
  }>>;
2045
2225
  readonly baselines: import("effect/Schema").optional<import("effect/Schema").Struct<{
2046
2226
  readonly global: import("effect/Schema").Struct<{
2047
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2048
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2049
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2050
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2227
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2228
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2229
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2230
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2051
2231
  }>;
2052
2232
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2053
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2054
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2055
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2056
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2233
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2234
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2235
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2236
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2057
2237
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2058
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2059
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2060
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2061
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2238
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2239
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2240
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2241
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2062
2242
  }>]>>;
2063
2243
  }>]>>, never>;
2064
2244
  }>>;
2065
2245
  readonly scoped: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").Boolean, never>;
2066
2246
  readonly scopedFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
2067
- readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Number>;
2247
+ readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Finite>;
2068
2248
  readonly lowCoverage: import("effect/Schema").$Array<import("effect/Schema").Struct<{
2069
2249
  readonly file: import("effect/Schema").String;
2070
2250
  readonly summary: import("effect/Schema").Struct<{
2071
- readonly statements: import("effect/Schema").Number;
2072
- readonly branches: import("effect/Schema").Number;
2073
- readonly functions: import("effect/Schema").Number;
2074
- readonly lines: import("effect/Schema").Number;
2251
+ readonly statements: import("effect/Schema").Finite;
2252
+ readonly branches: import("effect/Schema").Finite;
2253
+ readonly functions: import("effect/Schema").Finite;
2254
+ readonly lines: import("effect/Schema").Finite;
2075
2255
  }>;
2076
2256
  readonly uncoveredLines: import("effect/Schema").String;
2077
2257
  }>>;
@@ -2079,10 +2259,10 @@ export declare const Kit: Toolkit.Toolkit<{
2079
2259
  readonly belowTarget: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
2080
2260
  readonly file: import("effect/Schema").String;
2081
2261
  readonly summary: import("effect/Schema").Struct<{
2082
- readonly statements: import("effect/Schema").Number;
2083
- readonly branches: import("effect/Schema").Number;
2084
- readonly functions: import("effect/Schema").Number;
2085
- readonly lines: import("effect/Schema").Number;
2262
+ readonly statements: import("effect/Schema").Finite;
2263
+ readonly branches: import("effect/Schema").Finite;
2264
+ readonly functions: import("effect/Schema").Finite;
2265
+ readonly lines: import("effect/Schema").Finite;
2086
2266
  }>;
2087
2267
  readonly uncoveredLines: import("effect/Schema").String;
2088
2268
  }>>>;
@@ -2090,44 +2270,44 @@ export declare const Kit: Toolkit.Toolkit<{
2090
2270
  readonly globShortfalls: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
2091
2271
  readonly pattern: import("effect/Schema").String;
2092
2272
  readonly summary: import("effect/Schema").Struct<{
2093
- readonly statements: import("effect/Schema").Number;
2094
- readonly branches: import("effect/Schema").Number;
2095
- readonly functions: import("effect/Schema").Number;
2096
- readonly lines: import("effect/Schema").Number;
2273
+ readonly statements: import("effect/Schema").Finite;
2274
+ readonly branches: import("effect/Schema").Finite;
2275
+ readonly functions: import("effect/Schema").Finite;
2276
+ readonly lines: import("effect/Schema").Finite;
2097
2277
  }>;
2098
2278
  readonly thresholds: import("effect/Schema").Struct<{
2099
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2100
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2101
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2102
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2279
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2280
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2281
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2282
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2103
2283
  }>;
2104
2284
  }>>>;
2105
2285
  }>>;
2106
2286
  readonly tagCounts: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Struct<{
2107
- readonly passed: import("effect/Schema").optional<import("effect/Schema").Number>;
2108
- readonly failed: import("effect/Schema").optional<import("effect/Schema").Number>;
2109
- readonly skipped: import("effect/Schema").optional<import("effect/Schema").Number>;
2287
+ readonly passed: import("effect/Schema").optional<import("effect/Schema").Finite>;
2288
+ readonly failed: import("effect/Schema").optional<import("effect/Schema").Finite>;
2289
+ readonly skipped: import("effect/Schema").optional<import("effect/Schema").Finite>;
2110
2290
  }>>>;
2111
2291
  readonly consoleLeaks: import("effect/Schema").optional<import("effect/Schema").Struct<{
2112
- readonly total: import("effect/Schema").Number;
2292
+ readonly total: import("effect/Schema").Finite;
2113
2293
  readonly byFile: import("effect/Schema").$Array<import("effect/Schema").Struct<{
2114
2294
  readonly file: import("effect/Schema").String;
2115
- readonly stdout: import("effect/Schema").Number;
2116
- readonly stderr: import("effect/Schema").Number;
2295
+ readonly stdout: import("effect/Schema").Finite;
2296
+ readonly stderr: import("effect/Schema").Finite;
2117
2297
  readonly tests: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
2118
2298
  readonly sample: import("effect/Schema").optional<import("effect/Schema").String>;
2119
2299
  }>>;
2120
2300
  readonly truncated: import("effect/Schema").optional<import("effect/Schema").Boolean>;
2121
2301
  readonly fromFailingTests: import("effect/Schema").optional<import("effect/Schema").Struct<{
2122
- readonly total: import("effect/Schema").Number;
2123
- readonly files: import("effect/Schema").Number;
2302
+ readonly total: import("effect/Schema").Finite;
2303
+ readonly files: import("effect/Schema").Finite;
2124
2304
  }>>;
2125
2305
  }>>;
2126
2306
  readonly strayOutput: import("effect/Schema").optional<import("effect/Schema").Struct<{
2127
- readonly total: import("effect/Schema").Number;
2128
- readonly stdout: import("effect/Schema").Number;
2129
- readonly stderr: import("effect/Schema").Number;
2130
- readonly bytes: import("effect/Schema").Number;
2307
+ readonly total: import("effect/Schema").Finite;
2308
+ readonly stdout: import("effect/Schema").Finite;
2309
+ readonly stderr: import("effect/Schema").Finite;
2310
+ readonly bytes: import("effect/Schema").Finite;
2131
2311
  readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
2132
2312
  readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
2133
2313
  readonly text: import("effect/Schema").String;
@@ -2137,12 +2317,19 @@ export declare const Kit: Toolkit.Toolkit<{
2137
2317
  readonly classifications: import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").String>;
2138
2318
  readonly discoveryLastScannedAt: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
2139
2319
  readonly scopedNote: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
2320
+ readonly suggestedActions: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").Struct<{
2321
+ readonly severity: import("effect/Schema").Literals<readonly ["info", "warn", "blocker"]>;
2322
+ readonly title: import("effect/Schema").String;
2323
+ readonly detail: import("effect/Schema").String;
2324
+ readonly targetTool: import("effect/Schema").optional<import("effect/Schema").String>;
2325
+ }>>>;
2140
2326
  }>, import("effect/Schema").Struct<{
2141
2327
  readonly kind: import("effect/Schema").Literal<"timeout">;
2142
2328
  readonly timeoutSeconds: import("effect/Schema").Number;
2143
2329
  }>, import("effect/Schema").Struct<{
2144
2330
  readonly kind: import("effect/Schema").Literal<"error">;
2145
2331
  readonly message: import("effect/Schema").String;
2332
+ readonly reason: import("effect/Schema").optionalKey<import("effect/Schema").Literals<readonly ["stale-install"]>>;
2146
2333
  }>, import("effect/Schema").Struct<{
2147
2334
  readonly kind: import("effect/Schema").Literal<"no-match">;
2148
2335
  readonly projectRoot: import("effect/Schema").String;
@@ -2719,81 +2906,81 @@ export declare const Kit: Toolkit.Toolkit<{
2719
2906
  readonly project: import("effect/Schema").String;
2720
2907
  readonly coverage: import("effect/Schema").Struct<{
2721
2908
  readonly totals: import("effect/Schema").Struct<{
2722
- readonly statements: import("effect/Schema").Number;
2723
- readonly branches: import("effect/Schema").Number;
2724
- readonly functions: import("effect/Schema").Number;
2725
- readonly lines: import("effect/Schema").Number;
2909
+ readonly statements: import("effect/Schema").Finite;
2910
+ readonly branches: import("effect/Schema").Finite;
2911
+ readonly functions: import("effect/Schema").Finite;
2912
+ readonly lines: import("effect/Schema").Finite;
2726
2913
  }>;
2727
2914
  readonly thresholds: import("effect/Schema").Struct<{
2728
2915
  readonly global: import("effect/Schema").Struct<{
2729
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2730
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2731
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2732
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2916
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2917
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2918
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2919
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2733
2920
  }>;
2734
2921
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2735
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2736
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2737
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2738
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2922
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2923
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2924
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2925
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2739
2926
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2740
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2741
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2742
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2743
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2927
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2928
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2929
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2930
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2744
2931
  }>]>>;
2745
2932
  }>]>>, never>;
2746
2933
  }>;
2747
2934
  readonly targets: import("effect/Schema").optional<import("effect/Schema").Struct<{
2748
2935
  readonly global: import("effect/Schema").Struct<{
2749
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2750
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2751
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2752
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2936
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2937
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2938
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2939
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2753
2940
  }>;
2754
2941
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2755
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2756
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2757
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2758
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2942
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2943
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2944
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2945
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2759
2946
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2760
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2761
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2762
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2763
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2947
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2948
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2949
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2950
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2764
2951
  }>]>>;
2765
2952
  }>]>>, never>;
2766
2953
  }>>;
2767
2954
  readonly baselines: import("effect/Schema").optional<import("effect/Schema").Struct<{
2768
2955
  readonly global: import("effect/Schema").Struct<{
2769
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2770
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2771
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2772
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2956
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2957
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2958
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2959
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2773
2960
  }>;
2774
2961
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
2775
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2776
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2777
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2778
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2962
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2963
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2964
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2965
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2779
2966
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
2780
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2781
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2782
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2783
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
2967
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
2968
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
2969
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
2970
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2784
2971
  }>]>>;
2785
2972
  }>]>>, never>;
2786
2973
  }>>;
2787
2974
  readonly scoped: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").Boolean, never>;
2788
2975
  readonly scopedFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
2789
- readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Number>;
2976
+ readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Finite>;
2790
2977
  readonly lowCoverage: import("effect/Schema").$Array<import("effect/Schema").Struct<{
2791
2978
  readonly file: import("effect/Schema").String;
2792
2979
  readonly summary: import("effect/Schema").Struct<{
2793
- readonly statements: import("effect/Schema").Number;
2794
- readonly branches: import("effect/Schema").Number;
2795
- readonly functions: import("effect/Schema").Number;
2796
- readonly lines: import("effect/Schema").Number;
2980
+ readonly statements: import("effect/Schema").Finite;
2981
+ readonly branches: import("effect/Schema").Finite;
2982
+ readonly functions: import("effect/Schema").Finite;
2983
+ readonly lines: import("effect/Schema").Finite;
2797
2984
  }>;
2798
2985
  readonly uncoveredLines: import("effect/Schema").String;
2799
2986
  }>>;
@@ -2801,10 +2988,10 @@ export declare const Kit: Toolkit.Toolkit<{
2801
2988
  readonly belowTarget: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
2802
2989
  readonly file: import("effect/Schema").String;
2803
2990
  readonly summary: import("effect/Schema").Struct<{
2804
- readonly statements: import("effect/Schema").Number;
2805
- readonly branches: import("effect/Schema").Number;
2806
- readonly functions: import("effect/Schema").Number;
2807
- readonly lines: import("effect/Schema").Number;
2991
+ readonly statements: import("effect/Schema").Finite;
2992
+ readonly branches: import("effect/Schema").Finite;
2993
+ readonly functions: import("effect/Schema").Finite;
2994
+ readonly lines: import("effect/Schema").Finite;
2808
2995
  }>;
2809
2996
  readonly uncoveredLines: import("effect/Schema").String;
2810
2997
  }>>>;
@@ -2812,16 +2999,16 @@ export declare const Kit: Toolkit.Toolkit<{
2812
2999
  readonly globShortfalls: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
2813
3000
  readonly pattern: import("effect/Schema").String;
2814
3001
  readonly summary: import("effect/Schema").Struct<{
2815
- readonly statements: import("effect/Schema").Number;
2816
- readonly branches: import("effect/Schema").Number;
2817
- readonly functions: import("effect/Schema").Number;
2818
- readonly lines: import("effect/Schema").Number;
3002
+ readonly statements: import("effect/Schema").Finite;
3003
+ readonly branches: import("effect/Schema").Finite;
3004
+ readonly functions: import("effect/Schema").Finite;
3005
+ readonly lines: import("effect/Schema").Finite;
2819
3006
  }>;
2820
3007
  readonly thresholds: import("effect/Schema").Struct<{
2821
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
2822
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
2823
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
2824
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
3008
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
3009
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
3010
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
3011
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
2825
3012
  }>;
2826
3013
  }>>>;
2827
3014
  }>;
@@ -2912,6 +3099,20 @@ export declare const Kit: Toolkit.Toolkit<{
2912
3099
  readonly fullName: import("effect/Schema").String;
2913
3100
  readonly recentRuns: import("effect/Schema").$Array<import("effect/Schema").Literals<readonly ["passed", "failed"]>>;
2914
3101
  }>>;
3102
+ readonly strayOutput: import("effect/Schema").Struct<{
3103
+ readonly runs: import("effect/Schema").Finite;
3104
+ readonly runsWithStrayOutput: import("effect/Schema").Finite;
3105
+ readonly latest: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
3106
+ readonly total: import("effect/Schema").Finite;
3107
+ readonly stdout: import("effect/Schema").Finite;
3108
+ readonly stderr: import("effect/Schema").Finite;
3109
+ readonly bytes: import("effect/Schema").Finite;
3110
+ readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
3111
+ readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
3112
+ readonly text: import("effect/Schema").String;
3113
+ }>>;
3114
+ }>>;
3115
+ }>;
2915
3116
  }>;
2916
3117
  readonly failure: import("effect/Schema").Never;
2917
3118
  readonly failureMode: "error";
@@ -2954,6 +3155,16 @@ export declare const Kit: Toolkit.Toolkit<{
2954
3155
  readonly historyFile: import("effect/Schema").optional<import("effect/Schema").String>;
2955
3156
  readonly lastRun: import("effect/Schema").NullOr<import("effect/Schema").String>;
2956
3157
  readonly lastResult: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>>;
3158
+ readonly strayOutput: import("effect/Schema").optionalKey<import("effect/Schema").Struct<{
3159
+ readonly total: import("effect/Schema").Finite;
3160
+ readonly stdout: import("effect/Schema").Finite;
3161
+ readonly stderr: import("effect/Schema").Finite;
3162
+ readonly bytes: import("effect/Schema").Finite;
3163
+ readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
3164
+ readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
3165
+ readonly text: import("effect/Schema").String;
3166
+ }>>;
3167
+ }>>;
2957
3168
  }>>;
2958
3169
  }>, import("effect/Schema").Struct<{
2959
3170
  readonly dataAvailable: import("effect/Schema").Literal<false>;
@@ -2975,16 +3186,16 @@ export declare const Kit: Toolkit.Toolkit<{
2975
3186
  readonly entries: import("effect/Schema").$Array<import("effect/Schema").Struct<{
2976
3187
  readonly timestamp: import("effect/Schema").String;
2977
3188
  readonly coverage: import("effect/Schema").Struct<{
2978
- readonly statements: import("effect/Schema").Number;
2979
- readonly branches: import("effect/Schema").Number;
2980
- readonly functions: import("effect/Schema").Number;
2981
- readonly lines: import("effect/Schema").Number;
3189
+ readonly statements: import("effect/Schema").Finite;
3190
+ readonly branches: import("effect/Schema").Finite;
3191
+ readonly functions: import("effect/Schema").Finite;
3192
+ readonly lines: import("effect/Schema").Finite;
2982
3193
  }>;
2983
3194
  readonly delta: import("effect/Schema").Struct<{
2984
- readonly statements: import("effect/Schema").Number;
2985
- readonly branches: import("effect/Schema").Number;
2986
- readonly functions: import("effect/Schema").Number;
2987
- readonly lines: import("effect/Schema").Number;
3195
+ readonly statements: import("effect/Schema").Finite;
3196
+ readonly branches: import("effect/Schema").Finite;
3197
+ readonly functions: import("effect/Schema").Finite;
3198
+ readonly lines: import("effect/Schema").Finite;
2988
3199
  }>;
2989
3200
  readonly direction: import("effect/Schema").Literals<readonly ["improving", "regressing", "stable"]>;
2990
3201
  readonly targetsHash: import("effect/Schema").optional<import("effect/Schema").String>;
@@ -3055,24 +3266,24 @@ export declare const Kit: Toolkit.Toolkit<{
3055
3266
  * @public
3056
3267
  */
3057
3268
  export declare const toolHandlers: {
3058
- ping: () => import("effect/Effect").Effect<PingResultType>;
3059
- help: () => import("effect/Effect").Effect<HelpResultType>;
3060
- test_status: (input: TestStatusInputType) => import("effect/Effect").Effect<TestStatusResultType, never, import("@vitest-agent/engine").DataReader>;
3061
- test_overview: (input: TestOverviewInputType) => import("effect/Effect").Effect<TestOverviewResultType, never, import("@vitest-agent/engine").DataReader>;
3062
- test_coverage: (input: TestCoverageInputType) => import("effect/Effect").Effect<TestCoverageResultType, never, import("@vitest-agent/engine").DataReader>;
3063
- test_history: (input: TestHistoryInputType) => import("effect/Effect").Effect<TestHistoryResultType, never, import("@vitest-agent/engine").DataReader>;
3064
- test_trends: (input: TestTrendsInputType) => import("effect/Effect").Effect<TestTrendsResultType, never, import("@vitest-agent/engine").DataReader>;
3065
- test_errors: (input: TestErrorsInputType) => import("effect/Effect").Effect<TestErrorsResultType, never, import("@vitest-agent/engine").DataReader>;
3066
- file_coverage: (input: FileCoverageInputType) => import("effect/Effect").Effect<FileCoverageResultType, never, import("@vitest-agent/engine").DataReader>;
3067
- settings_list: () => import("effect/Effect").Effect<SettingsListResultType, never, import("@vitest-agent/engine").DataReader>;
3068
- cache_health: () => import("effect/Effect").Effect<CacheHealthResultType, never, import("@vitest-agent/engine").DataReader>;
3069
- configure: (input: ConfigureInputType) => import("effect/Effect").Effect<ConfigureResultType, never, import("@vitest-agent/engine").DataReader>;
3070
- commit_changes: (input: CommitChangesInputType) => import("effect/Effect").Effect<CommitChangesResultType, never, import("@vitest-agent/engine").DataReader>;
3071
- turn_search: (input: TurnSearchInputType) => import("effect/Effect").Effect<TurnSearchResultType, never, import("@vitest-agent/engine").DataReader>;
3072
- failure_signature_get: (input: FailureSignatureGetInputType) => import("effect/Effect").Effect<FailureSignatureGetResultType, never, import("@vitest-agent/engine").DataReader>;
3073
- acceptance_metrics: () => import("effect/Effect").Effect<AcceptanceMetricsResultType, never, import("@vitest-agent/engine").DataReader>;
3074
- triage_brief: (input: TriageBriefInputType) => import("effect/Effect").Effect<TriageBriefResultType, never, import("@vitest-agent/engine").DataReader>;
3075
- wrapup_prompt: (input: WrapupPromptInputType) => import("effect/Effect").Effect<WrapupPromptResultType, never, import("@vitest-agent/engine").DataReader>;
3269
+ ping: typeof handlePing;
3270
+ help: typeof handleHelp;
3271
+ test_status: typeof handleTestStatus;
3272
+ test_overview: typeof handleTestOverview;
3273
+ test_coverage: typeof handleTestCoverage;
3274
+ test_history: typeof handleTestHistory;
3275
+ test_trends: typeof handleTestTrends;
3276
+ test_errors: typeof handleTestErrors;
3277
+ file_coverage: typeof handleFileCoverage;
3278
+ settings_list: typeof handleSettingsList;
3279
+ cache_health: typeof handleCacheHealth;
3280
+ configure: typeof handleConfigure;
3281
+ commit_changes: typeof handleCommitChanges;
3282
+ turn_search: typeof handleTurnSearch;
3283
+ failure_signature_get: typeof handleFailureSignatureGet;
3284
+ acceptance_metrics: typeof handleAcceptanceMetrics;
3285
+ triage_brief: typeof handleTriageBrief;
3286
+ wrapup_prompt: typeof handleWrapupPrompt;
3076
3287
  inventory: (payload: unknown) => import("effect/Effect").Effect<{
3077
3288
  readonly inventoryKind: "project";
3078
3289
  readonly count: number;
@@ -3206,13 +3417,6 @@ export declare const toolHandlers: {
3206
3417
  readonly state: "failed" | "passed";
3207
3418
  readonly timestamp: string;
3208
3419
  }[];
3209
- } | {
3210
- readonly action: "get";
3211
- readonly found: false;
3212
- readonly project: string;
3213
- readonly fullName: string;
3214
- readonly ambiguous?: boolean | undefined;
3215
- readonly candidateModules?: readonly string[] | undefined;
3216
3420
  } | {
3217
3421
  readonly action: "for_file";
3218
3422
  readonly filePath: string;
@@ -3278,8 +3482,15 @@ export declare const toolHandlers: {
3278
3482
  readonly bodyEncoding?: "base64" | "utf-8" | undefined;
3279
3483
  }[];
3280
3484
  }[];
3485
+ } | {
3486
+ readonly action: "get";
3487
+ readonly found: false;
3488
+ readonly project: string;
3489
+ readonly fullName: string;
3490
+ readonly ambiguous?: boolean | undefined;
3491
+ readonly candidateModules?: readonly string[] | undefined;
3281
3492
  }, import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader>;
3282
- register_agent: (input: RegisterAgentInputType) => import("effect/Effect").Effect<RegisterAgentOutput, never, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3493
+ register_agent: typeof handleRegisterAgent;
3283
3494
  note: (payload: unknown) => import("effect/Effect").Effect<{
3284
3495
  readonly action: "create";
3285
3496
  readonly id: number;
@@ -3352,9 +3563,6 @@ export declare const toolHandlers: {
3352
3563
  hypothesis: (payload: unknown) => import("effect/Effect").Effect<{
3353
3564
  readonly action: "record";
3354
3565
  readonly id: number;
3355
- } | {
3356
- readonly _idempotentReplay?: true;
3357
- readonly action: "validate";
3358
3566
  } | {
3359
3567
  readonly action: "list";
3360
3568
  readonly count: number;
@@ -3367,12 +3575,12 @@ export declare const toolHandlers: {
3367
3575
  readonly validationOutcome: "abandoned" | "confirmed" | "refuted" | null;
3368
3576
  readonly validatedAt: string | null;
3369
3577
  }[];
3370
- } | (({
3371
- readonly action: "record";
3372
- readonly id: number;
3373
3578
  } | {
3374
3579
  readonly _idempotentReplay?: true;
3375
3580
  readonly action: "validate";
3581
+ } | (({
3582
+ readonly action: "record";
3583
+ readonly id: number;
3376
3584
  } | {
3377
3585
  readonly action: "list";
3378
3586
  readonly count: number;
@@ -3385,21 +3593,13 @@ export declare const toolHandlers: {
3385
3593
  readonly validationOutcome: "abandoned" | "confirmed" | "refuted" | null;
3386
3594
  readonly validatedAt: string | null;
3387
3595
  }[];
3596
+ } | {
3597
+ readonly _idempotentReplay?: true;
3598
+ readonly action: "validate";
3388
3599
  }) & {
3389
3600
  _idempotentReplay: true;
3390
3601
  }), import("effect/ai/McpSchema").InvalidParams | import("@effected/mcp").ToolRefusal, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore | McpSession>;
3391
3602
  tdd_task: (payload: unknown) => import("effect/Effect").Effect<{
3392
- readonly _idempotentReplay?: true;
3393
- readonly action: "start";
3394
- readonly tddTaskId: number;
3395
- readonly goal: string;
3396
- readonly runId?: string | undefined;
3397
- } | {
3398
- readonly _idempotentReplay?: true;
3399
- readonly action: "end";
3400
- readonly tddTaskId: number;
3401
- readonly outcome: "abandoned" | "blocked" | "succeeded";
3402
- } | {
3403
3603
  readonly action: "get";
3404
3604
  readonly found: true;
3405
3605
  readonly task: {
@@ -3472,7 +3672,7 @@ export declare const toolHandlers: {
3472
3672
  readonly action: "resume";
3473
3673
  readonly found: false;
3474
3674
  readonly tddTaskId: number;
3475
- } | (({
3675
+ } | {
3476
3676
  readonly _idempotentReplay?: true;
3477
3677
  readonly action: "start";
3478
3678
  readonly tddTaskId: number;
@@ -3483,7 +3683,7 @@ export declare const toolHandlers: {
3483
3683
  readonly action: "end";
3484
3684
  readonly tddTaskId: number;
3485
3685
  readonly outcome: "abandoned" | "blocked" | "succeeded";
3486
- } | {
3686
+ } | (({
3487
3687
  readonly action: "get";
3488
3688
  readonly found: true;
3489
3689
  readonly task: {
@@ -3556,21 +3756,33 @@ export declare const toolHandlers: {
3556
3756
  readonly action: "resume";
3557
3757
  readonly found: false;
3558
3758
  readonly tddTaskId: number;
3759
+ } | {
3760
+ readonly _idempotentReplay?: true;
3761
+ readonly action: "start";
3762
+ readonly tddTaskId: number;
3763
+ readonly goal: string;
3764
+ readonly runId?: string | undefined;
3765
+ } | {
3766
+ readonly _idempotentReplay?: true;
3767
+ readonly action: "end";
3768
+ readonly tddTaskId: number;
3769
+ readonly outcome: "abandoned" | "blocked" | "succeeded";
3559
3770
  }) & {
3560
3771
  _idempotentReplay: true;
3561
3772
  }), import("effect/ai/McpSchema").InvalidParams | import("@effected/mcp").ToolRefusal, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3562
- tdd_phase_transition_request: (input: PhaseTransitionInputType) => import("effect/Effect").Effect<PhaseTransitionResultType, never, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3773
+ tdd_phase_transition_request: typeof handlePhaseTransitionRequest;
3563
3774
  tdd_goal: (payload: unknown) => import("effect/Effect").Effect<{
3564
- readonly _idempotentReplay?: true;
3565
- readonly ok: true;
3566
- readonly action: "create";
3567
- readonly goal: {
3568
- readonly id: number;
3569
- readonly sessionId: number;
3570
- readonly ordinal: number;
3571
- readonly goal: string;
3572
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3573
- readonly createdAt: string;
3775
+ readonly ok: false;
3776
+ readonly error: {
3777
+ readonly [x: string]: unknown;
3778
+ readonly _tag: string;
3779
+ readonly remediation: {
3780
+ readonly hint: string;
3781
+ readonly suggestedTool?: string;
3782
+ readonly suggestedArgs?: {
3783
+ readonly [x: string]: unknown;
3784
+ };
3785
+ };
3574
3786
  };
3575
3787
  } | {
3576
3788
  readonly ok: true;
@@ -3633,6 +3845,18 @@ export declare const toolHandlers: {
3633
3845
  }[];
3634
3846
  }[];
3635
3847
  } | {
3848
+ readonly _idempotentReplay?: true;
3849
+ readonly ok: true;
3850
+ readonly action: "create";
3851
+ readonly goal: {
3852
+ readonly id: number;
3853
+ readonly sessionId: number;
3854
+ readonly ordinal: number;
3855
+ readonly goal: string;
3856
+ readonly status: "abandoned" | "done" | "in_progress" | "pending";
3857
+ readonly createdAt: string;
3858
+ };
3859
+ } | (({
3636
3860
  readonly ok: false;
3637
3861
  readonly error: {
3638
3862
  readonly [x: string]: unknown;
@@ -3645,18 +3869,6 @@ export declare const toolHandlers: {
3645
3869
  };
3646
3870
  };
3647
3871
  };
3648
- } | (({
3649
- readonly _idempotentReplay?: true;
3650
- readonly ok: true;
3651
- readonly action: "create";
3652
- readonly goal: {
3653
- readonly id: number;
3654
- readonly sessionId: number;
3655
- readonly ordinal: number;
3656
- readonly goal: string;
3657
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3658
- readonly createdAt: string;
3659
- };
3660
3872
  } | {
3661
3873
  readonly ok: true;
3662
3874
  readonly action: "update";
@@ -3718,6 +3930,21 @@ export declare const toolHandlers: {
3718
3930
  }[];
3719
3931
  }[];
3720
3932
  } | {
3933
+ readonly _idempotentReplay?: true;
3934
+ readonly ok: true;
3935
+ readonly action: "create";
3936
+ readonly goal: {
3937
+ readonly id: number;
3938
+ readonly sessionId: number;
3939
+ readonly ordinal: number;
3940
+ readonly goal: string;
3941
+ readonly status: "abandoned" | "done" | "in_progress" | "pending";
3942
+ readonly createdAt: string;
3943
+ };
3944
+ }) & {
3945
+ _idempotentReplay: true;
3946
+ }), import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3947
+ tdd_behavior: (payload: unknown) => import("effect/Effect").Effect<{
3721
3948
  readonly ok: false;
3722
3949
  readonly error: {
3723
3950
  readonly [x: string]: unknown;
@@ -3730,22 +3957,6 @@ export declare const toolHandlers: {
3730
3957
  };
3731
3958
  };
3732
3959
  };
3733
- }) & {
3734
- _idempotentReplay: true;
3735
- }), import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3736
- tdd_behavior: (payload: unknown) => import("effect/Effect").Effect<{
3737
- readonly _idempotentReplay?: true;
3738
- readonly ok: true;
3739
- readonly action: "create";
3740
- readonly behavior: {
3741
- readonly id: number;
3742
- readonly goalId: number;
3743
- readonly ordinal: number;
3744
- readonly behavior: string;
3745
- readonly suggestedTestName: string | null;
3746
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3747
- readonly createdAt: string;
3748
- };
3749
3960
  } | {
3750
3961
  readonly ok: true;
3751
3962
  readonly action: "update";
@@ -3819,19 +4030,6 @@ export declare const toolHandlers: {
3819
4030
  readonly createdAt: string;
3820
4031
  }[];
3821
4032
  } | {
3822
- readonly ok: false;
3823
- readonly error: {
3824
- readonly [x: string]: unknown;
3825
- readonly _tag: string;
3826
- readonly remediation: {
3827
- readonly hint: string;
3828
- readonly suggestedTool?: string;
3829
- readonly suggestedArgs?: {
3830
- readonly [x: string]: unknown;
3831
- };
3832
- };
3833
- };
3834
- } | (({
3835
4033
  readonly _idempotentReplay?: true;
3836
4034
  readonly ok: true;
3837
4035
  readonly action: "create";
@@ -3844,6 +4042,19 @@ export declare const toolHandlers: {
3844
4042
  readonly status: "abandoned" | "done" | "in_progress" | "pending";
3845
4043
  readonly createdAt: string;
3846
4044
  };
4045
+ } | (({
4046
+ readonly ok: false;
4047
+ readonly error: {
4048
+ readonly [x: string]: unknown;
4049
+ readonly _tag: string;
4050
+ readonly remediation: {
4051
+ readonly hint: string;
4052
+ readonly suggestedTool?: string;
4053
+ readonly suggestedArgs?: {
4054
+ readonly [x: string]: unknown;
4055
+ };
4056
+ };
4057
+ };
3847
4058
  } | {
3848
4059
  readonly ok: true;
3849
4060
  readonly action: "update";
@@ -3917,24 +4128,24 @@ export declare const toolHandlers: {
3917
4128
  readonly createdAt: string;
3918
4129
  }[];
3919
4130
  } | {
3920
- readonly ok: false;
3921
- readonly error: {
3922
- readonly [x: string]: unknown;
3923
- readonly _tag: string;
3924
- readonly remediation: {
3925
- readonly hint: string;
3926
- readonly suggestedTool?: string;
3927
- readonly suggestedArgs?: {
3928
- readonly [x: string]: unknown;
3929
- };
3930
- };
4131
+ readonly _idempotentReplay?: true;
4132
+ readonly ok: true;
4133
+ readonly action: "create";
4134
+ readonly behavior: {
4135
+ readonly id: number;
4136
+ readonly goalId: number;
4137
+ readonly ordinal: number;
4138
+ readonly behavior: string;
4139
+ readonly suggestedTestName: string | null;
4140
+ readonly status: "abandoned" | "done" | "in_progress" | "pending";
4141
+ readonly createdAt: string;
3931
4142
  };
3932
4143
  }) & {
3933
4144
  _idempotentReplay: true;
3934
4145
  }), import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3935
- tdd_artifact_list: (input: TddArtifactListInputType) => import("effect/Effect").Effect<TddArtifactListResultType, never, import("@vitest-agent/engine").DataReader>;
3936
- tdd_progress_push: (input: TddProgressPushInputType) => import("effect/Effect").Effect<TddProgressPushResultType, never, import("@vitest-agent/engine").DataReader | import("effect/ai/McpServer").McpServer>;
3937
- run_tests: (input: RunTestsInputType) => import("effect/Effect").Effect<RunTestsResultType, never, McpSession | import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
4146
+ tdd_artifact_list: typeof handleTddArtifactList;
4147
+ tdd_progress_push: typeof handleTddProgressPush;
4148
+ run_tests: typeof handleRunTests;
3938
4149
  };
3939
4150
  /**
3940
4151
  * The handlers layer: provides `Tool.HandlersFor<typeof Kit.tools>`.
@@ -4079,10 +4290,10 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4079
4290
  readonly report: import("effect/Schema").Struct<{
4080
4291
  readonly file: import("effect/Schema").String;
4081
4292
  readonly summary: import("effect/Schema").Struct<{
4082
- readonly statements: import("effect/Schema").Number;
4083
- readonly branches: import("effect/Schema").Number;
4084
- readonly functions: import("effect/Schema").Number;
4085
- readonly lines: import("effect/Schema").Number;
4293
+ readonly statements: import("effect/Schema").Finite;
4294
+ readonly branches: import("effect/Schema").Finite;
4295
+ readonly functions: import("effect/Schema").Finite;
4296
+ readonly lines: import("effect/Schema").Finite;
4086
4297
  }>;
4087
4298
  readonly uncoveredLines: import("effect/Schema").String;
4088
4299
  }>;
@@ -4098,10 +4309,10 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4098
4309
  readonly matched: import("effect/Schema").Literal<false>;
4099
4310
  readonly filePath: import("effect/Schema").String;
4100
4311
  readonly totals: import("effect/Schema").Struct<{
4101
- readonly statements: import("effect/Schema").Number;
4102
- readonly branches: import("effect/Schema").Number;
4103
- readonly functions: import("effect/Schema").Number;
4104
- readonly lines: import("effect/Schema").Number;
4312
+ readonly statements: import("effect/Schema").Finite;
4313
+ readonly branches: import("effect/Schema").Finite;
4314
+ readonly functions: import("effect/Schema").Finite;
4315
+ readonly lines: import("effect/Schema").Finite;
4105
4316
  }>;
4106
4317
  readonly relatedTestFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
4107
4318
  }>, import("effect/Schema").Struct<{
@@ -4451,17 +4662,17 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4451
4662
  readonly project: import("effect/Schema").optional<import("effect/Schema").String>;
4452
4663
  readonly reason: import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>;
4453
4664
  readonly summary: import("effect/Schema").Struct<{
4454
- readonly total: import("effect/Schema").Number;
4455
- readonly passed: import("effect/Schema").Number;
4456
- readonly failed: import("effect/Schema").Number;
4457
- readonly skipped: import("effect/Schema").Number;
4458
- readonly duration: import("effect/Schema").Number;
4459
- readonly modules: import("effect/Schema").optional<import("effect/Schema").Number>;
4665
+ readonly total: import("effect/Schema").Finite;
4666
+ readonly passed: import("effect/Schema").Finite;
4667
+ readonly failed: import("effect/Schema").Finite;
4668
+ readonly skipped: import("effect/Schema").Finite;
4669
+ readonly duration: import("effect/Schema").Finite;
4670
+ readonly modules: import("effect/Schema").optional<import("effect/Schema").Finite>;
4460
4671
  }>;
4461
4672
  readonly failed: import("effect/Schema").$Array<import("effect/Schema").Struct<{
4462
4673
  readonly file: import("effect/Schema").String;
4463
4674
  readonly state: import("effect/Schema").Literals<readonly ["passed", "failed", "skipped", "pending"]>;
4464
- readonly duration: import("effect/Schema").optional<import("effect/Schema").Number>;
4675
+ readonly duration: import("effect/Schema").optional<import("effect/Schema").Finite>;
4465
4676
  readonly errors: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
4466
4677
  readonly message: import("effect/Schema").String;
4467
4678
  readonly stack: import("effect/Schema").optional<import("effect/Schema").String>;
@@ -4473,7 +4684,7 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4473
4684
  readonly name: import("effect/Schema").String;
4474
4685
  readonly fullName: import("effect/Schema").String;
4475
4686
  readonly state: import("effect/Schema").Literals<readonly ["passed", "failed", "skipped", "pending"]>;
4476
- readonly duration: import("effect/Schema").optional<import("effect/Schema").Number>;
4687
+ readonly duration: import("effect/Schema").optional<import("effect/Schema").Finite>;
4477
4688
  readonly flaky: import("effect/Schema").optional<import("effect/Schema").Boolean>;
4478
4689
  readonly slow: import("effect/Schema").optional<import("effect/Schema").Boolean>;
4479
4690
  readonly errors: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
@@ -4496,81 +4707,81 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4496
4707
  readonly failedFiles: import("effect/Schema").$Array<import("effect/Schema").String>;
4497
4708
  readonly coverage: import("effect/Schema").optional<import("effect/Schema").Struct<{
4498
4709
  readonly totals: import("effect/Schema").Struct<{
4499
- readonly statements: import("effect/Schema").Number;
4500
- readonly branches: import("effect/Schema").Number;
4501
- readonly functions: import("effect/Schema").Number;
4502
- readonly lines: import("effect/Schema").Number;
4710
+ readonly statements: import("effect/Schema").Finite;
4711
+ readonly branches: import("effect/Schema").Finite;
4712
+ readonly functions: import("effect/Schema").Finite;
4713
+ readonly lines: import("effect/Schema").Finite;
4503
4714
  }>;
4504
4715
  readonly thresholds: import("effect/Schema").Struct<{
4505
4716
  readonly global: import("effect/Schema").Struct<{
4506
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4507
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4508
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4509
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4717
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4718
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4719
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4720
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4510
4721
  }>;
4511
4722
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
4512
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4513
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4514
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4515
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4723
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4724
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4725
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4726
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4516
4727
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
4517
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4518
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4519
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4520
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4728
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4729
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4730
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4731
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4521
4732
  }>]>>;
4522
4733
  }>]>>, never>;
4523
4734
  }>;
4524
4735
  readonly targets: import("effect/Schema").optional<import("effect/Schema").Struct<{
4525
4736
  readonly global: import("effect/Schema").Struct<{
4526
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4527
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4528
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4529
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4737
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4738
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4739
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4740
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4530
4741
  }>;
4531
4742
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
4532
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4533
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4534
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4535
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4743
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4744
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4745
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4746
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4536
4747
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
4537
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4538
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4539
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4540
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4748
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4749
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4750
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4751
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4541
4752
  }>]>>;
4542
4753
  }>]>>, never>;
4543
4754
  }>>;
4544
4755
  readonly baselines: import("effect/Schema").optional<import("effect/Schema").Struct<{
4545
4756
  readonly global: import("effect/Schema").Struct<{
4546
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4547
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4548
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4549
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4757
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4758
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4759
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4760
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4550
4761
  }>;
4551
4762
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
4552
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4553
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4554
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4555
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4763
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4764
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4765
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4766
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4556
4767
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
4557
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4558
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4559
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4560
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4768
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4769
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4770
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4771
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4561
4772
  }>]>>;
4562
4773
  }>]>>, never>;
4563
4774
  }>>;
4564
4775
  readonly scoped: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").Boolean, never>;
4565
4776
  readonly scopedFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
4566
- readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Number>;
4777
+ readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Finite>;
4567
4778
  readonly lowCoverage: import("effect/Schema").$Array<import("effect/Schema").Struct<{
4568
4779
  readonly file: import("effect/Schema").String;
4569
4780
  readonly summary: import("effect/Schema").Struct<{
4570
- readonly statements: import("effect/Schema").Number;
4571
- readonly branches: import("effect/Schema").Number;
4572
- readonly functions: import("effect/Schema").Number;
4573
- readonly lines: import("effect/Schema").Number;
4781
+ readonly statements: import("effect/Schema").Finite;
4782
+ readonly branches: import("effect/Schema").Finite;
4783
+ readonly functions: import("effect/Schema").Finite;
4784
+ readonly lines: import("effect/Schema").Finite;
4574
4785
  }>;
4575
4786
  readonly uncoveredLines: import("effect/Schema").String;
4576
4787
  }>>;
@@ -4578,10 +4789,10 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4578
4789
  readonly belowTarget: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
4579
4790
  readonly file: import("effect/Schema").String;
4580
4791
  readonly summary: import("effect/Schema").Struct<{
4581
- readonly statements: import("effect/Schema").Number;
4582
- readonly branches: import("effect/Schema").Number;
4583
- readonly functions: import("effect/Schema").Number;
4584
- readonly lines: import("effect/Schema").Number;
4792
+ readonly statements: import("effect/Schema").Finite;
4793
+ readonly branches: import("effect/Schema").Finite;
4794
+ readonly functions: import("effect/Schema").Finite;
4795
+ readonly lines: import("effect/Schema").Finite;
4585
4796
  }>;
4586
4797
  readonly uncoveredLines: import("effect/Schema").String;
4587
4798
  }>>>;
@@ -4589,44 +4800,44 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4589
4800
  readonly globShortfalls: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
4590
4801
  readonly pattern: import("effect/Schema").String;
4591
4802
  readonly summary: import("effect/Schema").Struct<{
4592
- readonly statements: import("effect/Schema").Number;
4593
- readonly branches: import("effect/Schema").Number;
4594
- readonly functions: import("effect/Schema").Number;
4595
- readonly lines: import("effect/Schema").Number;
4803
+ readonly statements: import("effect/Schema").Finite;
4804
+ readonly branches: import("effect/Schema").Finite;
4805
+ readonly functions: import("effect/Schema").Finite;
4806
+ readonly lines: import("effect/Schema").Finite;
4596
4807
  }>;
4597
4808
  readonly thresholds: import("effect/Schema").Struct<{
4598
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
4599
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
4600
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
4601
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
4809
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
4810
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
4811
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
4812
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
4602
4813
  }>;
4603
4814
  }>>>;
4604
4815
  }>>;
4605
4816
  readonly tagCounts: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Struct<{
4606
- readonly passed: import("effect/Schema").optional<import("effect/Schema").Number>;
4607
- readonly failed: import("effect/Schema").optional<import("effect/Schema").Number>;
4608
- readonly skipped: import("effect/Schema").optional<import("effect/Schema").Number>;
4817
+ readonly passed: import("effect/Schema").optional<import("effect/Schema").Finite>;
4818
+ readonly failed: import("effect/Schema").optional<import("effect/Schema").Finite>;
4819
+ readonly skipped: import("effect/Schema").optional<import("effect/Schema").Finite>;
4609
4820
  }>>>;
4610
4821
  readonly consoleLeaks: import("effect/Schema").optional<import("effect/Schema").Struct<{
4611
- readonly total: import("effect/Schema").Number;
4822
+ readonly total: import("effect/Schema").Finite;
4612
4823
  readonly byFile: import("effect/Schema").$Array<import("effect/Schema").Struct<{
4613
4824
  readonly file: import("effect/Schema").String;
4614
- readonly stdout: import("effect/Schema").Number;
4615
- readonly stderr: import("effect/Schema").Number;
4825
+ readonly stdout: import("effect/Schema").Finite;
4826
+ readonly stderr: import("effect/Schema").Finite;
4616
4827
  readonly tests: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
4617
4828
  readonly sample: import("effect/Schema").optional<import("effect/Schema").String>;
4618
4829
  }>>;
4619
4830
  readonly truncated: import("effect/Schema").optional<import("effect/Schema").Boolean>;
4620
4831
  readonly fromFailingTests: import("effect/Schema").optional<import("effect/Schema").Struct<{
4621
- readonly total: import("effect/Schema").Number;
4622
- readonly files: import("effect/Schema").Number;
4832
+ readonly total: import("effect/Schema").Finite;
4833
+ readonly files: import("effect/Schema").Finite;
4623
4834
  }>>;
4624
4835
  }>>;
4625
4836
  readonly strayOutput: import("effect/Schema").optional<import("effect/Schema").Struct<{
4626
- readonly total: import("effect/Schema").Number;
4627
- readonly stdout: import("effect/Schema").Number;
4628
- readonly stderr: import("effect/Schema").Number;
4629
- readonly bytes: import("effect/Schema").Number;
4837
+ readonly total: import("effect/Schema").Finite;
4838
+ readonly stdout: import("effect/Schema").Finite;
4839
+ readonly stderr: import("effect/Schema").Finite;
4840
+ readonly bytes: import("effect/Schema").Finite;
4630
4841
  readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
4631
4842
  readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
4632
4843
  readonly text: import("effect/Schema").String;
@@ -4636,12 +4847,19 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
4636
4847
  readonly classifications: import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").String>;
4637
4848
  readonly discoveryLastScannedAt: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
4638
4849
  readonly scopedNote: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
4850
+ readonly suggestedActions: import("effect/Schema").optionalKey<import("effect/Schema").$Array<import("effect/Schema").Struct<{
4851
+ readonly severity: import("effect/Schema").Literals<readonly ["info", "warn", "blocker"]>;
4852
+ readonly title: import("effect/Schema").String;
4853
+ readonly detail: import("effect/Schema").String;
4854
+ readonly targetTool: import("effect/Schema").optional<import("effect/Schema").String>;
4855
+ }>>>;
4639
4856
  }>, import("effect/Schema").Struct<{
4640
4857
  readonly kind: import("effect/Schema").Literal<"timeout">;
4641
4858
  readonly timeoutSeconds: import("effect/Schema").Number;
4642
4859
  }>, import("effect/Schema").Struct<{
4643
4860
  readonly kind: import("effect/Schema").Literal<"error">;
4644
4861
  readonly message: import("effect/Schema").String;
4862
+ readonly reason: import("effect/Schema").optionalKey<import("effect/Schema").Literals<readonly ["stale-install"]>>;
4645
4863
  }>, import("effect/Schema").Struct<{
4646
4864
  readonly kind: import("effect/Schema").Literal<"no-match">;
4647
4865
  readonly projectRoot: import("effect/Schema").String;
@@ -5218,81 +5436,81 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5218
5436
  readonly project: import("effect/Schema").String;
5219
5437
  readonly coverage: import("effect/Schema").Struct<{
5220
5438
  readonly totals: import("effect/Schema").Struct<{
5221
- readonly statements: import("effect/Schema").Number;
5222
- readonly branches: import("effect/Schema").Number;
5223
- readonly functions: import("effect/Schema").Number;
5224
- readonly lines: import("effect/Schema").Number;
5439
+ readonly statements: import("effect/Schema").Finite;
5440
+ readonly branches: import("effect/Schema").Finite;
5441
+ readonly functions: import("effect/Schema").Finite;
5442
+ readonly lines: import("effect/Schema").Finite;
5225
5443
  }>;
5226
5444
  readonly thresholds: import("effect/Schema").Struct<{
5227
5445
  readonly global: import("effect/Schema").Struct<{
5228
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5229
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5230
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5231
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5446
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5447
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5448
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5449
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5232
5450
  }>;
5233
5451
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
5234
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5235
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5236
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5237
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5452
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5453
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5454
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5455
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5238
5456
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
5239
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5240
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5241
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5242
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5457
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5458
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5459
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5460
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5243
5461
  }>]>>;
5244
5462
  }>]>>, never>;
5245
5463
  }>;
5246
5464
  readonly targets: import("effect/Schema").optional<import("effect/Schema").Struct<{
5247
5465
  readonly global: import("effect/Schema").Struct<{
5248
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5249
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5250
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5251
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5466
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5467
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5468
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5469
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5252
5470
  }>;
5253
5471
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
5254
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5255
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5256
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5257
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5472
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5473
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5474
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5475
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5258
5476
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
5259
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5260
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5261
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5262
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5477
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5478
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5479
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5480
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5263
5481
  }>]>>;
5264
5482
  }>]>>, never>;
5265
5483
  }>>;
5266
5484
  readonly baselines: import("effect/Schema").optional<import("effect/Schema").Struct<{
5267
5485
  readonly global: import("effect/Schema").Struct<{
5268
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5269
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5270
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5271
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5486
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5487
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5488
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5489
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5272
5490
  }>;
5273
5491
  readonly patterns: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").$Array<import("effect/Schema").Tuple<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
5274
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5275
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5276
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5277
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5492
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5493
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5494
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5495
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5278
5496
  readonly perFile: import("effect/Schema").optionalKey<import("effect/Schema").Union<readonly [import("effect/Schema").Boolean, import("effect/Schema").Struct<{
5279
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5280
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5281
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5282
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5497
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5498
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5499
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5500
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5283
5501
  }>]>>;
5284
5502
  }>]>>, never>;
5285
5503
  }>>;
5286
5504
  readonly scoped: import("effect/Schema").withDecodingDefaultKey<import("effect/Schema").Boolean, never>;
5287
5505
  readonly scopedFiles: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").String>>;
5288
- readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Number>;
5506
+ readonly totalFiles: import("effect/Schema").optional<import("effect/Schema").Finite>;
5289
5507
  readonly lowCoverage: import("effect/Schema").$Array<import("effect/Schema").Struct<{
5290
5508
  readonly file: import("effect/Schema").String;
5291
5509
  readonly summary: import("effect/Schema").Struct<{
5292
- readonly statements: import("effect/Schema").Number;
5293
- readonly branches: import("effect/Schema").Number;
5294
- readonly functions: import("effect/Schema").Number;
5295
- readonly lines: import("effect/Schema").Number;
5510
+ readonly statements: import("effect/Schema").Finite;
5511
+ readonly branches: import("effect/Schema").Finite;
5512
+ readonly functions: import("effect/Schema").Finite;
5513
+ readonly lines: import("effect/Schema").Finite;
5296
5514
  }>;
5297
5515
  readonly uncoveredLines: import("effect/Schema").String;
5298
5516
  }>>;
@@ -5300,10 +5518,10 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5300
5518
  readonly belowTarget: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
5301
5519
  readonly file: import("effect/Schema").String;
5302
5520
  readonly summary: import("effect/Schema").Struct<{
5303
- readonly statements: import("effect/Schema").Number;
5304
- readonly branches: import("effect/Schema").Number;
5305
- readonly functions: import("effect/Schema").Number;
5306
- readonly lines: import("effect/Schema").Number;
5521
+ readonly statements: import("effect/Schema").Finite;
5522
+ readonly branches: import("effect/Schema").Finite;
5523
+ readonly functions: import("effect/Schema").Finite;
5524
+ readonly lines: import("effect/Schema").Finite;
5307
5525
  }>;
5308
5526
  readonly uncoveredLines: import("effect/Schema").String;
5309
5527
  }>>>;
@@ -5311,16 +5529,16 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5311
5529
  readonly globShortfalls: import("effect/Schema").optional<import("effect/Schema").$Array<import("effect/Schema").Struct<{
5312
5530
  readonly pattern: import("effect/Schema").String;
5313
5531
  readonly summary: import("effect/Schema").Struct<{
5314
- readonly statements: import("effect/Schema").Number;
5315
- readonly branches: import("effect/Schema").Number;
5316
- readonly functions: import("effect/Schema").Number;
5317
- readonly lines: import("effect/Schema").Number;
5532
+ readonly statements: import("effect/Schema").Finite;
5533
+ readonly branches: import("effect/Schema").Finite;
5534
+ readonly functions: import("effect/Schema").Finite;
5535
+ readonly lines: import("effect/Schema").Finite;
5318
5536
  }>;
5319
5537
  readonly thresholds: import("effect/Schema").Struct<{
5320
- readonly lines: import("effect/Schema").optional<import("effect/Schema").Number>;
5321
- readonly functions: import("effect/Schema").optional<import("effect/Schema").Number>;
5322
- readonly branches: import("effect/Schema").optional<import("effect/Schema").Number>;
5323
- readonly statements: import("effect/Schema").optional<import("effect/Schema").Number>;
5538
+ readonly lines: import("effect/Schema").optional<import("effect/Schema").Finite>;
5539
+ readonly functions: import("effect/Schema").optional<import("effect/Schema").Finite>;
5540
+ readonly branches: import("effect/Schema").optional<import("effect/Schema").Finite>;
5541
+ readonly statements: import("effect/Schema").optional<import("effect/Schema").Finite>;
5324
5542
  }>;
5325
5543
  }>>>;
5326
5544
  }>;
@@ -5411,6 +5629,20 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5411
5629
  readonly fullName: import("effect/Schema").String;
5412
5630
  readonly recentRuns: import("effect/Schema").$Array<import("effect/Schema").Literals<readonly ["passed", "failed"]>>;
5413
5631
  }>>;
5632
+ readonly strayOutput: import("effect/Schema").Struct<{
5633
+ readonly runs: import("effect/Schema").Finite;
5634
+ readonly runsWithStrayOutput: import("effect/Schema").Finite;
5635
+ readonly latest: import("effect/Schema").NullOr<import("effect/Schema").Struct<{
5636
+ readonly total: import("effect/Schema").Finite;
5637
+ readonly stdout: import("effect/Schema").Finite;
5638
+ readonly stderr: import("effect/Schema").Finite;
5639
+ readonly bytes: import("effect/Schema").Finite;
5640
+ readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
5641
+ readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
5642
+ readonly text: import("effect/Schema").String;
5643
+ }>>;
5644
+ }>>;
5645
+ }>;
5414
5646
  }>;
5415
5647
  readonly failure: import("effect/Schema").Never;
5416
5648
  readonly failureMode: "error";
@@ -5453,6 +5685,16 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5453
5685
  readonly historyFile: import("effect/Schema").optional<import("effect/Schema").String>;
5454
5686
  readonly lastRun: import("effect/Schema").NullOr<import("effect/Schema").String>;
5455
5687
  readonly lastResult: import("effect/Schema").NullOr<import("effect/Schema").Literals<readonly ["passed", "failed", "interrupted"]>>;
5688
+ readonly strayOutput: import("effect/Schema").optionalKey<import("effect/Schema").Struct<{
5689
+ readonly total: import("effect/Schema").Finite;
5690
+ readonly stdout: import("effect/Schema").Finite;
5691
+ readonly stderr: import("effect/Schema").Finite;
5692
+ readonly bytes: import("effect/Schema").Finite;
5693
+ readonly samples: import("effect/Schema").$Array<import("effect/Schema").Struct<{
5694
+ readonly stream: import("effect/Schema").Literals<readonly ["stdout", "stderr"]>;
5695
+ readonly text: import("effect/Schema").String;
5696
+ }>>;
5697
+ }>>;
5456
5698
  }>>;
5457
5699
  }>, import("effect/Schema").Struct<{
5458
5700
  readonly dataAvailable: import("effect/Schema").Literal<false>;
@@ -5474,16 +5716,16 @@ export declare const ToolsLayer: import("effect/Layer").Layer<import("effect/ai/
5474
5716
  readonly entries: import("effect/Schema").$Array<import("effect/Schema").Struct<{
5475
5717
  readonly timestamp: import("effect/Schema").String;
5476
5718
  readonly coverage: import("effect/Schema").Struct<{
5477
- readonly statements: import("effect/Schema").Number;
5478
- readonly branches: import("effect/Schema").Number;
5479
- readonly functions: import("effect/Schema").Number;
5480
- readonly lines: import("effect/Schema").Number;
5719
+ readonly statements: import("effect/Schema").Finite;
5720
+ readonly branches: import("effect/Schema").Finite;
5721
+ readonly functions: import("effect/Schema").Finite;
5722
+ readonly lines: import("effect/Schema").Finite;
5481
5723
  }>;
5482
5724
  readonly delta: import("effect/Schema").Struct<{
5483
- readonly statements: import("effect/Schema").Number;
5484
- readonly branches: import("effect/Schema").Number;
5485
- readonly functions: import("effect/Schema").Number;
5486
- readonly lines: import("effect/Schema").Number;
5725
+ readonly statements: import("effect/Schema").Finite;
5726
+ readonly branches: import("effect/Schema").Finite;
5727
+ readonly functions: import("effect/Schema").Finite;
5728
+ readonly lines: import("effect/Schema").Finite;
5487
5729
  }>;
5488
5730
  readonly direction: import("effect/Schema").Literals<readonly ["improving", "regressing", "stable"]>;
5489
5731
  readonly targetsHash: import("effect/Schema").optional<import("effect/Schema").String>;