@vitest-agent/sdk 1.3.1 → 1.3.3

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
@@ -4,7 +4,6 @@ import { ConfigFileService } from "config-file-effect";
4
4
  import { SqlClient } from "@effect/sql/SqlClient";
5
5
  import { WorkspaceDiscovery, WorkspaceDiscoveryError, WorkspaceRootNotFoundError } from "workspaces-effect";
6
6
  import { AppDirs } from "xdg-effect";
7
-
8
7
  //#region src/schemas/Coverage.d.ts
9
8
  /**
10
9
  * Aggregate coverage percentages across four istanbul metrics.
@@ -1117,7 +1116,7 @@ type RunEvent = typeof RunEvent.Type;
1117
1116
  * pulling the whole union shape into scope.
1118
1117
  * @public
1119
1118
  */
1120
- type RunEventByTag = { [E in RunEvent as E["_tag"]]: E };
1119
+ type RunEventByTag = { [E in RunEvent as E["_tag"]]: E; };
1121
1120
  //#endregion
1122
1121
  //#region src/schemas/Thresholds.d.ts
1123
1122
  /**
@@ -1447,7 +1446,7 @@ declare const HostKind: Schema.Literal<["claude-code", "claude-desktop", "cursor
1447
1446
  type HostKind = typeof HostKind.Type;
1448
1447
  //#endregion
1449
1448
  //#region src/errors/AgentErrors.d.ts
1450
- declare const AgentNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1449
+ declare const AgentNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1451
1450
  readonly _tag: "AgentNotFoundError";
1452
1451
  } & Readonly<A>;
1453
1452
  /**
@@ -1460,7 +1459,7 @@ declare class AgentNotFoundError extends AgentNotFoundError_base<{
1460
1459
  readonly agentId: AgentId;
1461
1460
  readonly chatId?: ChatId;
1462
1461
  }> {}
1463
- declare const SessionNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1462
+ declare const SessionNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1464
1463
  readonly _tag: "SessionNotFoundError";
1465
1464
  } & Readonly<A>;
1466
1465
  /**
@@ -1471,7 +1470,7 @@ declare const SessionNotFoundError_base: new <A extends Record<string, any> = {}
1471
1470
  declare class SessionNotFoundError extends SessionNotFoundError_base<{
1472
1471
  readonly chatId: ChatId;
1473
1472
  }> {}
1474
- declare const ConversationNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1473
+ declare const ConversationNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1475
1474
  readonly _tag: "ConversationNotFoundError";
1476
1475
  } & Readonly<A>;
1477
1476
  /**
@@ -1482,7 +1481,7 @@ declare const ConversationNotFoundError_base: new <A extends Record<string, any>
1482
1481
  declare class ConversationNotFoundError extends ConversationNotFoundError_base<{
1483
1482
  readonly conversationId: ConversationId;
1484
1483
  }> {}
1485
- declare const RegistrationConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1484
+ declare const RegistrationConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1486
1485
  readonly _tag: "RegistrationConflictError";
1487
1486
  } & Readonly<A>;
1488
1487
  /**
@@ -1498,7 +1497,7 @@ declare class RegistrationConflictError extends RegistrationConflictError_base<{
1498
1497
  readonly reason: string;
1499
1498
  });
1500
1499
  }
1501
- declare const HostMetadataParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1500
+ declare const HostMetadataParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1502
1501
  readonly _tag: "HostMetadataParseError";
1503
1502
  } & Readonly<A>;
1504
1503
  /**
@@ -1511,7 +1510,7 @@ declare class HostMetadataParseError extends HostMetadataParseError_base<{
1511
1510
  readonly raw: string;
1512
1511
  readonly reason: string;
1513
1512
  }> {}
1514
- declare const SidecarTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1513
+ declare const SidecarTimeoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1515
1514
  readonly _tag: "SidecarTimeoutError";
1516
1515
  } & Readonly<A>;
1517
1516
  /**
@@ -1530,7 +1529,7 @@ declare class SidecarTimeoutError extends SidecarTimeoutError_base<{
1530
1529
  }
1531
1530
  //#endregion
1532
1531
  //#region src/errors/DataStoreError.d.ts
1533
- declare const DataStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1532
+ declare const DataStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1534
1533
  readonly _tag: "DataStoreError";
1535
1534
  } & Readonly<A>;
1536
1535
  /**
@@ -1560,7 +1559,7 @@ declare class DataStoreError extends DataStoreError_base<{
1560
1559
  declare const extractSqlReason: (e: unknown) => string;
1561
1560
  //#endregion
1562
1561
  //#region src/errors/DiscoveryError.d.ts
1563
- declare const DiscoveryError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1562
+ declare const DiscoveryError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1564
1563
  readonly _tag: "DiscoveryError";
1565
1564
  } & Readonly<A>;
1566
1565
  /**
@@ -1580,7 +1579,7 @@ declare class DiscoveryError extends DiscoveryError_base<{
1580
1579
  }
1581
1580
  //#endregion
1582
1581
  //#region src/errors/PathResolutionError.d.ts
1583
- declare const PathResolutionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1582
+ declare const PathResolutionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1584
1583
  readonly _tag: "PathResolutionError";
1585
1584
  } & Readonly<A>;
1586
1585
  /**
@@ -1616,7 +1615,7 @@ interface ProjectIdentityCandidate {
1616
1615
  readonly source: string;
1617
1616
  readonly reason: string;
1618
1617
  }
1619
- declare const ProjectIdentityNotResolvableError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1618
+ declare const ProjectIdentityNotResolvableError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1620
1619
  readonly _tag: "ProjectIdentityNotResolvableError";
1621
1620
  } & Readonly<A>;
1622
1621
  /**
@@ -1639,7 +1638,7 @@ declare class ProjectIdentityNotResolvableError extends ProjectIdentityNotResolv
1639
1638
  }
1640
1639
  //#endregion
1641
1640
  //#region src/errors/RunContextError.d.ts
1642
- declare const GitCommandError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1641
+ declare const GitCommandError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1643
1642
  readonly _tag: "GitCommandError";
1644
1643
  } & Readonly<A>;
1645
1644
  /**
@@ -1660,7 +1659,7 @@ declare class GitCommandError extends GitCommandError_base<{
1660
1659
  readonly reason: string;
1661
1660
  });
1662
1661
  }
1663
- declare const ProbeMissError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1662
+ declare const ProbeMissError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1664
1663
  readonly _tag: "ProbeMissError";
1665
1664
  } & Readonly<A>;
1666
1665
  /**
@@ -1676,7 +1675,7 @@ declare class ProbeMissError extends ProbeMissError_base<{
1676
1675
  }> {}
1677
1676
  //#endregion
1678
1677
  //#region src/errors/TddErrors.d.ts
1679
- declare const GoalNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1678
+ declare const GoalNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1680
1679
  readonly _tag: "GoalNotFoundError";
1681
1680
  } & Readonly<A>;
1682
1681
  /** @public */
@@ -1689,7 +1688,7 @@ declare class GoalNotFoundError extends GoalNotFoundError_base<{
1689
1688
  readonly reason: string;
1690
1689
  });
1691
1690
  }
1692
- declare const BehaviorNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1691
+ declare const BehaviorNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1693
1692
  readonly _tag: "BehaviorNotFoundError";
1694
1693
  } & Readonly<A>;
1695
1694
  /** @public */
@@ -1702,7 +1701,7 @@ declare class BehaviorNotFoundError extends BehaviorNotFoundError_base<{
1702
1701
  readonly reason: string;
1703
1702
  });
1704
1703
  }
1705
- declare const TddTaskNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1704
+ declare const TddTaskNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1706
1705
  readonly _tag: "TddTaskNotFoundError";
1707
1706
  } & Readonly<A>;
1708
1707
  /** @public */
@@ -1717,7 +1716,7 @@ declare class TddTaskNotFoundError extends TddTaskNotFoundError_base<{
1717
1716
  }
1718
1717
  /** @public */
1719
1718
  type TddTaskEndOutcome = "succeeded" | "blocked" | "abandoned";
1720
- declare const TddTaskAlreadyEndedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1719
+ declare const TddTaskAlreadyEndedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1721
1720
  readonly _tag: "TddTaskAlreadyEndedError";
1722
1721
  } & Readonly<A>;
1723
1722
  /** @public */
@@ -1734,7 +1733,7 @@ declare class TddTaskAlreadyEndedError extends TddTaskAlreadyEndedError_base<{
1734
1733
  }
1735
1734
  /** @public */
1736
1735
  type IllegalStatusTransitionEntity = "goal" | "behavior" | "task";
1737
- declare const IllegalStatusTransitionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
1736
+ declare const IllegalStatusTransitionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1738
1737
  readonly _tag: "IllegalStatusTransitionError";
1739
1738
  } & Readonly<A>;
1740
1739
  /** @public */
@@ -2192,7 +2191,7 @@ declare const Agent_base: Schema.TaggedClass<Agent, "Agent", {
2192
2191
  * @public
2193
2192
  */
2194
2193
  declare class Agent extends Agent_base {}
2195
- declare const IdempotencyHit_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => Readonly<A> & {
2194
+ declare const IdempotencyHit_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly<A> & {
2196
2195
  readonly _tag: "IdempotencyHit";
2197
2196
  };
2198
2197
  /**
@@ -3673,7 +3672,6 @@ declare const formatWrapupEffect: (options: FormatWrapupOptions) => Effect.Effec
3673
3672
  //#region src/migrations/0001_initial.d.ts
3674
3673
  /** @internal */
3675
3674
  declare const migration: Effect.Effect<void, import("@effect/sql/SqlError").SqlError, SqlClient>;
3676
- /** @public */
3677
3675
  //#endregion
3678
3676
  //#region src/migrations/registry_0001_initial.d.ts
3679
3677
  /**
@@ -3695,7 +3693,6 @@ declare const migration$1: Effect.Effect<void, import("@effect/sql/SqlError").Sq
3695
3693
  //#region src/migrations/session_map_0001_initial.d.ts
3696
3694
  /** @internal */
3697
3695
  declare const migration$2: Effect.Effect<void, import("@effect/sql/SqlError").SqlError, SqlClient>;
3698
- /** @public */
3699
3696
  //#endregion
3700
3697
  //#region src/schemas/ChannelEvent.d.ts
3701
3698
  /** @public */
@@ -4167,7 +4164,8 @@ type AgentPluginOptions = typeof AgentPluginOptions.Type;
4167
4164
  * @public
4168
4165
  */
4169
4166
  declare const AgentReporterOptions: Schema.Struct<{
4170
- /** Set by the plugin per-project. Filters reports to one project. */projectFilter: Schema.optional<typeof Schema.String>;
4167
+ /** Set by the plugin per-project. Filters reports to one project. */
4168
+ projectFilter: Schema.optional<typeof Schema.String>;
4171
4169
  }>;
4172
4170
  /** @public */
4173
4171
  type AgentReporterOptions = typeof AgentReporterOptions.Type;
package/index.js CHANGED
@@ -115,7 +115,7 @@ import { requiredArtifactForTransition, transitionEnforcesBehaviorMatch, validat
115
115
  * substituted yet. Exported for version introspection by downstream tooling.
116
116
  * @public
117
117
  */
118
- const CURRENT_SDK_VERSION = "1.3.1";
118
+ const CURRENT_SDK_VERSION = "1.3.3";
119
119
 
120
120
  //#endregion
121
121
  export { ActionSeverity, ActorType, Agent, AgentConsoleMode, AgentContext, AgentId, AgentNotFoundError, AgentPluginOptions, AgentReport, AgentReporterOptions, BehaviorAbandonedEvent, BehaviorAddedEvent, BehaviorCompletedEvent, BehaviorDetail, BehaviorNotFoundError, BehaviorRow, BehaviorScopedEventTypes, BehaviorStartedEvent, BehaviorStatus, BehaviorsReadyEvent, BlockedEvent, CURRENT_SDK_VERSION, CacheManifest, CacheManifestEntry, ChannelEvent, ChatId, CiConsoleMode, ConfigLive, ConsoleLeakFile, ConsoleLeaks, ConsoleLogLevel, ConsoleMode, ConsoleOutputMode, ConsoleOutputs, ConversationId, ConversationNotFoundError, CoverageBaselines, FileCoverageReport as CoverageFile, CoverageGap, CoverageLevel, CoverageMetric, CoverageRenderState, CoverageReport, CoverageTargets, CoverageTargetsMetrics, CoverageTotals, DATABASE_FILENAME, DataReader, DataReaderLive, DataStore, DataStoreError, DataStoreLive, DetailLevel, DetailResolver, DetailResolverLive, DiscoveryError, DiscoveryRegistry, DiscoveryRegistryLive, Environment, EnvironmentDetector, EnvironmentDetectorLive, EnvironmentDetectorTest, Executor, ExecutorResolver, ExecutorResolverLive, FailureRecord, FileCoverageReport, FileEditPayload, FormatSelector, FormatSelectorLive, GfmFormatter, GitCommandError, GoalAbandonedEvent, GoalAddedEvent, GoalCompletedEvent, GoalDetail, GoalNotFoundError, GoalRow, GoalStartedEvent, GoalStatus, GoalsReadyEvent, HistoryRecord, HistoryTracker, HistoryTrackerLive, HistoryTrackerTest, HookFirePayload, HookStatus, HookType, HostKind, HostMetadataParseError, HumanConsoleMode, HypothesisPayload, IDEMPOTENCY_ROOT_SENTINEL, IdempotencyHit, IllegalStatusTransitionError, JsonFormatter, LoggerLive, MarkdownFormatter, MetricThresholds, ModuleRecord, ModuleReport, NotePayload, OutputFormat, OutputPipelineLive, OutputRenderer, OutputRendererLive, PackageManager, PathResolutionError, PathResolutionLive, PatternThresholds, PerClientSessionMapReader, PerClientSessionMapReaderLive, PerClientSessionMapWriter, PerClientSessionMapWriterLive, PhaseTransitionEvent, ProbeMissError, ProjectDiscovery, ProjectDiscoveryLive, ProjectDiscoveryTest, ProjectIdentity, ProjectIdentityLive, ProjectIdentityNotResolvableError, ProjectIdentityTest, ProjectKey, RegistrationConflictError, RenderState, RenderTotals, ReportError, ReportSummary, ResolvedThresholds, RunContext, RunContext$, RunContextLive, RunContextService, RunContextTest, RunEvent, SessionCompleteEvent, SessionNotFoundError, SessionOutcome, SidecarTimeoutError, SilentFormatter, SuggestedActionRecord, TagCountEntry, TddTaskAlreadyEndedError, TddTaskId, TddTaskNotFoundError, TerminalFormatter, TestClassification, TestHistory, TestRecord, TestReport, TestRun, TestRunReason, TestState, ToolCallPayload, ToolResultPayload, Transport, TrendEntry, TrendRecord, TurnPayload, UserPromptPayload, VitestAgentConfig, VitestAgentConfigFile, _resetMigrationCacheForTesting, ansi, assembleHistoryRecord, assembleManifest, buildAgentReport, buildConsoleLeaks, buildEnvPrefix, canonicalizeGitUrl, ciAnnotationsFormatter, classifyTest, collectConsoleLeakEntries, compressLines, computeFailureSignature, computeTrend, deriveIdempotencyKey, detectPackageManager, detectVitestScripts, determineTier, ensureMigrated, extractSqlReason, findFunctionBoundary, formatConsoleMarkdown, formatFatalError, formatGfm, formatTriageEffect, formatWrapupEffect, getRecentDirection, getRunCommand, getWorstMetric, gitUrlToProjectKey, hashTargets, historyKey, initialRenderState, isTimeoutError, isVitestInvocation, migration as migration0001, normalizeAssertionShape, normalizeWorkspaceKey, osc8, probeHostMetadataFromEnv, migration$1 as registryMigration0001, relativePath, requiredArtifactForTransition, resolveCoverageInput, resolveDataPath, resolveLogFile, resolveLogLevel, resolveProjectIdentityFromCandidates, resolveProjectKeyFromCwd, resolveWorkspaceKey, rewriteBashCommand, safeFilename, migration$2 as sessionMapMigration0001, stripAnsi, transitionEnforcesBehaviorMatch, validateCoverageConfig, validateCoverageTargetsShape, validatePhaseTransition };
@@ -198,11 +198,11 @@ const DataStoreLive = Layer.effect(DataStore, Effect.gen(function* () {
198
198
  ];
199
199
  for (const metric of metrics) {
200
200
  const value = g[metric];
201
- if (value !== void 0) yield* sql`INSERT INTO coverage_baselines (project, metric, value, pattern, updated_at) VALUES ('__global__', ${metric}, ${value}, '', ${updatedAt}) ON CONFLICT (project, metric, pattern) DO UPDATE SET value = ${value}, updated_at = ${updatedAt}`;
201
+ if (value !== void 0 && Number.isFinite(value)) yield* sql`INSERT INTO coverage_baselines (project, metric, value, pattern, updated_at) VALUES ('__global__', ${metric}, ${value}, '', ${updatedAt}) ON CONFLICT (project, metric, pattern) DO UPDATE SET value = ${value}, updated_at = ${updatedAt}`;
202
202
  }
203
203
  for (const [pattern, thresholds] of patterns) for (const metric of metrics) {
204
204
  const value = thresholds[metric];
205
- if (value !== void 0) yield* sql`INSERT INTO coverage_baselines (project, metric, value, pattern, updated_at) VALUES ('__global__', ${metric}, ${value}, ${pattern}, ${updatedAt}) ON CONFLICT (project, metric, pattern) DO UPDATE SET value = ${value}, updated_at = ${updatedAt}`;
205
+ if (value !== void 0 && Number.isFinite(value)) yield* sql`INSERT INTO coverage_baselines (project, metric, value, pattern, updated_at) VALUES ('__global__', ${metric}, ${value}, ${pattern}, ${updatedAt}) ON CONFLICT (project, metric, pattern) DO UPDATE SET value = ${value}, updated_at = ${updatedAt}`;
206
206
  }
207
207
  }).pipe(Effect.annotateLogs("service", "DataStore"), Effect.mapError((e) => new DataStoreError({
208
208
  operation: "write",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitest-agent/sdk",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "private": false,
5
5
  "description": "Shared Effect Schema, SQLite migrations, data layer, services, formatters, and utilities for vitest-agent packages.",
6
6
  "keywords": [
@@ -43,20 +43,22 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@effect/cluster": "^0.59.0",
46
+ "@effect/experimental": "^0.60.0",
46
47
  "@effect/platform": "^0.96.2",
47
48
  "@effect/platform-node": "^0.107.0",
48
49
  "@effect/rpc": "^0.75.1",
49
50
  "@effect/sql": "^0.51.1",
50
51
  "@effect/sql-sqlite-node": "^0.52.0",
52
+ "@effect/workflow": "^0.18.2",
51
53
  "@types/acorn": "^6.0.4",
52
54
  "acorn": "^8.17.0",
53
55
  "acorn-typescript": "^1.4.13",
54
56
  "ajv": "^8.20.0",
55
57
  "config-file-effect": "^0.3.0",
56
58
  "effect": "^3.21.4",
57
- "std-env": "^4.1.0",
58
- "workspaces-effect": "^2.0.2",
59
- "xdg-effect": "^2.1.0"
59
+ "std-env": "^4.2.0",
60
+ "workspaces-effect": "^2.0.3",
61
+ "xdg-effect": "^2.1.1"
60
62
  },
61
63
  "engines": {
62
64
  "node": ">=24.11.0"
package/testing.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Context, Effect, Layer, Option, Schema } from "effect";
2
2
  import * as NodeContext from "@effect/platform-node/NodeContext";
3
3
  import * as SqliteMigrator from "@effect/sql-sqlite-node/SqliteMigrator";
4
-
5
4
  //#region src/schemas/Identity.d.ts
6
5
  /**
7
6
  * Canonical UUID for an LLM agent invocation. Generated server-side at
@@ -24,7 +23,7 @@ declare const ChatId: Schema.brand<typeof Schema.UUID, "ChatId">;
24
23
  type ChatId = Schema.Schema.Type<typeof ChatId>;
25
24
  //#endregion
26
25
  //#region src/errors/AgentErrors.d.ts
27
- declare const AgentNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
26
+ declare const AgentNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
28
27
  readonly _tag: "AgentNotFoundError";
29
28
  } & Readonly<A>;
30
29
  /**
@@ -37,7 +36,7 @@ declare class AgentNotFoundError extends AgentNotFoundError_base<{
37
36
  readonly agentId: AgentId;
38
37
  readonly chatId?: ChatId;
39
38
  }> {}
40
- declare const RegistrationConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
39
+ declare const RegistrationConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
41
40
  readonly _tag: "RegistrationConflictError";
42
41
  } & Readonly<A>;
43
42
  /**
@@ -55,7 +54,7 @@ declare class RegistrationConflictError extends RegistrationConflictError_base<{
55
54
  }
56
55
  //#endregion
57
56
  //#region src/errors/DataStoreError.d.ts
58
- declare const DataStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
57
+ declare const DataStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
59
58
  readonly _tag: "DataStoreError";
60
59
  } & Readonly<A>;
61
60
  /**
@@ -75,7 +74,7 @@ declare class DataStoreError extends DataStoreError_base<{
75
74
  }
76
75
  //#endregion
77
76
  //#region src/errors/TddErrors.d.ts
78
- declare const GoalNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
77
+ declare const GoalNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
79
78
  readonly _tag: "GoalNotFoundError";
80
79
  } & Readonly<A>;
81
80
  /** @public */
@@ -88,7 +87,7 @@ declare class GoalNotFoundError extends GoalNotFoundError_base<{
88
87
  readonly reason: string;
89
88
  });
90
89
  }
91
- declare const BehaviorNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
90
+ declare const BehaviorNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
92
91
  readonly _tag: "BehaviorNotFoundError";
93
92
  } & Readonly<A>;
94
93
  /** @public */
@@ -101,7 +100,7 @@ declare class BehaviorNotFoundError extends BehaviorNotFoundError_base<{
101
100
  readonly reason: string;
102
101
  });
103
102
  }
104
- declare const TddTaskNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
103
+ declare const TddTaskNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
105
104
  readonly _tag: "TddTaskNotFoundError";
106
105
  } & Readonly<A>;
107
106
  /** @public */
@@ -116,7 +115,7 @@ declare class TddTaskNotFoundError extends TddTaskNotFoundError_base<{
116
115
  }
117
116
  /** @public */
118
117
  type TddTaskEndOutcome = "succeeded" | "blocked" | "abandoned";
119
- declare const TddTaskAlreadyEndedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
118
+ declare const TddTaskAlreadyEndedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
120
119
  readonly _tag: "TddTaskAlreadyEndedError";
121
120
  } & Readonly<A>;
122
121
  /** @public */
@@ -133,7 +132,7 @@ declare class TddTaskAlreadyEndedError extends TddTaskAlreadyEndedError_base<{
133
132
  }
134
133
  /** @public */
135
134
  type IllegalStatusTransitionEntity = "goal" | "behavior" | "task";
136
- declare const IllegalStatusTransitionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => import("effect/Cause").YieldableError & {
135
+ declare const IllegalStatusTransitionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
137
136
  readonly _tag: "IllegalStatusTransitionError";
138
137
  } & Readonly<A>;
139
138
  /** @public */
@@ -180,7 +179,7 @@ declare const Agent_base: Schema.TaggedClass<Agent, "Agent", {
180
179
  * @public
181
180
  */
182
181
  declare class Agent extends Agent_base {}
183
- declare const IdempotencyHit_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>) => Readonly<A> & {
182
+ declare const IdempotencyHit_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly<A> & {
184
183
  readonly _tag: "IdempotencyHit";
185
184
  };
186
185
  /**