@wix/evalforge-types 0.91.0 → 0.93.0

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/build/index.js CHANGED
@@ -159,6 +159,7 @@ __export(index_exports, {
159
159
  PresetSchema: () => PresetSchema,
160
160
  ProjectSchema: () => ProjectSchema,
161
161
  PromptResultSchema: () => PromptResultSchema,
162
+ ProvisionedSiteSchema: () => ProvisionedSiteSchema,
162
163
  RUN_COMMAND_LABELS: () => RUN_COMMAND_LABELS,
163
164
  ReasoningEffortSchema: () => ReasoningEffortSchema,
164
165
  RuleSchema: () => RuleSchema,
@@ -166,13 +167,20 @@ __export(index_exports, {
166
167
  RunAnalysisFindingSchema: () => RunAnalysisFindingSchema,
167
168
  RunAnalysisSchema: () => RunAnalysisSchema,
168
169
  SEMVER_REGEX: () => SEMVER_REGEX,
170
+ SITE_SETUP_EXCLUSIVE_VARIABLES: () => SITE_SETUP_EXCLUSIVE_VARIABLES,
169
171
  SKILL_FOLDER_NAME_REGEX: () => SKILL_FOLDER_NAME_REGEX,
170
172
  SYSTEM_ASSERTIONS: () => SYSTEM_ASSERTIONS,
171
173
  SYSTEM_ASSERTION_IDS: () => SYSTEM_ASSERTION_IDS,
172
174
  ScenarioAssertionLinkSchema: () => ScenarioAssertionLinkSchema,
173
175
  ScenarioConversationSchema: () => ScenarioConversationSchema,
174
176
  SimpleAgentConfigSchema: () => SimpleAgentConfigSchema,
177
+ SiteBootstrapHttpMethodSchema: () => SiteBootstrapHttpMethodSchema,
178
+ SiteBootstrapResultSchema: () => SiteBootstrapResultSchema,
179
+ SiteBootstrapSchema: () => SiteBootstrapSchema,
180
+ SiteBootstrapStepResultSchema: () => SiteBootstrapStepResultSchema,
181
+ SiteBootstrapStepSchema: () => SiteBootstrapStepSchema,
175
182
  SiteConfigTestSchema: () => SiteConfigTestSchema,
183
+ SiteSetupConfigSchema: () => SiteSetupConfigSchema,
176
184
  SkillFileSchema: () => SkillFileSchema,
177
185
  SkillMetadataSchema: () => SkillMetadataSchema,
178
186
  SkillSchema: () => SkillSchema,
@@ -226,6 +234,7 @@ __export(index_exports, {
226
234
  UpdateTestScenarioInputSchema: () => UpdateTestScenarioInputSchema,
227
235
  UpdateTestSuiteInputSchema: () => UpdateTestSuiteInputSchema,
228
236
  VitestTestSchema: () => VitestTestSchema,
237
+ WixSiteSummarySchema: () => WixSiteSummarySchema,
229
238
  capabilityToMcp: () => capabilityToMcp,
230
239
  capabilityToRule: () => capabilityToRule,
231
240
  capabilityToSkill: () => capabilityToSkill,
@@ -233,6 +242,7 @@ __export(index_exports, {
233
242
  capabilityToSubAgent: () => capabilityToSubAgent,
234
243
  capabilityVersionToSkillVersion: () => capabilityVersionToSkillVersion,
235
244
  classifyAssertionRef: () => classifyAssertionRef,
245
+ extractVariableNamesFromPrompt: () => extractVariableNamesFromPrompt,
236
246
  formatTraceEventLine: () => formatTraceEventLine,
237
247
  getSystemAssertion: () => getSystemAssertion,
238
248
  getSystemAssertions: () => getSystemAssertions,
@@ -245,8 +255,11 @@ __export(index_exports, {
245
255
  normalizeModelId: () => normalizeModelId,
246
256
  parseBuildCommandToArgv: () => parseBuildCommandToArgv,
247
257
  parseTraceEventLine: () => parseTraceEventLine,
258
+ promptUsesSiteSetupExclusiveVariables: () => promptUsesSiteSetupExclusiveVariables,
259
+ resolveWixOriginTemplateId: () => resolveWixOriginTemplateId,
248
260
  validateAssertionConfig: () => validateAssertionConfig,
249
- validateBuildPassedParamsInAssertionLinks: () => validateBuildPassedParamsInAssertionLinks
261
+ validateBuildPassedParamsInAssertionLinks: () => validateBuildPassedParamsInAssertionLinks,
262
+ validateSiteSetupExclusivity: () => validateSiteSetupExclusivity
250
263
  });
251
264
  module.exports = __toCommonJS(index_exports);
252
265
 
@@ -438,6 +451,7 @@ var AVAILABLE_TOOL_NAMES = [
438
451
  "Grep",
439
452
  "Read",
440
453
  "Skill",
454
+ "WebFetch",
441
455
  "Write"
442
456
  ];
443
457
 
@@ -1072,14 +1086,65 @@ var EnvironmentSchema = import_zod22.z.object({
1072
1086
  metaSite: MetaSiteConfigSchema.optional()
1073
1087
  });
1074
1088
 
1089
+ // src/scenario/site-setup.ts
1090
+ var import_zod23 = require("zod");
1091
+ var SiteBootstrapHttpMethodSchema = import_zod23.z.enum([
1092
+ "get",
1093
+ "post",
1094
+ "put",
1095
+ "patch",
1096
+ "delete"
1097
+ ]);
1098
+ var SiteBootstrapStepSchema = import_zod23.z.object({
1099
+ label: import_zod23.z.string().optional(),
1100
+ method: SiteBootstrapHttpMethodSchema,
1101
+ url: import_zod23.z.string().min(1),
1102
+ body: import_zod23.z.record(import_zod23.z.string(), import_zod23.z.unknown()).optional()
1103
+ });
1104
+ var SiteBootstrapSchema = import_zod23.z.object({
1105
+ steps: import_zod23.z.array(SiteBootstrapStepSchema).default([])
1106
+ });
1107
+ var SiteBootstrapStepResultSchema = import_zod23.z.object({
1108
+ label: import_zod23.z.string().optional(),
1109
+ statusCode: import_zod23.z.number().int(),
1110
+ ok: import_zod23.z.boolean(),
1111
+ error: import_zod23.z.string().optional()
1112
+ });
1113
+ var SiteBootstrapResultSchema = import_zod23.z.object({
1114
+ steps: import_zod23.z.array(SiteBootstrapStepResultSchema)
1115
+ });
1116
+ var SiteSetupConfigSchema = import_zod23.z.discriminatedUnion("mode", [
1117
+ import_zod23.z.object({ mode: import_zod23.z.literal("none") }),
1118
+ import_zod23.z.object({
1119
+ mode: import_zod23.z.literal("clone"),
1120
+ sourceSiteId: import_zod23.z.string().min(1),
1121
+ bootstrap: SiteBootstrapSchema.optional()
1122
+ }),
1123
+ import_zod23.z.object({
1124
+ mode: import_zod23.z.literal("template"),
1125
+ templateId: import_zod23.z.string().min(1),
1126
+ bootstrap: SiteBootstrapSchema.optional()
1127
+ })
1128
+ ]);
1129
+ var WixSiteSummarySchema = import_zod23.z.object({
1130
+ id: import_zod23.z.string(),
1131
+ displayName: import_zod23.z.string(),
1132
+ url: import_zod23.z.string().optional()
1133
+ });
1134
+ var ProvisionedSiteSchema = import_zod23.z.object({
1135
+ id: import_zod23.z.string(),
1136
+ url: import_zod23.z.string().optional(),
1137
+ editorUrl: import_zod23.z.string().optional()
1138
+ });
1139
+
1075
1140
  // src/scenario/test-scenario.ts
1076
- var import_zod25 = require("zod");
1141
+ var import_zod26 = require("zod");
1077
1142
 
1078
1143
  // src/assertion/assertion.ts
1079
- var import_zod24 = require("zod");
1144
+ var import_zod25 = require("zod");
1080
1145
 
1081
1146
  // src/assertion/build-passed-command.ts
1082
- var import_zod23 = require("zod");
1147
+ var import_zod24 = require("zod");
1083
1148
  var ALLOWED_BUILD_COMMANDS = [
1084
1149
  "yarn build",
1085
1150
  "npm run build",
@@ -1105,10 +1170,10 @@ function parseBuildCommandToArgv(command) {
1105
1170
  return BUILD_COMMAND_ARGV[trimmed];
1106
1171
  }
1107
1172
  var enumTuple = ALLOWED_BUILD_COMMANDS;
1108
- var BuildPassedCommandStringSchema = import_zod23.z.enum(enumTuple);
1173
+ var BuildPassedCommandStringSchema = import_zod24.z.enum(enumTuple);
1109
1174
 
1110
1175
  // src/assertion/assertion.ts
1111
- var AssertionTypeSchema = import_zod24.z.enum([
1176
+ var AssertionTypeSchema = import_zod25.z.enum([
1112
1177
  "skill_was_called",
1113
1178
  "tool_called_with_param",
1114
1179
  "build_passed",
@@ -1117,61 +1182,61 @@ var AssertionTypeSchema = import_zod24.z.enum([
1117
1182
  "llm_judge",
1118
1183
  "api_call"
1119
1184
  ]);
1120
- var AssertionParameterTypeSchema = import_zod24.z.enum([
1185
+ var AssertionParameterTypeSchema = import_zod25.z.enum([
1121
1186
  "string",
1122
1187
  "number",
1123
1188
  "boolean"
1124
1189
  ]);
1125
- var AssertionParameterSchema = import_zod24.z.object({
1190
+ var AssertionParameterSchema = import_zod25.z.object({
1126
1191
  /** Parameter name (used as key in params object) */
1127
- name: import_zod24.z.string().min(1),
1192
+ name: import_zod25.z.string().min(1),
1128
1193
  /** Display label for the parameter */
1129
- label: import_zod24.z.string().min(1),
1194
+ label: import_zod25.z.string().min(1),
1130
1195
  /** Parameter type */
1131
1196
  type: AssertionParameterTypeSchema,
1132
1197
  /** Whether this parameter is required */
1133
- required: import_zod24.z.boolean(),
1198
+ required: import_zod25.z.boolean(),
1134
1199
  /** Default value (optional, used when not provided) */
1135
- defaultValue: import_zod24.z.union([import_zod24.z.string(), import_zod24.z.number(), import_zod24.z.boolean()]).optional(),
1200
+ defaultValue: import_zod25.z.union([import_zod25.z.string(), import_zod25.z.number(), import_zod25.z.boolean()]).optional(),
1136
1201
  /** If true, parameter is hidden by default behind "Show advanced options" */
1137
- advanced: import_zod24.z.boolean().optional()
1202
+ advanced: import_zod25.z.boolean().optional()
1138
1203
  });
1139
- var ScenarioAssertionLinkSchema = import_zod24.z.object({
1204
+ var ScenarioAssertionLinkSchema = import_zod25.z.object({
1140
1205
  /** ID of the system assertion (e.g., 'system:skill_was_called') */
1141
- assertionId: import_zod24.z.string(),
1206
+ assertionId: import_zod25.z.string(),
1142
1207
  /** Parameter values for this assertion in this scenario */
1143
- params: import_zod24.z.record(
1144
- import_zod24.z.string(),
1145
- import_zod24.z.union([import_zod24.z.string(), import_zod24.z.number(), import_zod24.z.boolean(), import_zod24.z.null()])
1208
+ params: import_zod25.z.record(
1209
+ import_zod25.z.string(),
1210
+ import_zod25.z.union([import_zod25.z.string(), import_zod25.z.number(), import_zod25.z.boolean(), import_zod25.z.null()])
1146
1211
  ).optional()
1147
1212
  });
1148
- var SkillWasCalledConfigSchema = import_zod24.z.object({
1213
+ var SkillWasCalledConfigSchema = import_zod25.z.object({
1149
1214
  /** Names of the skills that must have been called */
1150
- skillNames: import_zod24.z.array(import_zod24.z.string().min(1)).min(1)
1215
+ skillNames: import_zod25.z.array(import_zod25.z.string().min(1)).min(1)
1151
1216
  });
1152
- var CostConfigSchema = import_zod24.z.strictObject({
1217
+ var CostConfigSchema = import_zod25.z.strictObject({
1153
1218
  /** Maximum allowed cost in USD */
1154
- maxCostUsd: import_zod24.z.number().positive()
1219
+ maxCostUsd: import_zod25.z.number().positive()
1155
1220
  });
1156
- var ToolCalledWithParamConfigSchema = import_zod24.z.strictObject({
1221
+ var ToolCalledWithParamConfigSchema = import_zod25.z.strictObject({
1157
1222
  /** Name of the tool that must have been called */
1158
- toolName: import_zod24.z.string().min(1),
1223
+ toolName: import_zod25.z.string().min(1),
1159
1224
  /** JSON string of key-value pairs for expected parameters (substring match). Optional — when omitted, only checks tool presence. */
1160
- expectedParams: import_zod24.z.string().min(1).optional(),
1225
+ expectedParams: import_zod25.z.string().min(1).optional(),
1161
1226
  /** If true, the matching tool call must also have succeeded (step.success === true) */
1162
- requireSuccess: import_zod24.z.boolean().optional()
1227
+ requireSuccess: import_zod25.z.boolean().optional()
1163
1228
  });
1164
- var BuildPassedConfigSchema = import_zod24.z.strictObject({
1229
+ var BuildPassedConfigSchema = import_zod25.z.strictObject({
1165
1230
  /** Allowlisted command only (default at runtime: "npm run build") */
1166
1231
  command: BuildPassedCommandStringSchema.optional(),
1167
1232
  /** Expected exit code (default: 0) */
1168
- expectedExitCode: import_zod24.z.number().int().optional()
1233
+ expectedExitCode: import_zod25.z.number().int().optional()
1169
1234
  });
1170
- var TimeConfigSchema = import_zod24.z.strictObject({
1235
+ var TimeConfigSchema = import_zod25.z.strictObject({
1171
1236
  /** Maximum allowed duration in milliseconds */
1172
- maxDurationMs: import_zod24.z.number().int().positive()
1237
+ maxDurationMs: import_zod25.z.number().int().positive()
1173
1238
  });
1174
- var LlmJudgeConfigSchema = import_zod24.z.object({
1239
+ var LlmJudgeConfigSchema = import_zod25.z.object({
1175
1240
  /**
1176
1241
  * Prompt template with placeholders:
1177
1242
  * - {{output}}: agent's final output
@@ -1182,65 +1247,65 @@ var LlmJudgeConfigSchema = import_zod24.z.object({
1182
1247
  * - {{trace}}: step-by-step trace of tool calls
1183
1248
  * - Custom parameters defined in the parameters array
1184
1249
  */
1185
- prompt: import_zod24.z.string().min(1),
1250
+ prompt: import_zod25.z.string().min(1),
1186
1251
  /** Minimum score to pass (0-10, default 7) */
1187
- minScore: import_zod24.z.number().int().min(0).max(10).optional(),
1252
+ minScore: import_zod25.z.number().int().min(0).max(10).optional(),
1188
1253
  /** Model for the judge (e.g. claude-3-5-haiku-20241022) */
1189
- model: import_zod24.z.string().optional(),
1254
+ model: import_zod25.z.string().optional(),
1190
1255
  /** Max output tokens */
1191
- maxTokens: import_zod24.z.number().int().optional(),
1256
+ maxTokens: import_zod25.z.number().int().optional(),
1192
1257
  /** Temperature (0-1) */
1193
- temperature: import_zod24.z.number().min(0).max(1).optional(),
1258
+ temperature: import_zod25.z.number().min(0).max(1).optional(),
1194
1259
  /** User-defined parameters for this assertion */
1195
- parameters: import_zod24.z.array(AssertionParameterSchema).optional()
1260
+ parameters: import_zod25.z.array(AssertionParameterSchema).optional()
1196
1261
  });
1197
- var ApiCallConfigSchema = import_zod24.z.strictObject({
1262
+ var ApiCallConfigSchema = import_zod25.z.strictObject({
1198
1263
  /** URL to call */
1199
- url: import_zod24.z.string().min(1),
1264
+ url: import_zod25.z.string().min(1),
1200
1265
  /** HTTP method (default GET) */
1201
- method: import_zod24.z.enum(["GET", "POST"]).optional(),
1266
+ method: import_zod25.z.enum(["GET", "POST"]).optional(),
1202
1267
  /** Request body (JSON string, for POST requests) */
1203
- requestBody: import_zod24.z.string().optional(),
1268
+ requestBody: import_zod25.z.string().optional(),
1204
1269
  /** Expected JSON response to validate against (subset match — extra fields in actual are OK) */
1205
- expectedResponse: import_zod24.z.string().min(1),
1270
+ expectedResponse: import_zod25.z.string().min(1),
1206
1271
  /** Request headers as JSON string of key-value pairs */
1207
- requestHeaders: import_zod24.z.string().optional(),
1272
+ requestHeaders: import_zod25.z.string().optional(),
1208
1273
  /** Request timeout in milliseconds (default 30000) */
1209
- timeoutMs: import_zod24.z.number().int().positive().optional()
1274
+ timeoutMs: import_zod25.z.number().int().positive().optional()
1210
1275
  });
1211
1276
  var AssertionBaseFields = {
1212
1277
  /** When true, the assertion's pass/fail logic is inverted (NOT operator). */
1213
- negate: import_zod24.z.boolean().optional()
1278
+ negate: import_zod25.z.boolean().optional()
1214
1279
  };
1215
1280
  var SkillWasCalledAssertionSchema = SkillWasCalledConfigSchema.extend({
1216
- type: import_zod24.z.literal("skill_was_called"),
1281
+ type: import_zod25.z.literal("skill_was_called"),
1217
1282
  ...AssertionBaseFields
1218
1283
  });
1219
1284
  var ToolCalledWithParamAssertionSchema = ToolCalledWithParamConfigSchema.extend({
1220
- type: import_zod24.z.literal("tool_called_with_param"),
1285
+ type: import_zod25.z.literal("tool_called_with_param"),
1221
1286
  ...AssertionBaseFields
1222
1287
  });
1223
1288
  var BuildPassedAssertionSchema = BuildPassedConfigSchema.extend({
1224
- type: import_zod24.z.literal("build_passed"),
1289
+ type: import_zod25.z.literal("build_passed"),
1225
1290
  ...AssertionBaseFields
1226
1291
  });
1227
1292
  var CostAssertionSchema = CostConfigSchema.extend({
1228
- type: import_zod24.z.literal("cost"),
1293
+ type: import_zod25.z.literal("cost"),
1229
1294
  ...AssertionBaseFields
1230
1295
  });
1231
1296
  var LlmJudgeAssertionSchema = LlmJudgeConfigSchema.extend({
1232
- type: import_zod24.z.literal("llm_judge"),
1297
+ type: import_zod25.z.literal("llm_judge"),
1233
1298
  ...AssertionBaseFields
1234
1299
  });
1235
1300
  var ApiCallAssertionSchema = ApiCallConfigSchema.extend({
1236
- type: import_zod24.z.literal("api_call"),
1301
+ type: import_zod25.z.literal("api_call"),
1237
1302
  ...AssertionBaseFields
1238
1303
  });
1239
1304
  var TimeAssertionSchema = TimeConfigSchema.extend({
1240
- type: import_zod24.z.literal("time_limit"),
1305
+ type: import_zod25.z.literal("time_limit"),
1241
1306
  ...AssertionBaseFields
1242
1307
  });
1243
- var AssertionSchema = import_zod24.z.union([
1308
+ var AssertionSchema = import_zod25.z.union([
1244
1309
  SkillWasCalledAssertionSchema,
1245
1310
  ToolCalledWithParamAssertionSchema,
1246
1311
  BuildPassedAssertionSchema,
@@ -1249,7 +1314,7 @@ var AssertionSchema = import_zod24.z.union([
1249
1314
  LlmJudgeAssertionSchema,
1250
1315
  ApiCallAssertionSchema
1251
1316
  ]);
1252
- var AssertionConfigSchema = import_zod24.z.union([
1317
+ var AssertionConfigSchema = import_zod25.z.union([
1253
1318
  LlmJudgeConfigSchema,
1254
1319
  // requires prompt - check first
1255
1320
  SkillWasCalledConfigSchema,
@@ -1264,7 +1329,7 @@ var AssertionConfigSchema = import_zod24.z.union([
1264
1329
  // requires maxCostUsd, uses strictObject
1265
1330
  BuildPassedConfigSchema,
1266
1331
  // all optional, uses strictObject to reject unknown keys
1267
- import_zod24.z.object({})
1332
+ import_zod25.z.object({})
1268
1333
  // fallback empty config
1269
1334
  ]);
1270
1335
  function validateAssertionConfig(type, config) {
@@ -1510,36 +1575,67 @@ function getSystemAssertion(id) {
1510
1575
 
1511
1576
  // src/scenario/test-scenario.ts
1512
1577
  var MAX_IMAGE_BASE64_LENGTH = 4 * Math.ceil(2 * 1024 * 1024 / 3);
1513
- var TriggerPromptImageSchema = import_zod25.z.object({
1578
+ var TriggerPromptImageSchema = import_zod26.z.object({
1514
1579
  /** Base64-encoded image data (no data URL prefix) */
1515
- base64: import_zod25.z.string().max(MAX_IMAGE_BASE64_LENGTH, "Image exceeds 2 MB size limit"),
1580
+ base64: import_zod26.z.string().max(MAX_IMAGE_BASE64_LENGTH, "Image exceeds 2 MB size limit"),
1516
1581
  /** MIME type of the image */
1517
- mediaType: import_zod25.z.enum(["image/jpeg", "image/png", "image/gif", "image/webp"]),
1582
+ mediaType: import_zod26.z.enum(["image/jpeg", "image/png", "image/gif", "image/webp"]),
1518
1583
  /** Original filename of the image */
1519
- name: import_zod25.z.string()
1584
+ name: import_zod26.z.string()
1520
1585
  });
1521
- var ExpectedFileSchema = import_zod25.z.object({
1586
+ var ExpectedFileSchema = import_zod26.z.object({
1522
1587
  /** Relative path where the file should be created */
1523
- path: import_zod25.z.string(),
1588
+ path: import_zod26.z.string(),
1524
1589
  /** Optional expected content */
1525
- content: import_zod25.z.string().optional()
1590
+ content: import_zod26.z.string().optional()
1526
1591
  });
1527
1592
  var TestScenarioSchema = TenantEntitySchema.extend({
1528
1593
  /** The prompt sent to the agent to trigger the task */
1529
- triggerPrompt: import_zod25.z.string().min(10),
1594
+ triggerPrompt: import_zod26.z.string().min(10),
1530
1595
  /** ID of the template to use for this scenario (null = no template) */
1531
- templateId: import_zod25.z.string().nullish(),
1596
+ templateId: import_zod26.z.string().nullish(),
1532
1597
  /** Inline assertions to evaluate for this scenario (legacy) */
1533
- assertions: import_zod25.z.array(AssertionSchema).optional(),
1598
+ assertions: import_zod26.z.array(AssertionSchema).optional(),
1534
1599
  /** IDs of saved assertions to evaluate (from assertions table) - legacy, use assertionLinks */
1535
- assertionIds: import_zod25.z.array(import_zod25.z.string()).optional(),
1600
+ assertionIds: import_zod26.z.array(import_zod26.z.string()).optional(),
1536
1601
  /** Linked assertions with per-scenario parameter values */
1537
- assertionLinks: import_zod25.z.array(ScenarioAssertionLinkSchema).optional(),
1602
+ assertionLinks: import_zod26.z.array(ScenarioAssertionLinkSchema).optional(),
1538
1603
  /** Tags for categorisation and filtering */
1539
- tags: import_zod25.z.array(import_zod25.z.string()).optional(),
1604
+ tags: import_zod26.z.array(import_zod26.z.string()).optional(),
1540
1605
  /** Base64-encoded images attached to the trigger prompt (max 3) */
1541
- triggerPromptImages: import_zod25.z.array(TriggerPromptImageSchema).max(3).optional()
1542
- });
1606
+ triggerPromptImages: import_zod26.z.array(TriggerPromptImageSchema).max(3).optional(),
1607
+ /** Optional per-scenario Wix site provisioning instructions. Absent ≡ no site. */
1608
+ siteSetup: SiteSetupConfigSchema.optional()
1609
+ });
1610
+ var SITE_SETUP_EXCLUSIVE_VARIABLES = ["site-id"];
1611
+ function extractVariableNamesFromPrompt(prompt) {
1612
+ const names = /* @__PURE__ */ new Set();
1613
+ for (const match of prompt.matchAll(/\{\{([\w-]+)\}\}/g)) {
1614
+ names.add(match[1]);
1615
+ }
1616
+ return [...names];
1617
+ }
1618
+ function promptUsesSiteSetupExclusiveVariables(prompt) {
1619
+ const names = extractVariableNamesFromPrompt(prompt);
1620
+ return SITE_SETUP_EXCLUSIVE_VARIABLES.some(
1621
+ (exclusive) => names.includes(exclusive)
1622
+ );
1623
+ }
1624
+ function hasActiveSiteSetup(siteSetup) {
1625
+ return siteSetup?.mode === "clone" || siteSetup?.mode === "template";
1626
+ }
1627
+ function validateSiteSetupExclusivity(data, ctx) {
1628
+ if (!hasActiveSiteSetup(data.siteSetup)) return;
1629
+ const prompt = data.triggerPrompt;
1630
+ if (prompt === void 0 || !promptUsesSiteSetupExclusiveVariables(prompt)) {
1631
+ return;
1632
+ }
1633
+ ctx.addIssue({
1634
+ code: import_zod26.z.ZodIssueCode.custom,
1635
+ message: "Site setup and {{site-id}} run variables cannot be used together. Remove {{site-id}} from the trigger prompt or disable site setup.",
1636
+ path: ["triggerPrompt"]
1637
+ });
1638
+ }
1543
1639
  function validateBuildPassedParamsInAssertionLinks(links, ctx) {
1544
1640
  if (!links) return;
1545
1641
  for (let i = 0; i < links.length; i++) {
@@ -1549,7 +1645,7 @@ function validateBuildPassedParamsInAssertionLinks(links, ctx) {
1549
1645
  if (cmd === void 0 || cmd === null) continue;
1550
1646
  if (typeof cmd !== "string") {
1551
1647
  ctx.addIssue({
1552
- code: import_zod25.z.ZodIssueCode.custom,
1648
+ code: import_zod26.z.ZodIssueCode.custom,
1553
1649
  message: "build_passed command must be a string",
1554
1650
  path: ["assertionLinks", i, "params", "command"]
1555
1651
  });
@@ -1557,7 +1653,7 @@ function validateBuildPassedParamsInAssertionLinks(links, ctx) {
1557
1653
  }
1558
1654
  if (!isAllowedBuildCommandString(cmd)) {
1559
1655
  ctx.addIssue({
1560
- code: import_zod25.z.ZodIssueCode.custom,
1656
+ code: import_zod26.z.ZodIssueCode.custom,
1561
1657
  message: "Invalid build_passed command. Allowed: yarn build, npm run build, pnpm run build, pnpm build",
1562
1658
  path: ["assertionLinks", i, "params", "command"]
1563
1659
  });
@@ -1572,27 +1668,56 @@ var TestScenarioCreateBaseSchema = TestScenarioSchema.omit({
1572
1668
  });
1573
1669
  var CreateTestScenarioInputSchema = TestScenarioCreateBaseSchema.superRefine((data, ctx) => {
1574
1670
  validateBuildPassedParamsInAssertionLinks(data.assertionLinks, ctx);
1671
+ validateSiteSetupExclusivity(data, ctx);
1575
1672
  });
1576
1673
  var UpdateTestScenarioInputSchema = TestScenarioCreateBaseSchema.partial().superRefine((data, ctx) => {
1577
1674
  if (data.assertionLinks !== void 0) {
1578
1675
  validateBuildPassedParamsInAssertionLinks(data.assertionLinks, ctx);
1579
1676
  }
1677
+ validateSiteSetupExclusivity(data, ctx);
1580
1678
  });
1581
1679
 
1680
+ // src/scenario/wix-origin-template-ids.ts
1681
+ var WIX_ORIGIN_TEMPLATE_ID_BY_ALIAS = {
1682
+ ecommerce: "e5da13f4-c01e-4b61-a9c7-55dacd961d54",
1683
+ default: "212b41cb-0da6-4401-9c72-7c579e6477a2",
1684
+ blog: "68fc7371-365f-44c6-8467-69d88bfc172e",
1685
+ astrowind: "9e9292c1-1a35-4ba0-8986-d06f2ecb5366",
1686
+ scheduler: "72ade0e3-1871-4c04-ac54-419ca874d9d3",
1687
+ registration: "e5d63bf1-cd06-48eb-ad77-0da9235adcf1",
1688
+ "picasso-studio": "61f05de1-b0ce-4873-b9f5-52241a6fd262",
1689
+ "picasso-ecom": "daa9187d-f010-4eb0-bd49-e658b5a5037a",
1690
+ picasso: "99b9a3c7-82ad-4e1b-9066-e490bb9863af",
1691
+ "ecom-editorless": "738c7c0b-046e-4bf0-87dd-9a06ee5a52c4"
1692
+ };
1693
+ var GUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1694
+ function resolveWixOriginTemplateId(templateId) {
1695
+ if (GUID_PATTERN.test(templateId)) {
1696
+ return templateId;
1697
+ }
1698
+ const originTemplateId = WIX_ORIGIN_TEMPLATE_ID_BY_ALIAS[templateId];
1699
+ if (!originTemplateId) {
1700
+ throw new Error(
1701
+ `Unknown Wix site template alias "${templateId}". Use a GUID or one of: ${Object.keys(WIX_ORIGIN_TEMPLATE_ID_BY_ALIAS).join(", ")}`
1702
+ );
1703
+ }
1704
+ return originTemplateId;
1705
+ }
1706
+
1582
1707
  // src/scenario/batch-import.ts
1583
- var import_zod26 = require("zod");
1708
+ var import_zod27 = require("zod");
1584
1709
  var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1585
- var BatchAssertionLinkSchema = import_zod26.z.union([
1586
- import_zod26.z.string().min(1),
1710
+ var BatchAssertionLinkSchema = import_zod27.z.union([
1711
+ import_zod27.z.string().min(1),
1587
1712
  ScenarioAssertionLinkSchema
1588
1713
  ]);
1589
- var BatchScenarioEntrySchema = import_zod26.z.object({
1590
- name: import_zod26.z.string().min(1, "name: Required"),
1591
- description: import_zod26.z.string().optional().default(""),
1592
- triggerPrompt: import_zod26.z.string().min(10, "triggerPrompt: Must be at least 10 characters"),
1593
- templateId: import_zod26.z.string().nullish(),
1594
- tags: import_zod26.z.array(import_zod26.z.string()).optional(),
1595
- assertionLinks: import_zod26.z.array(BatchAssertionLinkSchema).optional()
1714
+ var BatchScenarioEntrySchema = import_zod27.z.object({
1715
+ name: import_zod27.z.string().min(1, "name: Required"),
1716
+ description: import_zod27.z.string().optional().default(""),
1717
+ triggerPrompt: import_zod27.z.string().min(10, "triggerPrompt: Must be at least 10 characters"),
1718
+ templateId: import_zod27.z.string().nullish(),
1719
+ tags: import_zod27.z.array(import_zod27.z.string()).optional(),
1720
+ assertionLinks: import_zod27.z.array(BatchAssertionLinkSchema).optional()
1596
1721
  }).superRefine((data, ctx) => {
1597
1722
  if (!data.assertionLinks) return;
1598
1723
  const objectLinks = data.assertionLinks.filter(
@@ -1602,8 +1727,8 @@ var BatchScenarioEntrySchema = import_zod26.z.object({
1602
1727
  validateBuildPassedParamsInAssertionLinks(objectLinks, ctx);
1603
1728
  }
1604
1729
  });
1605
- var BatchImportPayloadSchema = import_zod26.z.object({
1606
- scenarios: import_zod26.z.array(BatchScenarioEntrySchema).min(1, "scenarios array must contain at least one entry").max(100, "Maximum 100 scenarios per upload")
1730
+ var BatchImportPayloadSchema = import_zod27.z.object({
1731
+ scenarios: import_zod27.z.array(BatchScenarioEntrySchema).min(1, "scenarios array must contain at least one entry").max(100, "Maximum 100 scenarios per upload")
1607
1732
  });
1608
1733
  var BATCH_IMPORT_LIMITS = {
1609
1734
  MAX_SCENARIOS: 100,
@@ -1625,29 +1750,29 @@ function normalizeBatchAssertionLink(link) {
1625
1750
  }
1626
1751
  return link;
1627
1752
  }
1628
- var BatchResultItemSchema = import_zod26.z.object({
1629
- index: import_zod26.z.number(),
1630
- name: import_zod26.z.string(),
1631
- status: import_zod26.z.enum(["valid", "invalid"]),
1632
- id: import_zod26.z.string().nullable().optional(),
1633
- errors: import_zod26.z.array(import_zod26.z.string()).optional()
1634
- });
1635
- var BatchSummarySchema = import_zod26.z.object({
1636
- total: import_zod26.z.number(),
1637
- valid: import_zod26.z.number(),
1638
- invalid: import_zod26.z.number(),
1639
- created: import_zod26.z.number()
1640
- });
1641
- var BatchImportResponseSchema = import_zod26.z.object({
1753
+ var BatchResultItemSchema = import_zod27.z.object({
1754
+ index: import_zod27.z.number(),
1755
+ name: import_zod27.z.string(),
1756
+ status: import_zod27.z.enum(["valid", "invalid"]),
1757
+ id: import_zod27.z.string().nullable().optional(),
1758
+ errors: import_zod27.z.array(import_zod27.z.string()).optional()
1759
+ });
1760
+ var BatchSummarySchema = import_zod27.z.object({
1761
+ total: import_zod27.z.number(),
1762
+ valid: import_zod27.z.number(),
1763
+ invalid: import_zod27.z.number(),
1764
+ created: import_zod27.z.number()
1765
+ });
1766
+ var BatchImportResponseSchema = import_zod27.z.object({
1642
1767
  summary: BatchSummarySchema,
1643
- results: import_zod26.z.array(BatchResultItemSchema)
1768
+ results: import_zod27.z.array(BatchResultItemSchema)
1644
1769
  });
1645
1770
 
1646
1771
  // src/suite/test-suite.ts
1647
- var import_zod27 = require("zod");
1772
+ var import_zod28 = require("zod");
1648
1773
  var TestSuiteSchema = TenantEntitySchema.extend({
1649
1774
  /** IDs of test scenarios in this suite */
1650
- scenarioIds: import_zod27.z.array(import_zod27.z.string())
1775
+ scenarioIds: import_zod28.z.array(import_zod28.z.string())
1651
1776
  });
1652
1777
  var CreateTestSuiteInputSchema = TestSuiteSchema.omit({
1653
1778
  id: true,
@@ -1658,21 +1783,21 @@ var CreateTestSuiteInputSchema = TestSuiteSchema.omit({
1658
1783
  var UpdateTestSuiteInputSchema = CreateTestSuiteInputSchema.partial();
1659
1784
 
1660
1785
  // src/evaluation/metrics.ts
1661
- var import_zod28 = require("zod");
1662
- var TokenUsageSchema = import_zod28.z.object({
1663
- prompt: import_zod28.z.number(),
1664
- completion: import_zod28.z.number(),
1665
- total: import_zod28.z.number()
1666
- });
1667
- var EvalMetricsSchema = import_zod28.z.object({
1668
- totalAssertions: import_zod28.z.number(),
1669
- passed: import_zod28.z.number(),
1670
- failed: import_zod28.z.number(),
1671
- skipped: import_zod28.z.number(),
1672
- errors: import_zod28.z.number(),
1673
- passRate: import_zod28.z.number(),
1674
- avgDuration: import_zod28.z.number(),
1675
- totalDuration: import_zod28.z.number()
1786
+ var import_zod29 = require("zod");
1787
+ var TokenUsageSchema = import_zod29.z.object({
1788
+ prompt: import_zod29.z.number(),
1789
+ completion: import_zod29.z.number(),
1790
+ total: import_zod29.z.number()
1791
+ });
1792
+ var EvalMetricsSchema = import_zod29.z.object({
1793
+ totalAssertions: import_zod29.z.number(),
1794
+ passed: import_zod29.z.number(),
1795
+ failed: import_zod29.z.number(),
1796
+ skipped: import_zod29.z.number(),
1797
+ errors: import_zod29.z.number(),
1798
+ passRate: import_zod29.z.number(),
1799
+ avgDuration: import_zod29.z.number(),
1800
+ totalDuration: import_zod29.z.number()
1676
1801
  });
1677
1802
  var EvalStatus = /* @__PURE__ */ ((EvalStatus2) => {
1678
1803
  EvalStatus2["PENDING"] = "pending";
@@ -1682,7 +1807,7 @@ var EvalStatus = /* @__PURE__ */ ((EvalStatus2) => {
1682
1807
  EvalStatus2["CANCELLED"] = "cancelled";
1683
1808
  return EvalStatus2;
1684
1809
  })(EvalStatus || {});
1685
- var EvalStatusSchema = import_zod28.z.enum(EvalStatus);
1810
+ var EvalStatusSchema = import_zod29.z.enum(EvalStatus);
1686
1811
  var LLMStepType = /* @__PURE__ */ ((LLMStepType2) => {
1687
1812
  LLMStepType2["COMPLETION"] = "completion";
1688
1813
  LLMStepType2["TOOL_USE"] = "tool_use";
@@ -1690,54 +1815,54 @@ var LLMStepType = /* @__PURE__ */ ((LLMStepType2) => {
1690
1815
  LLMStepType2["THINKING"] = "thinking";
1691
1816
  return LLMStepType2;
1692
1817
  })(LLMStepType || {});
1693
- var LLMTraceStepSchema = import_zod28.z.object({
1694
- id: import_zod28.z.string(),
1695
- stepNumber: import_zod28.z.number(),
1696
- type: import_zod28.z.enum(LLMStepType),
1697
- model: import_zod28.z.string(),
1698
- provider: import_zod28.z.string(),
1699
- startedAt: import_zod28.z.string(),
1700
- durationMs: import_zod28.z.number(),
1818
+ var LLMTraceStepSchema = import_zod29.z.object({
1819
+ id: import_zod29.z.string(),
1820
+ stepNumber: import_zod29.z.number(),
1821
+ type: import_zod29.z.enum(LLMStepType),
1822
+ model: import_zod29.z.string(),
1823
+ provider: import_zod29.z.string(),
1824
+ startedAt: import_zod29.z.string(),
1825
+ durationMs: import_zod29.z.number(),
1701
1826
  tokenUsage: TokenUsageSchema,
1702
- costUsd: import_zod28.z.number(),
1703
- toolName: import_zod28.z.string().optional(),
1704
- toolArguments: import_zod28.z.string().optional(),
1705
- inputPreview: import_zod28.z.string().optional(),
1706
- outputPreview: import_zod28.z.string().optional(),
1707
- success: import_zod28.z.boolean(),
1708
- error: import_zod28.z.string().optional(),
1709
- turnIndex: import_zod28.z.number().optional()
1710
- });
1711
- var LLMBreakdownStatsSchema = import_zod28.z.object({
1712
- count: import_zod28.z.number(),
1713
- durationMs: import_zod28.z.number(),
1714
- tokens: import_zod28.z.number(),
1715
- costUsd: import_zod28.z.number()
1716
- });
1717
- var LLMTraceSummarySchema = import_zod28.z.object({
1718
- totalSteps: import_zod28.z.number(),
1719
- totalTurns: import_zod28.z.number().optional(),
1720
- totalDurationMs: import_zod28.z.number(),
1827
+ costUsd: import_zod29.z.number(),
1828
+ toolName: import_zod29.z.string().optional(),
1829
+ toolArguments: import_zod29.z.string().optional(),
1830
+ inputPreview: import_zod29.z.string().optional(),
1831
+ outputPreview: import_zod29.z.string().optional(),
1832
+ success: import_zod29.z.boolean(),
1833
+ error: import_zod29.z.string().optional(),
1834
+ turnIndex: import_zod29.z.number().optional()
1835
+ });
1836
+ var LLMBreakdownStatsSchema = import_zod29.z.object({
1837
+ count: import_zod29.z.number(),
1838
+ durationMs: import_zod29.z.number(),
1839
+ tokens: import_zod29.z.number(),
1840
+ costUsd: import_zod29.z.number()
1841
+ });
1842
+ var LLMTraceSummarySchema = import_zod29.z.object({
1843
+ totalSteps: import_zod29.z.number(),
1844
+ totalTurns: import_zod29.z.number().optional(),
1845
+ totalDurationMs: import_zod29.z.number(),
1721
1846
  totalTokens: TokenUsageSchema,
1722
- totalCostUsd: import_zod28.z.number(),
1723
- stepTypeBreakdown: import_zod28.z.record(import_zod28.z.string(), LLMBreakdownStatsSchema).optional(),
1724
- modelBreakdown: import_zod28.z.record(import_zod28.z.string(), LLMBreakdownStatsSchema),
1725
- modelsUsed: import_zod28.z.array(import_zod28.z.string())
1726
- });
1727
- var LLMTraceSchema = import_zod28.z.object({
1728
- id: import_zod28.z.string(),
1729
- steps: import_zod28.z.array(LLMTraceStepSchema),
1847
+ totalCostUsd: import_zod29.z.number(),
1848
+ stepTypeBreakdown: import_zod29.z.record(import_zod29.z.string(), LLMBreakdownStatsSchema).optional(),
1849
+ modelBreakdown: import_zod29.z.record(import_zod29.z.string(), LLMBreakdownStatsSchema),
1850
+ modelsUsed: import_zod29.z.array(import_zod29.z.string())
1851
+ });
1852
+ var LLMTraceSchema = import_zod29.z.object({
1853
+ id: import_zod29.z.string(),
1854
+ steps: import_zod29.z.array(LLMTraceStepSchema),
1730
1855
  summary: LLMTraceSummarySchema
1731
1856
  });
1732
1857
 
1733
1858
  // src/evaluation/eval-result.ts
1734
- var import_zod32 = require("zod");
1859
+ var import_zod33 = require("zod");
1735
1860
 
1736
1861
  // src/evaluation/eval-run.ts
1737
- var import_zod30 = require("zod");
1862
+ var import_zod31 = require("zod");
1738
1863
 
1739
1864
  // src/evaluation/live-trace.ts
1740
- var import_zod29 = require("zod");
1865
+ var import_zod30 = require("zod");
1741
1866
  var LiveTraceEventType = /* @__PURE__ */ ((LiveTraceEventType2) => {
1742
1867
  LiveTraceEventType2["THINKING"] = "thinking";
1743
1868
  LiveTraceEventType2["TOOL_USE"] = "tool_use";
@@ -1751,37 +1876,37 @@ var LiveTraceEventType = /* @__PURE__ */ ((LiveTraceEventType2) => {
1751
1876
  LiveTraceEventType2["USER"] = "user";
1752
1877
  return LiveTraceEventType2;
1753
1878
  })(LiveTraceEventType || {});
1754
- var LiveTraceEventSchema = import_zod29.z.object({
1879
+ var LiveTraceEventSchema = import_zod30.z.object({
1755
1880
  /** The evaluation run ID */
1756
- evalRunId: import_zod29.z.string(),
1881
+ evalRunId: import_zod30.z.string(),
1757
1882
  /** The scenario ID being executed */
1758
- scenarioId: import_zod29.z.string(),
1883
+ scenarioId: import_zod30.z.string(),
1759
1884
  /** The scenario name for display */
1760
- scenarioName: import_zod29.z.string(),
1885
+ scenarioName: import_zod30.z.string(),
1761
1886
  /** The target ID (skill, agent, etc.) */
1762
- targetId: import_zod29.z.string(),
1887
+ targetId: import_zod30.z.string(),
1763
1888
  /** The target name for display */
1764
- targetName: import_zod29.z.string(),
1889
+ targetName: import_zod30.z.string(),
1765
1890
  /** Step number in the current scenario execution */
1766
- stepNumber: import_zod29.z.number(),
1891
+ stepNumber: import_zod30.z.number(),
1767
1892
  /** Type of trace event */
1768
- type: import_zod29.z.enum(LiveTraceEventType),
1893
+ type: import_zod30.z.enum(LiveTraceEventType),
1769
1894
  /** Tool name if this is a tool_use event */
1770
- toolName: import_zod29.z.string().optional(),
1895
+ toolName: import_zod30.z.string().optional(),
1771
1896
  /** Tool arguments preview (truncated JSON) */
1772
- toolArgs: import_zod29.z.string().optional(),
1897
+ toolArgs: import_zod30.z.string().optional(),
1773
1898
  /** Output preview (truncated text) */
1774
- outputPreview: import_zod29.z.string().optional(),
1899
+ outputPreview: import_zod30.z.string().optional(),
1775
1900
  /** File path for file operations */
1776
- filePath: import_zod29.z.string().optional(),
1901
+ filePath: import_zod30.z.string().optional(),
1777
1902
  /** Elapsed time in milliseconds for progress events */
1778
- elapsedMs: import_zod29.z.number().optional(),
1903
+ elapsedMs: import_zod30.z.number().optional(),
1779
1904
  /** Thinking/reasoning text from Claude */
1780
- thinking: import_zod29.z.string().optional(),
1905
+ thinking: import_zod30.z.string().optional(),
1781
1906
  /** Timestamp when this event occurred */
1782
- timestamp: import_zod29.z.string(),
1907
+ timestamp: import_zod30.z.string(),
1783
1908
  /** Whether this is the final event for this scenario */
1784
- isComplete: import_zod29.z.boolean()
1909
+ isComplete: import_zod30.z.boolean()
1785
1910
  });
1786
1911
  var TRACE_EVENT_PREFIX = "TRACE_EVENT:";
1787
1912
  function parseTraceEventLine(line) {
@@ -1810,40 +1935,40 @@ var TriggerType = /* @__PURE__ */ ((TriggerType2) => {
1810
1935
  TriggerType2["SCHEDULED"] = "SCHEDULED";
1811
1936
  return TriggerType2;
1812
1937
  })(TriggerType || {});
1813
- var TriggerMetadataSchema = import_zod30.z.object({
1814
- version: import_zod30.z.string().optional(),
1815
- resourceUpdated: import_zod30.z.array(import_zod30.z.string()).optional(),
1816
- scheduleId: import_zod30.z.string().optional()
1938
+ var TriggerMetadataSchema = import_zod31.z.object({
1939
+ version: import_zod31.z.string().optional(),
1940
+ resourceUpdated: import_zod31.z.array(import_zod31.z.string()).optional(),
1941
+ scheduleId: import_zod31.z.string().optional()
1817
1942
  });
1818
- var TriggerSchema = import_zod30.z.object({
1819
- id: import_zod30.z.string(),
1943
+ var TriggerSchema = import_zod31.z.object({
1944
+ id: import_zod31.z.string(),
1820
1945
  metadata: TriggerMetadataSchema.optional(),
1821
- type: import_zod30.z.nativeEnum(TriggerType)
1946
+ type: import_zod31.z.nativeEnum(TriggerType)
1822
1947
  });
1823
- var DiffLineTypeSchema = import_zod30.z.enum(["added", "removed", "unchanged"]);
1824
- var DiffLineSchema = import_zod30.z.object({
1948
+ var DiffLineTypeSchema = import_zod31.z.enum(["added", "removed", "unchanged"]);
1949
+ var DiffLineSchema = import_zod31.z.object({
1825
1950
  type: DiffLineTypeSchema,
1826
- content: import_zod30.z.string(),
1827
- lineNumber: import_zod30.z.number()
1828
- });
1829
- var DiffContentSchema = import_zod30.z.object({
1830
- path: import_zod30.z.string(),
1831
- expected: import_zod30.z.string(),
1832
- actual: import_zod30.z.string(),
1833
- diffLines: import_zod30.z.array(DiffLineSchema),
1834
- renamedFrom: import_zod30.z.string().optional(),
1951
+ content: import_zod31.z.string(),
1952
+ lineNumber: import_zod31.z.number()
1953
+ });
1954
+ var DiffContentSchema = import_zod31.z.object({
1955
+ path: import_zod31.z.string(),
1956
+ expected: import_zod31.z.string(),
1957
+ actual: import_zod31.z.string(),
1958
+ diffLines: import_zod31.z.array(DiffLineSchema),
1959
+ renamedFrom: import_zod31.z.string().optional(),
1835
1960
  /** Whether this file is an infrastructure/config file (e.g. .claude/settings.json, .mcp.json) */
1836
- isInfrastructure: import_zod30.z.boolean().optional()
1961
+ isInfrastructure: import_zod31.z.boolean().optional()
1837
1962
  });
1838
- var CommandExecutionSchema = import_zod30.z.object({
1839
- command: import_zod30.z.string(),
1840
- exitCode: import_zod30.z.number(),
1841
- output: import_zod30.z.string().optional(),
1842
- duration: import_zod30.z.number()
1963
+ var CommandExecutionSchema = import_zod31.z.object({
1964
+ command: import_zod31.z.string(),
1965
+ exitCode: import_zod31.z.number(),
1966
+ output: import_zod31.z.string().optional(),
1967
+ duration: import_zod31.z.number()
1843
1968
  });
1844
- var FileModificationSchema = import_zod30.z.object({
1845
- path: import_zod30.z.string(),
1846
- action: import_zod30.z.enum(["created", "modified", "deleted"])
1969
+ var FileModificationSchema = import_zod31.z.object({
1970
+ path: import_zod31.z.string(),
1971
+ action: import_zod31.z.enum(["created", "modified", "deleted"])
1847
1972
  });
1848
1973
  var TemplateFileStatus = /* @__PURE__ */ ((TemplateFileStatus2) => {
1849
1974
  TemplateFileStatus2["NEW"] = "new";
@@ -1851,58 +1976,58 @@ var TemplateFileStatus = /* @__PURE__ */ ((TemplateFileStatus2) => {
1851
1976
  TemplateFileStatus2["UNCHANGED"] = "unchanged";
1852
1977
  return TemplateFileStatus2;
1853
1978
  })(TemplateFileStatus || {});
1854
- var TemplateFileSchema = import_zod30.z.object({
1979
+ var TemplateFileSchema = import_zod31.z.object({
1855
1980
  /** Relative path within the template */
1856
- path: import_zod30.z.string(),
1981
+ path: import_zod31.z.string(),
1857
1982
  /** Full file content after execution */
1858
- content: import_zod30.z.string(),
1983
+ content: import_zod31.z.string(),
1859
1984
  /** File status (new, modified, unchanged) */
1860
- status: import_zod30.z.enum(["new", "modified", "unchanged"]),
1985
+ status: import_zod31.z.enum(["new", "modified", "unchanged"]),
1861
1986
  /** Whether this file is an infrastructure/config file (e.g. .claude/settings.json, .mcp.json) */
1862
- isInfrastructure: import_zod30.z.boolean().optional()
1987
+ isInfrastructure: import_zod31.z.boolean().optional()
1863
1988
  });
1864
- var ApiCallSchema = import_zod30.z.object({
1865
- endpoint: import_zod30.z.string(),
1866
- tokensUsed: import_zod30.z.number(),
1867
- duration: import_zod30.z.number()
1989
+ var ApiCallSchema = import_zod31.z.object({
1990
+ endpoint: import_zod31.z.string(),
1991
+ tokensUsed: import_zod31.z.number(),
1992
+ duration: import_zod31.z.number()
1868
1993
  });
1869
- var ExecutionTraceSchema = import_zod30.z.object({
1870
- commands: import_zod30.z.array(CommandExecutionSchema),
1871
- filesModified: import_zod30.z.array(FileModificationSchema),
1872
- apiCalls: import_zod30.z.array(ApiCallSchema),
1873
- totalDuration: import_zod30.z.number()
1994
+ var ExecutionTraceSchema = import_zod31.z.object({
1995
+ commands: import_zod31.z.array(CommandExecutionSchema),
1996
+ filesModified: import_zod31.z.array(FileModificationSchema),
1997
+ apiCalls: import_zod31.z.array(ApiCallSchema),
1998
+ totalDuration: import_zod31.z.number()
1874
1999
  });
1875
- var RunAnalysisFindingSchema = import_zod30.z.object({
1876
- category: import_zod30.z.enum([
2000
+ var RunAnalysisFindingSchema = import_zod31.z.object({
2001
+ category: import_zod31.z.enum([
1877
2002
  "failure_pattern",
1878
2003
  "cost_waste",
1879
2004
  "flakiness",
1880
2005
  "inefficiency",
1881
2006
  "positive"
1882
2007
  ]),
1883
- severity: import_zod30.z.enum(["high", "medium", "low"]),
1884
- description: import_zod30.z.string(),
1885
- affectedScenarios: import_zod30.z.array(import_zod30.z.string()),
1886
- recommendation: import_zod30.z.string().optional()
2008
+ severity: import_zod31.z.enum(["high", "medium", "low"]),
2009
+ description: import_zod31.z.string(),
2010
+ affectedScenarios: import_zod31.z.array(import_zod31.z.string()),
2011
+ recommendation: import_zod31.z.string().optional()
1887
2012
  });
1888
- var RunAnalysisSchema = import_zod30.z.object({
1889
- generatedAt: import_zod30.z.string(),
1890
- summary: import_zod30.z.string(),
1891
- findings: import_zod30.z.array(RunAnalysisFindingSchema)
2013
+ var RunAnalysisSchema = import_zod31.z.object({
2014
+ generatedAt: import_zod31.z.string(),
2015
+ summary: import_zod31.z.string(),
2016
+ findings: import_zod31.z.array(RunAnalysisFindingSchema)
1892
2017
  });
1893
2018
  var EvalRunSchema = TenantEntitySchema.extend({
1894
2019
  /** Agent ID for this run */
1895
- agentId: import_zod30.z.string().optional(),
2020
+ agentId: import_zod31.z.string().optional(),
1896
2021
  /** Preset ID that originated this run (optional) */
1897
- presetId: import_zod30.z.string().optional(),
2022
+ presetId: import_zod31.z.string().optional(),
1898
2023
  /** Scenario IDs to run (always present — resolved server-side from tags when needed) */
1899
- scenarioIds: import_zod30.z.array(import_zod30.z.string()),
2024
+ scenarioIds: import_zod31.z.array(import_zod31.z.string()),
1900
2025
  /** Current status */
1901
2026
  status: EvalStatusSchema,
1902
2027
  /** Progress percentage (0-100) */
1903
- progress: import_zod30.z.number(),
2028
+ progress: import_zod31.z.number(),
1904
2029
  /** Results for each scenario/target combination (lazy to break eval-result ↔ eval-run cycle) */
1905
- results: import_zod30.z.array(import_zod30.z.lazy(() => EvalRunResultSchema)),
2030
+ results: import_zod31.z.array(import_zod31.z.lazy(() => EvalRunResultSchema)),
1906
2031
  /** Aggregated metrics across all results */
1907
2032
  aggregateMetrics: EvalMetricsSchema,
1908
2033
  /** Aggregated LLM trace summary */
@@ -1910,49 +2035,49 @@ var EvalRunSchema = TenantEntitySchema.extend({
1910
2035
  /** What triggered this run */
1911
2036
  trigger: TriggerSchema.optional(),
1912
2037
  /** When the run started (set when evaluation is triggered) */
1913
- startedAt: import_zod30.z.string().optional(),
2038
+ startedAt: import_zod31.z.string().optional(),
1914
2039
  /** When the run completed */
1915
- completedAt: import_zod30.z.string().optional(),
2040
+ completedAt: import_zod31.z.string().optional(),
1916
2041
  /** Live trace events captured during execution (for playback on results page) */
1917
- liveTraceEvents: import_zod30.z.array(LiveTraceEventSchema).optional(),
2042
+ liveTraceEvents: import_zod31.z.array(LiveTraceEventSchema).optional(),
1918
2043
  /** Remote job ID for tracking execution in Dev Machines */
1919
- jobId: import_zod30.z.string().optional(),
2044
+ jobId: import_zod31.z.string().optional(),
1920
2045
  /** Remote job status from the Dev Machine API (PENDING, RUNNING, COMPLETED, FAILED, CANCELLED) */
1921
- jobStatus: import_zod30.z.string().optional(),
2046
+ jobStatus: import_zod31.z.string().optional(),
1922
2047
  /** Remote job error message if the job failed */
1923
- jobError: import_zod30.z.string().optional(),
2048
+ jobError: import_zod31.z.string().optional(),
1924
2049
  /** Timestamp of the last job status check */
1925
- jobStatusCheckedAt: import_zod30.z.string().optional(),
2050
+ jobStatusCheckedAt: import_zod31.z.string().optional(),
1926
2051
  /** Unified capability IDs */
1927
- capabilityIds: import_zod30.z.array(import_zod30.z.string()).optional(),
2052
+ capabilityIds: import_zod31.z.array(import_zod31.z.string()).optional(),
1928
2053
  /** Map of capabilityId to capabilityVersionId for version pinning */
1929
- capabilityVersions: import_zod30.z.record(import_zod30.z.string(), import_zod30.z.string()).optional(),
2054
+ capabilityVersions: import_zod31.z.record(import_zod31.z.string(), import_zod31.z.string()).optional(),
1930
2055
  /** Tags used to select scenarios for this run (for traceability) */
1931
- tags: import_zod30.z.array(import_zod30.z.string()).optional(),
2056
+ tags: import_zod31.z.array(import_zod31.z.string()).optional(),
1932
2057
  /** How many times each scenario is executed within this eval run. Default: 1. Max: 20. */
1933
- runsPerScenario: import_zod30.z.number().int().min(1).max(20).optional(),
2058
+ runsPerScenario: import_zod31.z.number().int().min(1).max(20).optional(),
1934
2059
  /** Variable values to substitute in scenario trigger prompts at runtime */
1935
- variables: import_zod30.z.record(import_zod30.z.string(), import_zod30.z.string()).optional(),
2060
+ variables: import_zod31.z.record(import_zod31.z.string(), import_zod31.z.string()).optional(),
1936
2061
  /** Snapshot of agent configuration captured at run creation time */
1937
- agentSnapshot: import_zod30.z.object({
1938
- name: import_zod30.z.string().optional(),
2062
+ agentSnapshot: import_zod31.z.object({
2063
+ name: import_zod31.z.string().optional(),
1939
2064
  agentType: AgentTypeSchema.optional(),
1940
2065
  runCommand: AgentRunCommandSchema.optional(),
1941
- systemPrompt: import_zod30.z.string().nullable().optional(),
2066
+ systemPrompt: import_zod31.z.string().nullable().optional(),
1942
2067
  /** @deprecated retained for backward compat with stored snapshots */
1943
2068
  modelConfig: ModelConfigSchema.optional(),
1944
- config: import_zod30.z.record(import_zod30.z.string(), import_zod30.z.unknown()).optional()
2069
+ config: import_zod31.z.record(import_zod31.z.string(), import_zod31.z.unknown()).optional()
1945
2070
  }).optional(),
1946
2071
  /** UUID linking all runs in a comparison group */
1947
- comparisonGroupId: import_zod30.z.string().optional(),
2072
+ comparisonGroupId: import_zod31.z.string().optional(),
1948
2073
  /** Human-readable label for this variant (e.g., "MCP: Wix Stores") */
1949
- comparisonLabel: import_zod30.z.string().optional(),
2074
+ comparisonLabel: import_zod31.z.string().optional(),
1950
2075
  /** LLM-generated analysis of the completed run */
1951
2076
  runAnalysis: RunAnalysisSchema.optional(),
1952
2077
  /** IDs of folders this run belongs to (read-only, managed via AddRunToFolder / RemoveRunFromFolder) */
1953
- folderIds: import_zod30.z.array(import_zod30.z.string()).optional(),
2078
+ folderIds: import_zod31.z.array(import_zod31.z.string()).optional(),
1954
2079
  /** ID of the schedule that triggered this run, if any (read-only) */
1955
- scheduleId: import_zod30.z.string().optional()
2080
+ scheduleId: import_zod31.z.string().optional()
1956
2081
  });
1957
2082
  var CreateEvalRunInputSchema = EvalRunSchema.omit({
1958
2083
  id: true,
@@ -1968,60 +2093,60 @@ var CreateEvalRunInputSchema = EvalRunSchema.omit({
1968
2093
  agentSnapshot: true
1969
2094
  }).extend({
1970
2095
  /** Optional on input — backend resolves from tags when not provided */
1971
- scenarioIds: import_zod30.z.array(import_zod30.z.string()).optional()
2096
+ scenarioIds: import_zod31.z.array(import_zod31.z.string()).optional()
1972
2097
  }).refine(
1973
2098
  (data) => data.scenarioIds && data.scenarioIds.length > 0 || data.tags && data.tags.length > 0,
1974
2099
  { message: "Either scenarioIds or tags must be provided" }
1975
2100
  );
1976
- var EvaluationProgressSchema = import_zod30.z.object({
1977
- runId: import_zod30.z.string(),
1978
- targetId: import_zod30.z.string(),
1979
- totalScenarios: import_zod30.z.number(),
1980
- completedScenarios: import_zod30.z.number(),
1981
- scenarioProgress: import_zod30.z.array(
1982
- import_zod30.z.object({
1983
- scenarioId: import_zod30.z.string(),
1984
- currentStep: import_zod30.z.string(),
1985
- error: import_zod30.z.string().optional()
2101
+ var EvaluationProgressSchema = import_zod31.z.object({
2102
+ runId: import_zod31.z.string(),
2103
+ targetId: import_zod31.z.string(),
2104
+ totalScenarios: import_zod31.z.number(),
2105
+ completedScenarios: import_zod31.z.number(),
2106
+ scenarioProgress: import_zod31.z.array(
2107
+ import_zod31.z.object({
2108
+ scenarioId: import_zod31.z.string(),
2109
+ currentStep: import_zod31.z.string(),
2110
+ error: import_zod31.z.string().optional()
1986
2111
  })
1987
2112
  ),
1988
- createdAt: import_zod30.z.number()
1989
- });
1990
- var EvaluationLogSchema = import_zod30.z.object({
1991
- runId: import_zod30.z.string(),
1992
- scenarioId: import_zod30.z.string(),
1993
- log: import_zod30.z.object({
1994
- level: import_zod30.z.enum(["info", "error", "debug"]),
1995
- message: import_zod30.z.string().optional(),
1996
- args: import_zod30.z.array(import_zod30.z.any()).optional(),
1997
- error: import_zod30.z.string().optional()
2113
+ createdAt: import_zod31.z.number()
2114
+ });
2115
+ var EvaluationLogSchema = import_zod31.z.object({
2116
+ runId: import_zod31.z.string(),
2117
+ scenarioId: import_zod31.z.string(),
2118
+ log: import_zod31.z.object({
2119
+ level: import_zod31.z.enum(["info", "error", "debug"]),
2120
+ message: import_zod31.z.string().optional(),
2121
+ args: import_zod31.z.array(import_zod31.z.any()).optional(),
2122
+ error: import_zod31.z.string().optional()
1998
2123
  })
1999
2124
  });
2000
2125
  var LLM_TIMEOUT = 12e4;
2001
2126
 
2002
2127
  // src/evaluation/conversation.ts
2003
- var import_zod31 = require("zod");
2004
- var TextBlockSchema = import_zod31.z.object({
2005
- type: import_zod31.z.literal("text"),
2006
- text: import_zod31.z.string()
2007
- });
2008
- var ThinkingBlockSchema = import_zod31.z.object({
2009
- type: import_zod31.z.literal("thinking"),
2010
- thinking: import_zod31.z.string()
2011
- });
2012
- var ToolUseBlockSchema = import_zod31.z.object({
2013
- type: import_zod31.z.literal("tool_use"),
2014
- toolName: import_zod31.z.string(),
2015
- toolId: import_zod31.z.string(),
2016
- input: import_zod31.z.unknown()
2017
- });
2018
- var ToolResultBlockSchema = import_zod31.z.object({
2019
- type: import_zod31.z.literal("tool_result"),
2020
- toolUseId: import_zod31.z.string(),
2021
- content: import_zod31.z.string(),
2022
- isError: import_zod31.z.boolean().optional()
2023
- });
2024
- var ConversationBlockSchema = import_zod31.z.discriminatedUnion("type", [
2128
+ var import_zod32 = require("zod");
2129
+ var TextBlockSchema = import_zod32.z.object({
2130
+ type: import_zod32.z.literal("text"),
2131
+ text: import_zod32.z.string()
2132
+ });
2133
+ var ThinkingBlockSchema = import_zod32.z.object({
2134
+ type: import_zod32.z.literal("thinking"),
2135
+ thinking: import_zod32.z.string()
2136
+ });
2137
+ var ToolUseBlockSchema = import_zod32.z.object({
2138
+ type: import_zod32.z.literal("tool_use"),
2139
+ toolName: import_zod32.z.string(),
2140
+ toolId: import_zod32.z.string(),
2141
+ input: import_zod32.z.unknown()
2142
+ });
2143
+ var ToolResultBlockSchema = import_zod32.z.object({
2144
+ type: import_zod32.z.literal("tool_result"),
2145
+ toolUseId: import_zod32.z.string(),
2146
+ content: import_zod32.z.string(),
2147
+ isError: import_zod32.z.boolean().optional()
2148
+ });
2149
+ var ConversationBlockSchema = import_zod32.z.discriminatedUnion("type", [
2025
2150
  TextBlockSchema,
2026
2151
  ThinkingBlockSchema,
2027
2152
  ToolUseBlockSchema,
@@ -2032,22 +2157,22 @@ var ConversationMessageRoles = [
2032
2157
  "user",
2033
2158
  "system"
2034
2159
  ];
2035
- var ConversationMessageSchema = import_zod31.z.object({
2036
- role: import_zod31.z.enum(ConversationMessageRoles),
2037
- content: import_zod31.z.array(ConversationBlockSchema),
2038
- timestamp: import_zod31.z.string()
2160
+ var ConversationMessageSchema = import_zod32.z.object({
2161
+ role: import_zod32.z.enum(ConversationMessageRoles),
2162
+ content: import_zod32.z.array(ConversationBlockSchema),
2163
+ timestamp: import_zod32.z.string()
2039
2164
  });
2040
- var ScenarioConversationSchema = import_zod31.z.object({
2041
- id: import_zod31.z.string(),
2042
- projectId: import_zod31.z.string(),
2043
- evalRunId: import_zod31.z.string(),
2044
- resultId: import_zod31.z.string(),
2045
- messages: import_zod31.z.array(ConversationMessageSchema),
2046
- createdAt: import_zod31.z.string()
2165
+ var ScenarioConversationSchema = import_zod32.z.object({
2166
+ id: import_zod32.z.string(),
2167
+ projectId: import_zod32.z.string(),
2168
+ evalRunId: import_zod32.z.string(),
2169
+ resultId: import_zod32.z.string(),
2170
+ messages: import_zod32.z.array(ConversationMessageSchema),
2171
+ createdAt: import_zod32.z.string()
2047
2172
  });
2048
- var ConversationResponseSchema = import_zod31.z.object({
2049
- messages: import_zod31.z.array(ConversationMessageSchema),
2050
- isPartial: import_zod31.z.boolean()
2173
+ var ConversationResponseSchema = import_zod32.z.object({
2174
+ messages: import_zod32.z.array(ConversationMessageSchema),
2175
+ isPartial: import_zod32.z.boolean()
2051
2176
  });
2052
2177
 
2053
2178
  // src/evaluation/eval-result.ts
@@ -2058,98 +2183,98 @@ var AssertionResultStatus = /* @__PURE__ */ ((AssertionResultStatus2) => {
2058
2183
  AssertionResultStatus2["ERROR"] = "error";
2059
2184
  return AssertionResultStatus2;
2060
2185
  })(AssertionResultStatus || {});
2061
- var AssertionResultSchema = import_zod32.z.object({
2062
- id: import_zod32.z.string(),
2063
- assertionId: import_zod32.z.string(),
2064
- assertionType: import_zod32.z.string(),
2065
- assertionName: import_zod32.z.string(),
2066
- status: import_zod32.z.enum(AssertionResultStatus),
2067
- message: import_zod32.z.string().optional(),
2068
- expected: import_zod32.z.string().optional(),
2069
- actual: import_zod32.z.string().optional(),
2070
- duration: import_zod32.z.number().optional(),
2071
- details: import_zod32.z.record(import_zod32.z.string(), import_zod32.z.unknown()).optional(),
2072
- llmTraceSteps: import_zod32.z.array(LLMTraceStepSchema).optional()
2073
- });
2074
- var EvalRunResultSchema = import_zod32.z.object({
2075
- id: import_zod32.z.string(),
2076
- targetId: import_zod32.z.string(),
2077
- targetName: import_zod32.z.string().optional(),
2186
+ var AssertionResultSchema = import_zod33.z.object({
2187
+ id: import_zod33.z.string(),
2188
+ assertionId: import_zod33.z.string(),
2189
+ assertionType: import_zod33.z.string(),
2190
+ assertionName: import_zod33.z.string(),
2191
+ status: import_zod33.z.enum(AssertionResultStatus),
2192
+ message: import_zod33.z.string().optional(),
2193
+ expected: import_zod33.z.string().optional(),
2194
+ actual: import_zod33.z.string().optional(),
2195
+ duration: import_zod33.z.number().optional(),
2196
+ details: import_zod33.z.record(import_zod33.z.string(), import_zod33.z.unknown()).optional(),
2197
+ llmTraceSteps: import_zod33.z.array(LLMTraceStepSchema).optional()
2198
+ });
2199
+ var EvalRunResultSchema = import_zod33.z.object({
2200
+ id: import_zod33.z.string(),
2201
+ targetId: import_zod33.z.string(),
2202
+ targetName: import_zod33.z.string().optional(),
2078
2203
  /** SkillVersion ID used for this evaluation (for version tracking) */
2079
- skillVersionId: import_zod32.z.string().optional(),
2204
+ skillVersionId: import_zod33.z.string().optional(),
2080
2205
  /** SkillVersion semver string (e.g., "1.0.0", "1.2.3") for display */
2081
- skillVersion: import_zod32.z.string().optional(),
2082
- scenarioId: import_zod32.z.string(),
2083
- scenarioName: import_zod32.z.string(),
2206
+ skillVersion: import_zod33.z.string().optional(),
2207
+ scenarioId: import_zod33.z.string(),
2208
+ scenarioName: import_zod33.z.string(),
2084
2209
  /** Snapshot of the trigger prompt used during the run (prevents stale display after edits) */
2085
- triggerPrompt: import_zod32.z.string().optional(),
2210
+ triggerPrompt: import_zod33.z.string().optional(),
2086
2211
  modelConfig: ModelConfigSchema.optional(),
2087
- assertionResults: import_zod32.z.array(AssertionResultSchema),
2212
+ assertionResults: import_zod33.z.array(AssertionResultSchema),
2088
2213
  metrics: EvalMetricsSchema.optional(),
2089
- passed: import_zod32.z.number(),
2090
- failed: import_zod32.z.number(),
2091
- passRate: import_zod32.z.number(),
2092
- duration: import_zod32.z.number(),
2093
- outputText: import_zod32.z.string().optional(),
2094
- files: import_zod32.z.array(ExpectedFileSchema).optional(),
2095
- fileDiffs: import_zod32.z.array(DiffContentSchema).optional(),
2214
+ passed: import_zod33.z.number(),
2215
+ failed: import_zod33.z.number(),
2216
+ passRate: import_zod33.z.number(),
2217
+ duration: import_zod33.z.number(),
2218
+ outputText: import_zod33.z.string().optional(),
2219
+ files: import_zod33.z.array(ExpectedFileSchema).optional(),
2220
+ fileDiffs: import_zod33.z.array(DiffContentSchema).optional(),
2096
2221
  /** Full template files after execution with status indicators */
2097
- templateFiles: import_zod32.z.array(TemplateFileSchema).optional(),
2098
- startedAt: import_zod32.z.string().optional(),
2099
- completedAt: import_zod32.z.string().optional(),
2222
+ templateFiles: import_zod33.z.array(TemplateFileSchema).optional(),
2223
+ startedAt: import_zod33.z.string().optional(),
2224
+ completedAt: import_zod33.z.string().optional(),
2100
2225
  llmTrace: LLMTraceSchema.optional(),
2101
2226
  /** Full conversation messages (only present in transit; stripped before DB storage) */
2102
- conversation: import_zod32.z.array(ConversationMessageSchema).optional(),
2227
+ conversation: import_zod33.z.array(ConversationMessageSchema).optional(),
2103
2228
  /** 0-based iteration index when a scenario is run multiple times within a single eval run */
2104
- iterationIndex: import_zod32.z.number().int().min(0).optional()
2105
- });
2106
- var PromptResultSchema = import_zod32.z.object({
2107
- text: import_zod32.z.string(),
2108
- files: import_zod32.z.array(import_zod32.z.unknown()).optional(),
2109
- finishReason: import_zod32.z.string().optional(),
2110
- reasoning: import_zod32.z.string().optional(),
2111
- reasoningDetails: import_zod32.z.unknown().optional(),
2112
- toolCalls: import_zod32.z.array(import_zod32.z.unknown()).optional(),
2113
- toolResults: import_zod32.z.array(import_zod32.z.unknown()).optional(),
2114
- warnings: import_zod32.z.array(import_zod32.z.unknown()).optional(),
2115
- sources: import_zod32.z.array(import_zod32.z.unknown()).optional(),
2116
- steps: import_zod32.z.array(import_zod32.z.unknown()),
2117
- generationTimeMs: import_zod32.z.number(),
2118
- prompt: import_zod32.z.string(),
2119
- systemPrompt: import_zod32.z.string(),
2120
- usage: import_zod32.z.object({
2121
- totalTokens: import_zod32.z.number().optional(),
2122
- totalMicrocentsSpent: import_zod32.z.number().optional()
2229
+ iterationIndex: import_zod33.z.number().int().min(0).optional()
2230
+ });
2231
+ var PromptResultSchema = import_zod33.z.object({
2232
+ text: import_zod33.z.string(),
2233
+ files: import_zod33.z.array(import_zod33.z.unknown()).optional(),
2234
+ finishReason: import_zod33.z.string().optional(),
2235
+ reasoning: import_zod33.z.string().optional(),
2236
+ reasoningDetails: import_zod33.z.unknown().optional(),
2237
+ toolCalls: import_zod33.z.array(import_zod33.z.unknown()).optional(),
2238
+ toolResults: import_zod33.z.array(import_zod33.z.unknown()).optional(),
2239
+ warnings: import_zod33.z.array(import_zod33.z.unknown()).optional(),
2240
+ sources: import_zod33.z.array(import_zod33.z.unknown()).optional(),
2241
+ steps: import_zod33.z.array(import_zod33.z.unknown()),
2242
+ generationTimeMs: import_zod33.z.number(),
2243
+ prompt: import_zod33.z.string(),
2244
+ systemPrompt: import_zod33.z.string(),
2245
+ usage: import_zod33.z.object({
2246
+ totalTokens: import_zod33.z.number().optional(),
2247
+ totalMicrocentsSpent: import_zod33.z.number().optional()
2123
2248
  })
2124
2249
  });
2125
- var EvaluationResultSchema = import_zod32.z.object({
2126
- id: import_zod32.z.string(),
2127
- runId: import_zod32.z.string(),
2128
- timestamp: import_zod32.z.number(),
2250
+ var EvaluationResultSchema = import_zod33.z.object({
2251
+ id: import_zod33.z.string(),
2252
+ runId: import_zod33.z.string(),
2253
+ timestamp: import_zod33.z.number(),
2129
2254
  promptResult: PromptResultSchema,
2130
- testResults: import_zod32.z.array(import_zod32.z.unknown()),
2131
- tags: import_zod32.z.array(import_zod32.z.string()).optional(),
2132
- feedback: import_zod32.z.string().optional(),
2133
- score: import_zod32.z.number(),
2134
- suiteId: import_zod32.z.string().optional()
2135
- });
2136
- var LeanEvaluationResultSchema = import_zod32.z.object({
2137
- id: import_zod32.z.string(),
2138
- runId: import_zod32.z.string(),
2139
- timestamp: import_zod32.z.number(),
2140
- tags: import_zod32.z.array(import_zod32.z.string()).optional(),
2141
- scenarioId: import_zod32.z.string(),
2142
- scenarioVersion: import_zod32.z.number().optional(),
2143
- targetId: import_zod32.z.string(),
2144
- targetVersion: import_zod32.z.number().optional(),
2145
- suiteId: import_zod32.z.string().optional(),
2146
- score: import_zod32.z.number(),
2147
- time: import_zod32.z.number().optional(),
2148
- microcentsSpent: import_zod32.z.number().optional()
2255
+ testResults: import_zod33.z.array(import_zod33.z.unknown()),
2256
+ tags: import_zod33.z.array(import_zod33.z.string()).optional(),
2257
+ feedback: import_zod33.z.string().optional(),
2258
+ score: import_zod33.z.number(),
2259
+ suiteId: import_zod33.z.string().optional()
2260
+ });
2261
+ var LeanEvaluationResultSchema = import_zod33.z.object({
2262
+ id: import_zod33.z.string(),
2263
+ runId: import_zod33.z.string(),
2264
+ timestamp: import_zod33.z.number(),
2265
+ tags: import_zod33.z.array(import_zod33.z.string()).optional(),
2266
+ scenarioId: import_zod33.z.string(),
2267
+ scenarioVersion: import_zod33.z.number().optional(),
2268
+ targetId: import_zod33.z.string(),
2269
+ targetVersion: import_zod33.z.number().optional(),
2270
+ suiteId: import_zod33.z.string().optional(),
2271
+ score: import_zod33.z.number(),
2272
+ time: import_zod33.z.number().optional(),
2273
+ microcentsSpent: import_zod33.z.number().optional()
2149
2274
  });
2150
2275
 
2151
2276
  // src/evaluation/eval-run-folder.ts
2152
- var import_zod33 = require("zod");
2277
+ var import_zod34 = require("zod");
2153
2278
  var EvalRunFolderSchema = TenantEntitySchema.extend({});
2154
2279
  var CreateEvalRunFolderInputSchema = EvalRunFolderSchema.omit({
2155
2280
  id: true,
@@ -2163,26 +2288,26 @@ var UpdateEvalRunFolderInputSchema = EvalRunFolderSchema.omit({
2163
2288
  updatedAt: true,
2164
2289
  deleted: true
2165
2290
  }).partial();
2166
- var EvalRunFolderMembershipSchema = import_zod33.z.object({
2167
- folderId: import_zod33.z.string(),
2168
- evalRunId: import_zod33.z.string(),
2169
- projectId: import_zod33.z.string(),
2170
- createdAt: import_zod33.z.string()
2291
+ var EvalRunFolderMembershipSchema = import_zod34.z.object({
2292
+ folderId: import_zod34.z.string(),
2293
+ evalRunId: import_zod34.z.string(),
2294
+ projectId: import_zod34.z.string(),
2295
+ createdAt: import_zod34.z.string()
2171
2296
  });
2172
2297
 
2173
2298
  // src/project/project.ts
2174
- var import_zod34 = require("zod");
2299
+ var import_zod35 = require("zod");
2175
2300
  var ProjectSchema = BaseEntitySchema.extend({
2176
- appId: import_zod34.z.string().optional().describe("The ID of the app in Dev Center"),
2177
- scenarioTags: import_zod34.z.array(import_zod34.z.string()).optional().describe("Project-level tag vocabulary for scenarios"),
2301
+ appId: import_zod35.z.string().optional().describe("The ID of the app in Dev Center"),
2302
+ scenarioTags: import_zod35.z.array(import_zod35.z.string()).optional().describe("Project-level tag vocabulary for scenarios"),
2178
2303
  /** Per-project Wix auth token (write-only — never returned in GET responses). null = clear. */
2179
- wixAuthToken: import_zod34.z.string().nullable().optional().describe("Wix auth token for CLI/MCP authentication (encrypted at rest)"),
2304
+ wixAuthToken: import_zod35.z.string().nullable().optional().describe("Wix auth token for CLI/MCP authentication (encrypted at rest)"),
2180
2305
  /** Per-project Base44 auth file content (write-only — never returned in GET responses). null = clear. */
2181
- base44AuthFile: import_zod34.z.string().nullable().optional().describe("Base64-encoded Base44 auth file content (encrypted at rest)"),
2306
+ base44AuthFile: import_zod35.z.string().nullable().optional().describe("Base64-encoded Base44 auth file content (encrypted at rest)"),
2182
2307
  /** Resolved at runtime from the encrypted Wix auth token */
2183
- wixAuthEmail: import_zod34.z.string().optional().describe("Email associated with the Wix auth token (resolved at runtime)"),
2308
+ wixAuthEmail: import_zod35.z.string().optional().describe("Email associated with the Wix auth token (resolved at runtime)"),
2184
2309
  /** Resolved at runtime from the encrypted Base44 auth file */
2185
- base44AuthEmail: import_zod34.z.string().optional().describe("Email from the Base44 auth file (resolved at runtime)")
2310
+ base44AuthEmail: import_zod35.z.string().optional().describe("Email from the Base44 auth file (resolved at runtime)")
2186
2311
  });
2187
2312
  var CreateProjectInputSchema = ProjectSchema.omit({
2188
2313
  id: true,
@@ -2192,34 +2317,34 @@ var CreateProjectInputSchema = ProjectSchema.omit({
2192
2317
  wixAuthEmail: true,
2193
2318
  base44AuthEmail: true
2194
2319
  }).extend({
2195
- appId: import_zod34.z.string().describe(
2320
+ appId: import_zod35.z.string().describe(
2196
2321
  "Required: The ID of the app in Dev Center for credential scoping"
2197
2322
  )
2198
2323
  });
2199
2324
  var UpdateProjectInputSchema = CreateProjectInputSchema.partial();
2200
2325
 
2201
2326
  // src/template/template.ts
2202
- var import_zod35 = require("zod");
2203
- var SourceFileSchema = import_zod35.z.object({
2204
- path: import_zod35.z.string().min(1),
2205
- content: import_zod35.z.string()
2327
+ var import_zod36 = require("zod");
2328
+ var SourceFileSchema = import_zod36.z.object({
2329
+ path: import_zod36.z.string().min(1),
2330
+ content: import_zod36.z.string()
2206
2331
  });
2207
- var ExtraFileSchema = import_zod35.z.object({
2208
- path: import_zod35.z.string().min(1),
2209
- content: import_zod35.z.string().optional(),
2332
+ var ExtraFileSchema = import_zod36.z.object({
2333
+ path: import_zod36.z.string().min(1),
2334
+ content: import_zod36.z.string().optional(),
2210
2335
  gitSource: GitHubSourceSchema.optional()
2211
2336
  }).refine((ef) => ef.content !== void 0 || ef.gitSource !== void 0, {
2212
2337
  message: "ExtraFile must have either content or gitSource"
2213
2338
  });
2214
- var TemplateFileEntrySchema = import_zod35.z.object({
2215
- path: import_zod35.z.string().min(1),
2216
- content: import_zod35.z.string(),
2217
- extra: import_zod35.z.boolean()
2339
+ var TemplateFileEntrySchema = import_zod36.z.object({
2340
+ path: import_zod36.z.string().min(1),
2341
+ content: import_zod36.z.string(),
2342
+ extra: import_zod36.z.boolean()
2218
2343
  });
2219
2344
  var TemplateSchema = TenantEntitySchema.extend({
2220
2345
  source: GitHubSourceSchema.optional(),
2221
- sourceFiles: import_zod35.z.array(SourceFileSchema).optional(),
2222
- extraFiles: import_zod35.z.array(ExtraFileSchema).optional()
2346
+ sourceFiles: import_zod36.z.array(SourceFileSchema).optional(),
2347
+ extraFiles: import_zod36.z.array(ExtraFileSchema).optional()
2223
2348
  });
2224
2349
  var singleSourceKind = (t) => !(t.source && t.sourceFiles?.length);
2225
2350
  var singleSourceKindError = {
@@ -2239,66 +2364,66 @@ var UpdateTemplateInputSchema = TemplateSchema.omit({
2239
2364
  }).partial().refine(singleSourceKind, singleSourceKindError);
2240
2365
 
2241
2366
  // src/agent/agent-config.ts
2242
- var import_zod36 = require("zod");
2243
- var BaseAgentConfigSchema = import_zod36.z.object({
2367
+ var import_zod37 = require("zod");
2368
+ var BaseAgentConfigSchema = import_zod37.z.object({
2244
2369
  /** Model ID (Claude or OpenAI). */
2245
2370
  model: AnyModelSchema.optional(),
2246
2371
  /** Sampling temperature (0–1). */
2247
- temperature: import_zod36.z.number().min(0).max(1).optional(),
2372
+ temperature: import_zod37.z.number().min(0).max(1).optional(),
2248
2373
  /** Max output tokens per turn. */
2249
- maxTokens: import_zod36.z.number().int().min(1).optional(),
2374
+ maxTokens: import_zod37.z.number().int().min(1).optional(),
2250
2375
  /** Number of agentic turns. 0 = unlimited. */
2251
- maxTurns: import_zod36.z.number().int().min(0).optional(),
2376
+ maxTurns: import_zod37.z.number().int().min(0).optional(),
2252
2377
  /** Execution timeout in milliseconds. Overrides the default maxTurns-based calculation. */
2253
- maxDurationMs: import_zod36.z.number().int().min(0).optional()
2378
+ maxDurationMs: import_zod37.z.number().int().min(0).optional()
2254
2379
  });
2255
- var EffortLevelSchema = import_zod36.z.enum(["low", "medium", "high", "max"]);
2380
+ var EffortLevelSchema = import_zod37.z.enum(["low", "medium", "high", "max"]);
2256
2381
  var ClaudeCodeConfigSchema = BaseAgentConfigSchema.extend({
2257
2382
  /** Extended thinking token budget. */
2258
- maxThinkingTokens: import_zod36.z.number().int().min(0).optional(),
2383
+ maxThinkingTokens: import_zod37.z.number().int().min(0).optional(),
2259
2384
  /** Override the default allowedTools list passed to the SDK. */
2260
- allowedTools: import_zod36.z.array(import_zod36.z.string()).optional(),
2385
+ allowedTools: import_zod37.z.array(import_zod37.z.string()).optional(),
2261
2386
  /** Tools to remove from the model's context entirely. */
2262
- disallowedTools: import_zod36.z.array(import_zod36.z.string()).optional(),
2387
+ disallowedTools: import_zod37.z.array(import_zod37.z.string()).optional(),
2263
2388
  /** Controls thinking depth: low, medium, high, max. */
2264
2389
  effort: EffortLevelSchema.optional(),
2265
2390
  /** Maximum USD spend per run. Stops execution when reached. */
2266
- maxBudgetUsd: import_zod36.z.number().min(0).optional()
2391
+ maxBudgetUsd: import_zod37.z.number().min(0).optional()
2267
2392
  });
2268
- var PermissionValueSchema = import_zod36.z.enum(["allow", "deny"]);
2269
- var OpenCodePermissionSchema = import_zod36.z.record(
2270
- import_zod36.z.string(),
2271
- import_zod36.z.union([PermissionValueSchema, import_zod36.z.record(import_zod36.z.string(), PermissionValueSchema)])
2393
+ var PermissionValueSchema = import_zod37.z.enum(["allow", "deny"]);
2394
+ var OpenCodePermissionSchema = import_zod37.z.record(
2395
+ import_zod37.z.string(),
2396
+ import_zod37.z.union([PermissionValueSchema, import_zod37.z.record(import_zod37.z.string(), PermissionValueSchema)])
2272
2397
  );
2273
- var ThinkingVariantSchema = import_zod36.z.enum(["high", "low", "none"]);
2398
+ var ThinkingVariantSchema = import_zod37.z.enum(["high", "low", "none"]);
2274
2399
  var OpenCodeConfigSchema = BaseAgentConfigSchema.extend({
2275
2400
  /** Permission overrides (defaults: allow-all). */
2276
2401
  permission: OpenCodePermissionSchema.optional(),
2277
2402
  /** Maps to `--variant` CLI flag. 'none' omits --thinking entirely. Default: 'high'. */
2278
2403
  thinkingVariant: ThinkingVariantSchema.optional(),
2279
2404
  /** Nucleus sampling (0–1). Alternative to temperature. */
2280
- topP: import_zod36.z.number().min(0).max(1).optional()
2405
+ topP: import_zod37.z.number().min(0).max(1).optional()
2281
2406
  }).omit({ maxTokens: true });
2282
- var ReasoningEffortSchema = import_zod36.z.enum(["low", "medium", "high"]);
2407
+ var ReasoningEffortSchema = import_zod37.z.enum(["low", "medium", "high"]);
2283
2408
  var SimpleAgentConfigSchema = BaseAgentConfigSchema.extend({
2284
2409
  /** Anthropic thinking budget in tokens. Default: 10 000. */
2285
- thinkingBudgetTokens: import_zod36.z.number().int().min(0).optional(),
2410
+ thinkingBudgetTokens: import_zod37.z.number().int().min(0).optional(),
2286
2411
  /** Nucleus sampling (0–1). Alternative to temperature. */
2287
- topP: import_zod36.z.number().min(0).max(1).optional(),
2412
+ topP: import_zod37.z.number().min(0).max(1).optional(),
2288
2413
  /** Integer seed for deterministic/reproducible results (if model supports it). */
2289
- seed: import_zod36.z.number().int().optional(),
2414
+ seed: import_zod37.z.number().int().optional(),
2290
2415
  /** Stop sequences — model stops when generating any of these strings. */
2291
- stopSequences: import_zod36.z.array(import_zod36.z.string()).optional(),
2416
+ stopSequences: import_zod37.z.array(import_zod37.z.string()).optional(),
2292
2417
  /** OpenAI reasoning effort level. Default: 'high'. */
2293
2418
  reasoningEffort: ReasoningEffortSchema.optional(),
2294
2419
  /** Frequency penalty (−2 to 2). Reduces repetition of same tokens. */
2295
- frequencyPenalty: import_zod36.z.number().min(-2).max(2).optional(),
2420
+ frequencyPenalty: import_zod37.z.number().min(-2).max(2).optional(),
2296
2421
  /** Presence penalty (−2 to 2). Encourages topic diversity. */
2297
- presencePenalty: import_zod36.z.number().min(-2).max(2).optional()
2422
+ presencePenalty: import_zod37.z.number().min(-2).max(2).optional()
2298
2423
  });
2299
2424
 
2300
2425
  // src/schedule/eval-schedule.ts
2301
- var import_zod37 = require("zod");
2426
+ var import_zod38 = require("zod");
2302
2427
  var FrequencyType = /* @__PURE__ */ ((FrequencyType2) => {
2303
2428
  FrequencyType2["DAILY"] = "daily";
2304
2429
  FrequencyType2["WEEKDAY"] = "weekday";
@@ -2308,31 +2433,31 @@ var FrequencyType = /* @__PURE__ */ ((FrequencyType2) => {
2308
2433
  })(FrequencyType || {});
2309
2434
  var EvalScheduleSchema = TenantEntitySchema.extend({
2310
2435
  /** Whether the schedule is active */
2311
- enabled: import_zod37.z.boolean(),
2436
+ enabled: import_zod38.z.boolean(),
2312
2437
  /** Test suite to run */
2313
- suiteId: import_zod37.z.string(),
2438
+ suiteId: import_zod38.z.string(),
2314
2439
  /** Preset that provides agent + entities for this schedule */
2315
- presetId: import_zod37.z.string(),
2440
+ presetId: import_zod38.z.string(),
2316
2441
  /** How often to run */
2317
- frequencyType: import_zod37.z.nativeEnum(FrequencyType),
2442
+ frequencyType: import_zod38.z.nativeEnum(FrequencyType),
2318
2443
  /** Time of day in 24h format (HH:MM), hours 00-23, minutes 00-59 */
2319
- timeOfDay: import_zod37.z.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/),
2444
+ timeOfDay: import_zod38.z.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/),
2320
2445
  /** Day of week (0=Sun, 6=Sat) for weekly schedules */
2321
- dayOfWeek: import_zod37.z.number().min(0).max(6).optional(),
2446
+ dayOfWeek: import_zod38.z.number().min(0).max(6).optional(),
2322
2447
  /** Day of month (1-31) for monthly schedules */
2323
- dayOfMonth: import_zod37.z.number().min(1).max(31).optional(),
2448
+ dayOfMonth: import_zod38.z.number().min(1).max(31).optional(),
2324
2449
  /** IANA timezone (e.g., 'America/New_York') */
2325
- timezone: import_zod37.z.string(),
2450
+ timezone: import_zod38.z.string(),
2326
2451
  /** ID of the last eval run created by this schedule */
2327
- lastRunId: import_zod37.z.string().optional(),
2452
+ lastRunId: import_zod38.z.string().optional(),
2328
2453
  /** Denormalized status of the last run */
2329
- lastRunStatus: import_zod37.z.string().optional(),
2454
+ lastRunStatus: import_zod38.z.string().optional(),
2330
2455
  /** ISO timestamp of the last run */
2331
- lastRunAt: import_zod37.z.string().optional(),
2456
+ lastRunAt: import_zod38.z.string().optional(),
2332
2457
  /** Next scheduled run time in UTC (pre-computed for efficient querying, set by backend) */
2333
- nextRunAt: import_zod37.z.string().optional(),
2458
+ nextRunAt: import_zod38.z.string().optional(),
2334
2459
  /** Per-scenario variable values forwarded to runs triggered by this schedule (scenarioId → varName → value) */
2335
- variables: import_zod37.z.record(import_zod37.z.string(), import_zod37.z.record(import_zod37.z.string(), import_zod37.z.string())).optional()
2460
+ variables: import_zod38.z.record(import_zod38.z.string(), import_zod38.z.record(import_zod38.z.string(), import_zod38.z.string())).optional()
2336
2461
  });
2337
2462
  function isValidTimezone(tz) {
2338
2463
  try {
@@ -2345,14 +2470,14 @@ function isValidTimezone(tz) {
2345
2470
  function validateScheduleFields(data, ctx, options) {
2346
2471
  if (data.frequencyType === "weekly" /* WEEKLY */ && data.dayOfWeek == null) {
2347
2472
  ctx.addIssue({
2348
- code: import_zod37.z.ZodIssueCode.custom,
2473
+ code: import_zod38.z.ZodIssueCode.custom,
2349
2474
  message: "dayOfWeek is required for weekly schedules",
2350
2475
  path: ["dayOfWeek"]
2351
2476
  });
2352
2477
  }
2353
2478
  if (data.frequencyType === "monthly" /* MONTHLY */ && data.dayOfMonth == null) {
2354
2479
  ctx.addIssue({
2355
- code: import_zod37.z.ZodIssueCode.custom,
2480
+ code: import_zod38.z.ZodIssueCode.custom,
2356
2481
  message: "dayOfMonth is required for monthly schedules",
2357
2482
  path: ["dayOfMonth"]
2358
2483
  });
@@ -2360,7 +2485,7 @@ function validateScheduleFields(data, ctx, options) {
2360
2485
  const shouldValidateTz = options.partial ? data.timezone !== void 0 : true;
2361
2486
  if (shouldValidateTz && !isValidTimezone(data.timezone)) {
2362
2487
  ctx.addIssue({
2363
- code: import_zod37.z.ZodIssueCode.custom,
2488
+ code: import_zod38.z.ZodIssueCode.custom,
2364
2489
  message: "Invalid IANA timezone",
2365
2490
  path: ["timezone"]
2366
2491
  });
@@ -2524,6 +2649,7 @@ var UpdateEvalScheduleInputSchema = BaseCreateScheduleSchema.partial().superRefi
2524
2649
  PresetSchema,
2525
2650
  ProjectSchema,
2526
2651
  PromptResultSchema,
2652
+ ProvisionedSiteSchema,
2527
2653
  RUN_COMMAND_LABELS,
2528
2654
  ReasoningEffortSchema,
2529
2655
  RuleSchema,
@@ -2531,13 +2657,20 @@ var UpdateEvalScheduleInputSchema = BaseCreateScheduleSchema.partial().superRefi
2531
2657
  RunAnalysisFindingSchema,
2532
2658
  RunAnalysisSchema,
2533
2659
  SEMVER_REGEX,
2660
+ SITE_SETUP_EXCLUSIVE_VARIABLES,
2534
2661
  SKILL_FOLDER_NAME_REGEX,
2535
2662
  SYSTEM_ASSERTIONS,
2536
2663
  SYSTEM_ASSERTION_IDS,
2537
2664
  ScenarioAssertionLinkSchema,
2538
2665
  ScenarioConversationSchema,
2539
2666
  SimpleAgentConfigSchema,
2667
+ SiteBootstrapHttpMethodSchema,
2668
+ SiteBootstrapResultSchema,
2669
+ SiteBootstrapSchema,
2670
+ SiteBootstrapStepResultSchema,
2671
+ SiteBootstrapStepSchema,
2540
2672
  SiteConfigTestSchema,
2673
+ SiteSetupConfigSchema,
2541
2674
  SkillFileSchema,
2542
2675
  SkillMetadataSchema,
2543
2676
  SkillSchema,
@@ -2591,6 +2724,7 @@ var UpdateEvalScheduleInputSchema = BaseCreateScheduleSchema.partial().superRefi
2591
2724
  UpdateTestScenarioInputSchema,
2592
2725
  UpdateTestSuiteInputSchema,
2593
2726
  VitestTestSchema,
2727
+ WixSiteSummarySchema,
2594
2728
  capabilityToMcp,
2595
2729
  capabilityToRule,
2596
2730
  capabilityToSkill,
@@ -2598,6 +2732,7 @@ var UpdateEvalScheduleInputSchema = BaseCreateScheduleSchema.partial().superRefi
2598
2732
  capabilityToSubAgent,
2599
2733
  capabilityVersionToSkillVersion,
2600
2734
  classifyAssertionRef,
2735
+ extractVariableNamesFromPrompt,
2601
2736
  formatTraceEventLine,
2602
2737
  getSystemAssertion,
2603
2738
  getSystemAssertions,
@@ -2610,7 +2745,10 @@ var UpdateEvalScheduleInputSchema = BaseCreateScheduleSchema.partial().superRefi
2610
2745
  normalizeModelId,
2611
2746
  parseBuildCommandToArgv,
2612
2747
  parseTraceEventLine,
2748
+ promptUsesSiteSetupExclusiveVariables,
2749
+ resolveWixOriginTemplateId,
2613
2750
  validateAssertionConfig,
2614
- validateBuildPassedParamsInAssertionLinks
2751
+ validateBuildPassedParamsInAssertionLinks,
2752
+ validateSiteSetupExclusivity
2615
2753
  });
2616
2754
  //# sourceMappingURL=index.js.map