@vitest-agent/mcp 5.3.0 → 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,130 +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"]>>;
242
- readonly strayOutput: Schema.optionalKey<Schema.Struct<{
243
- readonly total: Schema.Finite;
244
- readonly stdout: Schema.Finite;
245
- readonly stderr: Schema.Finite;
246
- readonly bytes: Schema.Finite;
247
- readonly samples: Schema.$Array<Schema.Struct<{
248
- readonly stream: Schema.Literals<readonly ["stdout", "stderr"]>;
249
- readonly text: Schema.String;
250
- }>>;
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"]>;
251
287
  }>>;
252
288
  }>>;
253
- }>, Schema.Struct<{
254
- readonly dataAvailable: Schema.Literal<false>;
255
- readonly projectFilter: Schema.optional<Schema.String>;
256
- readonly reason: Schema.Literals<readonly ["no_manifest", "project_filter_empty"]>;
257
- }>]>;
289
+ }>;
258
290
  /**
259
- * The decoded {@link TestStatusResult}.
291
+ * The decoded {@link CommitChangesResult}.
260
292
  *
261
293
  * @public
262
294
  */
263
- type TestStatusResultType = Schema.Schema.Type<typeof TestStatusResult>;
295
+ type CommitChangesResultType = Schema.Schema.Type<typeof CommitChangesResult>;
264
296
  /**
265
- * The `test_status` tool's parameters.
297
+ * The `commit_changes` tool's parameters.
266
298
  *
267
299
  * @public
268
300
  */
269
- export declare const TestStatusInput: Schema.Struct<{
270
- readonly project: Schema.optionalKey<Schema.String>;
301
+ export declare const CommitChangesInput: Schema.Struct<{
302
+ readonly sha: Schema.optionalKey<Schema.String>;
271
303
  }>;
272
304
  /**
273
- * The decoded {@link TestStatusInput}.
305
+ * The decoded {@link CommitChangesInput}.
274
306
  *
275
307
  * @public
276
308
  */
277
- type TestStatusInputType = Schema.Schema.Type<typeof TestStatusInput>;
309
+ type CommitChangesInputType = Schema.Schema.Type<typeof CommitChangesInput>;
278
310
  /**
279
- * The `test_overview` tool's success payload.
311
+ * Handler for {@link commitChangesTool}.
280
312
  *
281
313
  * @public
282
314
  */
283
- export declare const TestOverviewResult: Schema.Union<readonly [Schema.Struct<{
284
- readonly dataAvailable: Schema.Literal<true>;
285
- readonly projectFilter: Schema.optional<Schema.String>;
286
- readonly runs: Schema.$Array<Schema.Struct<{
287
- readonly project: Schema.String;
288
- readonly lastRun: Schema.NullOr<Schema.String>;
289
- readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
290
- readonly total: Schema.Number;
291
- readonly passed: Schema.Number;
292
- readonly failed: Schema.Number;
293
- readonly skipped: Schema.Number;
294
- }>>;
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
+ }>;
295
338
  }>, Schema.Struct<{
296
- readonly dataAvailable: Schema.Literal<false>;
297
- readonly projectFilter: Schema.optional<Schema.String>;
298
- 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>;
299
342
  }>]>;
300
343
  /**
301
- * The decoded {@link TestOverviewResult}.
344
+ * The decoded {@link ConfigureResult}.
302
345
  *
303
346
  * @public
304
347
  */
305
- type TestOverviewResultType = Schema.Schema.Type<typeof TestOverviewResult>;
348
+ type ConfigureResultType = Schema.Schema.Type<typeof ConfigureResult>;
306
349
  /**
307
- * The `test_overview` tool's parameters.
350
+ * The `configure` tool's parameters.
308
351
  *
309
352
  * @public
310
353
  */
311
- export declare const TestOverviewInput: Schema.Struct<{
312
- readonly project: Schema.optionalKey<Schema.String>;
354
+ export declare const ConfigureInput: Schema.Struct<{
355
+ readonly settingsHash: Schema.optionalKey<Schema.String>;
313
356
  }>;
314
357
  /**
315
- * The decoded {@link TestOverviewInput}.
358
+ * The decoded {@link ConfigureInput}.
316
359
  *
317
360
  * @public
318
361
  */
319
- 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>;
320
369
  /**
321
370
  * The `test_coverage` tool's success payload.
322
371
  *
@@ -458,144 +507,17 @@ export declare const TestCoverageInput: Schema.Struct<{
458
507
  */
459
508
  type TestCoverageInputType = Schema.Schema.Type<typeof TestCoverageInput>;
460
509
  /**
461
- * The `test_history` tool's success payload.
462
- *
463
- * @public
464
- */
465
- export declare const TestHistoryResult: Schema.Struct<{
466
- readonly project: Schema.String;
467
- readonly hasData: Schema.Boolean;
468
- readonly history: Schema.Struct<{
469
- readonly project: Schema.String;
470
- readonly updatedAt: Schema.String;
471
- readonly tests: Schema.$Array<Schema.Struct<{
472
- readonly modulePath: Schema.String;
473
- readonly fullName: Schema.String;
474
- readonly runs: Schema.$Array<Schema.Struct<{
475
- readonly timestamp: Schema.String;
476
- readonly state: Schema.Literals<readonly ["passed", "failed"]>;
477
- }>>;
478
- }>>;
479
- }>;
480
- readonly flaky: Schema.$Array<Schema.Struct<{
481
- readonly fullName: Schema.String;
482
- readonly modulePath: Schema.String;
483
- readonly project: Schema.String;
484
- readonly passCount: Schema.Finite;
485
- readonly failCount: Schema.Finite;
486
- readonly lastState: Schema.Literals<readonly ["passed", "failed"]>;
487
- readonly lastTimestamp: Schema.String;
488
- }>>;
489
- readonly persistent: Schema.$Array<Schema.Struct<{
490
- readonly fullName: Schema.String;
491
- readonly modulePath: Schema.String;
492
- readonly project: Schema.String;
493
- readonly consecutiveFailures: Schema.Finite;
494
- readonly firstFailedAt: Schema.String;
495
- readonly lastFailedAt: Schema.String;
496
- readonly lastErrorMessage: Schema.NullOr<Schema.String>;
497
- }>>;
498
- readonly recovered: Schema.$Array<Schema.Struct<{
499
- readonly modulePath: Schema.String;
500
- readonly fullName: Schema.String;
501
- readonly recentRuns: Schema.$Array<Schema.Literals<readonly ["passed", "failed"]>>;
502
- }>>;
503
- readonly strayOutput: Schema.Struct<{
504
- readonly runs: Schema.Finite;
505
- readonly runsWithStrayOutput: Schema.Finite;
506
- readonly latest: Schema.NullOr<Schema.Struct<{
507
- readonly total: Schema.Finite;
508
- readonly stdout: Schema.Finite;
509
- readonly stderr: Schema.Finite;
510
- readonly bytes: Schema.Finite;
511
- readonly samples: Schema.$Array<Schema.Struct<{
512
- readonly stream: Schema.Literals<readonly ["stdout", "stderr"]>;
513
- readonly text: Schema.String;
514
- }>>;
515
- }>>;
516
- }>;
517
- }>;
518
- /**
519
- * The decoded {@link TestHistoryResult}.
510
+ * Handler for {@link testCoverageTool}.
520
511
  *
521
512
  * @public
522
513
  */
523
- type TestHistoryResultType = Schema.Schema.Type<typeof TestHistoryResult>;
514
+ declare const handleTestCoverage: (input: TestCoverageInputType) => Effect.Effect<TestCoverageResultType, never, DataReader>;
524
515
  /**
525
- * The `test_history` tool's parameters.
516
+ * The `test_errors` tool's success payload — populates `structuredContent`.
526
517
  *
527
518
  * @public
528
519
  */
529
- export declare const TestHistoryInput: Schema.Struct<{
530
- readonly project: Schema.String;
531
- readonly testName: Schema.optionalKey<Schema.String>;
532
- readonly modulePath: Schema.optionalKey<Schema.String>;
533
- readonly limit: Schema.optionalKey<Schema.Int>;
534
- }>;
535
- /**
536
- * The decoded {@link TestHistoryInput}.
537
- *
538
- * @public
539
- */
540
- type TestHistoryInputType = Schema.Schema.Type<typeof TestHistoryInput>;
541
- /**
542
- * The `test_trends` tool's success payload.
543
- *
544
- * @public
545
- */
546
- export declare const TestTrendsResult: Schema.Union<readonly [Schema.Struct<{
547
- readonly dataAvailable: Schema.Literal<true>;
548
- readonly project: Schema.String;
549
- readonly trends: Schema.Struct<{
550
- readonly entries: Schema.$Array<Schema.Struct<{
551
- readonly timestamp: Schema.String;
552
- readonly coverage: Schema.Struct<{
553
- readonly statements: Schema.Finite;
554
- readonly branches: Schema.Finite;
555
- readonly functions: Schema.Finite;
556
- readonly lines: Schema.Finite;
557
- }>;
558
- readonly delta: Schema.Struct<{
559
- readonly statements: Schema.Finite;
560
- readonly branches: Schema.Finite;
561
- readonly functions: Schema.Finite;
562
- readonly lines: Schema.Finite;
563
- }>;
564
- readonly direction: Schema.Literals<readonly ["improving", "regressing", "stable"]>;
565
- readonly targetsHash: Schema.optional<Schema.String>;
566
- }>>;
567
- }>;
568
- }>, Schema.Struct<{
569
- readonly dataAvailable: Schema.Literal<false>;
570
- readonly project: Schema.String;
571
- }>]>;
572
- /**
573
- * The decoded {@link TestTrendsResult}.
574
- *
575
- * @public
576
- */
577
- type TestTrendsResultType = Schema.Schema.Type<typeof TestTrendsResult>;
578
- /**
579
- * The `test_trends` tool's parameters.
580
- *
581
- * @public
582
- */
583
- export declare const TestTrendsInput: Schema.Struct<{
584
- readonly project: Schema.String;
585
- readonly limit: Schema.optionalKey<Schema.Finite>;
586
- }>;
587
- /**
588
- * The decoded {@link TestTrendsInput}.
589
- *
590
- * @public
591
- */
592
- type TestTrendsInputType = Schema.Schema.Type<typeof TestTrendsInput>;
593
- /**
594
- * The `test_errors` tool's success payload — populates `structuredContent`.
595
- *
596
- * @public
597
- */
598
- export declare const TestErrorsResult: Schema.Struct<{
520
+ export declare const TestErrorsResult: Schema.Struct<{
599
521
  readonly project: Schema.String;
600
522
  readonly errorName: Schema.optional<Schema.String>;
601
523
  readonly count: Schema.Finite;
@@ -643,6 +565,59 @@ export declare const TestErrorsInput: Schema.Struct<{
643
565
  * @public
644
566
  */
645
567
  type TestErrorsInputType = Schema.Schema.Type<typeof TestErrorsInput>;
568
+ /**
569
+ * Handler for {@link testErrorsTool}.
570
+ *
571
+ * @public
572
+ */
573
+ declare const handleTestErrors: (input: TestErrorsInputType) => Effect.Effect<TestErrorsResultType, never, DataReader>;
574
+ /**
575
+ * The `failure_signature_get` tool's success payload.
576
+ *
577
+ * @public
578
+ */
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
+ }>]>;
595
+ /**
596
+ * The decoded {@link FailureSignatureGetResult}.
597
+ *
598
+ * @public
599
+ */
600
+ type FailureSignatureGetResultType = Schema.Schema.Type<typeof FailureSignatureGetResult>;
601
+ /**
602
+ * The `failure_signature_get` tool's parameters.
603
+ *
604
+ * @public
605
+ */
606
+ export declare const FailureSignatureGetInput: Schema.Struct<{
607
+ readonly hash: Schema.String;
608
+ }>;
609
+ /**
610
+ * The decoded {@link FailureSignatureGetInput}.
611
+ *
612
+ * @public
613
+ */
614
+ type FailureSignatureGetInputType = Schema.Schema.Type<typeof FailureSignatureGetInput>;
615
+ /**
616
+ * Handler for {@link failureSignatureGetTool}.
617
+ *
618
+ * @public
619
+ */
620
+ declare const handleFailureSignatureGet: (input: FailureSignatureGetInputType) => Effect.Effect<FailureSignatureGetResultType, never, DataReader>;
646
621
  /**
647
622
  * The `file_coverage` tool's success payload.
648
623
  *
@@ -706,316 +681,190 @@ export declare const FileCoverageInput: Schema.Struct<{
706
681
  */
707
682
  type FileCoverageInputType = Schema.Schema.Type<typeof FileCoverageInput>;
708
683
  /**
709
- * The `settings_list` tool's success payload.
684
+ * Handler for {@link fileCoverageTool}.
710
685
  *
711
686
  * @public
712
687
  */
713
- export declare const SettingsListResult: Schema.Struct<{
714
- readonly count: Schema.Number;
715
- readonly settings: Schema.$Array<Schema.Struct<{
716
- readonly hash: Schema.String;
717
- readonly capturedAt: Schema.String;
718
- }>>;
719
- }>;
688
+ declare const handleFileCoverage: (input: FileCoverageInputType) => Effect.Effect<FileCoverageResultType, never, DataReader>;
720
689
  /**
721
- * The decoded {@link SettingsListResult}.
690
+ * The `help` tool's success payload.
722
691
  *
723
692
  * @public
724
693
  */
725
- type SettingsListResultType = Schema.Schema.Type<typeof SettingsListResult>;
694
+ export declare const HelpResult: Schema.Struct<{
695
+ readonly helpText: Schema.String;
696
+ }>;
726
697
  /**
727
- * The `cache_health` tool's success payload.
698
+ * The decoded {@link HelpResult}.
728
699
  *
729
700
  * @public
730
701
  */
731
- export declare const CacheHealthResult: Schema.Union<readonly [Schema.Struct<{
732
- readonly manifestPresent: Schema.Literal<true>;
733
- readonly manifest: Schema.Struct<{
734
- readonly updatedAt: Schema.String;
735
- readonly cacheDir: Schema.String;
736
- readonly projects: Schema.$Array<Schema.Struct<{
737
- readonly project: Schema.String;
738
- readonly reportFile: Schema.String;
739
- readonly historyFile: Schema.optional<Schema.String>;
740
- readonly lastRun: Schema.NullOr<Schema.String>;
741
- readonly lastResult: Schema.NullOr<Schema.Literals<readonly ["passed", "failed", "interrupted"]>>;
742
- }>>;
743
- }>;
744
- readonly ageMs: Schema.Finite;
745
- readonly stale: Schema.Boolean;
746
- }>, Schema.Struct<{
747
- readonly manifestPresent: Schema.Literal<false>;
748
- }>]>;
702
+ type HelpResultType = Schema.Schema.Type<typeof HelpResult>;
749
703
  /**
750
- * The decoded {@link CacheHealthResult}.
704
+ * Handler for {@link helpTool}.
751
705
  *
752
706
  * @public
753
707
  */
754
- type CacheHealthResultType = Schema.Schema.Type<typeof CacheHealthResult>;
708
+ declare const handleHelp: () => Effect.Effect<HelpResultType>;
755
709
  /**
756
- * The `configure` tool's success payload.
710
+ * The `test_history` tool's success payload.
757
711
  *
758
712
  * @public
759
713
  */
760
- export declare const ConfigureResult: Schema.Union<readonly [Schema.Struct<{
761
- readonly found: Schema.Literal<true>;
762
- readonly source: Schema.Literals<readonly ["requested", "latest"]>;
763
- readonly settings: Schema.Struct<{
764
- readonly hash: Schema.String;
765
- readonly reporters: Schema.NullOr<Schema.String>;
766
- readonly coverageEnabled: Schema.Boolean;
767
- readonly coverageProvider: Schema.NullOr<Schema.String>;
768
- readonly coverageThresholds: Schema.NullOr<Schema.String>;
769
- readonly coverageTargets: Schema.NullOr<Schema.String>;
770
- readonly pool: Schema.NullOr<Schema.String>;
771
- readonly shard: Schema.NullOr<Schema.String>;
772
- readonly project: Schema.NullOr<Schema.String>;
773
- readonly environment: Schema.NullOr<Schema.String>;
774
- readonly envVars: Schema.$Record<Schema.String, Schema.String>;
775
- 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
+ }>>;
776
728
  }>;
777
- }>, Schema.Struct<{
778
- readonly found: Schema.Literal<false>;
779
- readonly source: Schema.Literals<readonly ["requested", "latest"]>;
780
- readonly requestedHash: Schema.optional<Schema.String>;
781
- }>]>;
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
+ }>;
782
767
  /**
783
- * The decoded {@link ConfigureResult}.
768
+ * The decoded {@link TestHistoryResult}.
784
769
  *
785
770
  * @public
786
771
  */
787
- type ConfigureResultType = Schema.Schema.Type<typeof ConfigureResult>;
772
+ type TestHistoryResultType = Schema.Schema.Type<typeof TestHistoryResult>;
788
773
  /**
789
- * The `configure` tool's parameters.
774
+ * The `test_history` tool's parameters.
790
775
  *
791
776
  * @public
792
777
  */
793
- export declare const ConfigureInput: Schema.Struct<{
794
- 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>;
795
783
  }>;
796
784
  /**
797
- * The decoded {@link ConfigureInput}.
785
+ * The decoded {@link TestHistoryInput}.
798
786
  *
799
787
  * @public
800
788
  */
801
- type ConfigureInputType = Schema.Schema.Type<typeof ConfigureInput>;
789
+ type TestHistoryInputType = Schema.Schema.Type<typeof TestHistoryInput>;
802
790
  /**
803
- * The `commit_changes` tool's success payload.
791
+ * Handler for {@link testHistoryTool}.
804
792
  *
805
793
  * @public
806
794
  */
807
- export declare const CommitChangesResult: Schema.Struct<{
808
- readonly filterSha: Schema.optional<Schema.String>;
809
- readonly count: Schema.Finite;
810
- readonly commits: Schema.$Array<Schema.Struct<{
811
- readonly sha: Schema.String;
812
- readonly parentSha: Schema.NullOr<Schema.String>;
813
- readonly message: Schema.NullOr<Schema.String>;
814
- readonly author: Schema.NullOr<Schema.String>;
815
- readonly committedAt: Schema.NullOr<Schema.String>;
816
- readonly branch: Schema.NullOr<Schema.String>;
817
- readonly files: Schema.$Array<Schema.Struct<{
818
- readonly filePath: Schema.String;
819
- readonly changeKind: Schema.Literals<readonly ["added", "modified", "deleted", "renamed", "untracked-modified"]>;
820
- }>>;
821
- }>>;
822
- }>;
795
+ declare const handleTestHistory: (input: TestHistoryInputType) => Effect.Effect<TestHistoryResultType, never, DataReader>;
823
796
  /**
824
- * The decoded {@link CommitChangesResult}.
797
+ * The `test_overview` tool's success payload.
825
798
  *
826
799
  * @public
827
800
  */
828
- type CommitChangesResultType = Schema.Schema.Type<typeof CommitChangesResult>;
829
- /**
830
- * The `commit_changes` tool's parameters.
831
- *
832
- * @public
833
- */
834
- export declare const CommitChangesInput: Schema.Struct<{
835
- readonly sha: Schema.optionalKey<Schema.String>;
836
- }>;
837
- /**
838
- * The decoded {@link CommitChangesInput}.
839
- *
840
- * @public
841
- */
842
- type CommitChangesInputType = Schema.Schema.Type<typeof CommitChangesInput>;
843
- /**
844
- * The `turn_search` tool's success payload.
845
- *
846
- * @public
847
- */
848
- export declare const TurnSearchResult: Schema.Struct<{
849
- readonly count: Schema.Finite;
850
- readonly turns: Schema.$Array<Schema.Struct<{
851
- readonly id: Schema.Finite;
852
- readonly sessionId: Schema.Finite;
853
- readonly turnNo: Schema.Finite;
854
- readonly type: Schema.String;
855
- readonly payload: Schema.String;
856
- readonly occurredAt: Schema.String;
857
- }>>;
858
- }>;
859
- /**
860
- * The decoded {@link TurnSearchResult}.
861
- *
862
- * @public
863
- */
864
- type TurnSearchResultType = Schema.Schema.Type<typeof TurnSearchResult>;
865
- /**
866
- * The `turn_search` tool's parameters.
867
- *
868
- * @public
869
- */
870
- export declare const TurnSearchInput: Schema.Struct<{
871
- readonly sessionId: Schema.optionalKey<Schema.Finite>;
872
- readonly since: Schema.optionalKey<Schema.String>;
873
- readonly type: Schema.optionalKey<Schema.Literals<readonly ["user_prompt", "tool_call", "tool_result", "file_edit", "hook_fire", "note", "hypothesis"]>>;
874
- readonly limit: Schema.optionalKey<Schema.Finite>;
875
- }>;
876
- /**
877
- * The decoded {@link TurnSearchInput}.
878
- *
879
- * @public
880
- */
881
- type TurnSearchInputType = Schema.Schema.Type<typeof TurnSearchInput>;
882
- /**
883
- * The `failure_signature_get` tool's success payload.
884
- *
885
- * @public
886
- */
887
- export declare const FailureSignatureGetResult: Schema.Union<readonly [Schema.Struct<{
888
- readonly found: Schema.Literal<true>;
889
- readonly signatureHash: Schema.String;
890
- readonly firstSeenRunId: Schema.NullOr<Schema.Number>;
891
- readonly firstSeenAt: Schema.String;
892
- readonly lastSeenAt: Schema.NullOr<Schema.String>;
893
- readonly occurrenceCount: Schema.Finite;
894
- readonly recentErrors: Schema.$Array<Schema.Struct<{
895
- readonly runId: Schema.Number;
896
- readonly errorName: Schema.NullOr<Schema.String>;
897
- readonly message: Schema.String;
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;
898
812
  }>>;
899
813
  }>, Schema.Struct<{
900
- readonly found: Schema.Literal<false>;
901
- readonly requestedHash: Schema.String;
814
+ readonly dataAvailable: Schema.Literal<false>;
815
+ readonly projectFilter: Schema.optional<Schema.String>;
816
+ readonly reason: Schema.Literals<readonly ["no_runs", "project_filter_empty"]>;
902
817
  }>]>;
903
818
  /**
904
- * The decoded {@link FailureSignatureGetResult}.
905
- *
906
- * @public
907
- */
908
- type FailureSignatureGetResultType = Schema.Schema.Type<typeof FailureSignatureGetResult>;
909
- /**
910
- * The `failure_signature_get` tool's parameters.
911
- *
912
- * @public
913
- */
914
- export declare const FailureSignatureGetInput: Schema.Struct<{
915
- readonly hash: Schema.String;
916
- }>;
917
- /**
918
- * The decoded {@link FailureSignatureGetInput}.
919
- *
920
- * @public
921
- */
922
- type FailureSignatureGetInputType = Schema.Schema.Type<typeof FailureSignatureGetInput>;
923
- /**
924
- * The `acceptance_metrics` tool's success payload.
925
- *
926
- * @public
927
- */
928
- export declare const AcceptanceMetricsResult: Schema.Struct<{
929
- readonly phaseEvidenceIntegrity: Schema.Struct<{
930
- readonly total: Schema.Finite;
931
- readonly compliant: Schema.Finite;
932
- readonly ratio: Schema.Finite;
933
- }>;
934
- readonly complianceHookResponsiveness: Schema.Struct<{
935
- readonly total: Schema.Finite;
936
- readonly withFollowup: Schema.Finite;
937
- readonly ratio: Schema.Finite;
938
- }>;
939
- readonly orientationUsefulness: Schema.Struct<{
940
- readonly total: Schema.Finite;
941
- readonly referencedCount: Schema.Finite;
942
- readonly ratio: Schema.Finite;
943
- }>;
944
- readonly antiPatternDetectionRate: Schema.Struct<{
945
- readonly total: Schema.Finite;
946
- readonly cleanSessions: Schema.Finite;
947
- readonly ratio: Schema.Finite;
948
- }>;
949
- }>;
950
- /**
951
- * The decoded {@link AcceptanceMetricsResult}.
952
- *
953
- * @public
954
- */
955
- type AcceptanceMetricsResultType = Schema.Schema.Type<typeof AcceptanceMetricsResult>;
956
- /**
957
- * The `triage_brief` tool's success payload.
958
- *
959
- * @public
960
- */
961
- export declare const TriageBriefResult: Schema.Struct<{
962
- readonly hasContent: Schema.Boolean;
963
- readonly markdown: Schema.String;
964
- }>;
965
- /**
966
- * The decoded {@link TriageBriefResult}.
819
+ * The decoded {@link TestOverviewResult}.
967
820
  *
968
821
  * @public
969
822
  */
970
- type TriageBriefResultType = Schema.Schema.Type<typeof TriageBriefResult>;
823
+ type TestOverviewResultType = Schema.Schema.Type<typeof TestOverviewResult>;
971
824
  /**
972
- * The `triage_brief` tool's parameters.
825
+ * The `test_overview` tool's parameters.
973
826
  *
974
827
  * @public
975
828
  */
976
- export declare const TriageBriefInput: Schema.Struct<{
829
+ export declare const TestOverviewInput: Schema.Struct<{
977
830
  readonly project: Schema.optionalKey<Schema.String>;
978
- readonly maxLines: Schema.optionalKey<Schema.Finite>;
979
831
  }>;
980
832
  /**
981
- * The decoded {@link TriageBriefInput}.
833
+ * The decoded {@link TestOverviewInput}.
982
834
  *
983
835
  * @public
984
836
  */
985
- type TriageBriefInputType = Schema.Schema.Type<typeof TriageBriefInput>;
837
+ type TestOverviewInputType = Schema.Schema.Type<typeof TestOverviewInput>;
986
838
  /**
987
- * The `wrapup_prompt` tool's success payload.
839
+ * Handler for {@link testOverviewTool}.
988
840
  *
989
841
  * @public
990
842
  */
991
- export declare const WrapupPromptResult: Schema.Struct<{
992
- readonly hasContent: Schema.Boolean;
993
- readonly kind: Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>;
994
- readonly markdown: Schema.String;
995
- }>;
843
+ declare const handleTestOverview: (input: TestOverviewInputType) => Effect.Effect<TestOverviewResultType, never, DataReader>;
996
844
  /**
997
- * The decoded {@link WrapupPromptResult}.
845
+ * The `ping` tool's success payload.
998
846
  *
999
847
  * @public
1000
848
  */
1001
- type WrapupPromptResultType = Schema.Schema.Type<typeof WrapupPromptResult>;
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;
854
+ }>>;
855
+ }>;
1002
856
  /**
1003
- * The `wrapup_prompt` tool's parameters.
857
+ * The decoded {@link PingResult}.
1004
858
  *
1005
859
  * @public
1006
860
  */
1007
- export declare const WrapupPromptInput: Schema.Struct<{
1008
- readonly sessionId: Schema.optionalKey<Schema.Finite>;
1009
- readonly chatId: Schema.optionalKey<Schema.String>;
1010
- readonly kind: Schema.optionalKey<Schema.Literals<readonly ["stop", "session_end", "pre_compact", "tdd_handoff", "user_prompt_nudge"]>>;
1011
- readonly userPromptHint: Schema.optionalKey<Schema.String>;
1012
- }>;
861
+ type PingResultType = Schema.Schema.Type<typeof PingResult>;
1013
862
  /**
1014
- * The decoded {@link WrapupPromptInput}.
863
+ * Handler for {@link pingTool}.
1015
864
  *
1016
865
  * @public
1017
866
  */
1018
- type WrapupPromptInputType = Schema.Schema.Type<typeof WrapupPromptInput>;
867
+ declare const handlePing: () => Effect.Effect<PingResultType>;
1019
868
  /**
1020
869
  * The `register_agent` tool's parameters.
1021
870
  *
@@ -1064,142 +913,15 @@ export declare const RegisterAgentResult: Schema.Union<readonly [Schema.Struct<{
1064
913
  */
1065
914
  type RegisterAgentOutput = Schema.Schema.Type<typeof RegisterAgentResult>;
1066
915
  /**
1067
- * The `tdd_phase_transition_request` tool's success payload.
1068
- *
1069
- * @public
1070
- */
1071
- export declare const PhaseTransitionResult: Schema.Union<readonly [Schema.Struct<{
1072
- readonly accepted: Schema.Literal<true>;
1073
- readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1074
- readonly newPhaseId: Schema.Finite;
1075
- readonly previousPhaseId: Schema.NullOr<Schema.Number>;
1076
- readonly citedArtifactId: Schema.optional<Schema.Number>;
1077
- readonly citedArtifactSource: Schema.optional<Schema.Literals<readonly ["explicit-id", "explicit-kind", "transition-derived", "none"]>>;
1078
- }>, Schema.Struct<{
1079
- readonly accepted: Schema.Literal<false>;
1080
- readonly phase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1081
- 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"]>;
1082
- readonly remediation: Schema.Struct<{
1083
- readonly hint: Schema.String;
1084
- readonly suggestedTool: Schema.optionalKey<Schema.String>;
1085
- readonly suggestedArgs: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>;
1086
- }>;
1087
- }>]>;
1088
- /**
1089
- * The decoded {@link PhaseTransitionResult}.
1090
- *
1091
- * @public
1092
- */
1093
- type PhaseTransitionResultType = Schema.Schema.Type<typeof PhaseTransitionResult>;
1094
- /**
1095
- * The `tdd_phase_transition_request` tool's parameters.
1096
- *
1097
- * `citedArtifactId` is optional in 2.0+. When omitted, the tool resolves
1098
- * the most recent matching artifact for this session, where "matching" is
1099
- * either the explicit `citedArtifactKind` value, or the kind required by
1100
- * the transition (per `requiredArtifactForTransition`), or "no artifact
1101
- * needed" for transitions like `spike→red` where the validator's
1102
- * `requiredArtifactForTransition` returns null. The accepted response
1103
- * carries `citedArtifactId` so the caller can see which row was used.
1104
- *
1105
- * @public
1106
- */
1107
- export declare const PhaseTransitionInput: Schema.Struct<{
1108
- readonly tddTaskId: Schema.Finite;
1109
- readonly goalId: Schema.Finite;
1110
- readonly requestedPhase: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1111
- readonly citedArtifactId: Schema.optionalKey<Schema.Finite>;
1112
- readonly citedArtifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1113
- readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1114
- readonly reason: Schema.optionalKey<Schema.String>;
1115
- }>;
1116
- /**
1117
- * 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.
1118
919
  *
1119
920
  * @public
1120
921
  */
1121
- type PhaseTransitionInputType = Schema.Schema.Type<typeof PhaseTransitionInput>;
922
+ declare const handleRegisterAgent: (input: RegisterAgentInputType) => Effect.Effect<RegisterAgentOutput, never, DataReader | DataStore>;
1122
923
  /**
1123
- * The `tdd_artifact_list` tool's success payload.
1124
- *
1125
- * @public
1126
- */
1127
- export declare const TddArtifactListResult: Schema.Struct<{
1128
- readonly tddTaskId: Schema.Number;
1129
- readonly filters: Schema.Struct<{
1130
- readonly artifactKind: Schema.optional<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1131
- readonly phaseId: Schema.optional<Schema.Number>;
1132
- readonly behaviorId: Schema.optional<Schema.Number>;
1133
- }>;
1134
- readonly count: Schema.Number;
1135
- readonly artifacts: Schema.$Array<Schema.Struct<{
1136
- readonly id: Schema.Finite;
1137
- readonly tddTaskId: Schema.Number;
1138
- readonly phaseId: Schema.Number;
1139
- readonly phaseName: Schema.Literals<readonly ["spike", "red", "red.triangulate", "green", "green.fake-it", "refactor", "extended-red", "green-without-red"]>;
1140
- readonly artifactKind: Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>;
1141
- readonly behaviorId: Schema.NullOr<Schema.Number>;
1142
- readonly testCaseId: Schema.NullOr<Schema.Number>;
1143
- readonly testRunId: Schema.NullOr<Schema.Number>;
1144
- readonly testFirstFailureRunId: Schema.NullOr<Schema.Number>;
1145
- readonly recordedAt: Schema.String;
1146
- readonly suite: Schema.Literals<readonly ["vitest", "bats"]>;
1147
- }>>;
1148
- }>;
1149
- /**
1150
- * The decoded {@link TddArtifactListResult}.
1151
- *
1152
- * @public
1153
- */
1154
- type TddArtifactListResultType = Schema.Schema.Type<typeof TddArtifactListResult>;
1155
- /**
1156
- * The `tdd_artifact_list` tool's parameters.
1157
- *
1158
- * @public
1159
- */
1160
- export declare const TddArtifactListInput: Schema.Struct<{
1161
- readonly tddTaskId: Schema.Finite;
1162
- readonly artifactKind: Schema.optionalKey<Schema.Literals<readonly ["test_written", "test_failed_run", "code_written", "test_passed_run", "refactor", "test_weakened"]>>;
1163
- readonly phaseId: Schema.optionalKey<Schema.Finite>;
1164
- readonly behaviorId: Schema.optionalKey<Schema.Finite>;
1165
- readonly limit: Schema.optionalKey<Schema.Finite>;
1166
- }>;
1167
- /**
1168
- * The decoded {@link TddArtifactListInput}.
1169
- *
1170
- * @public
1171
- */
1172
- type TddArtifactListInputType = Schema.Schema.Type<typeof TddArtifactListInput>;
1173
- /**
1174
- * The `tdd_progress_push` tool's parameters.
1175
- *
1176
- * @public
1177
- */
1178
- export declare const TddProgressPushInput: Schema.Struct<{
1179
- readonly payload: Schema.String;
1180
- }>;
1181
- /**
1182
- * The decoded {@link TddProgressPushInput}.
1183
- *
1184
- * @public
1185
- */
1186
- type TddProgressPushInputType = Schema.Schema.Type<typeof TddProgressPushInput>;
1187
- /**
1188
- * The `tdd_progress_push` result — always `{ ok: true }`.
1189
- *
1190
- * @public
1191
- */
1192
- export declare const TddProgressPushResult: Schema.Struct<{
1193
- readonly ok: Schema.Literal<true>;
1194
- }>;
1195
- /**
1196
- * The decoded {@link TddProgressPushResult}.
1197
- *
1198
- * @public
1199
- */
1200
- type TddProgressPushResultType = Schema.Schema.Type<typeof TddProgressPushResult>;
1201
- /**
1202
- * The `run_tests` tool's success payload.
924
+ * The `run_tests` tool's success payload.
1203
925
  *
1204
926
  * @public
1205
927
  */
@@ -1434,40 +1156,467 @@ export declare const RunTestsResult: Schema.Union<readonly [Schema.Struct<{
1434
1156
  }>;
1435
1157
  }>]>;
1436
1158
  /**
1437
- * 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}.
1438
1554
  *
1439
1555
  * @public
1440
1556
  */
1441
- type RunTestsResultType = Schema.Schema.Type<typeof RunTestsResult>;
1557
+ type TurnSearchResultType = Schema.Schema.Type<typeof TurnSearchResult>;
1442
1558
  /**
1443
- * The `run_tests` tool's parameters. `tags` and `_sessionContext` are
1444
- * nested structs and are served strict at their own level (issue #243).
1559
+ * The `turn_search` tool's parameters.
1445
1560
  *
1446
1561
  * @public
1447
1562
  */
1448
- export declare const RunTestsInput: Schema.Struct<{
1449
- readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
1450
- readonly project: Schema.optionalKey<Schema.String>;
1451
- readonly projectRoot: Schema.optionalKey<Schema.String>;
1452
- readonly tags: Schema.optionalKey<Schema.Struct<{
1453
- readonly all: Schema.optionalKey<Schema.$Array<Schema.String>>;
1454
- readonly any: Schema.optionalKey<Schema.$Array<Schema.String>>;
1455
- readonly none: Schema.optionalKey<Schema.$Array<Schema.String>>;
1456
- }>>;
1457
- readonly passWithNoTests: Schema.optionalKey<Schema.Boolean>;
1458
- readonly timeout: Schema.optionalKey<Schema.Finite>;
1459
- readonly _sessionContext: Schema.optionalKey<Schema.Struct<{
1460
- readonly chatId: Schema.String;
1461
- readonly conversationId: Schema.String;
1462
- readonly mainAgentId: Schema.String;
1463
- }>>;
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>;
1464
1568
  }>;
1465
1569
  /**
1466
- * The decoded {@link RunTestsInput}.
1570
+ * The decoded {@link TurnSearchInput}.
1467
1571
  *
1468
1572
  * @public
1469
1573
  */
1470
- type RunTestsInputType = Schema.Schema.Type<typeof RunTestsInput>;
1574
+ type TurnSearchInputType = Schema.Schema.Type<typeof TurnSearchInput>;
1575
+ /**
1576
+ * Handler for {@link turnSearchTool}.
1577
+ *
1578
+ * @public
1579
+ */
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;
1590
+ }>;
1591
+ /**
1592
+ * The decoded {@link WrapupPromptResult}.
1593
+ *
1594
+ * @public
1595
+ */
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>;
1471
1620
  /**
1472
1621
  * Every tool the server registers.
1473
1622
  *
@@ -3117,24 +3266,24 @@ export declare const Kit: Toolkit.Toolkit<{
3117
3266
  * @public
3118
3267
  */
3119
3268
  export declare const toolHandlers: {
3120
- ping: () => import("effect/Effect").Effect<PingResultType>;
3121
- help: () => import("effect/Effect").Effect<HelpResultType>;
3122
- test_status: (input: TestStatusInputType) => import("effect/Effect").Effect<TestStatusResultType, never, import("@vitest-agent/engine").DataReader>;
3123
- test_overview: (input: TestOverviewInputType) => import("effect/Effect").Effect<TestOverviewResultType, never, import("@vitest-agent/engine").DataReader>;
3124
- test_coverage: (input: TestCoverageInputType) => import("effect/Effect").Effect<TestCoverageResultType, never, import("@vitest-agent/engine").DataReader>;
3125
- test_history: (input: TestHistoryInputType) => import("effect/Effect").Effect<TestHistoryResultType, never, import("@vitest-agent/engine").DataReader>;
3126
- test_trends: (input: TestTrendsInputType) => import("effect/Effect").Effect<TestTrendsResultType, never, import("@vitest-agent/engine").DataReader>;
3127
- test_errors: (input: TestErrorsInputType) => import("effect/Effect").Effect<TestErrorsResultType, never, import("@vitest-agent/engine").DataReader>;
3128
- file_coverage: (input: FileCoverageInputType) => import("effect/Effect").Effect<FileCoverageResultType, never, import("@vitest-agent/engine").DataReader>;
3129
- settings_list: () => import("effect/Effect").Effect<SettingsListResultType, never, import("@vitest-agent/engine").DataReader>;
3130
- cache_health: () => import("effect/Effect").Effect<CacheHealthResultType, never, import("@vitest-agent/engine").DataReader>;
3131
- configure: (input: ConfigureInputType) => import("effect/Effect").Effect<ConfigureResultType, never, import("@vitest-agent/engine").DataReader>;
3132
- commit_changes: (input: CommitChangesInputType) => import("effect/Effect").Effect<CommitChangesResultType, never, import("@vitest-agent/engine").DataReader>;
3133
- turn_search: (input: TurnSearchInputType) => import("effect/Effect").Effect<TurnSearchResultType, never, import("@vitest-agent/engine").DataReader>;
3134
- failure_signature_get: (input: FailureSignatureGetInputType) => import("effect/Effect").Effect<FailureSignatureGetResultType, never, import("@vitest-agent/engine").DataReader>;
3135
- acceptance_metrics: () => import("effect/Effect").Effect<AcceptanceMetricsResultType, never, import("@vitest-agent/engine").DataReader>;
3136
- triage_brief: (input: TriageBriefInputType) => import("effect/Effect").Effect<TriageBriefResultType, never, import("@vitest-agent/engine").DataReader>;
3137
- 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;
3138
3287
  inventory: (payload: unknown) => import("effect/Effect").Effect<{
3139
3288
  readonly inventoryKind: "project";
3140
3289
  readonly count: number;
@@ -3268,13 +3417,6 @@ export declare const toolHandlers: {
3268
3417
  readonly state: "failed" | "passed";
3269
3418
  readonly timestamp: string;
3270
3419
  }[];
3271
- } | {
3272
- readonly action: "get";
3273
- readonly found: false;
3274
- readonly project: string;
3275
- readonly fullName: string;
3276
- readonly ambiguous?: boolean | undefined;
3277
- readonly candidateModules?: readonly string[] | undefined;
3278
3420
  } | {
3279
3421
  readonly action: "for_file";
3280
3422
  readonly filePath: string;
@@ -3340,8 +3482,15 @@ export declare const toolHandlers: {
3340
3482
  readonly bodyEncoding?: "base64" | "utf-8" | undefined;
3341
3483
  }[];
3342
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;
3343
3492
  }, import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader>;
3344
- 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;
3345
3494
  note: (payload: unknown) => import("effect/Effect").Effect<{
3346
3495
  readonly action: "create";
3347
3496
  readonly id: number;
@@ -3414,9 +3563,6 @@ export declare const toolHandlers: {
3414
3563
  hypothesis: (payload: unknown) => import("effect/Effect").Effect<{
3415
3564
  readonly action: "record";
3416
3565
  readonly id: number;
3417
- } | {
3418
- readonly _idempotentReplay?: true;
3419
- readonly action: "validate";
3420
3566
  } | {
3421
3567
  readonly action: "list";
3422
3568
  readonly count: number;
@@ -3429,12 +3575,12 @@ export declare const toolHandlers: {
3429
3575
  readonly validationOutcome: "abandoned" | "confirmed" | "refuted" | null;
3430
3576
  readonly validatedAt: string | null;
3431
3577
  }[];
3432
- } | (({
3433
- readonly action: "record";
3434
- readonly id: number;
3435
3578
  } | {
3436
3579
  readonly _idempotentReplay?: true;
3437
3580
  readonly action: "validate";
3581
+ } | (({
3582
+ readonly action: "record";
3583
+ readonly id: number;
3438
3584
  } | {
3439
3585
  readonly action: "list";
3440
3586
  readonly count: number;
@@ -3447,21 +3593,13 @@ export declare const toolHandlers: {
3447
3593
  readonly validationOutcome: "abandoned" | "confirmed" | "refuted" | null;
3448
3594
  readonly validatedAt: string | null;
3449
3595
  }[];
3596
+ } | {
3597
+ readonly _idempotentReplay?: true;
3598
+ readonly action: "validate";
3450
3599
  }) & {
3451
3600
  _idempotentReplay: true;
3452
3601
  }), import("effect/ai/McpSchema").InvalidParams | import("@effected/mcp").ToolRefusal, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore | McpSession>;
3453
3602
  tdd_task: (payload: unknown) => import("effect/Effect").Effect<{
3454
- readonly _idempotentReplay?: true;
3455
- readonly action: "start";
3456
- readonly tddTaskId: number;
3457
- readonly goal: string;
3458
- readonly runId?: string | undefined;
3459
- } | {
3460
- readonly _idempotentReplay?: true;
3461
- readonly action: "end";
3462
- readonly tddTaskId: number;
3463
- readonly outcome: "abandoned" | "blocked" | "succeeded";
3464
- } | {
3465
3603
  readonly action: "get";
3466
3604
  readonly found: true;
3467
3605
  readonly task: {
@@ -3534,7 +3672,7 @@ export declare const toolHandlers: {
3534
3672
  readonly action: "resume";
3535
3673
  readonly found: false;
3536
3674
  readonly tddTaskId: number;
3537
- } | (({
3675
+ } | {
3538
3676
  readonly _idempotentReplay?: true;
3539
3677
  readonly action: "start";
3540
3678
  readonly tddTaskId: number;
@@ -3545,7 +3683,7 @@ export declare const toolHandlers: {
3545
3683
  readonly action: "end";
3546
3684
  readonly tddTaskId: number;
3547
3685
  readonly outcome: "abandoned" | "blocked" | "succeeded";
3548
- } | {
3686
+ } | (({
3549
3687
  readonly action: "get";
3550
3688
  readonly found: true;
3551
3689
  readonly task: {
@@ -3618,21 +3756,33 @@ export declare const toolHandlers: {
3618
3756
  readonly action: "resume";
3619
3757
  readonly found: false;
3620
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";
3621
3770
  }) & {
3622
3771
  _idempotentReplay: true;
3623
3772
  }), import("effect/ai/McpSchema").InvalidParams | import("@effected/mcp").ToolRefusal, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3624
- 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;
3625
3774
  tdd_goal: (payload: unknown) => import("effect/Effect").Effect<{
3626
- readonly _idempotentReplay?: true;
3627
- readonly ok: true;
3628
- readonly action: "create";
3629
- readonly goal: {
3630
- readonly id: number;
3631
- readonly sessionId: number;
3632
- readonly ordinal: number;
3633
- readonly goal: string;
3634
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3635
- 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
+ };
3636
3786
  };
3637
3787
  } | {
3638
3788
  readonly ok: true;
@@ -3695,6 +3845,18 @@ export declare const toolHandlers: {
3695
3845
  }[];
3696
3846
  }[];
3697
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
+ } | (({
3698
3860
  readonly ok: false;
3699
3861
  readonly error: {
3700
3862
  readonly [x: string]: unknown;
@@ -3707,18 +3869,6 @@ export declare const toolHandlers: {
3707
3869
  };
3708
3870
  };
3709
3871
  };
3710
- } | (({
3711
- readonly _idempotentReplay?: true;
3712
- readonly ok: true;
3713
- readonly action: "create";
3714
- readonly goal: {
3715
- readonly id: number;
3716
- readonly sessionId: number;
3717
- readonly ordinal: number;
3718
- readonly goal: string;
3719
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3720
- readonly createdAt: string;
3721
- };
3722
3872
  } | {
3723
3873
  readonly ok: true;
3724
3874
  readonly action: "update";
@@ -3780,6 +3930,21 @@ export declare const toolHandlers: {
3780
3930
  }[];
3781
3931
  }[];
3782
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<{
3783
3948
  readonly ok: false;
3784
3949
  readonly error: {
3785
3950
  readonly [x: string]: unknown;
@@ -3792,22 +3957,6 @@ export declare const toolHandlers: {
3792
3957
  };
3793
3958
  };
3794
3959
  };
3795
- }) & {
3796
- _idempotentReplay: true;
3797
- }), import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3798
- tdd_behavior: (payload: unknown) => import("effect/Effect").Effect<{
3799
- readonly _idempotentReplay?: true;
3800
- readonly ok: true;
3801
- readonly action: "create";
3802
- readonly behavior: {
3803
- readonly id: number;
3804
- readonly goalId: number;
3805
- readonly ordinal: number;
3806
- readonly behavior: string;
3807
- readonly suggestedTestName: string | null;
3808
- readonly status: "abandoned" | "done" | "in_progress" | "pending";
3809
- readonly createdAt: string;
3810
- };
3811
3960
  } | {
3812
3961
  readonly ok: true;
3813
3962
  readonly action: "update";
@@ -3881,19 +4030,6 @@ export declare const toolHandlers: {
3881
4030
  readonly createdAt: string;
3882
4031
  }[];
3883
4032
  } | {
3884
- readonly ok: false;
3885
- readonly error: {
3886
- readonly [x: string]: unknown;
3887
- readonly _tag: string;
3888
- readonly remediation: {
3889
- readonly hint: string;
3890
- readonly suggestedTool?: string;
3891
- readonly suggestedArgs?: {
3892
- readonly [x: string]: unknown;
3893
- };
3894
- };
3895
- };
3896
- } | (({
3897
4033
  readonly _idempotentReplay?: true;
3898
4034
  readonly ok: true;
3899
4035
  readonly action: "create";
@@ -3906,6 +4042,19 @@ export declare const toolHandlers: {
3906
4042
  readonly status: "abandoned" | "done" | "in_progress" | "pending";
3907
4043
  readonly createdAt: string;
3908
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
+ };
3909
4058
  } | {
3910
4059
  readonly ok: true;
3911
4060
  readonly action: "update";
@@ -3979,24 +4128,24 @@ export declare const toolHandlers: {
3979
4128
  readonly createdAt: string;
3980
4129
  }[];
3981
4130
  } | {
3982
- readonly ok: false;
3983
- readonly error: {
3984
- readonly [x: string]: unknown;
3985
- readonly _tag: string;
3986
- readonly remediation: {
3987
- readonly hint: string;
3988
- readonly suggestedTool?: string;
3989
- readonly suggestedArgs?: {
3990
- readonly [x: string]: unknown;
3991
- };
3992
- };
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;
3993
4142
  };
3994
4143
  }) & {
3995
4144
  _idempotentReplay: true;
3996
4145
  }), import("effect/ai/McpSchema").InvalidParams, import("@vitest-agent/engine").DataReader | import("@vitest-agent/engine").DataStore>;
3997
- tdd_artifact_list: (input: TddArtifactListInputType) => import("effect/Effect").Effect<TddArtifactListResultType, never, import("@vitest-agent/engine").DataReader>;
3998
- tdd_progress_push: (input: TddProgressPushInputType) => import("effect/Effect").Effect<TddProgressPushResultType, never, import("@vitest-agent/engine").DataReader | import("effect/ai/McpServer").McpServer>;
3999
- 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;
4000
4149
  };
4001
4150
  /**
4002
4151
  * The handlers layer: provides `Tool.HandlersFor<typeof Kit.tools>`.