agentv 4.7.0 → 4.9.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.
@@ -27,7 +27,7 @@ import {
27
27
  validateFileReferences,
28
28
  validateTargetsFile,
29
29
  writeArtifactsFromResults
30
- } from "./chunk-AX4CQS45.js";
30
+ } from "./chunk-6HQCMEGO.js";
31
31
  import {
32
32
  DEFAULT_CATEGORY,
33
33
  DEFAULT_THRESHOLD,
@@ -55,12 +55,13 @@ import {
55
55
  readTargetDefinitions,
56
56
  readTranscriptFile,
57
57
  removeProject,
58
+ scanRepoDeps,
58
59
  toCamelCaseDeep,
59
60
  toSnakeCaseDeep as toSnakeCaseDeep2,
60
61
  toTranscriptJsonLine,
61
62
  transpileEvalYamlFile,
62
63
  trimBaselineResult
63
- } from "./chunk-I6UE4LHZ.js";
64
+ } from "./chunk-7K5LYK5B.js";
64
65
  import {
65
66
  __commonJS,
66
67
  __require,
@@ -3740,18 +3741,23 @@ var evalRunCommand = command({
3740
3741
  out: option({
3741
3742
  type: optional(string),
3742
3743
  long: "out",
3743
- description: "Write results to the specified path"
3744
+ description: "[Deprecated: use --output] Write results to the specified path"
3744
3745
  }),
3745
- output: multioption({
3746
- type: array(string),
3746
+ output: option({
3747
+ type: optional(string),
3747
3748
  long: "output",
3748
3749
  short: "o",
3749
- description: "Output file path(s). Format inferred from extension: .jsonl, .json, .xml, .yaml, .html"
3750
+ description: "Artifact directory for run output (index.jsonl, benchmark.json, per-test grading/timing)"
3750
3751
  }),
3751
3752
  outputFormat: option({
3752
3753
  type: optional(string),
3753
3754
  long: "output-format",
3754
- description: "Output format: 'jsonl', 'yaml', or 'html' (default: jsonl)"
3755
+ description: "[Deprecated] Output format: 'jsonl', 'yaml', or 'html' (default: jsonl)"
3756
+ }),
3757
+ export: multioption({
3758
+ type: array(string),
3759
+ long: "export",
3760
+ description: "Write additional output file(s). Format inferred from extension: .jsonl, .json, .xml, .yaml, .html (repeatable)"
3755
3761
  }),
3756
3762
  dryRun: flag({
3757
3763
  long: "dry-run",
@@ -3841,12 +3847,12 @@ var evalRunCommand = command({
3841
3847
  benchmarkJson: option({
3842
3848
  type: optional(string),
3843
3849
  long: "benchmark-json",
3844
- description: "Write Agent Skills benchmark.json to the specified path"
3850
+ description: "[Deprecated: benchmark.json is included in artifact dir] Write Agent Skills benchmark.json to the specified path"
3845
3851
  }),
3846
3852
  artifacts: option({
3847
3853
  type: optional(string),
3848
3854
  long: "artifacts",
3849
- description: "Write companion artifacts (index.jsonl, <test>/grading.json, <test>/timing.json, timing.json, benchmark.json) to the specified directory"
3855
+ description: "[Deprecated: use --output] Write companion artifacts to the specified directory"
3850
3856
  }),
3851
3857
  graderTarget: option({
3852
3858
  type: optional(string),
@@ -3886,7 +3892,7 @@ var evalRunCommand = command({
3886
3892
  },
3887
3893
  handler: async (args) => {
3888
3894
  if (args.evalPaths.length === 0 && process.stdin.isTTY) {
3889
- const { launchInteractiveWizard } = await import("./interactive-UBEMNJZG.js");
3895
+ const { launchInteractiveWizard } = await import("./interactive-UDDXUKAU.js");
3890
3896
  await launchInteractiveWizard();
3891
3897
  return;
3892
3898
  }
@@ -3899,6 +3905,7 @@ var evalRunCommand = command({
3899
3905
  out: args.out,
3900
3906
  output: args.output,
3901
3907
  outputFormat: args.outputFormat,
3908
+ export: args.export,
3902
3909
  dryRun: args.dryRun,
3903
3910
  dryRunDelay: args.dryRunDelay,
3904
3911
  dryRunDelayMin: args.dryRunDelayMin,
@@ -9142,16 +9149,56 @@ var cleanCommand = command({
9142
9149
  }
9143
9150
  });
9144
9151
 
9152
+ // src/commands/workspace/deps.ts
9153
+ import path19 from "node:path";
9154
+ var depsCommand = command({
9155
+ name: "deps",
9156
+ description: "Scan eval files and list git repo dependencies needed by workspaces",
9157
+ args: {
9158
+ evalPaths: restPositionals({
9159
+ type: string,
9160
+ displayName: "eval-paths",
9161
+ description: "Path(s) or glob(s) to evaluation .yaml file(s)"
9162
+ }),
9163
+ usedBy: flag({
9164
+ long: "used-by",
9165
+ description: "Include list of eval files that reference each repo"
9166
+ })
9167
+ },
9168
+ handler: async ({ evalPaths, usedBy }) => {
9169
+ if (evalPaths.length === 0) {
9170
+ console.error("Usage: agentv workspace deps <eval-paths...>");
9171
+ process.exit(1);
9172
+ }
9173
+ const cwd = process.cwd();
9174
+ const resolvedPaths = await resolveEvalPaths(evalPaths, cwd);
9175
+ const result = await scanRepoDeps(resolvedPaths);
9176
+ for (const err2 of result.errors) {
9177
+ console.error(`warning: ${path19.relative(cwd, err2.file)}: ${err2.message}`);
9178
+ }
9179
+ const output = {
9180
+ repos: result.repos.map((r) => ({
9181
+ url: r.url,
9182
+ ...r.ref !== void 0 && { ref: r.ref },
9183
+ ...r.clone !== void 0 && { clone: r.clone },
9184
+ ...r.checkout !== void 0 && { checkout: r.checkout },
9185
+ ...usedBy && { used_by: r.usedBy.map((p) => path19.relative(cwd, p)) }
9186
+ }))
9187
+ };
9188
+ console.log(JSON.stringify(output, null, 2));
9189
+ }
9190
+ });
9191
+
9145
9192
  // src/commands/workspace/list.ts
9146
9193
  import { existsSync as existsSync11 } from "node:fs";
9147
9194
  import { readFile as readFile7, readdir as readdir6, stat as stat2 } from "node:fs/promises";
9148
- import path19 from "node:path";
9195
+ import path20 from "node:path";
9149
9196
  async function getDirectorySize(dirPath) {
9150
9197
  let totalSize = 0;
9151
9198
  try {
9152
9199
  const entries2 = await readdir6(dirPath, { withFileTypes: true });
9153
9200
  for (const entry of entries2) {
9154
- const fullPath = path19.join(dirPath, entry.name);
9201
+ const fullPath = path20.join(dirPath, entry.name);
9155
9202
  if (entry.isDirectory()) {
9156
9203
  totalSize += await getDirectorySize(fullPath);
9157
9204
  } else {
@@ -9186,11 +9233,11 @@ var listCommand = command({
9186
9233
  return;
9187
9234
  }
9188
9235
  for (const dir of poolDirs) {
9189
- const poolDir = path19.join(poolRoot, dir.name);
9236
+ const poolDir = path20.join(poolRoot, dir.name);
9190
9237
  const fingerprint = dir.name;
9191
9238
  const poolEntries = await readdir6(poolDir, { withFileTypes: true });
9192
9239
  const slots = poolEntries.filter((e) => e.isDirectory() && e.name.startsWith("slot-"));
9193
- const metadataPath = path19.join(poolDir, "metadata.json");
9240
+ const metadataPath = path20.join(poolDir, "metadata.json");
9194
9241
  let metadata = null;
9195
9242
  try {
9196
9243
  const raw = await readFile7(metadataPath, "utf-8");
@@ -9224,7 +9271,8 @@ var workspaceCommand = subcommands({
9224
9271
  description: "Manage workspace pool",
9225
9272
  cmds: {
9226
9273
  list: listCommand,
9227
- clean: cleanCommand
9274
+ clean: cleanCommand,
9275
+ deps: depsCommand
9228
9276
  }
9229
9277
  });
9230
9278
 
@@ -9236,8 +9284,8 @@ var CHECK_INTERVAL_MS = 24 * 60 * 60 * 1e3;
9236
9284
  var AGENTV_DIR = getAgentvHome();
9237
9285
  var CACHE_FILE = "version-check.json";
9238
9286
  var NPM_REGISTRY_URL = "https://registry.npmjs.org/agentv/latest";
9239
- async function getCachedUpdateInfo(path20) {
9240
- const filePath = path20 ?? join5(AGENTV_DIR, CACHE_FILE);
9287
+ async function getCachedUpdateInfo(path21) {
9288
+ const filePath = path21 ?? join5(AGENTV_DIR, CACHE_FILE);
9241
9289
  try {
9242
9290
  const raw = await readFile8(filePath, "utf-8");
9243
9291
  const data = JSON.parse(raw);
@@ -9398,4 +9446,4 @@ export {
9398
9446
  preprocessArgv,
9399
9447
  runCli
9400
9448
  };
9401
- //# sourceMappingURL=chunk-VEAOMKNS.js.map
9449
+ //# sourceMappingURL=chunk-MTXZDEVR.js.map