agentv 2.18.3 → 2.18.4

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.bun/didyoumean@1.2.2/node_modules/didyoumean/didYouMean-1.2.1.js","../../../node_modules/.bun/ms@2.1.3/node_modules/ms/index.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/common.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/browser.js","../../../node_modules/.bun/supports-color@10.2.2/node_modules/supports-color/index.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/node.js","../../../node_modules/.bun/debug@4.4.3/node_modules/debug/src/index.js","../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js","../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js","../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js","../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/subcommands.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/Result.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/effects.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/newparser/findOption.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/from.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/type.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/types.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/flag.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/circuitbreaker.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/positional.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/binary.ts","../../../node_modules/.bun/ansi-regex@6.2.2/node_modules/ansi-regex/index.js","../../../node_modules/.bun/strip-ansi@7.1.2/node_modules/strip-ansi/index.js","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/utils.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/command.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/option.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/errorBox.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/newparser/parser.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/newparser/tokenizer.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/runner.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/restPositionals.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/multioption.ts","../../../node_modules/.bun/cmd-ts@0.14.3/node_modules/cmd-ts/src/oneOf.ts","../src/commands/compare/index.ts","../src/commands/convert/index.ts","../src/commands/create/commands.ts","../src/commands/create/index.ts","../src/commands/eval/commands/prompt/input.ts","../src/commands/eval/commands/prompt/judge.ts","../src/commands/eval/commands/prompt/overview.ts","../src/commands/eval/commands/prompt/index.ts","../src/commands/eval/commands/run.ts","../src/commands/generate/rubrics.ts","../src/commands/generate/index.ts","../src/commands/init/index.ts","../src/templates/index.ts","../src/commands/self/index.ts","../src/commands/trace/utils.ts","../src/commands/trace/list.ts","../src/commands/trace/score.ts","../src/commands/trace/show.ts","../src/commands/trace/stats.ts","../src/commands/trace/index.ts","../src/commands/trim/index.ts","../src/commands/validate/format-output.ts","../src/commands/validate/validate-files.ts","../src/commands/validate/index.ts","../src/commands/workspace/clean.ts","../src/commands/workspace/list.ts","../src/commands/workspace/index.ts","../src/update-check.ts","../src/index.ts"],"sourcesContent":["/*\n\ndidYouMean.js - A simple JavaScript matching engine\n===================================================\n\n[Available on GitHub](https://github.com/dcporter/didyoumean.js).\n\nA super-simple, highly optimized JS library for matching human-quality input to a list of potential\nmatches. You can use it to suggest a misspelled command-line utility option to a user, or to offer\nlinks to nearby valid URLs on your 404 page. (The examples below are taken from a personal project,\nmy [HTML5 business card](http://dcporter.aws.af.cm/me), which uses didYouMean.js to suggest correct\nURLs from misspelled ones, such as [dcporter.aws.af.cm/me/instagarm](http://dcporter.aws.af.cm/me/instagarm).)\nUses the [Levenshtein distance algorithm](https://en.wikipedia.org/wiki/Levenshtein_distance).\n\ndidYouMean.js works in the browser as well as in node.js. To install it for use in node:\n\n```\nnpm install didyoumean\n```\n\n\nExamples\n--------\n\nMatching against a list of strings:\n```\nvar input = 'insargrm'\nvar list = ['facebook', 'twitter', 'instagram', 'linkedin'];\nconsole.log(didYouMean(input, list));\n> 'instagram'\n// The method matches 'insargrm' to 'instagram'.\n\ninput = 'google plus';\nconsole.log(didYouMean(input, list));\n> null\n// The method was unable to find 'google plus' in the list of options.\n```\n\nMatching against a list of objects:\n```\nvar input = 'insargrm';\nvar list = [ { id: 'facebook' }, { id: 'twitter' }, { id: 'instagram' }, { id: 'linkedin' } ];\nvar key = 'id';\nconsole.log(didYouMean(input, list, key));\n> 'instagram'\n// The method returns the matching value.\n\ndidYouMean.returnWinningObject = true;\nconsole.log(didYouMean(input, list, key));\n> { id: 'instagram' }\n// The method returns the matching object.\n```\n\n\ndidYouMean(str, list, [key])\n----------------------------\n\n- str: The string input to match.\n- list: An array of strings or objects to match against.\n- key (OPTIONAL): If your list array contains objects, you must specify the key which contains the string\n to match against.\n\nReturns: the closest matching string, or null if no strings exceed the threshold.\n\n\nOptions\n-------\n\nOptions are set on the didYouMean function object. You may change them at any time.\n\n### threshold\n\n By default, the method will only return strings whose edit distance is less than 40% (0.4x) of their length.\n For example, if a ten-letter string is five edits away from its nearest match, the method will return null.\n\n You can control this by setting the \"threshold\" value on the didYouMean function. For example, to set the\n edit distance threshold to 50% of the input string's length:\n\n ```\n didYouMean.threshold = 0.5;\n ```\n\n To return the nearest match no matter the threshold, set this value to null.\n\n### thresholdAbsolute\n\n This option behaves the same as threshold, but instead takes an integer number of edit steps. For example,\n if thresholdAbsolute is set to 20 (the default), then the method will only return strings whose edit distance\n is less than 20. Both options apply.\n\n### caseSensitive\n\n By default, the method will perform case-insensitive comparisons. If you wish to force case sensitivity, set\n the \"caseSensitive\" value to true:\n\n ```\n didYouMean.caseSensitive = true;\n ```\n\n### nullResultValue\n\n By default, the method will return null if there is no sufficiently close match. You can change this value here.\n\n### returnWinningObject\n\n By default, the method will return the winning string value (if any). If your list contains objects rather\n than strings, you may set returnWinningObject to true.\n \n ```\n didYouMean.returnWinningObject = true;\n ```\n \n This option has no effect on lists of strings.\n\n### returnFirstMatch\n \n By default, the method will search all values and return the closest match. If you're simply looking for a \"good-\n enough\" match, you can set your thresholds appropriately and set returnFirstMatch to true to substantially speed\n things up.\n\n\nLicense\n-------\n\ndidYouMean copyright (c) 2013-2014 Dave Porter.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License\n[here](http://www.apache.org/licenses/LICENSE-2.0).\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n*/\n(function() {\n \"use strict\";\n\n // The didYouMean method.\n function didYouMean(str, list, key) {\n if (!str) return null;\n\n // If we're running a case-insensitive search, smallify str.\n if (!didYouMean.caseSensitive) { str = str.toLowerCase(); }\n\n // Calculate the initial value (the threshold) if present.\n var thresholdRelative = didYouMean.threshold === null ? null : didYouMean.threshold * str.length,\n thresholdAbsolute = didYouMean.thresholdAbsolute,\n winningVal;\n if (thresholdRelative !== null && thresholdAbsolute !== null) winningVal = Math.min(thresholdRelative, thresholdAbsolute);\n else if (thresholdRelative !== null) winningVal = thresholdRelative;\n else if (thresholdAbsolute !== null) winningVal = thresholdAbsolute;\n else winningVal = null;\n\n // Get the edit distance to each option. If the closest one is less than 40% (by default) of str's length,\n // then return it.\n var winner, candidate, testCandidate, val,\n i, len = list.length;\n for (i = 0; i < len; i++) {\n // Get item.\n candidate = list[i];\n // If there's a key, get the candidate value out of the object.\n if (key) { candidate = candidate[key]; }\n // Gatekeep.\n if (!candidate) { continue; }\n // If we're running a case-insensitive search, smallify the candidate.\n if (!didYouMean.caseSensitive) { testCandidate = candidate.toLowerCase(); }\n else { testCandidate = candidate; }\n // Get and compare edit distance.\n val = getEditDistance(str, testCandidate, winningVal);\n // If this value is smaller than our current winning value, OR if we have no winning val yet (i.e. the\n // threshold option is set to null, meaning the caller wants a match back no matter how bad it is), then\n // this is our new winner.\n if (winningVal === null || val < winningVal) {\n winningVal = val;\n // Set the winner to either the value or its object, depending on the returnWinningObject option.\n if (key && didYouMean.returnWinningObject) winner = list[i];\n else winner = candidate;\n // If we're returning the first match, return it now.\n if (didYouMean.returnFirstMatch) return winner;\n }\n }\n\n // If we have a winner, return it.\n return winner || didYouMean.nullResultValue;\n }\n\n // Set default options.\n didYouMean.threshold = 0.4;\n didYouMean.thresholdAbsolute = 20;\n didYouMean.caseSensitive = false;\n didYouMean.nullResultValue = null;\n didYouMean.returnWinningObject = null;\n didYouMean.returnFirstMatch = false;\n\n // Expose.\n // In node...\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = didYouMean;\n }\n // Otherwise...\n else {\n window.didYouMean = didYouMean;\n }\n\n var MAX_INT = Math.pow(2,32) - 1; // We could probably go higher than this, but for practical reasons let's not.\n function getEditDistance(a, b, max) {\n // Handle null or undefined max.\n max = max || max === 0 ? max : MAX_INT;\n\n var lena = a.length;\n var lenb = b.length;\n\n // Fast path - no A or B.\n if (lena === 0) return Math.min(max + 1, lenb);\n if (lenb === 0) return Math.min(max + 1, lena);\n\n // Fast path - length diff larger than max.\n if (Math.abs(lena - lenb) > max) return max + 1;\n\n // Slow path.\n var matrix = [],\n i, j, colMin, minJ, maxJ;\n\n // Set up the first row ([0, 1, 2, 3, etc]).\n for (i = 0; i <= lenb; i++) { matrix[i] = [i]; }\n\n // Set up the first column (same).\n for (j = 0; j <= lena; j++) { matrix[0][j] = j; }\n\n // Loop over the rest of the columns.\n for (i = 1; i <= lenb; i++) {\n colMin = MAX_INT;\n minJ = 1;\n if (i > max) minJ = i - max;\n maxJ = lenb + 1;\n if (maxJ > max + i) maxJ = max + i;\n // Loop over the rest of the rows.\n for (j = 1; j <= lena; j++) {\n // If j is out of bounds, just put a large value in the slot.\n if (j < minJ || j > maxJ) {\n matrix[i][j] = max + 1;\n }\n\n // Otherwise do the normal Levenshtein thing.\n else {\n // If the characters are the same, there's no change in edit distance.\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n // Otherwise, see if we're substituting, inserting or deleting.\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // Substitute\n Math.min(matrix[i][j - 1] + 1, // Insert\n matrix[i - 1][j] + 1)); // Delete\n }\n }\n\n // Either way, update colMin.\n if (matrix[i][j] < colMin) colMin = matrix[i][j];\n }\n\n // If this column's minimum is greater than the allowed maximum, there's no point\n // in going on with life.\n if (colMin > max) return max + 1;\n }\n // If we made it this far without running into the max, then return the final matrix value.\n return matrix[lenb][lena];\n }\n\n})();\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif (!('FORCE_COLOR' in env)) {\n\t\treturn;\n\t}\n\n\tif (env.FORCE_COLOR === 'true') {\n\t\treturn 1;\n\t}\n\n\tif (env.FORCE_COLOR === 'false') {\n\t\treturn 0;\n\t}\n\n\tif (env.FORCE_COLOR.length === 0) {\n\t\treturn 1;\n\t}\n\n\tconst level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\n\tif (![0, 1, 2, 3].includes(level)) {\n\t\treturn;\n\t}\n\n\treturn level;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n",null,null,null,null,null,null,null,null,null,null,null,"export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n",null,null,null,null,null,null,null,null,null,null,"import { readFileSync } from 'node:fs';\nimport {\n array,\n command,\n flag,\n multioption,\n number,\n oneOf,\n option,\n optional,\n restPositionals,\n string,\n} from 'cmd-ts';\nimport { toSnakeCaseDeep } from '../../utils/case-conversion.js';\n\n// ANSI color codes (no dependency needed)\nconst colors = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n green: '\\x1b[32m',\n red: '\\x1b[31m',\n yellow: '\\x1b[33m',\n cyan: '\\x1b[36m',\n gray: '\\x1b[90m',\n};\n\n// Check if colors should be disabled\nconst noColor = process.env.NO_COLOR !== undefined || !process.stdout.isTTY;\nconst c = noColor ? Object.fromEntries(Object.keys(colors).map((k) => [k, ''])) : colors;\n\nexport interface EvalResult {\n testId: string;\n score: number;\n}\n\ninterface MatchedResult {\n testId: string;\n score1: number;\n score2: number;\n delta: number;\n outcome: 'win' | 'loss' | 'tie';\n}\n\nexport interface ComparisonOutput {\n matched: MatchedResult[];\n unmatched: { file1: number; file2: number };\n summary: {\n total: number;\n matched: number;\n wins: number;\n losses: number;\n ties: number;\n meanDelta: number;\n };\n baseline?: string;\n candidate?: string;\n}\n\ninterface MatrixRow {\n testId: string;\n scores: Record<string, number>;\n}\n\nexport interface MatrixOutput {\n matrix: MatrixRow[];\n pairwise: ComparisonOutput[];\n targets: string[];\n}\n\nexport function loadJsonlResults(filePath: string): EvalResult[] {\n const content = readFileSync(filePath, 'utf8');\n const lines = content\n .trim()\n .split('\\n')\n .filter((line) => line.trim());\n\n return lines.map((line) => {\n const record = JSON.parse(line) as { test_id?: string; eval_id?: string; score?: number };\n const testId = record.test_id ?? record.eval_id;\n if (typeof testId !== 'string') {\n throw new Error(`Missing test_id in result: ${line}`);\n }\n if (typeof record.score !== 'number') {\n throw new Error(`Missing or invalid score in result: ${line}`);\n }\n return { testId, score: record.score };\n });\n}\n\nexport function loadCombinedResults(filePath: string): Map<string, EvalResult[]> {\n const content = readFileSync(filePath, 'utf8');\n const lines = content\n .trim()\n .split('\\n')\n .filter((line) => line.trim());\n\n const groups = new Map<string, EvalResult[]>();\n\n for (const line of lines) {\n const record = JSON.parse(line) as {\n test_id?: string;\n eval_id?: string;\n score?: number;\n target?: string;\n };\n const testId = record.test_id ?? record.eval_id;\n if (typeof testId !== 'string') {\n throw new Error(`Missing test_id in result: ${line}`);\n }\n if (typeof record.score !== 'number') {\n throw new Error(`Missing or invalid score in result: ${line}`);\n }\n if (typeof record.target !== 'string') {\n throw new Error(`Missing target field in combined result: ${line}`);\n }\n\n const target = record.target;\n if (!groups.has(target)) {\n groups.set(target, []);\n }\n groups.get(target)?.push({ testId, score: record.score });\n }\n\n return groups;\n}\n\nexport function classifyOutcome(delta: number, threshold: number): 'win' | 'loss' | 'tie' {\n if (delta >= threshold) return 'win';\n if (delta <= -threshold) return 'loss';\n return 'tie';\n}\n\nexport function compareResults(\n results1: EvalResult[],\n results2: EvalResult[],\n threshold: number,\n): ComparisonOutput {\n const map1 = new Map(results1.map((r) => [r.testId, r.score]));\n const map2 = new Map(results2.map((r) => [r.testId, r.score]));\n\n const matched: MatchedResult[] = [];\n const matchedIds = new Set<string>();\n\n for (const [testId, score1] of map1) {\n const score2 = map2.get(testId);\n if (score2 !== undefined) {\n const delta = score2 - score1;\n matched.push({\n testId,\n score1,\n score2,\n delta,\n outcome: classifyOutcome(delta, threshold),\n });\n matchedIds.add(testId);\n }\n }\n\n const unmatchedFile1 = results1.filter((r) => !matchedIds.has(r.testId)).length;\n const unmatchedFile2 = results2.filter((r) => !map1.has(r.testId)).length;\n\n const wins = matched.filter((m) => m.outcome === 'win').length;\n const losses = matched.filter((m) => m.outcome === 'loss').length;\n const ties = matched.filter((m) => m.outcome === 'tie').length;\n\n const meanDelta =\n matched.length > 0 ? matched.reduce((sum, m) => sum + m.delta, 0) / matched.length : 0;\n\n return {\n matched,\n unmatched: { file1: unmatchedFile1, file2: unmatchedFile2 },\n summary: {\n total: results1.length + results2.length,\n matched: matched.length,\n wins,\n losses,\n ties,\n meanDelta: Math.round(meanDelta * 1000) / 1000,\n },\n };\n}\n\nexport function compareMatrix(groups: Map<string, EvalResult[]>, threshold: number): MatrixOutput {\n const targets = [...groups.keys()].sort();\n\n // Collect all test IDs across all targets\n const allTestIds = new Set<string>();\n for (const results of groups.values()) {\n for (const r of results) {\n allTestIds.add(r.testId);\n }\n }\n const sortedTestIds = [...allTestIds].sort();\n\n // Build score lookup: target -> testId -> score\n const scoreLookup = new Map<string, Map<string, number>>();\n for (const [target, results] of groups) {\n scoreLookup.set(target, new Map(results.map((r) => [r.testId, r.score])));\n }\n\n // Build matrix rows\n const matrix: MatrixRow[] = sortedTestIds.map((testId) => {\n const scores: Record<string, number> = {};\n for (const target of targets) {\n const score = scoreLookup.get(target)?.get(testId);\n if (score !== undefined) {\n scores[target] = score;\n }\n }\n return { testId, scores };\n });\n\n // Run pairwise comparisons for all target pairs\n const pairwise: ComparisonOutput[] = [];\n for (let i = 0; i < targets.length; i++) {\n for (let j = i + 1; j < targets.length; j++) {\n const t1 = targets[i];\n const t2 = targets[j];\n const r1 = groups.get(t1) ?? [];\n const r2 = groups.get(t2) ?? [];\n const comparison = compareResults(r1, r2, threshold);\n comparison.baseline = t1;\n comparison.candidate = t2;\n pairwise.push(comparison);\n }\n }\n\n return { matrix, pairwise, targets };\n}\n\nexport function determineExitCode(meanDelta: number): number {\n // Exit 0 if file2 >= file1 (meanDelta >= 0), exit 1 if file1 > file2\n return meanDelta >= 0 ? 0 : 1;\n}\n\nexport function determineMatrixExitCode(\n matrixOutput: MatrixOutput,\n baselineTarget?: string,\n): number {\n if (!baselineTarget) {\n return 0; // Informational mode\n }\n\n // Exit 1 if any target regresses vs baseline.\n // Pairwise pairs are generated in sorted order, so the designated baseline\n // may appear as either .baseline or .candidate depending on alphabetical position.\n for (const p of matrixOutput.pairwise) {\n if (p.baseline === baselineTarget && p.summary.meanDelta < 0) {\n // candidate scored lower than baseline → regression\n return 1;\n }\n if (p.candidate === baselineTarget && p.summary.meanDelta > 0) {\n // baseline scored higher than the other target → other regressed\n return 1;\n }\n }\n return 0;\n}\n\nfunction formatDelta(delta: number): string {\n const sign = delta >= 0 ? '+' : '';\n const formatted = `${sign}${delta.toFixed(2)}`;\n if (delta > 0) return `${c.green}${formatted}${c.reset}`;\n if (delta < 0) return `${c.red}${formatted}${c.reset}`;\n return `${c.gray}${formatted}${c.reset}`;\n}\n\nfunction formatOutcome(outcome: 'win' | 'loss' | 'tie'): string {\n switch (outcome) {\n case 'win':\n return `${c.green}✓ win${c.reset}`;\n case 'loss':\n return `${c.red}✗ loss${c.reset}`;\n case 'tie':\n return `${c.gray}= tie${c.reset}`;\n }\n}\n\n// Regex to strip ANSI escape codes (constructed to avoid lint warning)\nconst ansiPattern = new RegExp(`${String.fromCharCode(27)}\\\\[[0-9;]*m`, 'g');\n\nfunction stripAnsi(str: string): string {\n return str.replace(ansiPattern, '');\n}\n\nfunction padRight(str: string, len: number): string {\n const plainLen = stripAnsi(str).length;\n return str + ' '.repeat(Math.max(0, len - plainLen));\n}\n\nfunction padLeft(str: string, len: number): string {\n const plainLen = stripAnsi(str).length;\n return ' '.repeat(Math.max(0, len - plainLen)) + str;\n}\n\nexport function formatTable(comparison: ComparisonOutput, file1: string, file2: string): string {\n const lines: string[] = [];\n\n // Header\n lines.push('');\n lines.push(\n `${c.bold}Comparing:${c.reset} ${c.cyan}${file1}${c.reset} → ${c.cyan}${file2}${c.reset}`,\n );\n lines.push('');\n\n if (comparison.matched.length === 0) {\n lines.push(`${c.yellow}No matching test IDs found between files.${c.reset}`);\n } else {\n // Calculate column widths\n const maxIdLen = Math.max(\n 7, // \"Test ID\"\n ...comparison.matched.map((m) => m.testId.length),\n );\n\n // Table header\n const header = ` ${padRight('Test ID', maxIdLen)} ${padLeft('Baseline', 8)} ${padLeft('Candidate', 9)} ${padLeft('Delta', 8)} Result`;\n lines.push(`${c.dim}${header}${c.reset}`);\n lines.push(\n `${c.dim} ${'─'.repeat(maxIdLen)} ${'─'.repeat(8)} ${'─'.repeat(9)} ${'─'.repeat(8)} ${'─'.repeat(8)}${c.reset}`,\n );\n\n // Table rows\n for (const m of comparison.matched) {\n const row = ` ${padRight(m.testId, maxIdLen)} ${padLeft(m.score1.toFixed(2), 8)} ${padLeft(m.score2.toFixed(2), 9)} ${padLeft(formatDelta(m.delta), 8)} ${formatOutcome(m.outcome)}`;\n lines.push(row);\n }\n }\n\n // Unmatched warning\n if (comparison.unmatched.file1 > 0 || comparison.unmatched.file2 > 0) {\n lines.push('');\n lines.push(\n `${c.yellow}⚠ Unmatched:${c.reset} ${comparison.unmatched.file1} in baseline, ${comparison.unmatched.file2} in candidate`,\n );\n }\n\n // Summary\n lines.push('');\n const { wins, losses, ties, meanDelta } = comparison.summary;\n\n const winStr =\n wins > 0 ? `${c.green}${wins} win${wins !== 1 ? 's' : ''}${c.reset}` : `${wins} wins`;\n const lossStr =\n losses > 0 ? `${c.red}${losses} loss${losses !== 1 ? 'es' : ''}${c.reset}` : `${losses} losses`;\n const tieStr = `${ties} tie${ties !== 1 ? 's' : ''}`;\n\n const deltaColor = meanDelta > 0 ? c.green : meanDelta < 0 ? c.red : c.gray;\n const deltaSign = meanDelta >= 0 ? '+' : '';\n const status =\n meanDelta > 0\n ? `${c.green}improved${c.reset}`\n : meanDelta < 0\n ? `${c.red}regressed${c.reset}`\n : `${c.gray}neutral${c.reset}`;\n\n lines.push(\n `${c.bold}Summary:${c.reset} ${winStr}, ${lossStr}, ${tieStr} | Mean Δ: ${deltaColor}${deltaSign}${meanDelta.toFixed(3)}${c.reset} | Status: ${status}`,\n );\n lines.push('');\n\n return lines.join('\\n');\n}\n\nexport function formatMatrix(matrixOutput: MatrixOutput, baselineTarget?: string): string {\n const { matrix, pairwise, targets } = matrixOutput;\n const lines: string[] = [];\n\n lines.push('');\n lines.push(`${c.bold}Score Matrix${c.reset}`);\n lines.push('');\n\n if (matrix.length === 0) {\n lines.push(`${c.yellow}No results found.${c.reset}`);\n return lines.join('\\n');\n }\n\n // Calculate column widths\n const testIdWidth = Math.max(\n 7, // \"Test ID\"\n ...matrix.map((r) => r.testId.length),\n );\n const targetWidths = targets.map((t) => Math.max(t.length, 6));\n\n // Header row\n let header = ` ${padRight('Test ID', testIdWidth)}`;\n for (let i = 0; i < targets.length; i++) {\n header += ` ${padLeft(targets[i], targetWidths[i])}`;\n }\n lines.push(`${c.dim}${header}${c.reset}`);\n\n // Separator\n let sep = ` ${'─'.repeat(testIdWidth)}`;\n for (let i = 0; i < targets.length; i++) {\n sep += ` ${'─'.repeat(targetWidths[i])}`;\n }\n lines.push(`${c.dim}${sep}${c.reset}`);\n\n // Data rows\n for (const row of matrix) {\n let line = ` ${padRight(row.testId, testIdWidth)}`;\n for (let i = 0; i < targets.length; i++) {\n const score = row.scores[targets[i]];\n const scoreStr = score !== undefined ? score.toFixed(2) : ' --';\n // Highlight regressions vs baseline\n if (baselineTarget && targets[i] !== baselineTarget && score !== undefined) {\n const baselineScore = row.scores[baselineTarget];\n if (baselineScore !== undefined && score < baselineScore) {\n line += ` ${padLeft(`${c.red}${scoreStr}${c.reset}`, targetWidths[i])}`;\n } else if (baselineScore !== undefined && score > baselineScore) {\n line += ` ${padLeft(`${c.green}${scoreStr}${c.reset}`, targetWidths[i])}`;\n } else {\n line += ` ${padLeft(scoreStr, targetWidths[i])}`;\n }\n } else {\n line += ` ${padLeft(scoreStr, targetWidths[i])}`;\n }\n }\n lines.push(line);\n }\n\n // Pairwise summary\n if (pairwise.length > 0) {\n lines.push('');\n lines.push(`${c.bold}Pairwise Summary:${c.reset}`);\n\n const maxLabelLen = Math.max(\n ...pairwise.map((pw) => ` ${pw.baseline} → ${pw.candidate}:`.length),\n );\n for (const p of pairwise) {\n const { wins, losses, ties, meanDelta } = p.summary;\n const sign = meanDelta >= 0 ? '+' : '';\n const deltaColor = meanDelta > 0 ? c.green : meanDelta < 0 ? c.red : c.gray;\n const label = ` ${p.baseline} → ${p.candidate}:`;\n lines.push(\n `${padRight(label, maxLabelLen)} ${wins} win${wins !== 1 ? 's' : ''}, ${losses} loss${losses !== 1 ? 'es' : ''}, ${ties} tie${ties !== 1 ? 's' : ''} (${c.bold}Δ${c.reset} ${deltaColor}${sign}${meanDelta.toFixed(3)}${c.reset})`,\n );\n }\n }\n\n lines.push('');\n return lines.join('\\n');\n}\n\nexport const compareCommand = command({\n name: 'compare',\n description:\n 'Compare evaluation result files: two-file pairwise, combined JSONL pairwise, or N-way matrix',\n args: {\n results: restPositionals({\n type: string,\n displayName: 'results',\n description: 'JSONL result file path(s). One file: combined mode. Two files: pairwise mode.',\n }),\n threshold: option({\n type: optional(number),\n long: 'threshold',\n short: 't',\n description: 'Score delta threshold for win/loss classification (default: 0.1)',\n }),\n baseline: option({\n type: optional(string),\n long: 'baseline',\n short: 'b',\n description: 'Target name to use as baseline (filters combined JSONL)',\n }),\n candidate: option({\n type: optional(string),\n long: 'candidate',\n short: 'c',\n description: 'Target name to use as candidate (filters combined JSONL)',\n }),\n targets: multioption({\n type: array(string),\n long: 'targets',\n description: 'Target names to include in matrix comparison (repeatable)',\n }),\n format: option({\n type: optional(oneOf(['table', 'json'])),\n long: 'format',\n short: 'f',\n description: 'Output format: table (default, human-readable) or json (machine-readable)',\n }),\n json: flag({\n long: 'json',\n description: 'Output JSON format (shorthand for --format=json)',\n }),\n },\n handler: async ({ results, threshold, baseline, candidate, targets, format, json }) => {\n const effectiveThreshold = threshold ?? 0.1;\n const outputFormat = json ? 'json' : (format ?? 'table');\n\n try {\n if (results.length === 0) {\n throw new Error('At least one JSONL result file is required');\n }\n\n if (results.length === 2) {\n // Two-file pairwise mode (existing behavior)\n const results1 = loadJsonlResults(results[0]);\n const results2 = loadJsonlResults(results[1]);\n const comparison = compareResults(results1, results2, effectiveThreshold);\n\n if (outputFormat === 'json') {\n console.log(JSON.stringify(toSnakeCaseDeep(comparison), null, 2));\n } else {\n console.log(formatTable(comparison, results[0], results[1]));\n }\n\n const exitCode = determineExitCode(comparison.summary.meanDelta);\n process.exit(exitCode);\n } else if (results.length === 1) {\n // Combined JSONL mode\n let groups = loadCombinedResults(results[0]);\n\n // Filter by --targets if specified\n if (targets.length > 0) {\n const filtered = new Map<string, EvalResult[]>();\n for (const t of targets) {\n const group = groups.get(t);\n if (group) {\n filtered.set(t, group);\n }\n }\n if (filtered.size === 0) {\n const available = [...groups.keys()].join(', ');\n throw new Error(\n `None of the specified targets found in results. Available targets: ${available}`,\n );\n }\n groups = filtered;\n }\n\n // Validate --baseline target exists in (possibly filtered) groups\n if (baseline && !groups.has(baseline)) {\n const available = [...groups.keys()].join(', ');\n throw new Error(\n `Baseline target \"${baseline}\" not found in results. Available targets: ${available}`,\n );\n }\n\n if (candidate && !baseline) {\n throw new Error(\n '--candidate requires --baseline. Use both flags for pairwise comparison.',\n );\n }\n\n if (baseline && candidate) {\n // Pairwise mode from combined JSONL\n const baselineResults = groups.get(baseline);\n const candidateResults = groups.get(candidate);\n if (!baselineResults) {\n throw new Error(`Baseline target \"${baseline}\" not found in results`);\n }\n if (!candidateResults) {\n throw new Error(`Candidate target \"${candidate}\" not found in results`);\n }\n\n const comparison = compareResults(baselineResults, candidateResults, effectiveThreshold);\n\n if (outputFormat === 'json') {\n console.log(JSON.stringify(toSnakeCaseDeep(comparison), null, 2));\n } else {\n console.log(formatTable(comparison, baseline, candidate));\n }\n\n const exitCode = determineExitCode(comparison.summary.meanDelta);\n process.exit(exitCode);\n } else {\n // N-way matrix mode\n const matrixOutput = compareMatrix(groups, effectiveThreshold);\n\n if (outputFormat === 'json') {\n console.log(JSON.stringify(toSnakeCaseDeep(matrixOutput), null, 2));\n } else {\n console.log(formatMatrix(matrixOutput, baseline));\n }\n\n const exitCode = determineMatrixExitCode(matrixOutput, baseline);\n process.exit(exitCode);\n }\n } else {\n throw new Error('Expected 1 or 2 JSONL result files');\n }\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { readFileSync, writeFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { normalizeLineEndings } from '@agentv/core';\nimport { command, option, optional, positional, string } from 'cmd-ts';\nimport { stringify as stringifyYaml } from 'yaml';\n\nfunction convertJsonlToYaml(inputPath: string, outputPath: string): number {\n const content = readFileSync(inputPath, 'utf8');\n const lines = content\n .trim()\n .split('\\n')\n .filter((line) => line.trim());\n\n let yamlOutput = '';\n let isFirst = true;\n\n for (const line of lines) {\n const record = JSON.parse(line);\n const yamlDoc = stringifyYaml(record, {\n indent: 2,\n lineWidth: 0,\n });\n\n const normalizedYaml = normalizeLineEndings(yamlDoc);\n const separator = isFirst ? '---\\n' : '\\n---\\n';\n isFirst = false;\n yamlOutput += separator + normalizedYaml;\n }\n\n writeFileSync(outputPath, yamlOutput);\n return lines.length;\n}\n\nexport const convertCommand = command({\n name: 'convert',\n description: 'Convert evaluation results from JSONL to YAML format',\n args: {\n input: positional({\n type: string,\n displayName: 'input',\n description: 'Path to input JSONL file',\n }),\n out: option({\n type: optional(string),\n long: 'out',\n short: 'o',\n description: 'Output file path (defaults to input path with .yaml extension)',\n }),\n },\n handler: async ({ input, out }) => {\n if (!input.endsWith('.jsonl')) {\n console.error('Error: Input file must be a .jsonl file');\n process.exit(1);\n }\n\n const outputPath = out ?? input.replace(/\\.jsonl$/, '.yaml');\n\n try {\n const count = convertJsonlToYaml(input, outputPath);\n console.log(`Converted ${count} records to ${path.resolve(outputPath)}`);\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { mkdir, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { command, option, optional, positional, string } from 'cmd-ts';\n\nconst ASSERTION_TEMPLATES: Record<string, string> = {\n default: `#!/usr/bin/env bun\nimport { defineAssertion } from '@agentv/eval';\n\nexport default defineAssertion(({ answer }) => {\n // TODO: Implement your assertion logic\n const pass = answer.length > 0;\n return {\n pass,\n reasoning: pass ? 'Output has content' : 'Output is empty',\n };\n});\n`,\n score: `#!/usr/bin/env bun\nimport { defineAssertion } from '@agentv/eval';\n\nexport default defineAssertion(({ answer }) => {\n // TODO: Implement your scoring logic (0.0 to 1.0)\n const score = answer.length > 0 ? 1.0 : 0.0;\n return {\n pass: score >= 0.5,\n score,\n reasoning: \\`Score: \\${score}\\`,\n };\n});\n`,\n};\n\nconst EVAL_TEMPLATES: Record<string, (name: string) => string> = {\n default: (name: string) => `description: ${name} evaluation suite\nexecution:\n target: default\n\ntests:\n - id: sample-test\n criteria: Agent responds correctly\n input: \"Hello, how are you?\"\n expected_output: \"I'm doing well\"\n assert:\n - type: contains\n value: \"well\"\n`,\n rubric: (name: string) => `description: ${name} evaluation suite\nexecution:\n target: default\n\ntests:\n - id: sample-test\n criteria: Agent responds correctly and completely\n input: \"Hello, how are you?\"\n expected_output: \"I'm doing well, thank you for asking!\"\n assert:\n - type: llm-judge\n rubric:\n accuracy:\n weight: 0.6\n criteria: Response is factually correct\n completeness:\n weight: 0.4\n criteria: Response addresses all parts of the question\n`,\n};\n\nconst PROVIDER_TEMPLATE = `#!/usr/bin/env bun\n/**\n * Custom provider scaffold.\n *\n * AgentV providers are configured via .agentv/targets.yaml using the CLI provider:\n *\n * targets:\n * - name: my-target\n * provider: cli\n * command: \"bun run .agentv/providers/<name>.ts {PROMPT}\"\n *\n * This script receives the prompt as a CLI argument and prints the response to stdout.\n */\n\nconst prompt = process.argv[2];\n\nif (!prompt) {\n console.error('Usage: bun run provider.ts \"<prompt>\"');\n process.exit(1);\n}\n\n// TODO: Replace with your LLM API call or custom logic\nconst response = \\`Echo: \\${prompt}\\`;\n\nconsole.log(response);\n`;\n\nconst EVAL_CASES_TEMPLATE = `{\"id\":\"case-1\",\"criteria\":\"Responds helpfully\",\"input\":\"What is 2+2?\",\"expected_output\":\"4\"}\n`;\n\nexport const createAssertionCommand = command({\n name: 'assertion',\n description: 'Create a custom assertion scaffold',\n args: {\n name: positional({\n type: string,\n displayName: 'name',\n description: 'Name of the assertion (e.g., sentiment)',\n }),\n template: option({\n type: optional(string),\n long: 'template',\n description: `Template variant (${Object.keys(ASSERTION_TEMPLATES).join(', ')})`,\n }),\n },\n handler: async ({ name, template }) => {\n const templateName = template ?? 'default';\n const content = ASSERTION_TEMPLATES[templateName];\n if (!content) {\n console.error(\n `Unknown template \"${templateName}\". Available: ${Object.keys(ASSERTION_TEMPLATES).join(', ')}`,\n );\n process.exit(1);\n }\n\n const dir = path.join(process.cwd(), '.agentv', 'assertions');\n const filePath = path.join(dir, `${name}.ts`);\n\n await mkdir(dir, { recursive: true });\n await writeFile(filePath, content);\n console.log(`Created ${path.relative(process.cwd(), filePath)} (template: ${templateName})`);\n console.log(`\\nUse in EVAL.yaml:\\n assert:\\n - type: ${name}`);\n },\n});\n\nexport const createProviderCommand = command({\n name: 'provider',\n description: 'Create a custom provider scaffold',\n args: {\n name: positional({\n type: string,\n displayName: 'name',\n description: 'Name of the provider (e.g., my-llm)',\n }),\n template: option({\n type: optional(string),\n long: 'template',\n description: 'Template variant (default)',\n }),\n },\n handler: async ({ name, template }) => {\n const templateName = template ?? 'default';\n if (templateName !== 'default') {\n console.error(`Unknown template \"${templateName}\". Available: default`);\n process.exit(1);\n }\n\n const dir = path.join(process.cwd(), '.agentv', 'providers');\n const filePath = path.join(dir, `${name}.ts`);\n\n await mkdir(dir, { recursive: true });\n await writeFile(filePath, PROVIDER_TEMPLATE);\n console.log(`Created ${path.relative(process.cwd(), filePath)} (template: ${templateName})`);\n console.log(\n `\\nConfigure in .agentv/targets.yaml:\\n targets:\\n - name: ${name}\\n provider: cli\\n command: \"bun run .agentv/providers/${name}.ts {PROMPT}\"`,\n );\n },\n});\n\nexport const createEvalCommand = command({\n name: 'eval',\n description: 'Create an eval suite scaffold',\n args: {\n name: positional({\n type: string,\n displayName: 'name',\n description: 'Name of the eval suite (e.g., my-agent)',\n }),\n template: option({\n type: optional(string),\n long: 'template',\n description: `Template variant (${Object.keys(EVAL_TEMPLATES).join(', ')})`,\n }),\n },\n handler: async ({ name, template }) => {\n const templateName = template ?? 'default';\n const templateFn = EVAL_TEMPLATES[templateName];\n if (!templateFn) {\n console.error(\n `Unknown template \"${templateName}\". Available: ${Object.keys(EVAL_TEMPLATES).join(', ')}`,\n );\n process.exit(1);\n }\n\n const dir = path.join(process.cwd(), 'evals');\n const yamlPath = path.join(dir, `${name}.eval.yaml`);\n const casesPath = path.join(dir, `${name}.cases.jsonl`);\n\n await mkdir(dir, { recursive: true });\n await writeFile(yamlPath, templateFn(name));\n await writeFile(casesPath, EVAL_CASES_TEMPLATE);\n console.log(`Created ${path.relative(process.cwd(), yamlPath)} (template: ${templateName})`);\n console.log(`Created ${path.relative(process.cwd(), casesPath)}`);\n console.log(`\\nRun with:\\n agentv eval ${path.relative(process.cwd(), yamlPath)}`);\n },\n});\n","import { subcommands } from 'cmd-ts';\n\nimport { createAssertionCommand, createEvalCommand, createProviderCommand } from './commands.js';\n\nexport const createCommand = subcommands({\n name: 'create',\n description: 'Scaffold new AgentV components',\n cmds: {\n assertion: createAssertionCommand,\n eval: createEvalCommand,\n provider: createProviderCommand,\n },\n});\n","import type { JsonObject, TestMessage } from '@agentv/core';\nimport { loadTestById } from '@agentv/core';\nimport { command, option, positional, string } from 'cmd-ts';\n\nimport { findRepoRoot } from '../../shared.js';\n\nexport const evalPromptInputCommand = command({\n name: 'input',\n description: 'Output task input JSON for a single test',\n args: {\n evalPath: positional({\n type: string,\n displayName: 'eval-path',\n description: 'Path to evaluation .yaml file',\n }),\n testId: option({\n type: string,\n long: 'test-id',\n description: 'Test ID',\n }),\n },\n handler: async (args) => {\n const cwd = process.cwd();\n const repoRoot = await findRepoRoot(cwd);\n\n const evalCase = await loadTestById(args.evalPath, repoRoot, args.testId);\n\n // Build mapping from relative file names to resolved absolute paths.\n // input_segments has resolvedPath for non-guideline files;\n // file_paths (which includes guidelines) is used as a fallback.\n const fileMap = buildFileMap(evalCase.input_segments, evalCase.file_paths);\n\n // Resolve file references in input to absolute paths\n const resolvedMessages = resolveMessages(evalCase.input, fileMap);\n\n const output = {\n test_id: evalCase.id,\n input: resolvedMessages,\n guideline_paths: evalCase.guideline_paths,\n criteria: evalCase.criteria,\n };\n\n process.stdout.write(JSON.stringify(output, null, 2));\n process.stdout.write('\\n');\n },\n});\n\n/**\n * Build a mapping from relative file names to resolved absolute paths.\n * Uses input_segments (which have resolvedPath) as the primary source,\n * then falls back to suffix-matching against all file_paths for\n * guideline files (which are excluded from input_segments).\n */\nfunction buildFileMap(\n inputSegments: readonly JsonObject[],\n allFilePaths: readonly string[],\n): Map<string, string> {\n const map = new Map<string, string>();\n\n for (const segment of inputSegments) {\n if (\n segment.type === 'file' &&\n typeof segment.path === 'string' &&\n typeof segment.resolvedPath === 'string'\n ) {\n map.set(segment.path, segment.resolvedPath);\n }\n }\n\n // For guideline files not in input_segments, match by suffix against file_paths\n return {\n get(key: string): string | undefined {\n const direct = map.get(key);\n if (direct) return direct;\n // Suffix match: \"file.md\" matches \"/abs/path/to/file.md\"\n return allFilePaths.find((p) => p.endsWith(`/${key}`) || p === key);\n },\n has(key: string): boolean {\n return this.get(key) !== undefined;\n },\n } as Map<string, string>;\n}\n\n/**\n * Resolve file references in messages, replacing relative values with absolute paths.\n * The agent can then read these files directly from the filesystem.\n */\nfunction resolveMessages(\n messages: readonly TestMessage[],\n fileMap: Map<string, string>,\n): JsonObject[] {\n return messages.map((message) => {\n if (typeof message.content === 'string') {\n return { role: message.role, content: message.content } as JsonObject;\n }\n\n if (!Array.isArray(message.content)) {\n return { role: message.role, content: message.content } as JsonObject;\n }\n\n const resolvedContent: JsonObject[] = [];\n for (const segment of message.content) {\n if (typeof segment === 'string') {\n resolvedContent.push({ type: 'text', value: segment } as JsonObject);\n continue;\n }\n\n const obj = segment as JsonObject;\n if (obj.type === 'file' && typeof obj.value === 'string') {\n const resolved = fileMap.get(obj.value);\n resolvedContent.push({\n type: 'file',\n path: resolved ?? obj.value,\n } as JsonObject);\n } else {\n resolvedContent.push(obj);\n }\n }\n\n return { role: message.role, content: resolvedContent } as JsonObject;\n });\n}\n","import { readFile } from 'node:fs/promises';\nimport {\n type EvalTest,\n type EvaluatorConfig,\n assembleLlmJudgePrompt,\n buildPromptInputs,\n executeScript,\n loadTestById,\n toSnakeCaseDeep,\n} from '@agentv/core';\nimport { command, option, positional, string } from 'cmd-ts';\n\nimport { findRepoRoot } from '../../shared.js';\n\ninterface JudgeResult {\n test_id: string;\n evaluators: EvaluatorOutput[];\n}\n\ninterface EvaluatorOutput {\n name: string;\n type: string;\n status: 'completed' | 'prompt_ready';\n result?: Record<string, unknown>;\n prompt?: { system_prompt: string; user_prompt: string };\n}\n\nexport const evalPromptJudgeCommand = command({\n name: 'judge',\n description: 'Run code judges and output LLM judge prompts for a single test',\n args: {\n evalPath: positional({\n type: string,\n displayName: 'eval-path',\n description: 'Path to evaluation .yaml file',\n }),\n testId: option({\n type: string,\n long: 'test-id',\n description: 'Test ID',\n }),\n answerFile: option({\n type: string,\n long: 'answer-file',\n description: 'Path to file containing the candidate answer',\n }),\n },\n handler: async (args) => {\n const cwd = process.cwd();\n const repoRoot = await findRepoRoot(cwd);\n\n const evalCase = await loadTestById(args.evalPath, repoRoot, args.testId);\n const candidate = (await readFile(args.answerFile, 'utf8')).trim();\n const promptInputs = await buildPromptInputs(evalCase);\n\n const evaluators = evalCase.evaluators ?? [];\n const outputs: EvaluatorOutput[] = [];\n\n for (const config of evaluators) {\n const output = await processEvaluator(config, evalCase, candidate, promptInputs);\n outputs.push(output);\n }\n\n // If no explicit evaluators, default to llm_judge freeform\n if (outputs.length === 0) {\n const assembly = assembleLlmJudgePrompt({\n evalCase,\n candidate,\n promptInputs,\n });\n\n outputs.push({\n name: 'default_llm_judge',\n type: 'llm-judge',\n status: 'prompt_ready',\n prompt: {\n system_prompt: assembly.systemPrompt,\n user_prompt: assembly.userPrompt,\n },\n });\n }\n\n const result: JudgeResult = {\n test_id: evalCase.id,\n evaluators: outputs,\n };\n\n process.stdout.write(JSON.stringify(result, null, 2));\n process.stdout.write('\\n');\n },\n});\n\nasync function processEvaluator(\n config: EvaluatorConfig,\n evalCase: EvalTest,\n candidate: string,\n promptInputs: Awaited<ReturnType<typeof buildPromptInputs>>,\n): Promise<EvaluatorOutput> {\n switch (config.type) {\n case 'code-judge': {\n const codeConfig = config as Extract<EvaluatorConfig, { type: 'code-judge' }>;\n const script = codeConfig.command ?? codeConfig.script ?? [];\n const scriptCwd = codeConfig.resolvedCwd ?? codeConfig.cwd;\n\n const payload = {\n question: evalCase.question,\n criteria: evalCase.criteria,\n expectedOutput: evalCase.expected_output,\n referenceAnswer: evalCase.reference_answer,\n answer: candidate,\n output: null,\n guidelineFiles: evalCase.guideline_paths,\n inputFiles: evalCase.file_paths.filter((p) => !evalCase.guideline_paths.includes(p)),\n input: evalCase.input,\n trace: null,\n fileChanges: null,\n workspacePath: null,\n config: codeConfig.config ?? null,\n };\n\n try {\n const inputPayload = JSON.stringify(toSnakeCaseDeep(payload), null, 2);\n const stdout = await executeScript(script, inputPayload, 60_000, scriptCwd);\n\n const parsed = JSON.parse(stdout);\n return {\n name: codeConfig.name,\n type: 'code-judge',\n status: 'completed',\n result: parsed,\n };\n } catch (error) {\n return {\n name: codeConfig.name,\n type: 'code-judge',\n status: 'completed',\n result: {\n score: 0,\n error: error instanceof Error ? error.message : String(error),\n },\n };\n }\n }\n\n case 'llm-judge': {\n const llmConfig = config as Extract<EvaluatorConfig, { type: 'llm-judge' }>;\n const assembly = assembleLlmJudgePrompt({\n evalCase,\n candidate,\n promptInputs,\n evaluatorConfig: llmConfig,\n });\n\n return {\n name: llmConfig.name,\n type: 'llm-judge',\n status: 'prompt_ready',\n prompt: {\n system_prompt: assembly.systemPrompt,\n user_prompt: assembly.userPrompt,\n },\n };\n }\n\n default: {\n // For other evaluator types, report as needing manual handling\n return {\n name: config.name,\n type: config.type,\n status: 'prompt_ready',\n result: {\n message: `Evaluator type \"${config.type}\" requires the full eval pipeline. Use \\`agentv eval\\` instead.`,\n },\n };\n }\n }\n}\n","import { type EvalTest, loadTests } from '@agentv/core';\nimport { command, restPositionals, string } from 'cmd-ts';\n\nimport { findRepoRoot, resolveEvalPaths } from '../../shared.js';\n\nexport const evalPromptOverviewCommand = command({\n name: 'overview',\n description: 'Output orchestration prompt for host agent to run evals',\n args: {\n evalPaths: restPositionals({\n type: string,\n displayName: 'eval-paths',\n description: 'Path(s) or glob(s) to evaluation .yaml file(s)',\n }),\n },\n handler: async (args) => {\n const cwd = process.cwd();\n const resolvedPaths = await resolveEvalPaths(args.evalPaths, cwd);\n const repoRoot = await findRepoRoot(cwd);\n\n // Collect all cases upfront for the summary\n const fileEntries: Array<{ path: string; tests: readonly EvalTest[] }> = [];\n for (const evalPath of resolvedPaths) {\n const tests = await loadTests(evalPath, repoRoot);\n fileEntries.push({ path: evalPath, tests });\n }\n\n const totalCases = fileEntries.reduce((sum, e) => sum + e.tests.length, 0);\n\n const lines: string[] = [\n '# AgentV Eval Orchestration',\n '',\n `You are orchestrating ${totalCases} evaluation case${totalCases === 1 ? '' : 's'}. For each case: get the task input, execute it, then judge the result.`,\n '',\n '## Step 1: Get Task Input',\n '',\n 'Run `agentv prompt eval input <path> --test-id <id>` to get the task as JSON.',\n '',\n 'The output contains:',\n '- `input` — `[{role, content}]` array. Content segments are either `{type: \"text\", value: \"...\"}` or `{type: \"file\", path: \"/absolute/path\"}`. Read file segments from the filesystem.',\n '- `guideline_paths` — files containing additional instructions to prepend to the system message (may be empty). Read these from the filesystem.',\n '- `criteria` — what a good answer should accomplish (for your reference, do not leak to the agent being tested)',\n '',\n '## Step 2: Execute the Task',\n '',\n 'Send the prompt to the agent/LLM being evaluated. Save the complete response text to a file.',\n '',\n '## Step 3: Judge the Result',\n '',\n 'Run `agentv prompt eval judge <path> --test-id <id> --answer-file <response-file>`.',\n '',\n 'The output contains an `evaluators` array. Each evaluator has a `status`:',\n '',\n '- **`\"completed\"`** — Score is final (code-judge ran deterministically). Read `result.score` (0.0–1.0).',\n '- **`\"prompt_ready\"`** — LLM grading required. Send `prompt.system_prompt` as system and',\n ' `prompt.user_prompt` as user to your LLM. Parse the JSON response to get `score`, `hits`, `misses`.',\n '',\n ];\n\n for (const { path: evalPath, tests } of fileEntries) {\n lines.push(`## ${evalPath}`);\n lines.push('');\n\n for (const evalCase of tests) {\n const evaluatorSummary = describeEvaluators(evalCase);\n lines.push(`### ${evalCase.id}`);\n lines.push(`Criteria: ${evalCase.criteria}`);\n if (evaluatorSummary) {\n lines.push(`Evaluators: ${evaluatorSummary}`);\n }\n lines.push('');\n lines.push('```bash');\n lines.push(`agentv prompt eval input ${evalPath} --test-id ${evalCase.id}`);\n lines.push(\n `agentv prompt eval judge ${evalPath} --test-id ${evalCase.id} --answer-file <response-file>`,\n );\n lines.push('```');\n lines.push('');\n }\n }\n\n process.stdout.write(lines.join('\\n'));\n },\n});\n\nfunction describeEvaluators(evalCase: EvalTest): string | undefined {\n const configs = evalCase.evaluators;\n if (!configs || configs.length === 0) return undefined;\n return configs.map((c) => `${c.name} (${c.type})`).join(', ');\n}\n","import { subcommands } from 'cmd-ts';\n\nimport { evalPromptInputCommand } from './input.js';\nimport { evalPromptJudgeCommand } from './judge.js';\nimport { evalPromptOverviewCommand } from './overview.js';\n\nexport const evalPromptEvalSubcommand = subcommands({\n name: 'eval',\n description: 'Eval prompt commands (overview, input, judge)',\n cmds: {\n overview: evalPromptOverviewCommand,\n input: evalPromptInputCommand,\n judge: evalPromptJudgeCommand,\n },\n});\n\nexport const evalPromptCommand = subcommands({\n name: 'prompt',\n description: 'Prompt commands',\n cmds: {\n eval: evalPromptEvalSubcommand,\n },\n});\n","import {\n array,\n command,\n flag,\n multioption,\n number,\n option,\n optional,\n restPositionals,\n string,\n} from 'cmd-ts';\n\nimport { runEvalCommand } from '../run-eval.js';\nimport { resolveEvalPaths } from '../shared.js';\n\nexport const evalRunCommand = command({\n name: 'eval',\n description: 'Run eval suites and report results',\n args: {\n evalPaths: restPositionals({\n type: string,\n displayName: 'eval-paths',\n description: 'Path(s) or glob(s) to evaluation .yaml file(s)',\n }),\n target: multioption({\n type: array(string),\n long: 'target',\n description: 'Override target name(s) from targets.yaml (repeatable for matrix evaluation)',\n }),\n targets: option({\n type: optional(string),\n long: 'targets',\n description: 'Path to targets.yaml (overrides discovery)',\n }),\n testId: option({\n type: optional(string),\n long: 'test-id',\n description: 'Filter tests by ID pattern (glob supported, e.g., \"summary-*\")',\n }),\n workers: option({\n type: optional(number),\n long: 'workers',\n description:\n 'Number of parallel workers (default: 3, max: 50). Can also be set per-target in targets.yaml',\n }),\n out: option({\n type: optional(string),\n long: 'out',\n description: 'Write results to the specified path',\n }),\n output: multioption({\n type: array(string),\n long: 'output',\n short: 'o',\n description:\n 'Output file path(s). Format inferred from extension: .jsonl, .json, .xml, .yaml',\n }),\n outputFormat: option({\n type: optional(string),\n long: 'output-format',\n description: \"Output format: 'jsonl' or 'yaml' (default: jsonl)\",\n }),\n dryRun: flag({\n long: 'dry-run',\n description: 'Use mock provider responses instead of real LLM calls',\n }),\n dryRunDelay: option({\n type: number,\n long: 'dry-run-delay',\n description:\n 'Fixed delay in milliseconds for dry-run mode (overridden by delay range if specified)',\n defaultValue: () => 0,\n }),\n dryRunDelayMin: option({\n type: number,\n long: 'dry-run-delay-min',\n description: 'Minimum delay in milliseconds for dry-run mode (requires --dry-run-delay-max)',\n defaultValue: () => 0,\n }),\n dryRunDelayMax: option({\n type: number,\n long: 'dry-run-delay-max',\n description: 'Maximum delay in milliseconds for dry-run mode (requires --dry-run-delay-min)',\n defaultValue: () => 0,\n }),\n agentTimeout: option({\n type: optional(number),\n long: 'agent-timeout',\n description: 'Optional top-level evaluation timeout in seconds. Unset by default.',\n }),\n maxRetries: option({\n type: optional(number),\n long: 'max-retries',\n description: 'Retry count for timeout recoveries (default: 2)',\n }),\n cache: flag({\n long: 'cache',\n description: 'Enable provider response cache (persisted to disk)',\n }),\n noCache: flag({\n long: 'no-cache',\n description: 'Disable caching (overrides YAML execution.cache)',\n }),\n verbose: flag({\n long: 'verbose',\n description: 'Enable verbose logging',\n }),\n workspaceMode: option({\n type: optional(string),\n long: 'workspace-mode',\n description: \"Workspace mode: 'pooled', 'temp', or 'static'\",\n }),\n workspacePath: option({\n type: optional(string),\n long: 'workspace-path',\n description: 'Static workspace directory path (used when workspace mode is static)',\n }),\n otelFile: option({\n type: optional(string),\n long: 'otel-file',\n description: 'Write OTLP JSON trace to file (importable by OTel backends)',\n }),\n traceFile: option({\n type: optional(string),\n long: 'trace-file',\n description: 'Write human-readable trace JSONL to file',\n }),\n exportOtel: flag({\n long: 'export-otel',\n description: 'Export evaluation traces via OTLP/HTTP to configured endpoint',\n }),\n otelBackend: option({\n type: optional(string),\n long: 'otel-backend',\n description: 'Use a backend preset (langfuse, braintrust, confident)',\n }),\n otelCaptureContent: flag({\n long: 'otel-capture-content',\n description: 'Include message content in exported OTel spans (privacy: disabled by default)',\n }),\n otelGroupTurns: flag({\n long: 'otel-group-turns',\n description:\n 'Group messages into turn spans for multi-turn evaluations (requires --export-otel)',\n }),\n retryErrors: option({\n type: optional(string),\n long: 'retry-errors',\n description: 'Path to previous output JSONL — re-run only execution_error test cases',\n }),\n strict: flag({\n long: 'strict',\n description: 'Exit with error on version mismatch (instead of warning)',\n }),\n },\n handler: async (args) => {\n // Launch interactive wizard when no eval paths and stdin is a TTY\n if (args.evalPaths.length === 0 && process.stdin.isTTY) {\n const { launchInteractiveWizard } = await import('../interactive.js');\n await launchInteractiveWizard();\n return;\n }\n\n const resolvedPaths = await resolveEvalPaths(args.evalPaths, process.cwd());\n const rawOptions: Record<string, unknown> = {\n target: args.target,\n targets: args.targets,\n filter: args.testId,\n workers: args.workers,\n out: args.out,\n output: args.output,\n outputFormat: args.outputFormat,\n dryRun: args.dryRun,\n dryRunDelay: args.dryRunDelay,\n dryRunDelayMin: args.dryRunDelayMin,\n dryRunDelayMax: args.dryRunDelayMax,\n agentTimeout: args.agentTimeout,\n maxRetries: args.maxRetries,\n cache: args.cache,\n noCache: args.noCache,\n verbose: args.verbose,\n workspaceMode: args.workspaceMode,\n workspacePath: args.workspacePath,\n trace: false,\n otelFile: args.otelFile,\n traceFile: args.traceFile,\n exportOtel: args.exportOtel,\n otelBackend: args.otelBackend,\n otelCaptureContent: args.otelCaptureContent,\n otelGroupTurns: args.otelGroupTurns,\n retryErrors: args.retryErrors,\n strict: args.strict,\n };\n await runEvalCommand({ testFiles: resolvedPaths, rawOptions });\n },\n});\n","import { readFile, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport { type YAMLSeq, isMap, isSeq, parseDocument } from 'yaml';\n\nimport {\n type GenerateRubricsOptions as CoreGenerateRubricsOptions,\n type JsonObject,\n type JsonValue,\n type RubricItem,\n createProvider,\n generateRubrics,\n} from '@agentv/core';\nimport { selectTarget } from '../eval/targets.js';\n\ninterface GenerateRubricsOptions {\n readonly file: string;\n readonly target?: string;\n readonly verbose?: boolean;\n}\n\ninterface RawEvalCase {\n readonly id?: string;\n readonly criteria?: string;\n readonly outcome?: string;\n readonly question?: string;\n readonly reference_answer?: string;\n readonly rubrics?: JsonValue;\n readonly input?: readonly unknown[];\n}\n\ninterface RawTestSuite {\n readonly tests?: readonly unknown[];\n readonly target?: string;\n readonly execution?: {\n readonly target?: string;\n };\n}\n\nfunction isJsonObject(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction asString(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\n// Allow overriding generateRubrics for testing\nasync function loadRubricGenerator(): Promise<\n (options: CoreGenerateRubricsOptions) => Promise<readonly RubricItem[]>\n> {\n const customGenerator = process.env.AGENTEVO_CLI_RUBRIC_GENERATOR;\n if (customGenerator) {\n const generatorPath = path.resolve(customGenerator);\n const generatorUrl = pathToFileURL(generatorPath).href;\n const module = (await import(generatorUrl)) as {\n generateRubrics: (options: CoreGenerateRubricsOptions) => Promise<readonly RubricItem[]>;\n };\n return module.generateRubrics;\n }\n return generateRubrics;\n}\n\nexport async function generateRubricsCommand(options: GenerateRubricsOptions): Promise<void> {\n const { file, target: targetOverride, verbose } = options;\n\n console.log(`Generating rubrics for: ${file}`);\n\n // Read the YAML file\n const absolutePath = path.resolve(file);\n const content = await readFile(absolutePath, 'utf8');\n const doc = parseDocument(content);\n const parsed = doc.toJSON() as unknown;\n\n if (!isJsonObject(parsed)) {\n throw new Error(`Invalid YAML file format: ${file}`);\n }\n\n const suite = parsed as RawTestSuite;\n const evalcases = suite.tests;\n\n if (!Array.isArray(evalcases)) {\n throw new Error(`No tests found in ${file}`);\n }\n\n // Resolve target using the same logic as eval command\n const targetSelection = await selectTarget({\n testFilePath: absolutePath,\n repoRoot: process.cwd(),\n cwd: process.cwd(),\n cliTargetName: targetOverride,\n dryRun: false,\n dryRunDelay: 0,\n dryRunDelayMin: 0,\n dryRunDelayMax: 0,\n env: process.env,\n });\n\n if (verbose) {\n console.log(`Using target: ${targetSelection.targetName}`);\n }\n\n const provider = createProvider(targetSelection.resolvedTarget);\n const generateRubricsFunc = await loadRubricGenerator();\n\n let updatedCount = 0;\n let skippedCount = 0;\n\n // Get the cases node from the document for modification\n const evalcasesNode = doc.getIn(['tests']);\n if (!evalcasesNode || !isSeq(evalcasesNode)) {\n throw new Error('tests must be a sequence');\n }\n\n // Process each test\n for (let i = 0; i < evalcases.length; i++) {\n const rawCase = evalcases[i];\n if (!isJsonObject(rawCase)) {\n continue;\n }\n\n const evalCase = rawCase as RawEvalCase;\n const id = asString(evalCase.id) ?? 'unknown';\n const expectedOutcome = asString(evalCase.criteria) ?? asString(evalCase.outcome);\n\n // Skip if no expected outcome\n if (!expectedOutcome) {\n if (verbose) {\n console.log(` Skipping ${id}: no criteria`);\n }\n skippedCount++;\n continue;\n }\n\n // Skip if rubrics already exist\n if (evalCase.rubrics !== undefined) {\n if (verbose) {\n console.log(` Skipping ${id}: rubrics already defined`);\n }\n skippedCount++;\n continue;\n }\n\n // Generate rubrics\n console.log(` Generating rubrics for: ${id}`);\n\n const question = extractQuestion(evalCase);\n const referenceAnswer = asString(evalCase.reference_answer);\n\n const rubrics = await generateRubricsFunc({\n criteria: expectedOutcome,\n question,\n referenceAnswer,\n provider,\n });\n\n // Update the test with rubrics in the YAML document\n const caseNode = (evalcasesNode as YAMLSeq).items[i];\n if (caseNode && isMap(caseNode)) {\n caseNode.set(\n 'rubrics',\n rubrics\n .filter((r) => r.outcome !== undefined)\n .map((r) => ({\n id: r.id,\n outcome: r.outcome,\n weight: r.weight,\n required: r.required ?? true,\n })),\n );\n }\n\n updatedCount++;\n\n if (verbose) {\n console.log(` Generated ${rubrics.length} rubric(s)`);\n }\n }\n\n // Write back to file\n if (updatedCount > 0) {\n const output = doc.toString();\n await writeFile(absolutePath, output, 'utf8');\n console.log(`\\nUpdated ${updatedCount} test(s) with generated rubrics`);\n if (skippedCount > 0) {\n console.log(`Skipped ${skippedCount} test(s)`);\n }\n } else {\n console.log('\\nNo tests updated (all already have rubrics or missing criteria)');\n }\n}\n\nfunction extractQuestion(evalCase: RawEvalCase): string | undefined {\n const explicitQuestion = asString(evalCase.question);\n if (explicitQuestion) {\n return explicitQuestion;\n }\n\n // Try to extract from input\n const inputMessages = evalCase.input;\n if (!Array.isArray(inputMessages)) {\n return undefined;\n }\n\n for (const msg of inputMessages) {\n if (!isJsonObject(msg)) {\n continue;\n }\n if (msg.role === 'user' && typeof msg.content === 'string') {\n return msg.content;\n }\n }\n\n return undefined;\n}\n","import { command, flag, option, optional, positional, string, subcommands } from 'cmd-ts';\n\nimport { generateRubricsCommand } from './rubrics.js';\n\nconst rubricsCommand = command({\n name: 'rubrics',\n description: 'Generate rubrics from criteria in YAML eval file',\n args: {\n file: positional({\n type: string,\n displayName: 'file',\n description: 'Path to YAML eval file',\n }),\n target: option({\n type: optional(string),\n long: 'target',\n short: 't',\n description: 'Override target for rubric generation (default: file target or openai:gpt-4o)',\n }),\n verbose: flag({\n long: 'verbose',\n short: 'v',\n description: 'Show detailed progress',\n }),\n },\n handler: async ({ file, target, verbose }) => {\n try {\n await generateRubricsCommand({\n file,\n target,\n verbose,\n });\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n\nexport const generateCommand = subcommands({\n name: 'generate',\n description: 'Generate evaluation artifacts',\n cmds: {\n rubrics: rubricsCommand,\n },\n});\n","import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport path from 'node:path';\nimport * as readline from 'node:readline/promises';\nimport { command, option, optional, string } from 'cmd-ts';\n\nimport { getAgentvTemplates } from '../../templates/index.js';\n\nexport interface InitCommandOptions {\n targetPath?: string;\n}\n\nfunction printSkillFirstInstructions(): void {\n console.log('\\nAI-skills-first setup (recommended):');\n console.log(' npx allagents plugin marketplace add EntityProcess/agentv');\n console.log(' npx allagents plugin install agentv-dev@agentv');\n console.log(' Then ask your agent: \"Set up AgentV in this repo.\"');\n}\n\nasync function promptYesNo(message: string): Promise<boolean> {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n try {\n const answer = await rl.question(`${message} (y/N): `);\n return answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes';\n } finally {\n rl.close();\n }\n}\n\nexport async function initCommand(options: InitCommandOptions = {}): Promise<void> {\n const targetPath = path.resolve(options.targetPath ?? '.');\n const agentvDir = path.join(targetPath, '.agentv');\n\n // Get templates for legacy bootstrap files only.\n const agentvTemplates = getAgentvTemplates();\n\n // Separate .env.example from other .agentv templates\n const envTemplate = agentvTemplates.find((t) => t.path === '.env.example');\n const otherAgentvTemplates = agentvTemplates.filter((t) => t.path !== '.env.example');\n\n // Check if any files already exist\n const existingFiles: string[] = [];\n\n // Check for .env.example in root\n if (envTemplate) {\n const envFilePath = path.join(targetPath, '.env.example');\n if (existsSync(envFilePath)) {\n existingFiles.push('.env.example');\n }\n }\n\n if (existsSync(agentvDir)) {\n for (const template of otherAgentvTemplates) {\n const targetFilePath = path.join(agentvDir, template.path);\n if (existsSync(targetFilePath)) {\n existingFiles.push(path.relative(targetPath, targetFilePath));\n }\n }\n }\n // If files exist, prompt user\n if (existingFiles.length > 0) {\n console.log('We detected an existing setup:');\n for (const file of existingFiles) {\n console.log(` - ${file}`);\n }\n console.log();\n\n const shouldReplace = await promptYesNo('Do you want to replace these files?');\n if (!shouldReplace) {\n console.log('\\nInit cancelled. No files were changed.');\n printSkillFirstInstructions();\n return;\n }\n console.log();\n }\n\n // Create .agentv directory if it doesn't exist\n if (!existsSync(agentvDir)) {\n mkdirSync(agentvDir, { recursive: true });\n }\n\n // Create .env.example in the current working directory\n if (envTemplate) {\n const envFilePath = path.join(targetPath, '.env.example');\n writeFileSync(envFilePath, envTemplate.content, 'utf-8');\n console.log('Created .env.example');\n }\n\n // Copy remaining .agentv templates (excluding .env.example)\n for (const template of otherAgentvTemplates) {\n const targetFilePath = path.join(agentvDir, template.path);\n const targetDirPath = path.dirname(targetFilePath);\n\n // Create directory if needed\n if (!existsSync(targetDirPath)) {\n mkdirSync(targetDirPath, { recursive: true });\n }\n\n // Write file\n writeFileSync(targetFilePath, template.content, 'utf-8');\n console.log(`Created ${path.relative(targetPath, targetFilePath)}`);\n }\n\n console.log('\\nAgentV initialized successfully!');\n console.log('\\nFiles installed to root:');\n if (envTemplate) {\n console.log(' - .env.example');\n }\n console.log(`\\nFiles installed to ${path.relative(targetPath, agentvDir)}:`);\n for (const t of otherAgentvTemplates) {\n console.log(` - ${t.path}`);\n }\n console.log('\\nYou can now:');\n console.log(' 1. Copy .env.example to .env and add your API credentials');\n console.log(' 2. Configure targets in .agentv/targets.yaml');\n console.log(' 3. Use AI skills to create and run evals');\n printSkillFirstInstructions();\n}\n\nexport const initCmdTsCommand = command({\n name: 'init',\n description: 'Initialize AgentV bootstrap files in your project',\n args: {\n path: option({\n type: optional(string),\n long: 'path',\n description: 'Target directory for initialization (default: current directory)',\n }),\n },\n handler: async ({ path: targetPath }) => {\n try {\n await initCommand({ targetPath });\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { readFileSync, readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nexport interface Template {\n path: string;\n content: string;\n}\n\nexport function getAgentvTemplates(): Template[] {\n return getTemplatesFromDir('.agentv');\n}\n\nfunction getTemplatesFromDir(subdir: string): Template[] {\n const currentDir = path.dirname(fileURLToPath(import.meta.url));\n\n // Check if we're running from dist or src\n let templatesDir: string;\n if (currentDir.includes(`${path.sep}dist`)) {\n // Production: templates are at dist/templates/\n templatesDir = path.join(currentDir, 'templates', subdir);\n } else {\n // Development: templates are at src/templates/ (same directory as this file)\n templatesDir = path.join(currentDir, subdir);\n }\n\n return readTemplatesRecursively(templatesDir, '');\n}\n\nfunction readTemplatesRecursively(dir: string, relativePath: string): Template[] {\n const templates: Template[] = [];\n const entries = readdirSync(dir);\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry);\n const stat = statSync(fullPath);\n const entryRelativePath = relativePath ? path.join(relativePath, entry) : entry;\n\n if (stat.isDirectory()) {\n // Recursively read subdirectories\n templates.push(...readTemplatesRecursively(fullPath, entryRelativePath));\n } else {\n // Read file content\n const content = readFileSync(fullPath, 'utf-8');\n templates.push({\n path: entryRelativePath.split(path.sep).join('/'), // Normalize to forward slashes\n content,\n });\n }\n }\n\n return templates;\n}\n","import { spawn } from 'node:child_process';\nimport { command, flag, subcommands } from 'cmd-ts';\nimport packageJson from '../../../package.json' with { type: 'json' };\n\n/**\n * Detect package manager from the script path.\n * If the path contains '.bun', it was installed via bun; otherwise assume npm.\n */\nexport function detectPackageManagerFromPath(scriptPath: string): 'bun' | 'npm' {\n if (scriptPath.includes('.bun')) {\n return 'bun';\n }\n return 'npm';\n}\n\nfunction detectPackageManager(): 'bun' | 'npm' {\n return detectPackageManagerFromPath(process.argv[1] ?? '');\n}\n\nfunction runCommand(cmd: string, args: string[]): Promise<{ exitCode: number; stdout: string }> {\n return new Promise((resolve, reject) => {\n const child = spawn(cmd, args, { stdio: ['inherit', 'pipe', 'inherit'], shell: true });\n let stdout = '';\n child.stdout?.on('data', (data: Buffer) => {\n process.stdout.write(data);\n stdout += data.toString();\n });\n child.on('error', reject);\n child.on('close', (code) => resolve({ exitCode: code ?? 1, stdout }));\n });\n}\n\nconst updateCommand = command({\n name: 'update',\n description: 'Update agentv to the latest version',\n args: {\n npm: flag({ long: 'npm', description: 'Force update using npm' }),\n bun: flag({ long: 'bun', description: 'Force update using bun' }),\n },\n handler: async ({ npm, bun }) => {\n if (npm && bun) {\n console.error('Error: Cannot specify both --npm and --bun');\n process.exit(1);\n }\n\n let pm: 'bun' | 'npm';\n if (npm) {\n pm = 'npm';\n } else if (bun) {\n pm = 'bun';\n } else {\n pm = detectPackageManager();\n }\n\n const currentVersion = packageJson.version;\n console.log(`Current version: ${currentVersion}`);\n console.log(`Updating agentv using ${pm}...\\n`);\n\n const args = pm === 'npm' ? ['install', '-g', 'agentv@latest'] : ['add', '-g', 'agentv@latest'];\n\n try {\n const result = await runCommand(pm, args);\n\n if (result.exitCode !== 0) {\n console.error('\\nUpdate failed.');\n process.exit(1);\n }\n\n // Get new version\n let newVersion: string | undefined;\n try {\n const versionResult = await runCommand('agentv', ['--version']);\n newVersion = versionResult.stdout.trim();\n } catch {\n // Ignore - version check is best-effort\n }\n\n if (newVersion) {\n console.log(`\\nUpdate complete: ${currentVersion} → ${newVersion}`);\n } else {\n console.log('\\nUpdate complete.');\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.message.includes('ENOENT') || error.message.includes('not found')) {\n const alternative = pm === 'npm' ? 'bun' : 'npm';\n console.error(`Error: ${pm} not found. Try using --${alternative} flag.`);\n } else {\n console.error(`Error: ${error.message}`);\n }\n process.exit(1);\n }\n throw error;\n }\n },\n});\n\nexport const selfCommand = subcommands({\n name: 'self',\n description: 'Manage the agentv installation',\n cmds: {\n update: updateCommand,\n },\n});\n","import { readFileSync, readdirSync, statSync } from 'node:fs';\nimport path from 'node:path';\n\n// ANSI color codes (no dependency needed)\nconst colors = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n green: '\\x1b[32m',\n red: '\\x1b[31m',\n yellow: '\\x1b[33m',\n cyan: '\\x1b[36m',\n gray: '\\x1b[90m',\n};\n\nconst noColor = process.env.NO_COLOR !== undefined || !process.stdout.isTTY;\nexport const c = noColor\n ? (Object.fromEntries(Object.keys(colors).map((k) => [k, ''])) as typeof colors)\n : colors;\n\n// Regex to strip ANSI escape codes\nconst ansiPattern = new RegExp(`${String.fromCharCode(27)}\\\\[[0-9;]*m`, 'g');\n\nexport function stripAnsi(str: string): string {\n return str.replace(ansiPattern, '');\n}\n\nexport function padRight(str: string, len: number): string {\n const plainLen = stripAnsi(str).length;\n return str + ' '.repeat(Math.max(0, len - plainLen));\n}\n\nexport function padLeft(str: string, len: number): string {\n const plainLen = stripAnsi(str).length;\n return ' '.repeat(Math.max(0, len - plainLen)) + str;\n}\n\n/**\n * A raw JSONL result record with snake_case keys as stored on disk.\n */\nexport interface RawResult {\n timestamp?: string;\n test_id?: string;\n eval_id?: string;\n dataset?: string;\n conversation_id?: string;\n score: number;\n hits?: string[];\n misses?: string[];\n answer?: string;\n target?: string;\n reasoning?: string;\n error?: string;\n scores?: RawEvaluatorScore[];\n trace?: RawTraceSummary;\n // Promoted execution metrics (snake_case from JSONL)\n token_usage?: { input: number; output: number; cached?: number };\n cost_usd?: number;\n duration_ms?: number;\n start_time?: string;\n end_time?: string;\n input?: unknown;\n output?: unknown;\n trials?: unknown[];\n aggregation?: unknown;\n file_changes?: string;\n}\n\nexport interface RawEvaluatorScore {\n name: string;\n type: string;\n score: number;\n hits?: string[];\n misses?: string[];\n reasoning?: string;\n weight?: number;\n}\n\nexport interface RawTraceSummary {\n event_count?: number;\n tool_names?: string[];\n tool_calls_by_name?: Record<string, number>;\n error_count?: number;\n tool_durations?: Record<string, number[]>;\n llm_call_count?: number;\n}\n\n/**\n * Load all result records from a JSONL file.\n */\nexport function loadResultFile(filePath: string): RawResult[] {\n const content = readFileSync(filePath, 'utf8');\n const lines = content\n .trim()\n .split('\\n')\n .filter((line) => line.trim());\n\n return lines.map((line, i) => {\n const record = JSON.parse(line) as RawResult;\n if (typeof record.score !== 'number') {\n throw new Error(`Missing or invalid score in result at line ${i + 1}: ${line.slice(0, 100)}`);\n }\n return record;\n });\n}\n\n/**\n * Metadata about a result file for listing.\n */\nexport interface ResultFileMeta {\n path: string;\n filename: string;\n timestamp: string;\n testCount: number;\n passRate: number;\n avgScore: number;\n sizeBytes: number;\n}\n\n/**\n * Enumerate result files in the .agentv/results/ directory.\n */\nexport function listResultFiles(cwd: string, limit?: number): ResultFileMeta[] {\n const resultsDir = path.join(cwd, '.agentv', 'results');\n\n let files: string[];\n try {\n files = readdirSync(resultsDir).filter((f) => f.endsWith('.jsonl'));\n } catch {\n return [];\n }\n\n // Sort by filename (which contains timestamp) descending (most recent first)\n files.sort((a, b) => b.localeCompare(a));\n\n if (limit !== undefined && limit > 0) {\n files = files.slice(0, limit);\n }\n\n const metas: ResultFileMeta[] = [];\n\n for (const filename of files) {\n const filePath = path.join(resultsDir, filename);\n try {\n const stat = statSync(filePath);\n const results = loadResultFile(filePath);\n\n const testCount = results.length;\n const passCount = results.filter((r) => r.score >= 1.0).length;\n const passRate = testCount > 0 ? passCount / testCount : 0;\n const avgScore = testCount > 0 ? results.reduce((sum, r) => sum + r.score, 0) / testCount : 0;\n\n // Extract timestamp from filename or first record\n const filenameTimestamp = extractTimestampFromFilename(filename);\n const timestamp = filenameTimestamp ?? results[0]?.timestamp ?? 'unknown';\n\n metas.push({\n path: filePath,\n filename,\n timestamp,\n testCount,\n passRate,\n avgScore,\n sizeBytes: stat.size,\n });\n } catch {\n // Skip unreadable files\n }\n }\n\n return metas;\n}\n\n/**\n * Extract ISO timestamp from eval filename like eval_2026-02-20T21-38-05-833Z.jsonl\n */\nexport function extractTimestampFromFilename(filename: string): string | undefined {\n const match = filename.match(/eval_(\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z)/);\n if (!match) return undefined;\n // Re-convert dashes back to colons/dots for display\n return match[1].replace(/-(\\d{2})-(\\d{2})-(\\d{3})Z$/, ':$1:$2.$3Z');\n}\n\n/**\n * Format a number with commas for display.\n */\nexport function formatNumber(n: number): string {\n return n.toLocaleString();\n}\n\n/**\n * Format duration in ms to human-readable.\n */\nexport function formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n const minutes = Math.floor(ms / 60000);\n const seconds = ((ms % 60000) / 1000).toFixed(0);\n return `${minutes}m${seconds}s`;\n}\n\n/**\n * Format cost in USD.\n */\nexport function formatCost(usd: number): string {\n if (usd < 0.01) return `$${usd.toFixed(4)}`;\n return `$${usd.toFixed(3)}`;\n}\n\n/**\n * Format file size for display.\n */\nexport function formatSize(bytes: number): string {\n if (bytes < 1024) return `${bytes}B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;\n}\n\n/**\n * Format a score as percentage.\n */\nexport function formatScore(score: number): string {\n return `${(score * 100).toFixed(0)}%`;\n}\n","import { command, number, oneOf, option, optional, string } from 'cmd-ts';\nimport { toSnakeCaseDeep } from '../../utils/case-conversion.js';\nimport {\n type ResultFileMeta,\n c,\n formatScore,\n formatSize,\n listResultFiles,\n padLeft,\n padRight,\n} from './utils.js';\n\nfunction formatListTable(metas: ResultFileMeta[]): string {\n const lines: string[] = [];\n\n if (metas.length === 0) {\n lines.push(`${c.yellow}No result files found in .agentv/results/${c.reset}`);\n lines.push(`${c.dim}Run an evaluation first: agentv run <eval-file>${c.reset}`);\n return lines.join('\\n');\n }\n\n lines.push('');\n lines.push(`${c.bold}Evaluation Results${c.reset} ${c.dim}(.agentv/results/)${c.reset}`);\n lines.push('');\n\n // Column widths\n const maxFileLen = Math.max(4, ...metas.map((m) => m.filename.length));\n\n // Header\n const header = ` ${padRight('File', maxFileLen)} ${padLeft('Tests', 5)} ${padLeft('Pass', 5)} ${padLeft('Score', 6)} ${padLeft('Size', 7)} Timestamp`;\n lines.push(`${c.dim}${header}${c.reset}`);\n lines.push(\n `${c.dim} ${'─'.repeat(maxFileLen)} ${'─'.repeat(5)} ${'─'.repeat(5)} ${'─'.repeat(6)} ${'─'.repeat(7)} ${'─'.repeat(24)}${c.reset}`,\n );\n\n for (const meta of metas) {\n const passColor = meta.passRate >= 1.0 ? c.green : meta.passRate >= 0.5 ? c.yellow : c.red;\n const scoreColor = meta.avgScore >= 0.9 ? c.green : meta.avgScore >= 0.5 ? c.yellow : c.red;\n\n const row = ` ${padRight(meta.filename, maxFileLen)} ${padLeft(String(meta.testCount), 5)} ${padLeft(`${passColor}${formatScore(meta.passRate)}${c.reset}`, 5)} ${padLeft(`${scoreColor}${formatScore(meta.avgScore)}${c.reset}`, 6)} ${padLeft(formatSize(meta.sizeBytes), 7)} ${c.dim}${meta.timestamp}${c.reset}`;\n lines.push(row);\n }\n\n lines.push('');\n lines.push(`${c.dim}${metas.length} result file${metas.length !== 1 ? 's' : ''} found${c.reset}`);\n lines.push('');\n\n return lines.join('\\n');\n}\n\nexport const traceListCommand = command({\n name: 'list',\n description: 'List recent evaluation result files from .agentv/results/',\n args: {\n limit: option({\n type: optional(number),\n long: 'limit',\n short: 'n',\n description: 'Maximum number of results to show (default: all)',\n }),\n format: option({\n type: optional(oneOf(['table', 'json'])),\n long: 'format',\n short: 'f',\n description: 'Output format: table (default) or json',\n }),\n dir: option({\n type: optional(string),\n long: 'dir',\n short: 'd',\n description: 'Working directory (default: current directory)',\n }),\n },\n handler: async ({ limit, format, dir }) => {\n const cwd = dir ?? process.cwd();\n const outputFormat = format ?? 'table';\n\n try {\n const metas = listResultFiles(cwd, limit);\n\n if (outputFormat === 'json') {\n console.log(JSON.stringify(toSnakeCaseDeep(metas), null, 2));\n } else {\n console.log(formatListTable(metas));\n }\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import {\n type EvalTest,\n type EvaluationContext,\n type EvaluationScore,\n type Evaluator,\n type EvaluatorConfig,\n type EvaluatorDispatchContext,\n type Message,\n type Provider,\n type ProviderRequest,\n type ProviderResponse,\n type TraceSummary,\n createBuiltinRegistry,\n toCamelCaseDeep,\n} from '@agentv/core';\nimport { command, oneOf, option, optional, positional, string } from 'cmd-ts';\nimport { type RawResult, c, formatScore, loadResultFile, padLeft, padRight } from './utils.js';\n\n/**\n * Evaluator types that work without an LLM provider.\n */\nconst SUPPORTED_TYPES = [\n 'contains',\n 'regex',\n 'is-json',\n 'equals',\n 'latency',\n 'cost',\n 'token-usage',\n 'execution-metrics',\n] as const;\n\n/**\n * Parse key=value pairs from a string like \"max_tool_calls=10,max_tokens=2000\"\n */\nfunction parseKeyValues(s: string): Record<string, string> {\n const result: Record<string, string> = {};\n if (!s) return result;\n for (const pair of s.split(',')) {\n const eqIdx = pair.indexOf('=');\n if (eqIdx === -1) continue;\n result[pair.slice(0, eqIdx).trim()] = pair.slice(eqIdx + 1).trim();\n }\n return result;\n}\n\n/**\n * Parse an inline evaluator spec string into an EvaluatorConfig.\n *\n * Supported formats:\n * contains:value\n * regex:pattern\n * is-json\n * equals:value\n * latency:<threshold_ms>\n * cost:<budget_usd>\n * token-usage:max_total=N,max_input=N,max_output=N\n * execution-metrics:max_tool_calls=N,max_tokens=N,max_llm_calls=N,...\n */\nexport function parseAssertSpec(spec: string): EvaluatorConfig {\n const colonIdx = spec.indexOf(':');\n // Normalize snake_case to kebab-case for backward compat\n const type = (colonIdx === -1 ? spec : spec.slice(0, colonIdx)).replace(/_/g, '-');\n const params = colonIdx === -1 ? '' : spec.slice(colonIdx + 1);\n\n switch (type) {\n case 'contains':\n if (!params) throw new Error('contains requires a value: contains:<value>');\n return { name: 'contains', type: 'contains', value: params } as EvaluatorConfig;\n\n case 'regex':\n if (!params) throw new Error('regex requires a pattern: regex:<pattern>');\n return { name: 'regex', type: 'regex', value: params } as EvaluatorConfig;\n\n case 'is-json':\n return { name: 'is-json', type: 'is-json' } as EvaluatorConfig;\n\n case 'equals':\n if (!params) throw new Error('equals requires a value: equals:<value>');\n return { name: 'equals', type: 'equals', value: params } as EvaluatorConfig;\n\n case 'latency': {\n const threshold = Number(params);\n if (!params || Number.isNaN(threshold))\n throw new Error('latency requires a threshold in ms: latency:<ms>');\n return { name: 'latency', type: 'latency', threshold } as EvaluatorConfig;\n }\n\n case 'cost': {\n const budget = Number(params);\n if (!params || Number.isNaN(budget))\n throw new Error('cost requires a budget in USD: cost:<usd>');\n return { name: 'cost', type: 'cost', budget } as EvaluatorConfig;\n }\n\n case 'token-usage': {\n const kv = parseKeyValues(params);\n const config: Record<string, unknown> = { name: 'token-usage', type: 'token-usage' };\n if (kv.max_total) config.max_total = Number(kv.max_total);\n if (kv.max_input) config.max_input = Number(kv.max_input);\n if (kv.max_output) config.max_output = Number(kv.max_output);\n return config as EvaluatorConfig;\n }\n\n case 'execution-metrics': {\n const kv = parseKeyValues(params);\n const config: Record<string, unknown> = {\n name: 'execution-metrics',\n type: 'execution-metrics',\n };\n if (kv.max_tool_calls) config.max_tool_calls = Number(kv.max_tool_calls);\n if (kv.max_llm_calls) config.max_llm_calls = Number(kv.max_llm_calls);\n if (kv.max_tokens) config.max_tokens = Number(kv.max_tokens);\n if (kv.max_cost_usd) config.max_cost_usd = Number(kv.max_cost_usd);\n if (kv.max_duration_ms) config.max_duration_ms = Number(kv.max_duration_ms);\n return config as EvaluatorConfig;\n }\n\n default:\n throw new Error(\n `Unsupported evaluator type: \"${type}\". Supported: ${SUPPORTED_TYPES.join(', ')}`,\n );\n }\n}\n\n/**\n * Convert a snake_case RawResult trace to camelCase TraceSummary.\n */\nfunction toTraceSummary(raw: RawResult): TraceSummary | undefined {\n if (!raw.trace) return undefined;\n return toCamelCaseDeep(raw.trace) as TraceSummary;\n}\n\n/**\n * Extract candidate answer from a result record.\n * Uses `answer` field, or stringifies output for deterministic assertions.\n */\nfunction extractCandidate(raw: RawResult): string {\n if (raw.answer !== undefined) return raw.answer;\n if (raw.output !== undefined)\n return typeof raw.output === 'string' ? raw.output : JSON.stringify(raw.output);\n return '';\n}\n\n/**\n * Build a minimal EvalTest stub from a result record.\n * Only used to satisfy the EvaluationContext interface — deterministic and\n * trace-based evaluators don't access these fields.\n */\nfunction buildEvalTest(raw: RawResult): EvalTest {\n return {\n id: raw.test_id ?? 'unknown',\n question: '',\n input: [],\n input_segments: [],\n expected_output: [],\n guideline_paths: [],\n file_paths: [],\n criteria: '',\n };\n}\n\n/**\n * A no-op provider stub for evaluators that don't call LLM providers.\n */\nconst stubProvider: Provider = {\n id: 'trace-score-stub',\n kind: 'mock',\n targetName: 'trace-score-stub',\n invoke(_request: ProviderRequest): Promise<ProviderResponse> {\n throw new Error('trace score does not support LLM-based evaluators');\n },\n};\n\n/**\n * A no-op evaluator stub used as the required llmJudge in the dispatch context.\n */\nconst stubLlmJudge: Evaluator = {\n kind: 'llm-judge',\n evaluate(): EvaluationScore {\n throw new Error('trace score does not support LLM-based evaluators');\n },\n};\n\ninterface ScoreResult {\n testId: string;\n candidate: string;\n originalScore: number;\n newScore: number;\n verdict: string;\n hits: readonly string[];\n misses: readonly string[];\n reasoning?: string;\n}\n\nasync function runScore(\n results: RawResult[],\n evaluatorConfig: EvaluatorConfig,\n testIdFilter?: string,\n): Promise<ScoreResult[]> {\n const registry = createBuiltinRegistry();\n\n const dispatchContext: EvaluatorDispatchContext = {\n llmJudge: stubLlmJudge,\n registry,\n };\n\n const evaluator = await registry.create(evaluatorConfig, dispatchContext);\n const scored: ScoreResult[] = [];\n\n for (const raw of results) {\n if (testIdFilter && raw.test_id !== testIdFilter) continue;\n\n const trace = toTraceSummary(raw);\n const candidate = extractCandidate(raw);\n const output = raw.output as readonly Message[] | undefined;\n\n const evalContext: EvaluationContext = {\n evalCase: buildEvalTest(raw),\n candidate,\n target: { kind: 'custom' as const, name: raw.target ?? 'unknown', config: {} } as never,\n provider: stubProvider,\n attempt: 1,\n promptInputs: { question: '', guidelines: '' },\n now: new Date(),\n output: Array.isArray(output) ? output : undefined,\n trace,\n tokenUsage: raw.token_usage\n ? (toCamelCaseDeep(raw.token_usage) as EvaluationContext['tokenUsage'])\n : undefined,\n costUsd: raw.cost_usd,\n durationMs: raw.duration_ms,\n startTime: raw.start_time,\n endTime: raw.end_time,\n };\n\n const score = await evaluator.evaluate(evalContext);\n scored.push({\n testId: raw.test_id ?? 'unknown',\n candidate: candidate.slice(0, 80),\n originalScore: raw.score,\n newScore: score.score,\n verdict: score.verdict,\n hits: score.hits,\n misses: score.misses,\n reasoning: score.reasoning,\n });\n }\n\n return scored;\n}\n\nfunction renderTable(scored: ScoreResult[], assertSpec: string): string {\n const lines: string[] = [];\n\n // Header\n const cols = [\n { header: 'Test ID', width: 24 },\n { header: 'Orig', width: 6 },\n { header: 'New', width: 6 },\n { header: 'Verdict', width: 8 },\n { header: 'Detail', width: 50 },\n ];\n\n const headerLine = cols\n .map((col) => padRight(`${c.bold}${col.header}${c.reset}`, col.width))\n .join(' ');\n lines.push(headerLine);\n lines.push(cols.map((col) => '─'.repeat(col.width)).join('──'));\n\n for (const r of scored) {\n const verdictColor = r.verdict === 'pass' ? c.green : c.red;\n const detail =\n r.misses.length > 0\n ? r.misses[0].slice(0, 48)\n : r.hits.length > 0\n ? r.hits[0].slice(0, 48)\n : (r.reasoning?.slice(0, 48) ?? '');\n\n const row = [\n padRight(r.testId.slice(0, 24), cols[0].width),\n padLeft(formatScore(r.originalScore), cols[1].width),\n padLeft(`${verdictColor}${formatScore(r.newScore)}${c.reset}`, cols[2].width),\n padRight(`${verdictColor}${r.verdict.toUpperCase()}${c.reset}`, cols[3].width),\n detail.slice(0, cols[4].width),\n ].join(' ');\n lines.push(row);\n }\n\n // Summary\n const passCount = scored.filter((r) => r.verdict === 'pass').length;\n const total = scored.length;\n const meanScore = total > 0 ? scored.reduce((sum, r) => sum + r.newScore, 0) / total : 0;\n lines.push('');\n lines.push(\n `${c.bold}Assert:${c.reset} ${assertSpec} ${c.bold}Results:${c.reset} ${passCount}/${total} passed (${formatScore(passCount / (total || 1))}) ${c.bold}Mean:${c.reset} ${formatScore(meanScore)}`,\n );\n\n return lines.join('\\n');\n}\n\nexport const traceScoreCommand = command({\n name: 'score',\n description: 'Run evaluators against existing result files post-hoc',\n args: {\n file: positional({\n type: string,\n displayName: 'result-file',\n description: 'Path to JSONL result file',\n }),\n assert: option({\n type: string,\n long: 'assert',\n short: 'a',\n description:\n 'Evaluator spec: contains:<val>, regex:<pat>, is-json, equals:<val>, latency:<ms>, cost:<usd>, token-usage:<params>, execution-metrics:<params>',\n }),\n testId: option({\n type: optional(string),\n long: 'test-id',\n description: 'Filter to a specific test ID',\n }),\n format: option({\n type: optional(oneOf(['json', 'table'])),\n long: 'format',\n short: 'f',\n description: 'Output format (default: table)',\n }),\n },\n handler: async ({ file, assert: assertSpec, testId, format }) => {\n // Parse the evaluator spec\n let evaluatorConfig: EvaluatorConfig;\n try {\n evaluatorConfig = parseAssertSpec(assertSpec);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(`${c.red}Error:${c.reset} ${msg}`);\n process.exit(1);\n }\n\n // Load results\n let results: RawResult[];\n try {\n results = loadResultFile(file);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(`${c.red}Error:${c.reset} Could not load result file: ${msg}`);\n process.exit(1);\n }\n\n if (results.length === 0) {\n console.error(`${c.yellow}Warning:${c.reset} No results found in ${file}`);\n process.exit(0);\n }\n\n // Check for trace data if evaluator needs it\n const traceRequired = ['latency', 'cost', 'token-usage', 'execution-metrics'].includes(\n evaluatorConfig.type,\n );\n if (traceRequired) {\n const hasTrace = results.some(\n (r) =>\n r.trace ||\n r.cost_usd !== undefined ||\n r.duration_ms !== undefined ||\n r.token_usage !== undefined,\n );\n if (!hasTrace) {\n console.error(\n `${c.red}Error:${c.reset} Result file lacks trace data. Re-run eval with ${c.bold}--trace${c.reset} to capture trace summaries.`,\n );\n process.exit(1);\n }\n }\n\n // Run scoring\n let scored: ScoreResult[];\n try {\n scored = await runScore(results, evaluatorConfig, testId);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n console.error(`${c.red}Error:${c.reset} Scoring failed: ${msg}`);\n process.exit(1);\n }\n\n if (scored.length === 0) {\n console.error(\n `${c.yellow}Warning:${c.reset} No results matched${testId ? ` test ID \"${testId}\"` : ''}`,\n );\n process.exit(0);\n }\n\n // Output\n if (format === 'json') {\n console.log(JSON.stringify(scored, null, 2));\n } else {\n console.log(renderTable(scored, assertSpec));\n }\n\n // Exit with non-zero if any failed\n const hasFailures = scored.some((r) => r.verdict !== 'pass');\n if (hasFailures) {\n process.exit(1);\n }\n },\n});\n","import { command, flag, oneOf, option, optional, positional, string } from 'cmd-ts';\nimport {\n type RawResult,\n c,\n formatCost,\n formatDuration,\n formatNumber,\n formatScore,\n loadResultFile,\n} from './utils.js';\n\n/**\n * Render flat trace summary line (fallback when full output messages not available).\n */\nfunction renderFlatTrace(result: RawResult): string {\n const trace = result.trace;\n const parts: string[] = [];\n\n if (trace?.tool_names && trace.tool_names.length > 0) {\n const toolParts = trace.tool_names.map((name) => {\n const count = trace.tool_calls_by_name?.[name] ?? 0;\n return count > 1 ? `${name} ×${count}` : name;\n });\n parts.push(`Tools: ${toolParts.join(', ')}`);\n }\n\n if (result.duration_ms !== undefined) {\n parts.push(`Duration: ${formatDuration(result.duration_ms)}`);\n }\n\n if (result.token_usage) {\n const total = result.token_usage.input + result.token_usage.output;\n parts.push(`Tokens: ${formatNumber(total)}`);\n }\n\n if (result.cost_usd !== undefined) {\n parts.push(`Cost: ${formatCost(result.cost_usd)}`);\n }\n\n if (trace?.llm_call_count !== undefined) {\n parts.push(`LLM calls: ${trace.llm_call_count}`);\n }\n\n return parts.join(' | ');\n}\n\n/**\n * Render per-evaluator scores inline.\n */\nfunction renderScores(scores: { name: string; score: number; type: string }[]): string {\n return scores\n .map((s) => {\n const scoreColor = s.score >= 0.9 ? c.green : s.score >= 0.5 ? c.yellow : c.red;\n return `${s.name} ${scoreColor}${formatScore(s.score)}${c.reset}`;\n })\n .join(' | ');\n}\n\n// Raw output message shape (snake_case from JSONL)\ninterface RawMessage {\n role?: string;\n content?: unknown;\n tool_calls?: RawToolCall[];\n start_time?: string;\n end_time?: string;\n duration_ms?: number;\n token_usage?: { input: number; output: number; cached?: number };\n}\n\ninterface RawToolCall {\n tool: string;\n input?: unknown;\n output?: unknown;\n start_time?: string;\n end_time?: string;\n duration_ms?: number;\n}\n\n/**\n * Render tree view from output messages.\n * Shows a hierarchical trace: LLM calls → tool calls.\n */\nfunction renderTree(result: RawResult): string {\n const messages = result.output as RawMessage[] | undefined;\n\n if (!messages || messages.length === 0) {\n // Fallback to flat summary\n if (result.trace || result.duration_ms !== undefined || result.cost_usd !== undefined) {\n return renderFlatTrace(result);\n }\n return `${c.dim}No trace data available${c.reset}`;\n }\n\n const lines: string[] = [];\n const testId = result.test_id ?? result.eval_id ?? 'unknown';\n\n // Root node: test execution\n const totalDuration = result.duration_ms;\n const totalTokens = result.token_usage\n ? result.token_usage.input + result.token_usage.output\n : undefined;\n const rootParts: string[] = [testId];\n if (totalDuration !== undefined) rootParts.push(formatDuration(totalDuration));\n if (totalTokens !== undefined) rootParts.push(`${formatNumber(totalTokens)} tok`);\n if (result.cost_usd !== undefined) rootParts.push(formatCost(result.cost_usd));\n lines.push(`${c.bold}${rootParts.join(', ')}${c.reset}`);\n\n // Filter to meaningful messages (assistant with tool calls, or assistant responses)\n const steps: { type: 'llm' | 'tools'; msg: RawMessage; index: number }[] = [];\n for (let i = 0; i < messages.length; i++) {\n const msg = messages[i];\n if (msg.role === 'assistant') {\n if (msg.tool_calls && msg.tool_calls.length > 0) {\n steps.push({ type: 'tools', msg, index: i });\n } else {\n steps.push({ type: 'llm', msg, index: i });\n }\n }\n }\n\n for (let si = 0; si < steps.length; si++) {\n const step = steps[si];\n const isLast = si === steps.length - 1;\n const connector = isLast ? '└─' : '├─';\n const childPrefix = isLast ? ' ' : '│ ';\n\n if (step.type === 'llm') {\n // LLM response without tool calls\n const parts: string[] = [`${c.cyan}model${c.reset}`];\n if (step.msg.duration_ms !== undefined) parts.push(formatDuration(step.msg.duration_ms));\n if (step.msg.token_usage) {\n const tok = step.msg.token_usage.input + step.msg.token_usage.output;\n parts.push(`${formatNumber(tok)} tok`);\n }\n lines.push(`${connector} ${parts.join(', ')}`);\n } else {\n // Tool calls\n const toolCalls = step.msg.tool_calls ?? [];\n\n if (toolCalls.length === 1) {\n // Single tool call — inline\n const tc = toolCalls[0];\n const parts: string[] = [`${c.yellow}${tc.tool}${c.reset}`];\n if (tc.duration_ms !== undefined) parts.push(formatDuration(tc.duration_ms));\n lines.push(`${connector} ${parts.join(', ')}`);\n } else {\n // Multiple tool calls — expand\n const parts: string[] = [`${c.dim}tools${c.reset}`];\n if (step.msg.duration_ms !== undefined) parts.push(formatDuration(step.msg.duration_ms));\n lines.push(`${connector} ${parts.join(', ')}`);\n\n for (let ti = 0; ti < toolCalls.length; ti++) {\n const tc = toolCalls[ti];\n const isLastTool = ti === toolCalls.length - 1;\n const toolConnector = isLastTool ? '└─' : '├─';\n const tcParts: string[] = [`${c.yellow}${tc.tool}${c.reset}`];\n if (tc.duration_ms !== undefined) tcParts.push(formatDuration(tc.duration_ms));\n lines.push(`${childPrefix}${toolConnector} ${tcParts.join(', ')}`);\n }\n }\n }\n }\n\n // Scores line\n if (result.scores && result.scores.length > 0) {\n lines.push('');\n lines.push(`${c.dim}Scores:${c.reset} ${renderScores(result.scores)}`);\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Format a single result for table display.\n */\nfunction formatResultDetail(result: RawResult, index: number, tree: boolean): string {\n const lines: string[] = [];\n const testId = result.test_id ?? result.eval_id ?? `result-${index}`;\n\n if (tree) {\n // Tree view\n lines.push(renderTree(result));\n return lines.join('\\n');\n }\n\n // Standard flat view\n const scoreColor = result.score >= 0.9 ? c.green : result.score >= 0.5 ? c.yellow : c.red;\n lines.push(\n `${c.bold}${testId}${c.reset} ${scoreColor}${formatScore(result.score)}${c.reset}${result.target ? ` ${c.dim}target: ${result.target}${c.reset}` : ''}${result.dataset ? ` ${c.dim}dataset: ${result.dataset}${c.reset}` : ''}`,\n );\n\n if (result.error) {\n lines.push(` ${c.red}Error: ${result.error}${c.reset}`);\n }\n\n if (result.hits && result.hits.length > 0) {\n lines.push(` ${c.green}✓ Hits:${c.reset} ${result.hits.join(', ')}`);\n }\n if (result.misses && result.misses.length > 0) {\n lines.push(` ${c.red}✗ Misses:${c.reset} ${result.misses.join(', ')}`);\n }\n\n if (result.scores && result.scores.length > 0) {\n lines.push(` ${c.dim}Scores:${c.reset} ${renderScores(result.scores)}`);\n }\n\n if (result.trace || result.duration_ms !== undefined || result.cost_usd !== undefined) {\n lines.push(` ${c.dim}Trace:${c.reset} ${renderFlatTrace(result)}`);\n }\n\n if (result.reasoning) {\n const maxLen = 200;\n const truncated =\n result.reasoning.length > maxLen\n ? `${result.reasoning.slice(0, maxLen)}...`\n : result.reasoning;\n lines.push(` ${c.dim}Reasoning: ${truncated}${c.reset}`);\n }\n\n return lines.join('\\n');\n}\n\nfunction formatShowTable(\n results: RawResult[],\n filePath: string,\n testIdFilter?: string,\n tree?: boolean,\n): string {\n const lines: string[] = [];\n\n let filtered = results;\n if (testIdFilter) {\n filtered = results.filter((r) => (r.test_id ?? r.eval_id) === testIdFilter);\n if (filtered.length === 0) {\n lines.push(`${c.yellow}No results found with test ID \"${testIdFilter}\"${c.reset}`);\n lines.push('');\n lines.push(`${c.dim}Available test IDs:${c.reset}`);\n for (const r of results) {\n lines.push(` ${r.test_id ?? r.eval_id ?? '(unnamed)'}`);\n }\n return lines.join('\\n');\n }\n }\n\n lines.push('');\n lines.push(`${c.bold}Results:${c.reset} ${c.cyan}${filePath}${c.reset}`);\n\n const totalTests = filtered.length;\n const passCount = filtered.filter((r) => r.score >= 1.0).length;\n const failCount = totalTests - passCount;\n const avgScore = totalTests > 0 ? filtered.reduce((sum, r) => sum + r.score, 0) / totalTests : 0;\n\n lines.push(\n `${c.dim}${totalTests} test${totalTests !== 1 ? 's' : ''} | ${c.green}${passCount} passed${c.reset}${c.dim}${failCount > 0 ? ` | ${c.red}${failCount} failed${c.reset}${c.dim}` : ''} | avg score: ${formatScore(avgScore)}${c.reset}`,\n );\n lines.push('');\n\n for (let i = 0; i < filtered.length; i++) {\n lines.push(formatResultDetail(filtered[i], i, tree ?? false));\n if (i < filtered.length - 1) {\n lines.push(`${c.dim}${'─'.repeat(60)}${c.reset}`);\n }\n }\n\n lines.push('');\n return lines.join('\\n');\n}\n\nexport const traceShowCommand = command({\n name: 'show',\n description: 'Show evaluation results with trace details from a result file',\n args: {\n file: positional({\n type: string,\n displayName: 'result-file',\n description: 'Path to JSONL result file',\n }),\n testId: option({\n type: optional(string),\n long: 'test-id',\n description: 'Filter to a specific test ID',\n }),\n tree: flag({\n long: 'tree',\n description: 'Show hierarchical trace tree (requires results with --trace output)',\n }),\n format: option({\n type: optional(oneOf(['table', 'json'])),\n long: 'format',\n short: 'f',\n description: 'Output format: table (default) or json',\n }),\n },\n handler: async ({ file, testId, tree, format }) => {\n const outputFormat = format ?? 'table';\n\n try {\n const results = loadResultFile(file);\n\n let filtered = results;\n if (testId) {\n filtered = results.filter((r) => (r.test_id ?? r.eval_id) === testId);\n }\n\n if (outputFormat === 'json') {\n console.log(JSON.stringify(filtered, null, 2));\n } else {\n console.log(formatShowTable(results, file, testId, tree));\n }\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { command, oneOf, option, optional, positional, string } from 'cmd-ts';\nimport { toSnakeCaseDeep } from '../../utils/case-conversion.js';\nimport {\n type RawResult,\n c,\n formatCost,\n formatNumber,\n loadResultFile,\n padLeft,\n padRight,\n} from './utils.js';\n\n/**\n * Compute percentiles from a sorted array of numbers.\n */\nexport function percentile(sorted: number[], p: number): number {\n if (sorted.length === 0) return 0;\n const index = (p / 100) * (sorted.length - 1);\n const lower = Math.floor(index);\n const upper = Math.ceil(index);\n if (lower === upper) return sorted[lower];\n return sorted[lower] + (sorted[upper] - sorted[lower]) * (index - lower);\n}\n\nfunction mean(values: number[]): number {\n if (values.length === 0) return 0;\n return values.reduce((sum, v) => sum + v, 0) / values.length;\n}\n\ninterface MetricRow {\n name: string;\n values: number[];\n formatter: (n: number) => string;\n}\n\nfunction collectMetrics(results: RawResult[]): MetricRow[] {\n const rows: MetricRow[] = [];\n\n // Score\n const scores = results.map((r) => r.score);\n if (scores.length > 0) {\n rows.push({ name: 'score', values: scores, formatter: (n) => n.toFixed(2) });\n }\n\n // Latency\n const latencies = results.map((r) => r.duration_ms).filter((v): v is number => v !== undefined);\n if (latencies.length > 0) {\n rows.push({\n name: 'latency_s',\n values: latencies.map((ms) => ms / 1000),\n formatter: (n) => n.toFixed(1),\n });\n }\n\n // Cost\n const costs = results.map((r) => r.cost_usd).filter((v): v is number => v !== undefined);\n if (costs.length > 0) {\n rows.push({ name: 'cost_usd', values: costs, formatter: (n) => formatCost(n) });\n }\n\n // Total tokens\n const tokens = results\n .map((r) => {\n if (!r.token_usage) return undefined;\n return r.token_usage.input + r.token_usage.output;\n })\n .filter((v): v is number => v !== undefined);\n if (tokens.length > 0) {\n rows.push({\n name: 'tokens_total',\n values: tokens,\n formatter: (n) => formatNumber(Math.round(n)),\n });\n }\n\n // Tool calls\n const toolCalls = results\n .map((r) => r.trace?.event_count)\n .filter((v): v is number => v !== undefined);\n if (toolCalls.length > 0) {\n rows.push({ name: 'tool_calls', values: toolCalls, formatter: (n) => String(Math.round(n)) });\n }\n\n // LLM calls\n const llmCalls = results\n .map((r) => r.trace?.llm_call_count)\n .filter((v): v is number => v !== undefined);\n if (llmCalls.length > 0) {\n rows.push({ name: 'llm_calls', values: llmCalls, formatter: (n) => String(Math.round(n)) });\n }\n\n return rows;\n}\n\ninterface GroupedResults {\n label: string;\n results: RawResult[];\n}\n\nfunction groupResults(results: RawResult[], groupBy?: string): GroupedResults[] {\n if (!groupBy) return [{ label: 'all', results }];\n\n const groups = new Map<string, RawResult[]>();\n\n for (const result of results) {\n let key: string;\n switch (groupBy) {\n case 'target':\n key = result.target ?? 'unknown';\n break;\n case 'dataset':\n key = result.dataset ?? 'unknown';\n break;\n case 'test-id':\n key = result.test_id ?? result.eval_id ?? 'unknown';\n break;\n default:\n key = 'all';\n }\n if (!groups.has(key)) groups.set(key, []);\n groups.get(key)?.push(result);\n }\n\n return [...groups.entries()]\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([label, results]) => ({ label, results }));\n}\n\nfunction formatStatsTable(groups: GroupedResults[], filePath: string): string {\n const lines: string[] = [];\n\n lines.push('');\n lines.push(`${c.bold}Statistics:${c.reset} ${c.cyan}${filePath}${c.reset}`);\n\n for (const group of groups) {\n if (groups.length > 1 || group.label !== 'all') {\n lines.push('');\n lines.push(\n `${c.bold}Group: ${group.label}${c.reset} ${c.dim}(${group.results.length} tests)${c.reset}`,\n );\n } else {\n lines.push(`${c.dim}${group.results.length} tests${c.reset}`);\n }\n lines.push('');\n\n const metrics = collectMetrics(group.results);\n\n if (metrics.length === 0) {\n lines.push(`${c.yellow}No trace metrics available${c.reset}`);\n continue;\n }\n\n // Column headers\n const nameWidth = Math.max(12, ...metrics.map((m) => m.name.length));\n const colWidth = 10;\n\n const header = ` ${padRight('Metric', nameWidth)} ${padLeft('Mean', colWidth)} ${padLeft('P50', colWidth)} ${padLeft('P90', colWidth)} ${padLeft('P95', colWidth)} ${padLeft('P99', colWidth)}`;\n lines.push(`${c.dim}${header}${c.reset}`);\n lines.push(\n `${c.dim} ${'─'.repeat(nameWidth)} ${'─'.repeat(colWidth)} ${'─'.repeat(colWidth)} ${'─'.repeat(colWidth)} ${'─'.repeat(colWidth)} ${'─'.repeat(colWidth)}${c.reset}`,\n );\n\n for (const metric of metrics) {\n const sorted = [...metric.values].sort((a, b) => a - b);\n const row = ` ${padRight(metric.name, nameWidth)} ${padLeft(metric.formatter(mean(sorted)), colWidth)} ${padLeft(metric.formatter(percentile(sorted, 50)), colWidth)} ${padLeft(metric.formatter(percentile(sorted, 90)), colWidth)} ${padLeft(metric.formatter(percentile(sorted, 95)), colWidth)} ${padLeft(metric.formatter(percentile(sorted, 99)), colWidth)}`;\n lines.push(row);\n }\n }\n\n lines.push('');\n return lines.join('\\n');\n}\n\ninterface StatsJson {\n file: string;\n groups: {\n label: string;\n count: number;\n metrics: Record<string, { mean: number; p50: number; p90: number; p95: number; p99: number }>;\n }[];\n}\n\nfunction computeStatsJson(groups: GroupedResults[], filePath: string): StatsJson {\n return {\n file: filePath,\n groups: groups.map((group) => {\n const metrics = collectMetrics(group.results);\n const metricsObj: Record<\n string,\n { mean: number; p50: number; p90: number; p95: number; p99: number }\n > = {};\n\n for (const metric of metrics) {\n const sorted = [...metric.values].sort((a, b) => a - b);\n metricsObj[metric.name] = {\n mean: Number(mean(sorted).toFixed(4)),\n p50: Number(percentile(sorted, 50).toFixed(4)),\n p90: Number(percentile(sorted, 90).toFixed(4)),\n p95: Number(percentile(sorted, 95).toFixed(4)),\n p99: Number(percentile(sorted, 99).toFixed(4)),\n };\n }\n\n return {\n label: group.label,\n count: group.results.length,\n metrics: metricsObj,\n };\n }),\n };\n}\n\nexport const traceStatsCommand = command({\n name: 'stats',\n description: 'Compute summary statistics (percentiles) across evaluation results',\n args: {\n file: positional({\n type: string,\n displayName: 'result-file',\n description: 'Path to JSONL result file',\n }),\n groupBy: option({\n type: optional(oneOf(['target', 'dataset', 'test-id'])),\n long: 'group-by',\n short: 'g',\n description: 'Group statistics by: target, dataset, or test-id',\n }),\n format: option({\n type: optional(oneOf(['table', 'json'])),\n long: 'format',\n short: 'f',\n description: 'Output format: table (default) or json',\n }),\n },\n handler: async ({ file, groupBy, format }) => {\n const outputFormat = format ?? 'table';\n\n try {\n const results = loadResultFile(file);\n\n if (results.length === 0) {\n console.error('Error: Result file is empty');\n process.exit(1);\n }\n\n const groups = groupResults(results, groupBy);\n\n if (outputFormat === 'json') {\n const statsJson = computeStatsJson(groups, file);\n console.log(JSON.stringify(toSnakeCaseDeep(statsJson), null, 2));\n } else {\n console.log(formatStatsTable(groups, file));\n }\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { subcommands } from 'cmd-ts';\n\nimport { traceListCommand } from './list.js';\nimport { traceScoreCommand } from './score.js';\nimport { traceShowCommand } from './show.js';\nimport { traceStatsCommand } from './stats.js';\n\nexport const traceCommand = subcommands({\n name: 'trace',\n description: 'Inspect and analyze evaluation traces and results',\n cmds: {\n list: traceListCommand,\n score: traceScoreCommand,\n show: traceShowCommand,\n stats: traceStatsCommand,\n },\n});\n","import { readFileSync, writeFileSync } from 'node:fs';\nimport { toCamelCaseDeep, toSnakeCaseDeep, trimBaselineResult } from '@agentv/core';\nimport type { EvaluationResult } from '@agentv/core';\nimport { command, option, optional, positional, string } from 'cmd-ts';\n\n/**\n * Trims a JSONL file of EvaluationResults, stripping debug/audit fields\n * that are unnecessary for baseline comparisons.\n */\nexport const trimCommand = command({\n name: 'trim',\n description: 'Trim evaluation results for baseline storage (strips debug/audit fields)',\n args: {\n input: positional({\n type: string,\n displayName: 'input',\n description: 'Path to input JSONL result file',\n }),\n out: option({\n type: optional(string),\n long: 'out',\n short: 'o',\n description: 'Path to output JSONL file (defaults to stdout)',\n }),\n },\n handler: async ({ input, out }) => {\n try {\n const content = readFileSync(input, 'utf8');\n const lines = content\n .trim()\n .split('\\n')\n .filter((line) => line.trim());\n\n const trimmedLines = lines.map((line) => {\n const record = JSON.parse(line);\n // Records on disk are snake_case; convert to camelCase for trimming, then back\n const camel = toCamelCaseDeep(record) as EvaluationResult;\n const trimmed = trimBaselineResult(camel);\n const snake = toSnakeCaseDeep(trimmed);\n return JSON.stringify(snake);\n });\n\n const output = `${trimmedLines.join('\\n')}\\n`;\n\n if (out) {\n writeFileSync(out, output, 'utf8');\n console.error(`Trimmed ${lines.length} record(s) → ${out}`);\n } else {\n process.stdout.write(output);\n }\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import type {\n ValidationError,\n ValidationResult,\n ValidationSummary,\n} from '@agentv/core/evaluation/validation';\n\nconst ANSI_RED = '\\u001b[31m';\nconst ANSI_YELLOW = '\\u001b[33m';\nconst ANSI_GREEN = '\\u001b[32m';\nconst ANSI_CYAN = '\\u001b[36m';\nconst ANSI_BOLD = '\\u001b[1m';\nconst ANSI_RESET = '\\u001b[0m';\n\n/**\n * Format validation summary for console output.\n */\nexport function formatSummary(summary: ValidationSummary, useColors: boolean): string {\n const lines: string[] = [];\n\n // Header\n lines.push('');\n lines.push(formatHeader('Validation Summary', useColors));\n lines.push('');\n\n // Results for each file\n for (const result of summary.results) {\n lines.push(formatFileResult(result, useColors));\n }\n\n // Summary statistics\n lines.push('');\n lines.push(formatStats(summary, useColors));\n lines.push('');\n\n return lines.join('\\n');\n}\n\nfunction formatHeader(text: string, useColors: boolean): string {\n if (useColors) {\n return `${ANSI_BOLD}${ANSI_CYAN}${text}${ANSI_RESET}`;\n }\n return text;\n}\n\nfunction formatFileResult(result: ValidationResult, useColors: boolean): string {\n const lines: string[] = [];\n\n const status = result.valid ? '✓' : '✗';\n const statusColor = result.valid ? ANSI_GREEN : ANSI_RED;\n const statusText = useColors ? `${statusColor}${status}${ANSI_RESET}` : status;\n\n const fileName = result.filePath;\n lines.push(`${statusText} ${fileName}`);\n\n // Show errors and warnings\n if (result.errors.length > 0) {\n for (const error of result.errors) {\n lines.push(formatError(error, useColors));\n }\n }\n\n return lines.join('\\n');\n}\n\nfunction formatError(error: ValidationError, useColors: boolean): string {\n const prefix = error.severity === 'error' ? ' ✗' : ' ⚠';\n const color = error.severity === 'error' ? ANSI_RED : ANSI_YELLOW;\n const coloredPrefix = useColors ? `${color}${prefix}${ANSI_RESET}` : prefix;\n\n const location = error.location ? ` [${error.location}]` : '';\n return `${coloredPrefix}${location} ${error.message}`;\n}\n\nfunction formatStats(summary: ValidationSummary, useColors: boolean): string {\n const lines: string[] = [];\n\n const totalText = `Total files: ${summary.totalFiles}`;\n const validText = `Valid: ${summary.validFiles}`;\n const invalidText = `Invalid: ${summary.invalidFiles}`;\n\n // Count files with warnings\n const filesWithWarnings = summary.results.filter((r) =>\n r.errors.some((e) => e.severity === 'warning'),\n ).length;\n\n if (useColors) {\n lines.push(`${ANSI_BOLD}${totalText}${ANSI_RESET}`);\n lines.push(`${ANSI_GREEN}${validText}${ANSI_RESET}`);\n if (summary.invalidFiles > 0) {\n lines.push(`${ANSI_RED}${invalidText}${ANSI_RESET}`);\n } else {\n lines.push(invalidText);\n }\n if (filesWithWarnings > 0) {\n lines.push(`${ANSI_YELLOW}Files with warnings: ${filesWithWarnings}${ANSI_RESET}`);\n }\n } else {\n lines.push(totalText);\n lines.push(validText);\n lines.push(invalidText);\n if (filesWithWarnings > 0) {\n lines.push(`Files with warnings: ${filesWithWarnings}`);\n }\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Check if stdout is a TTY (supports colors).\n */\nexport function isTTY(): boolean {\n return process.stdout.isTTY ?? false;\n}\n","import { constants } from 'node:fs';\nimport { access, readdir, stat } from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n type ValidationResult,\n type ValidationSummary,\n detectFileType,\n validateConfigFile,\n validateEvalFile,\n validateFileReferences,\n validateTargetsFile,\n} from '@agentv/core/evaluation/validation';\n\n/**\n * Validate YAML files for AgentV schema compliance.\n */\nexport async function validateFiles(paths: readonly string[]): Promise<ValidationSummary> {\n const filePaths = await expandPaths(paths);\n const results: ValidationResult[] = [];\n\n for (const filePath of filePaths) {\n const result = await validateSingleFile(filePath);\n results.push(result);\n }\n\n const validFiles = results.filter((r) => r.valid).length;\n const invalidFiles = results.filter((r) => !r.valid).length;\n\n return {\n totalFiles: results.length,\n validFiles,\n invalidFiles,\n results,\n };\n}\n\nasync function validateSingleFile(filePath: string): Promise<ValidationResult> {\n const absolutePath = path.resolve(filePath);\n\n // Detect file type (now infers from path if $schema is missing)\n const fileType = await detectFileType(absolutePath);\n\n // Validate based on file type\n let result: ValidationResult;\n\n if (fileType === 'eval') {\n result = await validateEvalFile(absolutePath);\n\n // Also validate file references for eval files\n if (result.valid || result.errors.filter((e) => e.severity === 'error').length === 0) {\n const fileRefErrors = await validateFileReferences(absolutePath);\n if (fileRefErrors.length > 0) {\n result = {\n ...result,\n errors: [...result.errors, ...fileRefErrors],\n valid: result.valid && fileRefErrors.filter((e) => e.severity === 'error').length === 0,\n };\n }\n }\n } else if (fileType === 'targets') {\n result = await validateTargetsFile(absolutePath);\n } else {\n result = await validateConfigFile(absolutePath);\n }\n\n return result;\n}\n\nasync function expandPaths(paths: readonly string[]): Promise<readonly string[]> {\n const expanded: string[] = [];\n\n for (const inputPath of paths) {\n const absolutePath = path.resolve(inputPath);\n\n // Check if path exists\n try {\n await access(absolutePath, constants.F_OK);\n } catch {\n console.warn(`Warning: Path not found: ${inputPath}`);\n continue;\n }\n\n const stats = await stat(absolutePath);\n\n if (stats.isFile()) {\n // Only include YAML files\n if (isYamlFile(absolutePath)) {\n expanded.push(absolutePath);\n }\n } else if (stats.isDirectory()) {\n // Recursively find all YAML files in directory\n const yamlFiles = await findYamlFiles(absolutePath);\n expanded.push(...yamlFiles);\n }\n }\n\n return expanded;\n}\n\nasync function findYamlFiles(dirPath: string): Promise<readonly string[]> {\n const results: string[] = [];\n\n try {\n const entries = await readdir(dirPath, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dirPath, entry.name);\n\n if (entry.isDirectory()) {\n // Skip node_modules and hidden directories\n if (entry.name === 'node_modules' || entry.name.startsWith('.')) {\n continue;\n }\n const subFiles = await findYamlFiles(fullPath);\n results.push(...subFiles);\n } else if (entry.isFile() && isYamlFile(entry.name)) {\n results.push(fullPath);\n }\n }\n } catch (error) {\n console.warn(`Warning: Could not read directory ${dirPath}: ${(error as Error).message}`);\n }\n\n return results;\n}\n\nfunction isYamlFile(filePath: string): boolean {\n const ext = path.extname(filePath).toLowerCase();\n return ext === '.yaml' || ext === '.yml';\n}\n","import { command, restPositionals, string } from 'cmd-ts';\n\nimport { formatSummary, isTTY } from './format-output.js';\nimport { validateFiles } from './validate-files.js';\n\nasync function runValidateCommand(paths: readonly string[]): Promise<void> {\n if (paths.length === 0) {\n console.error('Error: No paths specified. Usage: agentv validate <paths...>');\n process.exit(1);\n }\n\n const summary = await validateFiles(paths);\n\n // Output results\n const useColors = isTTY();\n console.log(formatSummary(summary, useColors));\n\n // Exit with appropriate code\n if (summary.invalidFiles > 0) {\n process.exit(1);\n }\n}\n\nexport const validateCommand = command({\n name: 'validate',\n description: 'Validate AgentV eval and targets YAML files',\n args: {\n paths: restPositionals({\n type: string,\n displayName: 'paths',\n description: 'Files or directories to validate',\n }),\n },\n handler: async ({ paths }) => {\n try {\n await runValidateCommand(paths);\n } catch (error) {\n console.error(`Error: ${(error as Error).message}`);\n process.exit(1);\n }\n },\n});\n","import { existsSync } from 'node:fs';\nimport { readFile, readdir, rm } from 'node:fs/promises';\nimport path from 'node:path';\nimport { command, flag, option, optional, string } from 'cmd-ts';\n\nimport { getWorkspacePoolRoot } from '@agentv/core';\n\ninterface PoolMetadata {\n fingerprint: string;\n templatePath: string | null;\n repos: readonly { path: string; source: { type: string; url?: string; path?: string } }[];\n createdAt: string;\n}\n\nasync function confirm(message: string): Promise<boolean> {\n const readline = await import('node:readline');\n const rl = readline.createInterface({ input: process.stdin, output: process.stdout });\n const answer = await new Promise<string>((resolve) => {\n rl.question(`${message} [y/N] `, resolve);\n });\n rl.close();\n return answer.toLowerCase() === 'y';\n}\n\nexport const cleanCommand = command({\n name: 'clean',\n description: 'Remove workspace pool entries',\n args: {\n repo: option({\n type: optional(string),\n long: 'repo',\n description: 'Only remove pools containing this repo URL',\n }),\n force: flag({\n long: 'force',\n short: 'f',\n description: 'Skip confirmation prompt',\n }),\n },\n handler: async ({ repo, force }) => {\n const poolRoot = getWorkspacePoolRoot();\n\n if (!existsSync(poolRoot)) {\n console.log('No workspace pool entries found.');\n return;\n }\n\n if (repo) {\n // Remove only pool entries matching the repo URL\n const entries = await readdir(poolRoot, { withFileTypes: true });\n const poolDirs = entries.filter((e) => e.isDirectory());\n const matchingDirs: string[] = [];\n\n for (const dir of poolDirs) {\n const poolDir = path.join(poolRoot, dir.name);\n const metadataPath = path.join(poolDir, 'metadata.json');\n\n try {\n const raw = await readFile(metadataPath, 'utf-8');\n const metadata = JSON.parse(raw) as PoolMetadata;\n\n const hasRepo = metadata.repos?.some((r) => {\n if (r.source.type === 'git' && r.source.url) {\n return r.source.url.toLowerCase().includes(repo.toLowerCase());\n }\n return false;\n });\n\n if (hasRepo) {\n matchingDirs.push(poolDir);\n }\n } catch {\n // Skip entries without valid metadata\n }\n }\n\n if (matchingDirs.length === 0) {\n console.log(`No workspace pool entries found matching repo \"${repo}\".`);\n return;\n }\n\n if (!force) {\n const confirmed = await confirm(\n `Remove ${matchingDirs.length} pool entry(s) matching repo \"${repo}\"?`,\n );\n if (!confirmed) {\n console.log('Cancelled.');\n return;\n }\n }\n\n for (const dir of matchingDirs) {\n await rm(dir, { recursive: true, force: true });\n console.log(`Removed: ${path.basename(dir).slice(0, 12)}...`);\n }\n console.log('Done.');\n } else {\n // Remove entire pool root\n if (!force) {\n const confirmed = await confirm(`Remove all workspace pool entries from ${poolRoot}?`);\n if (!confirmed) {\n console.log('Cancelled.');\n return;\n }\n }\n\n await rm(poolRoot, { recursive: true, force: true });\n console.log('Workspace pool cleaned.');\n }\n },\n});\n","import { existsSync } from 'node:fs';\nimport { readFile, readdir, stat } from 'node:fs/promises';\nimport path from 'node:path';\nimport { command } from 'cmd-ts';\n\nimport { getWorkspacePoolRoot } from '@agentv/core';\n\ninterface PoolMetadata {\n fingerprint: string;\n templatePath: string | null;\n repos: readonly { path: string; source: { type: string; url?: string; path?: string } }[];\n createdAt: string;\n}\n\nasync function getDirectorySize(dirPath: string): Promise<number> {\n let totalSize = 0;\n try {\n const entries = await readdir(dirPath, { withFileTypes: true });\n for (const entry of entries) {\n const fullPath = path.join(dirPath, entry.name);\n if (entry.isDirectory()) {\n totalSize += await getDirectorySize(fullPath);\n } else {\n const stats = await stat(fullPath);\n totalSize += stats.size;\n }\n }\n } catch {\n // Directory might not be readable\n }\n return totalSize;\n}\n\nfunction formatSize(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n}\n\nexport const listCommand = command({\n name: 'list',\n description: 'List workspace pool entries',\n args: {},\n handler: async () => {\n const poolRoot = getWorkspacePoolRoot();\n\n if (!existsSync(poolRoot)) {\n console.log('No workspace pool entries found.');\n return;\n }\n\n const entries = await readdir(poolRoot, { withFileTypes: true });\n const poolDirs = entries.filter((e) => e.isDirectory());\n\n if (poolDirs.length === 0) {\n console.log('No workspace pool entries found.');\n return;\n }\n\n for (const dir of poolDirs) {\n const poolDir = path.join(poolRoot, dir.name);\n const fingerprint = dir.name;\n\n // Count slots\n const poolEntries = await readdir(poolDir, { withFileTypes: true });\n const slots = poolEntries.filter((e) => e.isDirectory() && e.name.startsWith('slot-'));\n\n // Read metadata\n const metadataPath = path.join(poolDir, 'metadata.json');\n let metadata: PoolMetadata | null = null;\n try {\n const raw = await readFile(metadataPath, 'utf-8');\n metadata = JSON.parse(raw) as PoolMetadata;\n } catch {\n // metadata.json might not exist\n }\n\n // Compute disk size\n const size = await getDirectorySize(poolDir);\n\n console.log(` ${fingerprint.slice(0, 12)}...`);\n console.log(` Slots: ${slots.length}`);\n console.log(` Size: ${formatSize(size)}`);\n if (metadata) {\n if (metadata.templatePath) {\n console.log(` Template: ${metadata.templatePath}`);\n }\n if (metadata.repos && metadata.repos.length > 0) {\n const repoSources = metadata.repos.map((r) =>\n r.source.type === 'git' ? r.source.url : r.source.path,\n );\n console.log(` Repos: ${repoSources.join(', ')}`);\n }\n console.log(` Created: ${metadata.createdAt}`);\n }\n console.log();\n }\n },\n});\n","import { subcommands } from 'cmd-ts';\n\nimport { cleanCommand } from './clean.js';\nimport { listCommand } from './list.js';\n\nexport const workspaceCommand = subcommands({\n name: 'workspace',\n description: 'Manage workspace pool',\n cmds: {\n list: listCommand,\n clean: cleanCommand,\n },\n});\n","import { spawn } from 'node:child_process';\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { getAgentvHome } from '@agentv/core';\n\nconst CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours\nconst AGENTV_DIR = getAgentvHome();\nconst CACHE_FILE = 'version-check.json';\nconst NPM_REGISTRY_URL = 'https://registry.npmjs.org/agentv/latest';\n\nexport interface UpdateCache {\n latestVersion: string;\n lastCheckedAt: string; // ISO 8601\n}\n\n/**\n * Read the cached update info from disk. Returns null if missing or malformed.\n */\nexport async function getCachedUpdateInfo(path?: string): Promise<UpdateCache | null> {\n const filePath = path ?? join(AGENTV_DIR, CACHE_FILE);\n try {\n const raw = await readFile(filePath, 'utf-8');\n const data = JSON.parse(raw);\n if (typeof data.latestVersion === 'string' && typeof data.lastCheckedAt === 'string') {\n return data as UpdateCache;\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Decide whether a fresh check is needed based on the cache.\n */\nexport function shouldCheck(cache: UpdateCache | null): boolean {\n if (!cache) return true;\n const elapsed = Date.now() - new Date(cache.lastCheckedAt).getTime();\n return elapsed > CHECK_INTERVAL_MS;\n}\n\n/**\n * Compare two semver strings. Returns true if a > b.\n */\nfunction isNewer(a: string, b: string): boolean {\n const pa = a.split('.').map((s) => Number(s.replace(/-.*$/, '')));\n const pb = b.split('.').map((s) => Number(s.replace(/-.*$/, '')));\n for (let i = 0; i < 3; i++) {\n if ((pa[i] ?? 0) > (pb[i] ?? 0)) return true;\n if ((pa[i] ?? 0) < (pb[i] ?? 0)) return false;\n }\n return false;\n}\n\n/**\n * Build a human-readable update notice, or null if no update available.\n */\nexport function buildNotice(currentVersion: string, latestVersion: string | null): string | null {\n if (!latestVersion) return null;\n if (!isNewer(latestVersion, currentVersion)) return null;\n return ` Update available: ${currentVersion} → ${latestVersion}\\n Run \\`agentv self update\\` to upgrade.`;\n}\n\n/**\n * Fire-and-forget background check. Spawns a detached child process that\n * fetches latest version from npm and updates the cache file. The child\n * survives even if the parent calls process.exit().\n */\nexport function backgroundUpdateCheck(): void {\n const dir = AGENTV_DIR;\n const filePath = join(dir, CACHE_FILE);\n\n const script = `\n const https = require('https');\n const fs = require('fs');\n const dir = ${JSON.stringify(dir)};\n const filePath = ${JSON.stringify(filePath)};\n https.get(${JSON.stringify(NPM_REGISTRY_URL)}, { timeout: 5000 }, (res) => {\n if (res.statusCode !== 200) { res.resume(); process.exit(); }\n let body = '';\n res.on('data', (c) => body += c);\n res.on('end', () => {\n try {\n const v = JSON.parse(body).version;\n if (typeof v === 'string') {\n fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(filePath, JSON.stringify({ latestVersion: v, lastCheckedAt: new Date().toISOString() }, null, 2));\n }\n } catch {}\n process.exit();\n });\n }).on('error', () => process.exit()).on('timeout', function() { this.destroy(); process.exit(); });\n `;\n\n try {\n const child = spawn(process.execPath, ['-e', script], {\n detached: true,\n stdio: 'ignore',\n windowsHide: true,\n });\n child.unref();\n } catch {}\n}\n\n/**\n * Get the update notice to display, or null. Kicks off a background\n * refresh if the cache is stale. Never blocks startup.\n */\nexport async function getUpdateNotice(currentVersion: string): Promise<string | null> {\n if (process.env.AGENTV_NO_UPDATE_CHECK === '1' || process.env.CI === 'true') {\n return null;\n }\n const cache = await getCachedUpdateInfo();\n if (shouldCheck(cache)) {\n backgroundUpdateCheck();\n }\n return buildNotice(currentVersion, cache?.latestVersion ?? null);\n}\n","import { binary, run, subcommands } from 'cmd-ts';\n\nimport packageJson from '../package.json' with { type: 'json' };\nimport { compareCommand } from './commands/compare/index.js';\nimport { convertCommand } from './commands/convert/index.js';\nimport { createCommand } from './commands/create/index.js';\nimport { evalPromptCommand } from './commands/eval/commands/prompt/index.js';\nimport { evalRunCommand } from './commands/eval/commands/run.js';\nimport { generateCommand } from './commands/generate/index.js';\nimport { initCmdTsCommand } from './commands/init/index.js';\nimport { selfCommand } from './commands/self/index.js';\nimport { traceCommand } from './commands/trace/index.js';\nimport { trimCommand } from './commands/trim/index.js';\nimport { validateCommand } from './commands/validate/index.js';\nimport { workspaceCommand } from './commands/workspace/index.js';\nimport { getUpdateNotice } from './update-check.js';\n\nexport const app = subcommands({\n name: 'agentv',\n description: 'AgentV CLI',\n version: packageJson.version,\n cmds: {\n eval: evalRunCommand,\n prompt: evalPromptCommand,\n compare: compareCommand,\n convert: convertCommand,\n create: createCommand,\n generate: generateCommand,\n init: initCmdTsCommand,\n self: selfCommand,\n trace: traceCommand,\n trim: trimCommand,\n validate: validateCommand,\n workspace: workspaceCommand,\n },\n});\n\n/** Known prompt eval sub-subcommands used for default insertion. */\nconst PROMPT_EVAL_SUBCOMMANDS = new Set(['overview', 'input', 'judge']);\n\n/**\n * Preprocess argv for default subcommand insertion and convenience aliases:\n * 1. `agentv prompt file.yaml` → `agentv prompt eval overview file.yaml`\n * 2. `agentv prompt eval file.yaml` → `agentv prompt eval overview file.yaml`\n * 3. `--eval-id` → `--test-id` (convenience alias)\n */\nexport function preprocessArgv(argv: string[]): string[] {\n const result = [...argv];\n\n // Insert default prompt subcommands:\n // `agentv prompt file.yaml` → `agentv prompt eval overview file.yaml`\n // `agentv prompt eval file.yaml` → `agentv prompt eval overview file.yaml`\n const promptIndex = result.indexOf('prompt');\n if (promptIndex !== -1) {\n const nextArg = result[promptIndex + 1];\n if (nextArg !== 'eval') {\n result.splice(promptIndex + 1, 0, 'eval');\n }\n\n const evalIdx = promptIndex + 1;\n const subSubArg = result[evalIdx + 1];\n if (subSubArg === undefined || !PROMPT_EVAL_SUBCOMMANDS.has(subSubArg)) {\n result.splice(evalIdx + 1, 0, 'overview');\n }\n }\n\n // Rewrite --eval-id → --test-id (convenience alias)\n for (let i = 0; i < result.length; i++) {\n if (result[i] === '--eval-id') {\n result[i] = '--test-id';\n } else if (result[i].startsWith('--eval-id=')) {\n result[i] = `--test-id=${result[i].slice('--eval-id='.length)}`;\n }\n }\n\n return result;\n}\n\nexport async function runCli(argv: string[] = process.argv): Promise<void> {\n // Kick off update check: reads from local cache (fast), spawns a detached\n // child to refresh if stale. The notice is printed on process exit so it\n // appears after command output, even if the command calls process.exit().\n let updateNotice: string | null = null;\n process.on('exit', () => {\n if (updateNotice) process.stderr.write(`\\n${updateNotice}\\n`);\n });\n getUpdateNotice(packageJson.version).then((n) => {\n updateNotice = n;\n });\n\n const processedArgv = preprocessArgv(argv);\n await run(binary(app), processedArgv);\n}\n"],"mappings":"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","names":["didYouMean","parse","env","debug","c","createSupportsColor","supports_color_default","process","os","tty","hasFlag","flag","envForceColor","env","translateLevel","_supportsColor","flagForceColor","supportsColor","tty","supportsColor","useColors","c","debug","process","flag","string","styles","chalk","styles","string","option","boolean","env","_a","_a","_b","_c","positional","cmd","didYouMean","option","array","string","flatMap","flatMap","option","_a","env","option","option","number","createDebugger","string","positional","option","stripAnsi","readFileSync","readFileSync","path","path","toSnakeCaseDeep","c","readFile","writeFile","path","path","readFile","writeFile","writeFileSync","path","readFileSync","path","entries","stat","path","writeFileSync","readFileSync","readdirSync","statSync","path","colors","noColor","c","ansiPattern","stripAnsi","padRight","padLeft","stat","c","padRight","padLeft","padRight","c","padLeft","err","c","groupBy","results","c","padRight","padLeft","readFileSync","writeFileSync","readFileSync","toSnakeCaseDeep","writeFileSync","path","path","entries","existsSync","readFile","readdir","path","readline","existsSync","entries","readdir","path","readFile","existsSync","readFile","readdir","stat","path","entries","readdir","path","stat","formatSize","existsSync","readFile","spawn","readFile","path","readFile","spawn"]}