@agentv/core 4.6.1 → 4.7.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/dist/{chunk-ZK4GG7PR.js → chunk-75RFVESM.js} +215 -127
- package/dist/chunk-75RFVESM.js.map +1 -0
- package/dist/evaluation/validation/index.cjs +110 -95
- package/dist/evaluation/validation/index.cjs.map +1 -1
- package/dist/evaluation/validation/index.js +30 -72
- package/dist/evaluation/validation/index.js.map +1 -1
- package/dist/index.cjs +1271 -465
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +288 -74
- package/dist/index.d.ts +288 -74
- package/dist/index.js +1024 -311
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-ZK4GG7PR.js.map +0 -1
|
@@ -299,7 +299,7 @@ var KNOWN_TEST_FIELDS = /* @__PURE__ */ new Set([
|
|
|
299
299
|
"workspace",
|
|
300
300
|
"metadata",
|
|
301
301
|
"conversation_id",
|
|
302
|
-
"
|
|
302
|
+
"suite",
|
|
303
303
|
"note"
|
|
304
304
|
]);
|
|
305
305
|
var NAME_PATTERN = /^[a-z0-9-]+$/;
|
|
@@ -867,15 +867,13 @@ var import_node_path4 = __toESM(require("path"), 1);
|
|
|
867
867
|
var import_zod = require("zod");
|
|
868
868
|
var CliHealthcheckHttpInputSchema = import_zod.z.object({
|
|
869
869
|
url: import_zod.z.string().min(1, "healthcheck URL is required"),
|
|
870
|
-
timeout_seconds: import_zod.z.number().positive().optional()
|
|
871
|
-
|
|
872
|
-
});
|
|
870
|
+
timeout_seconds: import_zod.z.number().positive().optional()
|
|
871
|
+
}).passthrough();
|
|
873
872
|
var CliHealthcheckCommandInputSchema = import_zod.z.object({
|
|
874
873
|
command: import_zod.z.string().min(1, "healthcheck command is required"),
|
|
875
874
|
cwd: import_zod.z.string().optional(),
|
|
876
|
-
timeout_seconds: import_zod.z.number().positive().optional()
|
|
877
|
-
|
|
878
|
-
});
|
|
875
|
+
timeout_seconds: import_zod.z.number().positive().optional()
|
|
876
|
+
}).passthrough();
|
|
879
877
|
var CliHealthcheckInputSchema = import_zod.z.union([
|
|
880
878
|
CliHealthcheckHttpInputSchema,
|
|
881
879
|
CliHealthcheckCommandInputSchema
|
|
@@ -887,36 +885,28 @@ var CliTargetInputSchema = import_zod.z.object({
|
|
|
887
885
|
command: import_zod.z.string(),
|
|
888
886
|
// Files format - optional
|
|
889
887
|
files_format: import_zod.z.string().optional(),
|
|
890
|
-
filesFormat: import_zod.z.string().optional(),
|
|
891
888
|
attachments_format: import_zod.z.string().optional(),
|
|
892
|
-
attachmentsFormat: import_zod.z.string().optional(),
|
|
893
889
|
// Working directory - optional
|
|
894
890
|
cwd: import_zod.z.string().optional(),
|
|
895
891
|
// Workspace template directory - optional (mutually exclusive with cwd)
|
|
896
892
|
workspace_template: import_zod.z.string().optional(),
|
|
897
|
-
workspaceTemplate: import_zod.z.string().optional(),
|
|
898
893
|
// Timeout in seconds - optional
|
|
899
894
|
timeout_seconds: import_zod.z.number().positive().optional(),
|
|
900
|
-
timeoutSeconds: import_zod.z.number().positive().optional(),
|
|
901
895
|
// Healthcheck configuration - optional
|
|
902
896
|
healthcheck: CliHealthcheckInputSchema.optional(),
|
|
903
897
|
// Verbose mode - optional
|
|
904
898
|
verbose: import_zod.z.boolean().optional(),
|
|
905
899
|
cli_verbose: import_zod.z.boolean().optional(),
|
|
906
|
-
cliVerbose: import_zod.z.boolean().optional(),
|
|
907
900
|
// Keep temp files - optional
|
|
908
901
|
keep_temp_files: import_zod.z.boolean().optional(),
|
|
909
|
-
keepTempFiles: import_zod.z.boolean().optional(),
|
|
910
902
|
keep_output_files: import_zod.z.boolean().optional(),
|
|
911
|
-
keepOutputFiles: import_zod.z.boolean().optional(),
|
|
912
903
|
// Common target fields
|
|
913
904
|
grader_target: import_zod.z.string().optional(),
|
|
914
905
|
judge_target: import_zod.z.string().optional(),
|
|
915
906
|
// backward compat
|
|
916
907
|
workers: import_zod.z.number().int().min(1).optional(),
|
|
917
|
-
provider_batching: import_zod.z.boolean().optional()
|
|
918
|
-
|
|
919
|
-
});
|
|
908
|
+
provider_batching: import_zod.z.boolean().optional()
|
|
909
|
+
}).passthrough();
|
|
920
910
|
var CliHealthcheckHttpSchema = import_zod.z.object({
|
|
921
911
|
url: import_zod.z.string().min(1),
|
|
922
912
|
timeoutMs: import_zod.z.number().positive().optional()
|
|
@@ -948,14 +938,83 @@ var CLI_PLACEHOLDERS = /* @__PURE__ */ new Set([
|
|
|
948
938
|
"FILES",
|
|
949
939
|
"OUTPUT_FILE"
|
|
950
940
|
]);
|
|
941
|
+
var DEPRECATED_TARGET_CAMEL_CASE_FIELDS = /* @__PURE__ */ new Map([
|
|
942
|
+
["providerBatching", "provider_batching"],
|
|
943
|
+
["subagentModeAllowed", "subagent_mode_allowed"],
|
|
944
|
+
["fallbackTargets", "fallback_targets"],
|
|
945
|
+
["resourceName", "endpoint"],
|
|
946
|
+
["baseUrl", "base_url"],
|
|
947
|
+
["apiKey", "api_key"],
|
|
948
|
+
["deploymentName", "model"],
|
|
949
|
+
["thinkingBudget", "thinking_budget"],
|
|
950
|
+
["maxTokens", "max_output_tokens"],
|
|
951
|
+
["apiFormat", "api_format"],
|
|
952
|
+
["timeoutSeconds", "timeout_seconds"],
|
|
953
|
+
["logDir", "log_dir"],
|
|
954
|
+
["logDirectory", "log_directory"],
|
|
955
|
+
["logFormat", "log_format"],
|
|
956
|
+
["logOutputFormat", "log_output_format"],
|
|
957
|
+
["systemPrompt", "system_prompt"],
|
|
958
|
+
["maxTurns", "max_turns"],
|
|
959
|
+
["maxBudgetUsd", "max_budget_usd"],
|
|
960
|
+
["dryRun", "dry_run"],
|
|
961
|
+
["subagentRoot", "subagent_root"],
|
|
962
|
+
["filesFormat", "files_format"],
|
|
963
|
+
["attachmentsFormat", "attachments_format"],
|
|
964
|
+
["cliUrl", "cli_url"],
|
|
965
|
+
["cliPath", "cli_path"],
|
|
966
|
+
["githubToken", "github_token"],
|
|
967
|
+
["sessionDir", "session_dir"],
|
|
968
|
+
["sessionId", "session_id"],
|
|
969
|
+
["sessionStateDir", "session_state_dir"],
|
|
970
|
+
["maxRetries", "max_retries"],
|
|
971
|
+
["retryInitialDelayMs", "retry_initial_delay_ms"],
|
|
972
|
+
["retryMaxDelayMs", "retry_max_delay_ms"],
|
|
973
|
+
["retryBackoffFactor", "retry_backoff_factor"],
|
|
974
|
+
["retryStatusCodes", "retry_status_codes"]
|
|
975
|
+
]);
|
|
976
|
+
var DEPRECATED_HEALTHCHECK_CAMEL_CASE_FIELDS = /* @__PURE__ */ new Map([
|
|
977
|
+
["timeoutSeconds", "timeout_seconds"]
|
|
978
|
+
]);
|
|
979
|
+
function collectDeprecatedCamelCaseWarnings(value, location, aliases) {
|
|
980
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
981
|
+
return [];
|
|
982
|
+
}
|
|
983
|
+
const warnings = [];
|
|
984
|
+
for (const [camelCaseField, snakeCaseField] of aliases) {
|
|
985
|
+
if (Object.prototype.hasOwnProperty.call(value, camelCaseField)) {
|
|
986
|
+
warnings.push({
|
|
987
|
+
location: `${location}.${camelCaseField}`,
|
|
988
|
+
message: `camelCase field '${camelCaseField}' is no longer supported in targets.yaml. Use '${snakeCaseField}' instead.`
|
|
989
|
+
});
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
return warnings;
|
|
993
|
+
}
|
|
994
|
+
function findDeprecatedCamelCaseTargetWarnings(target, location) {
|
|
995
|
+
const warnings = collectDeprecatedCamelCaseWarnings(
|
|
996
|
+
target,
|
|
997
|
+
location,
|
|
998
|
+
DEPRECATED_TARGET_CAMEL_CASE_FIELDS
|
|
999
|
+
);
|
|
1000
|
+
if (typeof target !== "object" || target === null || Array.isArray(target)) {
|
|
1001
|
+
return warnings;
|
|
1002
|
+
}
|
|
1003
|
+
const healthcheck = target.healthcheck;
|
|
1004
|
+
warnings.push(
|
|
1005
|
+
...collectDeprecatedCamelCaseWarnings(
|
|
1006
|
+
healthcheck,
|
|
1007
|
+
`${location}.healthcheck`,
|
|
1008
|
+
DEPRECATED_HEALTHCHECK_CAMEL_CASE_FIELDS
|
|
1009
|
+
)
|
|
1010
|
+
);
|
|
1011
|
+
return warnings;
|
|
1012
|
+
}
|
|
951
1013
|
var COMMON_TARGET_SETTINGS = [
|
|
952
1014
|
"use_target",
|
|
953
1015
|
"provider_batching",
|
|
954
|
-
"providerBatching",
|
|
955
1016
|
"subagent_mode_allowed",
|
|
956
|
-
"
|
|
957
|
-
"fallback_targets",
|
|
958
|
-
"fallbackTargets"
|
|
1017
|
+
"fallback_targets"
|
|
959
1018
|
];
|
|
960
1019
|
var BASE_TARGET_SCHEMA = import_zod.z.object({
|
|
961
1020
|
name: import_zod.z.string().min(1, "target name is required"),
|
|
@@ -966,10 +1025,8 @@ var BASE_TARGET_SCHEMA = import_zod.z.object({
|
|
|
966
1025
|
// backward compat
|
|
967
1026
|
workers: import_zod.z.number().int().min(1).optional(),
|
|
968
1027
|
workspace_template: import_zod.z.string().optional(),
|
|
969
|
-
workspaceTemplate: import_zod.z.string().optional(),
|
|
970
1028
|
subagent_mode_allowed: import_zod.z.boolean().optional(),
|
|
971
|
-
fallback_targets: import_zod.z.array(import_zod.z.string().min(1)).optional()
|
|
972
|
-
fallbackTargets: import_zod.z.array(import_zod.z.string().min(1)).optional()
|
|
1029
|
+
fallback_targets: import_zod.z.array(import_zod.z.string().min(1)).optional()
|
|
973
1030
|
}).passthrough();
|
|
974
1031
|
|
|
975
1032
|
// src/evaluation/providers/types.ts
|
|
@@ -992,7 +1049,8 @@ var KNOWN_PROVIDERS = [
|
|
|
992
1049
|
"mock",
|
|
993
1050
|
"vscode",
|
|
994
1051
|
"vscode-insiders",
|
|
995
|
-
"agentv"
|
|
1052
|
+
"agentv",
|
|
1053
|
+
"transcript"
|
|
996
1054
|
];
|
|
997
1055
|
var PROVIDER_ALIASES = [
|
|
998
1056
|
"azure-openai",
|
|
@@ -1024,87 +1082,68 @@ function isObject2(value) {
|
|
|
1024
1082
|
var COMMON_SETTINGS = new Set(COMMON_TARGET_SETTINGS);
|
|
1025
1083
|
var RETRY_SETTINGS = /* @__PURE__ */ new Set([
|
|
1026
1084
|
"max_retries",
|
|
1027
|
-
"maxRetries",
|
|
1028
1085
|
"retry_initial_delay_ms",
|
|
1029
|
-
"retryInitialDelayMs",
|
|
1030
1086
|
"retry_max_delay_ms",
|
|
1031
|
-
"retryMaxDelayMs",
|
|
1032
1087
|
"retry_backoff_factor",
|
|
1033
|
-
"
|
|
1034
|
-
"retry_status_codes",
|
|
1035
|
-
"retryStatusCodes"
|
|
1088
|
+
"retry_status_codes"
|
|
1036
1089
|
]);
|
|
1037
1090
|
var AZURE_SETTINGS = /* @__PURE__ */ new Set([
|
|
1038
1091
|
...COMMON_SETTINGS,
|
|
1039
1092
|
...RETRY_SETTINGS,
|
|
1040
1093
|
"endpoint",
|
|
1041
1094
|
"resource",
|
|
1042
|
-
"resourceName",
|
|
1043
1095
|
"api_key",
|
|
1044
|
-
"apiKey",
|
|
1045
1096
|
"deployment",
|
|
1046
|
-
"deploymentName",
|
|
1047
1097
|
"model",
|
|
1048
1098
|
"version",
|
|
1049
1099
|
"api_version",
|
|
1100
|
+
"api_format",
|
|
1050
1101
|
"temperature",
|
|
1051
|
-
"max_output_tokens"
|
|
1052
|
-
"maxTokens"
|
|
1102
|
+
"max_output_tokens"
|
|
1053
1103
|
]);
|
|
1054
1104
|
var OPENAI_SETTINGS = /* @__PURE__ */ new Set([
|
|
1055
1105
|
...COMMON_SETTINGS,
|
|
1056
1106
|
...RETRY_SETTINGS,
|
|
1057
1107
|
"endpoint",
|
|
1058
1108
|
"base_url",
|
|
1059
|
-
"baseUrl",
|
|
1060
1109
|
"api_key",
|
|
1061
|
-
"apiKey",
|
|
1062
1110
|
"model",
|
|
1063
1111
|
"deployment",
|
|
1064
1112
|
"variant",
|
|
1065
1113
|
"api_format",
|
|
1066
|
-
"apiFormat",
|
|
1067
1114
|
"temperature",
|
|
1068
|
-
"max_output_tokens"
|
|
1069
|
-
"maxTokens"
|
|
1115
|
+
"max_output_tokens"
|
|
1070
1116
|
]);
|
|
1071
1117
|
var OPENROUTER_SETTINGS = /* @__PURE__ */ new Set([
|
|
1072
1118
|
...COMMON_SETTINGS,
|
|
1073
1119
|
...RETRY_SETTINGS,
|
|
1074
1120
|
"api_key",
|
|
1075
|
-
"apiKey",
|
|
1076
1121
|
"model",
|
|
1077
1122
|
"deployment",
|
|
1078
1123
|
"variant",
|
|
1079
1124
|
"temperature",
|
|
1080
|
-
"max_output_tokens"
|
|
1081
|
-
"maxTokens"
|
|
1125
|
+
"max_output_tokens"
|
|
1082
1126
|
]);
|
|
1083
1127
|
var ANTHROPIC_SETTINGS = /* @__PURE__ */ new Set([
|
|
1084
1128
|
...COMMON_SETTINGS,
|
|
1085
1129
|
...RETRY_SETTINGS,
|
|
1086
1130
|
"api_key",
|
|
1087
|
-
"apiKey",
|
|
1088
1131
|
"model",
|
|
1089
1132
|
"deployment",
|
|
1090
1133
|
"variant",
|
|
1091
1134
|
"temperature",
|
|
1092
1135
|
"max_output_tokens",
|
|
1093
|
-
"
|
|
1094
|
-
"thinking_budget",
|
|
1095
|
-
"thinkingBudget"
|
|
1136
|
+
"thinking_budget"
|
|
1096
1137
|
]);
|
|
1097
1138
|
var GEMINI_SETTINGS = /* @__PURE__ */ new Set([
|
|
1098
1139
|
...COMMON_SETTINGS,
|
|
1099
1140
|
...RETRY_SETTINGS,
|
|
1100
1141
|
"api_key",
|
|
1101
|
-
"apiKey",
|
|
1102
1142
|
"model",
|
|
1103
1143
|
"deployment",
|
|
1104
1144
|
"variant",
|
|
1105
1145
|
"temperature",
|
|
1106
|
-
"max_output_tokens"
|
|
1107
|
-
"maxTokens"
|
|
1146
|
+
"max_output_tokens"
|
|
1108
1147
|
]);
|
|
1109
1148
|
var CODEX_SETTINGS = /* @__PURE__ */ new Set([
|
|
1110
1149
|
...COMMON_SETTINGS,
|
|
@@ -1116,40 +1155,25 @@ var CODEX_SETTINGS = /* @__PURE__ */ new Set([
|
|
|
1116
1155
|
"arguments",
|
|
1117
1156
|
"cwd",
|
|
1118
1157
|
"timeout_seconds",
|
|
1119
|
-
"timeoutSeconds",
|
|
1120
1158
|
"log_dir",
|
|
1121
|
-
"logDir",
|
|
1122
1159
|
"log_directory",
|
|
1123
|
-
"logDirectory",
|
|
1124
1160
|
"log_format",
|
|
1125
|
-
"logFormat",
|
|
1126
1161
|
"log_output_format",
|
|
1127
|
-
"logOutputFormat",
|
|
1128
1162
|
"system_prompt",
|
|
1129
|
-
"
|
|
1130
|
-
"workspace_template",
|
|
1131
|
-
"workspaceTemplate"
|
|
1163
|
+
"workspace_template"
|
|
1132
1164
|
]);
|
|
1133
1165
|
var COPILOT_SDK_SETTINGS = /* @__PURE__ */ new Set([
|
|
1134
1166
|
...COMMON_SETTINGS,
|
|
1135
1167
|
"cli_url",
|
|
1136
|
-
"cliUrl",
|
|
1137
1168
|
"cli_path",
|
|
1138
|
-
"cliPath",
|
|
1139
1169
|
"github_token",
|
|
1140
|
-
"githubToken",
|
|
1141
1170
|
"model",
|
|
1142
1171
|
"cwd",
|
|
1143
1172
|
"timeout_seconds",
|
|
1144
|
-
"timeoutSeconds",
|
|
1145
1173
|
"log_dir",
|
|
1146
|
-
"logDir",
|
|
1147
1174
|
"log_format",
|
|
1148
|
-
"logFormat",
|
|
1149
1175
|
"system_prompt",
|
|
1150
|
-
"
|
|
1151
|
-
"workspace_template",
|
|
1152
|
-
"workspaceTemplate"
|
|
1176
|
+
"workspace_template"
|
|
1153
1177
|
]);
|
|
1154
1178
|
var COPILOT_CLI_SETTINGS = /* @__PURE__ */ new Set([
|
|
1155
1179
|
...COMMON_SETTINGS,
|
|
@@ -1161,35 +1185,23 @@ var COPILOT_CLI_SETTINGS = /* @__PURE__ */ new Set([
|
|
|
1161
1185
|
"model",
|
|
1162
1186
|
"cwd",
|
|
1163
1187
|
"timeout_seconds",
|
|
1164
|
-
"timeoutSeconds",
|
|
1165
1188
|
"log_dir",
|
|
1166
|
-
"logDir",
|
|
1167
1189
|
"log_format",
|
|
1168
|
-
"logFormat",
|
|
1169
1190
|
"system_prompt",
|
|
1170
|
-
"
|
|
1171
|
-
"workspace_template",
|
|
1172
|
-
"workspaceTemplate"
|
|
1191
|
+
"workspace_template"
|
|
1173
1192
|
]);
|
|
1174
1193
|
var VSCODE_SETTINGS = /* @__PURE__ */ new Set([
|
|
1175
1194
|
...COMMON_SETTINGS,
|
|
1176
1195
|
"executable",
|
|
1177
1196
|
"workspace_template",
|
|
1178
|
-
"workspaceTemplate",
|
|
1179
1197
|
"wait",
|
|
1180
1198
|
"dry_run",
|
|
1181
|
-
"dryRun",
|
|
1182
1199
|
"subagent_root",
|
|
1183
|
-
"
|
|
1184
|
-
"timeout_seconds",
|
|
1185
|
-
"timeoutSeconds"
|
|
1200
|
+
"timeout_seconds"
|
|
1186
1201
|
]);
|
|
1187
1202
|
var MOCK_SETTINGS = /* @__PURE__ */ new Set([
|
|
1188
1203
|
...COMMON_SETTINGS,
|
|
1189
1204
|
"response",
|
|
1190
|
-
"delayMs",
|
|
1191
|
-
"delayMinMs",
|
|
1192
|
-
"delayMaxMs",
|
|
1193
1205
|
"trace"
|
|
1194
1206
|
// For testing tool-trajectory evaluator
|
|
1195
1207
|
]);
|
|
@@ -1198,23 +1210,14 @@ var CLAUDE_SETTINGS = /* @__PURE__ */ new Set([
|
|
|
1198
1210
|
"model",
|
|
1199
1211
|
"cwd",
|
|
1200
1212
|
"timeout_seconds",
|
|
1201
|
-
"timeoutSeconds",
|
|
1202
1213
|
"log_dir",
|
|
1203
|
-
"logDir",
|
|
1204
1214
|
"log_directory",
|
|
1205
|
-
"logDirectory",
|
|
1206
1215
|
"log_format",
|
|
1207
|
-
"logFormat",
|
|
1208
1216
|
"log_output_format",
|
|
1209
|
-
"logOutputFormat",
|
|
1210
1217
|
"system_prompt",
|
|
1211
|
-
"systemPrompt",
|
|
1212
1218
|
"workspace_template",
|
|
1213
|
-
"workspaceTemplate",
|
|
1214
1219
|
"max_turns",
|
|
1215
|
-
"
|
|
1216
|
-
"max_budget_usd",
|
|
1217
|
-
"maxBudgetUsd"
|
|
1220
|
+
"max_budget_usd"
|
|
1218
1221
|
]);
|
|
1219
1222
|
function getKnownSettings(provider) {
|
|
1220
1223
|
const normalizedProvider = provider.toLowerCase();
|
|
@@ -1339,15 +1342,15 @@ async function validateTargetsFile(filePath) {
|
|
|
1339
1342
|
});
|
|
1340
1343
|
return;
|
|
1341
1344
|
}
|
|
1342
|
-
const timeoutSeconds = healthcheck.timeout_seconds
|
|
1345
|
+
const timeoutSeconds = healthcheck.timeout_seconds;
|
|
1343
1346
|
if (timeoutSeconds !== void 0) {
|
|
1344
1347
|
const numericTimeout = Number(timeoutSeconds);
|
|
1345
1348
|
if (!Number.isFinite(numericTimeout) || numericTimeout <= 0) {
|
|
1346
1349
|
errors2.push({
|
|
1347
1350
|
severity: "error",
|
|
1348
1351
|
filePath: absolutePath2,
|
|
1349
|
-
location: `${location}.
|
|
1350
|
-
message: "healthcheck.
|
|
1352
|
+
location: `${location}.timeout_seconds`,
|
|
1353
|
+
message: "healthcheck.timeout_seconds must be a positive number when provided"
|
|
1351
1354
|
});
|
|
1352
1355
|
}
|
|
1353
1356
|
}
|
|
@@ -1446,6 +1449,18 @@ async function validateTargetsFile(filePath) {
|
|
|
1446
1449
|
});
|
|
1447
1450
|
continue;
|
|
1448
1451
|
}
|
|
1452
|
+
for (const warning of findDeprecatedCamelCaseTargetWarnings(target, location)) {
|
|
1453
|
+
const fieldMatch = warning.message.match(/field '([^']+)'/);
|
|
1454
|
+
const replacementMatch = warning.message.match(/Use '([^']+)' instead/);
|
|
1455
|
+
const field = fieldMatch?.[1] ?? "unknown";
|
|
1456
|
+
const replacement = replacementMatch?.[1] ?? "snake_case";
|
|
1457
|
+
errors.push({
|
|
1458
|
+
severity: "error",
|
|
1459
|
+
filePath: absolutePath,
|
|
1460
|
+
location: warning.location,
|
|
1461
|
+
message: `camelCase field '${field}' is no longer supported in targets.yaml. Use '${replacement}' instead.`
|
|
1462
|
+
});
|
|
1463
|
+
}
|
|
1449
1464
|
const name = target.name;
|
|
1450
1465
|
if (typeof name !== "string" || name.trim().length === 0) {
|
|
1451
1466
|
errors.push({
|