opencode-agentic-engine 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +499 -0
  3. package/dist/agents/agent-runtime.d.ts +51 -0
  4. package/dist/agents/agent-runtime.d.ts.map +1 -0
  5. package/dist/agents/coordinator.d.ts +84 -0
  6. package/dist/agents/coordinator.d.ts.map +1 -0
  7. package/dist/agents/orchestrator.d.ts +56 -0
  8. package/dist/agents/orchestrator.d.ts.map +1 -0
  9. package/dist/agents/role-registry.d.ts +71 -0
  10. package/dist/agents/role-registry.d.ts.map +1 -0
  11. package/dist/core/agent-loop.d.ts +39 -0
  12. package/dist/core/agent-loop.d.ts.map +1 -0
  13. package/dist/core/config.d.ts +76 -0
  14. package/dist/core/config.d.ts.map +1 -0
  15. package/dist/core/error-analyzer.d.ts +37 -0
  16. package/dist/core/error-analyzer.d.ts.map +1 -0
  17. package/dist/core/executor.d.ts +73 -0
  18. package/dist/core/executor.d.ts.map +1 -0
  19. package/dist/core/git.d.ts +38 -0
  20. package/dist/core/git.d.ts.map +1 -0
  21. package/dist/core/intent-parser.d.ts +26 -0
  22. package/dist/core/intent-parser.d.ts.map +1 -0
  23. package/dist/core/llm.d.ts +90 -0
  24. package/dist/core/llm.d.ts.map +1 -0
  25. package/dist/core/model-registry.d.ts +65 -0
  26. package/dist/core/model-registry.d.ts.map +1 -0
  27. package/dist/core/navigator.d.ts +28 -0
  28. package/dist/core/navigator.d.ts.map +1 -0
  29. package/dist/core/parallel.d.ts +63 -0
  30. package/dist/core/parallel.d.ts.map +1 -0
  31. package/dist/core/planner.d.ts +19 -0
  32. package/dist/core/planner.d.ts.map +1 -0
  33. package/dist/core/task-classifier.d.ts +24 -0
  34. package/dist/core/task-classifier.d.ts.map +1 -0
  35. package/dist/core/tech-debt-scorer.d.ts +20 -0
  36. package/dist/core/tech-debt-scorer.d.ts.map +1 -0
  37. package/dist/core/verifier.d.ts +43 -0
  38. package/dist/core/verifier.d.ts.map +1 -0
  39. package/dist/drift/checkpoints.d.ts +23 -0
  40. package/dist/drift/checkpoints.d.ts.map +1 -0
  41. package/dist/drift/context-compressor.d.ts +28 -0
  42. package/dist/drift/context-compressor.d.ts.map +1 -0
  43. package/dist/drift/dependency-tracker.d.ts +75 -0
  44. package/dist/drift/dependency-tracker.d.ts.map +1 -0
  45. package/dist/drift/hallucination-guard.d.ts +25 -0
  46. package/dist/drift/hallucination-guard.d.ts.map +1 -0
  47. package/dist/drift/pattern-discovery.d.ts +138 -0
  48. package/dist/drift/pattern-discovery.d.ts.map +1 -0
  49. package/dist/evaluation/live-evaluator.d.ts +71 -0
  50. package/dist/evaluation/live-evaluator.d.ts.map +1 -0
  51. package/dist/evolution/continuous-evolution.d.ts +92 -0
  52. package/dist/evolution/continuous-evolution.d.ts.map +1 -0
  53. package/dist/evolution/self-evolver.d.ts +85 -0
  54. package/dist/evolution/self-evolver.d.ts.map +1 -0
  55. package/dist/index.d.ts +16 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +22069 -0
  58. package/dist/index.js.map +7 -0
  59. package/dist/memory/episodic-store.d.ts +40 -0
  60. package/dist/memory/episodic-store.d.ts.map +1 -0
  61. package/dist/memory/local-embedder.d.ts +17 -0
  62. package/dist/memory/local-embedder.d.ts.map +1 -0
  63. package/dist/memory/persistence.d.ts +17 -0
  64. package/dist/memory/persistence.d.ts.map +1 -0
  65. package/dist/memory/schema-version.d.ts +29 -0
  66. package/dist/memory/schema-version.d.ts.map +1 -0
  67. package/dist/memory/session-store.d.ts +50 -0
  68. package/dist/memory/session-store.d.ts.map +1 -0
  69. package/dist/memory/skill-format.d.ts +51 -0
  70. package/dist/memory/skill-format.d.ts.map +1 -0
  71. package/dist/memory/skill-store.d.ts +30 -0
  72. package/dist/memory/skill-store.d.ts.map +1 -0
  73. package/dist/memory/skill-training.d.ts +37 -0
  74. package/dist/memory/skill-training.d.ts.map +1 -0
  75. package/dist/memory/vector-store.d.ts +67 -0
  76. package/dist/memory/vector-store.d.ts.map +1 -0
  77. package/dist/observability/dashboard.d.ts +34 -0
  78. package/dist/observability/dashboard.d.ts.map +1 -0
  79. package/dist/observability/trace-logger.d.ts +27 -0
  80. package/dist/observability/trace-logger.d.ts.map +1 -0
  81. package/package.json +57 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/external.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/index.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/core.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/util.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/errors.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/parse.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/regexes.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/checks.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/doc.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/versions.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/schemas.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/index.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ar.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/az.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/be.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ca.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/cs.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/da.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/de.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/en.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/eo.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/es.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/fa.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/fi.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/fr.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/fr-CA.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/he.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/hu.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/id.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/is.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/it.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ja.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ka.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/km.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/kh.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ko.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/lt.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/mk.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ms.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/nl.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/no.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ota.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ps.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/pl.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/pt.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ru.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/sl.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/sv.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ta.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/th.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/tr.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/uk.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ua.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/ur.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/vi.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/zh-CN.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/zh-TW.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/locales/yo.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/registries.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/api.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/to-json-schema.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/core/json-schema.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/iso.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/errors.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/parse.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/schemas.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/compat.js", "../node_modules/@opencode-ai/plugin/node_modules/zod/v4/classic/coerce.js", "../node_modules/@opencode-ai/plugin/dist/tool.js", "../src/index.ts", "../src/core/intent-parser.ts", "../src/core/executor.ts", "../src/core/verifier.ts", "../src/core/error-analyzer.ts", "../src/core/planner.ts", "../src/core/navigator.ts", "../src/drift/dependency-tracker.ts", "../src/drift/context-compressor.ts", "../src/core/git.ts", "../src/core/tech-debt-scorer.ts", "../src/agents/role-registry.ts", "../src/agents/coordinator.ts", "../src/core/llm.ts", "../src/agents/agent-runtime.ts", "../src/agents/orchestrator.ts", "../src/memory/skill-format.ts", "../src/memory/schema-version.ts", "../src/memory/skill-store.ts", "../src/memory/episodic-store.ts", "../src/drift/hallucination-guard.ts", "../src/core/parallel.ts", "../src/observability/dashboard.ts", "../src/drift/checkpoints.ts", "../src/memory/session-store.ts", "../src/observability/trace-logger.ts", "../src/core/task-classifier.ts", "../src/memory/skill-training.ts", "../src/evolution/self-evolver.ts", "../src/evolution/continuous-evolution.ts", "../src/core/agent-loop.ts", "../src/memory/persistence.ts", "../src/memory/vector-store.ts", "../src/core/model-registry.ts", "../src/core/config.ts", "../src/drift/pattern-discovery.ts", "../src/evaluation/live-evaluator.ts"],
4
+ "sourcesContent": ["export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n", "export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n", "/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n", "// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: schema._zod.def.checks,\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n", "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * \u2716 Expected number, received string at \"username\n * favoriteNumbers[0]\n * \u2716 Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`\u2716 ${issue.message}`);\n if (issue.path?.length)\n lines.push(` \u2192 at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n", "import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n", "export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n", "// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n", "export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n", "export const version = {\n major: 4,\n minor: 1,\n patch: 8,\n};\n", "import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n // const handleChecksResult = (\n // checkResult: ParsePayload,\n // originalResult: ParsePayload,\n // ctx: ParseContextInternal\n // ): util.MaybeAsync<ParsePayload> => {\n // // if the checks mutated the value && there are no issues, re-parse the result\n // if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n // return inst._zod.parse(checkResult, ctx);\n // return originalResult;\n // };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n", "export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062D\u0631\u0641\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n file: { unit: \"\u0628\u0627\u064A\u062A\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n array: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n set: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0645\u062F\u062E\u0644\",\n email: \"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\",\n url: \"\u0631\u0627\u0628\u0637\",\n emoji: \"\u0625\u064A\u0645\u0648\u062C\u064A\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n date: \"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n time: \"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n duration: \"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n ipv4: \"\u0639\u0646\u0648\u0627\u0646 IPv4\",\n ipv6: \"\u0639\u0646\u0648\u0627\u0646 IPv6\",\n cidrv4: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4\",\n cidrv6: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6\",\n base64: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded\",\n base64url: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded\",\n json_string: \"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON\",\n e164: \"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0645\u062F\u062E\u0644\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${issue.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"}`;\n return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`;\n }\n case \"not_multiple_of\":\n return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u0645\u0639\u0631\u0641${issue.keys.length > 1 ? \"\u0627\u062A\" : \"\"} \u063A\u0631\u064A\u0628${issue.keys.length > 1 ? \"\u0629\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n case \"invalid_key\":\n return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n case \"invalid_element\":\n return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n default:\n return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmal\u0131d\u0131r\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n array: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n set: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanl\u0131\u015F se\u00E7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.prefix}\" il\u0259 ba\u015Flamal\u0131d\u0131r`;\n if (_issue.format === \"ends_with\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.suffix}\" il\u0259 bitm\u0259lidir`;\n if (_issue.format === \"includes\")\n return `Yanl\u0131\u015F m\u0259tn: \"${_issue.includes}\" daxil olmal\u0131d\u0131r`;\n if (_issue.format === \"regex\")\n return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`;\n return `Yanl\u0131\u015F ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanl\u0131\u015F \u0259d\u0259d: ${issue.divisor} il\u0259 b\u00F6l\u00FCn\u0259 bil\u0259n olmal\u0131d\u0131r`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan a\u00E7ar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilind\u0259 yanl\u0131\u015F a\u00E7ar`;\n case \"invalid_union\":\n return \"Yanl\u0131\u015F d\u0259y\u0259r\";\n case \"invalid_element\":\n return `${issue.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;\n default:\n return `Yanl\u0131\u015F d\u0259y\u0259r`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"\u0441\u0456\u043C\u0432\u0430\u043B\",\n few: \"\u0441\u0456\u043C\u0432\u0430\u043B\u044B\",\n many: \"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n array: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n set: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n file: {\n unit: {\n one: \"\u0431\u0430\u0439\u0442\",\n few: \"\u0431\u0430\u0439\u0442\u044B\",\n many: \"\u0431\u0430\u0439\u0442\u0430\u045E\",\n },\n verb: \"\u043C\u0435\u0446\u044C\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u043B\u0456\u043A\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u043C\u0430\u0441\u0456\u045E\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0443\u0432\u043E\u0434\",\n email: \"email \u0430\u0434\u0440\u0430\u0441\",\n url: \"URL\",\n emoji: \"\u044D\u043C\u043E\u0434\u0437\u0456\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441\",\n date: \"ISO \u0434\u0430\u0442\u0430\",\n time: \"ISO \u0447\u0430\u0441\",\n duration: \"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0430\u0441\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0430\u0441\",\n cidrv4: \"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n cidrv6: \"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n base64: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64\",\n base64url: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url\",\n json_string: \"JSON \u0440\u0430\u0434\u043E\u043A\",\n e164: \"\u043D\u0443\u043C\u0430\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0443\u0432\u043E\u0434\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${issue.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue.keys.length > 1 ? \"\u043A\u043B\u044E\u0447\u044B\" : \"\u043A\u043B\u044E\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434\";\n case \"invalid_element\":\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue.origin}`;\n default:\n return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"car\u00E0cters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"adre\u00E7a electr\u00F2nica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adre\u00E7a IPv4\",\n ipv6: \"adre\u00E7a IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipus inv\u00E0lid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n // return `Tipus inv\u00E0lid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor inv\u00E0lid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opci\u00F3 inv\u00E0lida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a m\u00E0xim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingu\u00E9s ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a m\u00EDnim\" : \"m\u00E9s de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingu\u00E9s ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format inv\u00E0lid: ha de comen\u00E7ar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format inv\u00E0lid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format inv\u00E0lid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format inv\u00E0lid: ha de coincidir amb el patr\u00F3 ${_issue.pattern}`;\n return `Format inv\u00E0lid per a ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E0lid: ha de ser m\u00FAltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau inv\u00E0lida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E0lida\"; // Could also be \"Tipus d'uni\u00F3 inv\u00E0lid\" but \"Entrada inv\u00E0lida\" is more general\n case \"invalid_element\":\n return `Element inv\u00E0lid a ${issue.origin}`;\n default:\n return `Entrada inv\u00E0lida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znak\u016F\", verb: \"m\u00EDt\" },\n file: { unit: \"bajt\u016F\", verb: \"m\u00EDt\" },\n array: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n set: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u010D\u00EDslo\";\n }\n case \"string\": {\n return \"\u0159et\u011Bzec\";\n }\n case \"boolean\": {\n return \"boolean\";\n }\n case \"bigint\": {\n return \"bigint\";\n }\n case \"function\": {\n return \"funkce\";\n }\n case \"symbol\": {\n return \"symbol\";\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"pole\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regul\u00E1rn\u00ED v\u00FDraz\",\n email: \"e-mailov\u00E1 adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a \u010Das ve form\u00E1tu ISO\",\n date: \"datum ve form\u00E1tu ISO\",\n time: \"\u010Das ve form\u00E1tu ISO\",\n duration: \"doba trv\u00E1n\u00ED ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64\",\n base64url: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64url\",\n json_string: \"\u0159et\u011Bzec ve form\u00E1tu JSON\",\n e164: \"\u010D\u00EDslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${issue.expected}, obdr\u017Eeno ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatn\u00E1 mo\u017Enost: o\u010Dek\u00E1v\u00E1na jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n }\n return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n }\n return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED za\u010D\u00EDnat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED kon\u010Dit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED odpov\u00EDdat vzoru ${_issue.pattern}`;\n return `Neplatn\u00FD form\u00E1t ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatn\u00E9 \u010D\u00EDslo: mus\u00ED b\u00FDt n\u00E1sobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nezn\u00E1m\u00E9 kl\u00ED\u010De: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatn\u00FD kl\u00ED\u010D v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatn\u00FD vstup\";\n case \"invalid_element\":\n return `Neplatn\u00E1 hodnota v ${issue.origin}`;\n default:\n return `Neplatn\u00FD vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"havde\" },\n file: { unit: \"bytes\", verb: \"havde\" },\n array: { unit: \"elementer\", verb: \"indeholdt\" },\n set: { unit: \"elementer\", verb: \"indeholdt\" },\n };\n const TypeNames = {\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"s\u00E6t\",\n file: \"fil\",\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n function getTypeName(type) {\n return TypeNames[type] ?? type;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n return \"objekt\";\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkesl\u00E6t\",\n date: \"ISO-dato\",\n time: \"ISO-klokkesl\u00E6t\",\n duration: \"ISO-varighed\",\n ipv4: \"IPv4-omr\u00E5de\",\n ipv6: \"IPv6-omr\u00E5de\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodet streng\",\n base64url: \"base64url-kodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldigt input: forventede ${getTypeName(issue.expected)}, fik ${getTypeName(parsedType(issue.input))}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig v\u00E6rdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldigt valg: forventede en af f\u00F8lgende ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche m\u00F8nsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldigt tal: skal v\u00E6re deleligt med ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukendte n\u00F8gler\" : \"Ukendt n\u00F8gle\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig n\u00F8gle i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n case \"invalid_element\":\n return `Ugyldig v\u00E6rdi i ${issue.origin}`;\n default:\n return `Ugyldigt input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"Array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ung\u00FCltige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ung\u00FCltige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ung\u00FCltige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ung\u00FCltiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ung\u00FCltiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ung\u00FCltiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ung\u00FCltiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ung\u00FCltig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ung\u00FCltige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schl\u00FCssel\" : \"Unbekannter Schl\u00FCssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ung\u00FCltiger Schl\u00FCssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ung\u00FCltige Eingabe\";\n case \"invalid_element\":\n return `Ung\u00FCltiger Wert in ${issue.origin}`;\n default:\n return `Ung\u00FCltige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabelo\";\n }\n if (data === null) {\n return \"senvalora\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emo\u011Dio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-da\u016Dro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nevalida enigo: atendi\u011Dis ${issue.expected}, ricevi\u011Dis ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendi\u011Dis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendi\u011Dis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendi\u011Dis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendi\u011Dis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenci\u011Di per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas fini\u011Di per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} \u015Dlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida \u015Dlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n const TypeNames = {\n string: \"texto\",\n number: \"n\u00FAmero\",\n boolean: \"booleano\",\n array: \"arreglo\",\n object: \"objeto\",\n set: \"conjunto\",\n file: \"archivo\",\n date: \"fecha\",\n bigint: \"n\u00FAmero grande\",\n symbol: \"s\u00EDmbolo\",\n undefined: \"indefinido\",\n null: \"nulo\",\n function: \"funci\u00F3n\",\n map: \"mapa\",\n record: \"registro\",\n tuple: \"tupla\",\n enum: \"enumeraci\u00F3n\",\n union: \"uni\u00F3n\",\n literal: \"literal\",\n promise: \"promesa\",\n void: \"vac\u00EDo\",\n never: \"nunca\",\n unknown: \"desconocido\",\n any: \"cualquiera\",\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n function getTypeName(type) {\n return TypeNames[type] ?? type;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype) {\n return data.constructor.name;\n }\n return \"object\";\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"direcci\u00F3n de correo electr\u00F3nico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duraci\u00F3n ISO\",\n ipv4: \"direcci\u00F3n IPv4\",\n ipv6: \"direcci\u00F3n IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrada inv\u00E1lida: se esperaba ${getTypeName(issue.expected)}, recibido ${getTypeName(parsedType(issue.input))}`;\n // return `Entrada inv\u00E1lida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inv\u00E1lida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opci\u00F3n inv\u00E1lida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing)\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing) {\n return `Demasiado peque\u00F1o: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado peque\u00F1o: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inv\u00E1lida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inv\u00E1lida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inv\u00E1lida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inv\u00E1lida: debe coincidir con el patr\u00F3n ${_issue.pattern}`;\n return `Inv\u00E1lido ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E1lido: debe ser m\u00FAltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inv\u00E1lida en ${getTypeName(issue.origin)}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E1lida\";\n case \"invalid_element\":\n return `Valor inv\u00E1lido en ${getTypeName(issue.origin)}`;\n default:\n return `Entrada inv\u00E1lida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n file: { unit: \"\u0628\u0627\u06CC\u062A\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n array: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n set: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0639\u062F\u062F\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u0622\u0631\u0627\u06CC\u0647\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0648\u0631\u0648\u062F\u06CC\",\n email: \"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644\",\n url: \"URL\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n date: \"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648\",\n time: \"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n duration: \"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n ipv4: \"IPv4 \u0622\u062F\u0631\u0633\",\n ipv6: \"IPv6 \u0622\u062F\u0631\u0633\",\n cidrv4: \"IPv4 \u062F\u0627\u0645\u0646\u0647\",\n cidrv6: \"IPv6 \u062F\u0627\u0645\u0646\u0647\",\n base64: \"base64-encoded \u0631\u0634\u062A\u0647\",\n base64url: \"base64url-encoded \u0631\u0634\u062A\u0647\",\n json_string: \"JSON \u0631\u0634\u062A\u0647\",\n e164: \"E.164 \u0639\u062F\u062F\",\n jwt: \"JWT\",\n template_literal: \"\u0648\u0631\u0648\u062F\u06CC\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${issue.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${parsedType(issue.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${util.stringifyPrimitive(issue.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n }\n return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"} \u0628\u0627\u0634\u062F`;\n }\n return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0628\u0627\u0634\u062F`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`;\n }\n return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0628\u0627\u0634\u062F`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.prefix}\" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`;\n }\n if (_issue.format === \"ends_with\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.suffix}\" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`;\n }\n if (_issue.format === \"includes\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 \"${_issue.includes}\" \u0628\u0627\u0634\u062F`;\n }\n if (_issue.format === \"regex\") {\n return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`;\n }\n return `${Nouns[_issue.format] ?? issue.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n }\n case \"not_multiple_of\":\n return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue.divisor} \u0628\u0627\u0634\u062F`;\n case \"unrecognized_keys\":\n return `\u06A9\u0644\u06CC\u062F${issue.keys.length > 1 ? \"\u0647\u0627\u06CC\" : \"\"} \u0646\u0627\u0634\u0646\u0627\u0633: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue.origin}`;\n case \"invalid_union\":\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n case \"invalid_element\":\n return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue.origin}`;\n default:\n return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkki\u00E4\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4n\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"s\u00E4\u00E4nn\u00F6llinen lauseke\",\n email: \"s\u00E4hk\u00F6postiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen sy\u00F6te: t\u00E4ytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: t\u00E4ytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon t\u00E4ytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon t\u00E4ytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen sy\u00F6te: t\u00E4ytyy sis\u00E4lt\u00E4\u00E4 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen sy\u00F6te: t\u00E4ytyy vastata s\u00E4\u00E4nn\u00F6llist\u00E4 lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: t\u00E4ytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen sy\u00F6te`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tableau\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entr\u00E9e\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"dur\u00E9e ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"cha\u00EEne encod\u00E9e en base64\",\n base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n json_string: \"cha\u00EEne JSON\",\n e164: \"num\u00E9ro E.164\",\n jwt: \"JWT\",\n template_literal: \"entr\u00E9e\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entr\u00E9e invalide : ${issue.expected} attendu, ${parsedType(issue.input)} re\u00E7u`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entr\u00E9e invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00E9l\u00E9ment(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit \u00EAtre ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit \u00EAtre ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cha\u00EEne invalide : doit correspondre au mod\u00E8le ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Cl\u00E9 invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entr\u00E9e invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entr\u00E9e invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entr\u00E9e\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"dur\u00E9e ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"cha\u00EEne encod\u00E9e en base64\",\n base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n json_string: \"cha\u00EEne JSON\",\n e164: \"num\u00E9ro E.164\",\n jwt: \"JWT\",\n template_literal: \"entr\u00E9e\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entr\u00E9e invalide : attendu ${issue.expected}, re\u00E7u ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entr\u00E9e invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u2264\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u2265\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cha\u00EEne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Cl\u00E9 invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entr\u00E9e invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entr\u00E9e invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA\", verb: \"\u05DC\u05DB\u05DC\u05D5\u05DC\" },\n file: { unit: \"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD\", verb: \"\u05DC\u05DB\u05DC\u05D5\u05DC\" },\n array: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", verb: \"\u05DC\u05DB\u05DC\u05D5\u05DC\" },\n set: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", verb: \"\u05DC\u05DB\u05DC\u05D5\u05DC\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u05E7\u05DC\u05D8\",\n email: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC\",\n url: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA\",\n emoji: \"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO\",\n date: \"\u05EA\u05D0\u05E8\u05D9\u05DA ISO\",\n time: \"\u05D6\u05DE\u05DF ISO\",\n duration: \"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO\",\n ipv4: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4\",\n ipv6: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6\",\n cidrv4: \"\u05D8\u05D5\u05D5\u05D7 IPv4\",\n cidrv6: \"\u05D8\u05D5\u05D5\u05D7 IPv6\",\n base64: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64\",\n base64url: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA\",\n json_string: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON\",\n e164: \"\u05DE\u05E1\u05E4\u05E8 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u05E7\u05DC\u05D8\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${issue.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${issue.origin ?? \"value\"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${issue.origin ?? \"value\"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${issue.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${issue.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1\"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`;\n }\n case \"not_multiple_of\":\n return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u05DE\u05E4\u05EA\u05D7${issue.keys.length > 1 ? \"\u05D5\u05EA\" : \"\"} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue.keys.length > 1 ? \"\u05D9\u05DD\" : \"\u05D4\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${issue.origin}`;\n case \"invalid_union\":\n return \"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF\";\n case \"invalid_element\":\n return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${issue.origin}`;\n default:\n return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"sz\u00E1m\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"t\u00F6mb\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"bemenet\",\n email: \"email c\u00EDm\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO id\u0151b\u00E9lyeg\",\n date: \"ISO d\u00E1tum\",\n time: \"ISO id\u0151\",\n duration: \"ISO id\u0151intervallum\",\n ipv4: \"IPv4 c\u00EDm\",\n ipv6: \"IPv6 c\u00EDm\",\n cidrv4: \"IPv4 tartom\u00E1ny\",\n cidrv6: \"IPv6 tartom\u00E1ny\",\n base64: \"base64-k\u00F3dolt string\",\n base64url: \"base64url-k\u00F3dolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 sz\u00E1m\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${issue.expected}, a kapott \u00E9rt\u00E9k ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00C9rv\u00E9nytelen opci\u00F3: valamelyik \u00E9rt\u00E9k v\u00E1rt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `T\u00FAl nagy: ${issue.origin ?? \"\u00E9rt\u00E9k\"} m\u00E9rete t\u00FAl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `T\u00FAl nagy: a bemeneti \u00E9rt\u00E9k ${issue.origin ?? \"\u00E9rt\u00E9k\"} t\u00FAl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} m\u00E9rete t\u00FAl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} t\u00FAl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.prefix}\" \u00E9rt\u00E9kkel kell kezd\u0151dnie`;\n if (_issue.format === \"ends_with\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.suffix}\" \u00E9rt\u00E9kkel kell v\u00E9gz\u0151dnie`;\n if (_issue.format === \"includes\")\n return `\u00C9rv\u00E9nytelen string: \"${_issue.includes}\" \u00E9rt\u00E9ket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `\u00C9rv\u00E9nytelen string: ${_issue.pattern} mint\u00E1nak kell megfelelnie`;\n return `\u00C9rv\u00E9nytelen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u00C9rv\u00E9nytelen sz\u00E1m: ${issue.divisor} t\u00F6bbsz\u00F6r\u00F6s\u00E9nek kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u00C9rv\u00E9nytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"\u00C9rv\u00E9nytelen bemenet\";\n case \"invalid_element\":\n return `\u00C9rv\u00E9nytelen \u00E9rt\u00E9k: ${issue.origin}`;\n default:\n return `\u00C9rv\u00E9nytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"n\u00FAmer\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"fylki\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"a\u00F0 hafa\" },\n file: { unit: \"b\u00E6ti\", verb: \"a\u00F0 hafa\" },\n array: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n set: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"gildi\",\n email: \"netfang\",\n url: \"vefsl\u00F3\u00F0\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dagsetning og t\u00EDmi\",\n date: \"ISO dagsetning\",\n time: \"ISO t\u00EDmi\",\n duration: \"ISO t\u00EDmalengd\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded strengur\",\n base64url: \"base64url-encoded strengur\",\n json_string: \"JSON strengur\",\n e164: \"E.164 t\u00F6lugildi\",\n jwt: \"JWT\",\n template_literal: \"gildi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Rangt gildi: \u00DE\u00FA sl\u00F3st inn ${parsedType(issue.input)} \u00FEar sem \u00E1 a\u00F0 vera ${issue.expected}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Rangt gildi: gert r\u00E1\u00F0 fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00D3gilt val: m\u00E1 vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} s\u00E9 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} s\u00E9 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 byrja \u00E1 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 enda \u00E1 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 innihalda \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 fylgja mynstri ${_issue.pattern}`;\n return `Rangt ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `R\u00F6ng tala: ver\u00F0ur a\u00F0 vera margfeldi af ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u00D3\u00FEekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Rangur lykill \u00ED ${issue.origin}`;\n case \"invalid_union\":\n return \"Rangt gildi\";\n case \"invalid_element\":\n return `Rangt gildi \u00ED ${issue.origin}`;\n default:\n return `Rangt gildi`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"vettore\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u6587\u5B57\", verb: \"\u3067\u3042\u308B\" },\n file: { unit: \"\u30D0\u30A4\u30C8\", verb: \"\u3067\u3042\u308B\" },\n array: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n set: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u6570\u5024\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u914D\u5217\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u5165\u529B\u5024\",\n email: \"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\",\n url: \"URL\",\n emoji: \"\u7D75\u6587\u5B57\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO\u65E5\u6642\",\n date: \"ISO\u65E5\u4ED8\",\n time: \"ISO\u6642\u523B\",\n duration: \"ISO\u671F\u9593\",\n ipv4: \"IPv4\u30A2\u30C9\u30EC\u30B9\",\n ipv6: \"IPv6\u30A2\u30C9\u30EC\u30B9\",\n cidrv4: \"IPv4\u7BC4\u56F2\",\n cidrv6: \"IPv6\u7BC4\u56F2\",\n base64: \"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n base64url: \"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n json_string: \"JSON\u6587\u5B57\u5217\",\n e164: \"E.164\u756A\u53F7\",\n jwt: \"JWT\",\n template_literal: \"\u5165\u529B\u5024\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u7121\u52B9\u306A\u5165\u529B: ${issue.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${parsedType(issue.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u7121\u52B9\u306A\u5165\u529B: ${util.stringifyPrimitive(issue.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`;\n return `\u7121\u52B9\u306A\u9078\u629E: ${util.joinValues(issue.values, \"\u3001\")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u4EE5\u4E0B\u3067\u3042\u308B\" : \"\u3088\u308A\u5C0F\u3055\u3044\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${sizing.unit ?? \"\u8981\u7D20\"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u4EE5\u4E0A\u3067\u3042\u308B\" : \"\u3088\u308A\u5927\u304D\u3044\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.prefix}\"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"ends_with\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.suffix}\"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"includes\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.includes}\"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n if (_issue.format === \"regex\")\n return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n return `\u7121\u52B9\u306A${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u7121\u52B9\u306A\u6570\u5024: ${issue.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n case \"unrecognized_keys\":\n return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue.keys.length > 1 ? \"\u7FA4\" : \"\"}: ${util.joinValues(issue.keys, \"\u3001\")}`;\n case \"invalid_key\":\n return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;\n case \"invalid_union\":\n return \"\u7121\u52B9\u306A\u5165\u529B\";\n case \"invalid_element\":\n return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;\n default:\n return `\u7121\u52B9\u306A\u5165\u529B`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n const typeMap = {\n string: \"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n boolean: \"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8\",\n undefined: \"undefined\",\n bigint: \"bigint\",\n symbol: \"symbol\",\n function: \"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0\",\n };\n return typeMap[t] ?? t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n file: { unit: \"\u10D1\u10D0\u10D8\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n array: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n set: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n email: \"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n url: \"URL\",\n emoji: \"\u10D4\u10DB\u10DD\u10EF\u10D8\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD\",\n date: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8\",\n time: \"\u10D3\u10E0\u10DD\",\n duration: \"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0\",\n ipv4: \"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n ipv6: \"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n cidrv4: \"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n cidrv6: \"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n base64: \"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n base64url: \"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n json_string: \"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8\",\n e164: \"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8\",\n jwt: \"JWT\",\n template_literal: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${util.joinValues(issue.values, \"|\")}-\u10D3\u10D0\u10DC`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.prefix}\"-\u10D8\u10D7`;\n }\n if (_issue.format === \"ends_with\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.suffix}\"-\u10D8\u10D7`;\n if (_issue.format === \"includes\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 \"${_issue.includes}\"-\u10E1`;\n if (_issue.format === \"regex\")\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`;\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;\n case \"unrecognized_keys\":\n return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue.keys.length > 1 ? \"\u10D4\u10D1\u10D8\" : \"\u10D8\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue.origin}-\u10E8\u10D8`;\n case \"invalid_union\":\n return \"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\";\n case \"invalid_element\":\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue.origin}-\u10E8\u10D8`;\n default:\n return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n file: { unit: \"\u1794\u17C3\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n array: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n set: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)\" : \"\u179B\u17C1\u1781\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u17A2\u17B6\u179A\u17C1 (Array)\";\n }\n if (data === null) {\n return \"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n email: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B\",\n url: \"URL\",\n emoji: \"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO\",\n date: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO\",\n time: \"\u1798\u17C9\u17C4\u1784 ISO\",\n duration: \"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO\",\n ipv4: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n ipv6: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n cidrv4: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n cidrv6: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n base64: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64\",\n base64url: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url\",\n json_string: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON\",\n e164: \"\u179B\u17C1\u1781 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u1792\u17B6\u178F\u17BB\"}`;\n return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`;\n return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n case \"invalid_union\":\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n case \"invalid_element\":\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n default:\n return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n return km();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\uBB38\uC790\", verb: \"to have\" },\n file: { unit: \"\uBC14\uC774\uD2B8\", verb: \"to have\" },\n array: { unit: \"\uAC1C\", verb: \"to have\" },\n set: { unit: \"\uAC1C\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\uC785\uB825\",\n email: \"\uC774\uBA54\uC77C \uC8FC\uC18C\",\n url: \"URL\",\n emoji: \"\uC774\uBAA8\uC9C0\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \uB0A0\uC9DC\uC2DC\uAC04\",\n date: \"ISO \uB0A0\uC9DC\",\n time: \"ISO \uC2DC\uAC04\",\n duration: \"ISO \uAE30\uAC04\",\n ipv4: \"IPv4 \uC8FC\uC18C\",\n ipv6: \"IPv6 \uC8FC\uC18C\",\n cidrv4: \"IPv4 \uBC94\uC704\",\n cidrv6: \"IPv6 \uBC94\uC704\",\n base64: \"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n base64url: \"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n json_string: \"JSON \uBB38\uC790\uC5F4\",\n e164: \"E.164 \uBC88\uD638\",\n jwt: \"JWT\",\n template_literal: \"\uC785\uB825\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${issue.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${parsedType(issue.input)}\uC785\uB2C8\uB2E4`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${util.stringifyPrimitive(issue.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`;\n return `\uC798\uBABB\uB41C \uC635\uC158: ${util.joinValues(issue.values, \"\uB610\uB294 \")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\uC774\uD558\" : \"\uBBF8\uB9CC\";\n const suffix = adj === \"\uBBF8\uB9CC\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"\uC694\uC18C\";\n if (sizing)\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\uC774\uC0C1\" : \"\uCD08\uACFC\";\n const suffix = adj === \"\uC774\uC0C1\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"\uC694\uC18C\";\n if (sizing) {\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.prefix}\"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`;\n }\n if (_issue.format === \"ends_with\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.suffix}\"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`;\n if (_issue.format === \"includes\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.includes}\"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`;\n if (_issue.format === \"regex\")\n return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`;\n return `\uC798\uBABB\uB41C ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n case \"unrecognized_keys\":\n return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\uC798\uBABB\uB41C \uD0A4: ${issue.origin}`;\n case \"invalid_union\":\n return `\uC798\uBABB\uB41C \uC785\uB825`;\n case \"invalid_element\":\n return `\uC798\uBABB\uB41C \uAC12: ${issue.origin}`;\n default:\n return `\uC798\uBABB\uB41C \uC785\uB825`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n return parsedTypeFromType(t, data);\n};\nconst parsedTypeFromType = (t, data = undefined) => {\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"skai\u010Dius\";\n }\n case \"bigint\": {\n return \"sveikasis skai\u010Dius\";\n }\n case \"string\": {\n return \"eilut\u0117\";\n }\n case \"boolean\": {\n return \"login\u0117 reik\u0161m\u0117\";\n }\n case \"undefined\":\n case \"void\": {\n return \"neapibr\u0117\u017Eta reik\u0161m\u0117\";\n }\n case \"function\": {\n return \"funkcija\";\n }\n case \"symbol\": {\n return \"simbolis\";\n }\n case \"object\": {\n if (data === undefined)\n return \"ne\u017Einomas objektas\";\n if (data === null)\n return \"nulin\u0117 reik\u0161m\u0117\";\n if (Array.isArray(data))\n return \"masyvas\";\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n return \"objektas\";\n }\n //Zod types below\n case \"null\": {\n return \"nulin\u0117 reik\u0161m\u0117\";\n }\n }\n return t;\n};\nconst capitalizeFirstCharacter = (text) => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n const abs = Math.abs(number);\n const last = abs % 10;\n const last2 = abs % 100;\n if ((last2 >= 11 && last2 <= 19) || last === 0)\n return \"many\";\n if (last === 1)\n return \"one\";\n return \"few\";\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"simbolis\",\n few: \"simboliai\",\n many: \"simboli\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi b\u016Bti ne ilgesn\u0117 kaip\",\n notInclusive: \"turi b\u016Bti trumpesn\u0117 kaip\",\n },\n bigger: {\n inclusive: \"turi b\u016Bti ne trumpesn\u0117 kaip\",\n notInclusive: \"turi b\u016Bti ilgesn\u0117 kaip\",\n },\n },\n },\n file: {\n unit: {\n one: \"baitas\",\n few: \"baitai\",\n many: \"bait\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi b\u016Bti ne didesnis kaip\",\n notInclusive: \"turi b\u016Bti ma\u017Eesnis kaip\",\n },\n bigger: {\n inclusive: \"turi b\u016Bti ne ma\u017Eesnis kaip\",\n notInclusive: \"turi b\u016Bti didesnis kaip\",\n },\n },\n },\n array: {\n unit: {\n one: \"element\u0105\",\n few: \"elementus\",\n many: \"element\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n },\n bigger: {\n inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n notInclusive: \"turi tur\u0117ti daugiau kaip\",\n },\n },\n },\n set: {\n unit: {\n one: \"element\u0105\",\n few: \"elementus\",\n many: \"element\u0173\",\n },\n verb: {\n smaller: {\n inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n },\n bigger: {\n inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n notInclusive: \"turi tur\u0117ti daugiau kaip\",\n },\n },\n },\n };\n function getSizing(origin, unitType, inclusive, targetShouldBe) {\n const result = Sizable[origin] ?? null;\n if (result === null)\n return result;\n return {\n unit: result.unit[unitType],\n verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n };\n }\n const Nouns = {\n regex: \"\u012Fvestis\",\n email: \"el. pa\u0161to adresas\",\n url: \"URL\",\n emoji: \"jaustukas\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO data ir laikas\",\n date: \"ISO data\",\n time: \"ISO laikas\",\n duration: \"ISO trukm\u0117\",\n ipv4: \"IPv4 adresas\",\n ipv6: \"IPv6 adresas\",\n cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n base64: \"base64 u\u017Ekoduota eilut\u0117\",\n base64url: \"base64url u\u017Ekoduota eilut\u0117\",\n json_string: \"JSON eilut\u0117\",\n e164: \"E.164 numeris\",\n jwt: \"JWT\",\n template_literal: \"\u012Fvestis\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Gautas tipas ${parsedType(issue.input)}, o tik\u0117tasi - ${parsedTypeFromType(issue.expected)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Privalo b\u016Bti ${util.stringifyPrimitive(issue.values[0])}`;\n return `Privalo b\u016Bti vienas i\u0161 ${util.joinValues(issue.values, \"|\")} pasirinkim\u0173`;\n case \"too_big\": {\n const origin = parsedTypeFromType(issue.origin);\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n const adj = issue.inclusive ? \"ne didesnis kaip\" : \"ma\u017Eesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n }\n case \"too_small\": {\n const origin = parsedTypeFromType(issue.origin);\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n const adj = issue.inclusive ? \"ne ma\u017Eesnis kaip\" : \"didesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Eilut\u0117 privalo prasid\u0117ti \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Eilut\u0117 privalo pasibaigti \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Eilut\u0117 privalo \u012Ftraukti \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Eilut\u0117 privalo atitikti ${_issue.pattern}`;\n return `Neteisingas ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Skai\u010Dius privalo b\u016Bti ${issue.divisor} kartotinis.`;\n case \"unrecognized_keys\":\n return `Neatpa\u017Eint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Rastas klaidingas raktas\";\n case \"invalid_union\":\n return \"Klaidinga \u012Fvestis\";\n case \"invalid_element\": {\n const origin = parsedTypeFromType(issue.origin);\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi klaiding\u0105 \u012Fvest\u012F`;\n }\n default:\n return \"Klaidinga \u012Fvestis\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0437\u043D\u0430\u0446\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n file: { unit: \"\u0431\u0430\u0458\u0442\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n array: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n set: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0431\u0440\u043E\u0458\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u043D\u0438\u0437\u0430\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0432\u043D\u0435\u0441\",\n email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430\",\n url: \"URL\",\n emoji: \"\u0435\u043C\u043E\u045F\u0438\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435\",\n date: \"ISO \u0434\u0430\u0442\u0443\u043C\",\n time: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n duration: \"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430\",\n cidrv4: \"IPv4 \u043E\u043F\u0441\u0435\u0433\",\n cidrv6: \"IPv6 \u043E\u043F\u0441\u0435\u0433\",\n base64: \"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n base64url: \"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n json_string: \"JSON \u043D\u0438\u0437\u0430\",\n e164: \"E.164 \u0431\u0440\u043E\u0458\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u043D\u0435\u0441\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438\"}`;\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438\" : \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441\";\n case \"invalid_element\":\n return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue.origin}`;\n default:\n return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\" },\n file: { unit: \"bytes\" },\n array: { unit: \"elementen\" },\n set: { unit: \"elementen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"getal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht \u00E9\u00E9n van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n }\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"\u00E5 ha\" },\n file: { unit: \"bytes\", verb: \"\u00E5 ha\" },\n array: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n set: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tall\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-omr\u00E5de\",\n ipv6: \"IPv6-omr\u00E5de\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: m\u00E5 starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: m\u00E5 ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: m\u00E5 inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: m\u00E5 matche m\u00F8nsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: m\u00E5 v\u00E6re et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente n\u00F8kler\" : \"Ukjent n\u00F8kkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig n\u00F8kkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmal\u0131d\u0131r\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n array: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n set: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numara\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"saf\";\n }\n if (data === null) {\n return \"gayb\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"giren\",\n email: \"epostag\u00E2h\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO heng\u00E2m\u0131\",\n date: \"ISO tarihi\",\n time: \"ISO zaman\u0131\",\n duration: \"ISO m\u00FCddeti\",\n ipv4: \"IPv4 ni\u015F\u00E2n\u0131\",\n ipv6: \"IPv6 ni\u015F\u00E2n\u0131\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-\u015Fifreli metin\",\n base64url: \"base64url-\u015Fifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 say\u0131s\u0131\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `F\u00E2sit giren: umulan ${issue.expected}, al\u0131nan ${parsedType(issue.input)}`;\n // return `F\u00E2sit giren: umulan ${issue.expected}, al\u0131nan ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `F\u00E2sit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `F\u00E2sit tercih: m\u00FBteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmal\u0131yd\u0131.`;\n return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmal\u0131yd\u0131.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`;\n }\n return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} olmal\u0131yd\u0131.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `F\u00E2sit metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131.`;\n if (_issue.format === \"ends_with\")\n return `F\u00E2sit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `F\u00E2sit metin: \"${_issue.includes}\" ihtiv\u00E2 etmeli.`;\n if (_issue.format === \"regex\")\n return `F\u00E2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`;\n return `F\u00E2sit ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `F\u00E2sit say\u0131: ${issue.divisor} kat\u0131 olmal\u0131yd\u0131.`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} i\u00E7in tan\u0131nmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tan\u0131namad\u0131.\";\n case \"invalid_element\":\n return `${issue.origin} i\u00E7in tan\u0131nmayan k\u0131ymet var.`;\n default:\n return `K\u0131ymet tan\u0131namad\u0131.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n file: { unit: \"\u0628\u0627\u06CC\u067C\u0633\", verb: \"\u0648\u0644\u0631\u064A\" },\n array: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n set: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0639\u062F\u062F\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u0627\u0631\u06D0\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0648\u0631\u0648\u062F\u064A\",\n email: \"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9\",\n url: \"\u06CC\u0648 \u0622\u0631 \u0627\u0644\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u064A\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A\",\n date: \"\u0646\u06D0\u067C\u0647\",\n time: \"\u0648\u062E\u062A\",\n duration: \"\u0645\u0648\u062F\u0647\",\n ipv4: \"\u062F IPv4 \u067E\u062A\u0647\",\n ipv6: \"\u062F IPv6 \u067E\u062A\u0647\",\n cidrv4: \"\u062F IPv4 \u0633\u0627\u062D\u0647\",\n cidrv6: \"\u062F IPv6 \u0633\u0627\u062D\u0647\",\n base64: \"base64-encoded \u0645\u062A\u0646\",\n base64url: \"base64url-encoded \u0645\u062A\u0646\",\n json_string: \"JSON \u0645\u062A\u0646\",\n e164: \"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647\",\n jwt: \"JWT\",\n template_literal: \"\u0648\u0631\u0648\u062F\u064A\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${issue.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${parsedType(issue.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${util.stringifyPrimitive(issue.values[0])} \u0648\u0627\u06CC`;\n }\n return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${util.joinValues(issue.values, \"|\")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\u0648\u0646\u0647\"} \u0648\u0644\u0631\u064A`;\n }\n return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0648\u064A`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`;\n }\n return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0648\u064A`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.prefix}\" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`;\n }\n if (_issue.format === \"ends_with\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.suffix}\" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`;\n }\n if (_issue.format === \"includes\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \"${_issue.includes}\" \u0648\u0644\u0631\u064A`;\n }\n if (_issue.format === \"regex\") {\n return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`;\n }\n return `${Nouns[_issue.format] ?? issue.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`;\n }\n case \"not_multiple_of\":\n return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;\n case \"unrecognized_keys\":\n return `\u0646\u0627\u0633\u0645 ${issue.keys.length > 1 ? \"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647\" : \"\u06A9\u0644\u06CC\u0689\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n case \"invalid_union\":\n return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n case \"invalid_element\":\n return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n default:\n return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znak\u00F3w\", verb: \"mie\u0107\" },\n file: { unit: \"bajt\u00F3w\", verb: \"mie\u0107\" },\n array: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n set: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tablica\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"wyra\u017Cenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ci\u0105g znak\u00F3w zakodowany w formacie base64\",\n base64url: \"ci\u0105g znak\u00F3w zakodowany w formacie base64url\",\n json_string: \"ci\u0105g znak\u00F3w w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wej\u015Bcie\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n }\n return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n }\n return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zaczyna\u0107 si\u0119 od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi ko\u0144czy\u0107 si\u0119 na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zawiera\u0107 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`;\n return `Nieprawid\u0142ow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawid\u0142owy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawid\u0142owe dane wej\u015Bciowe\";\n case \"invalid_element\":\n return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue.origin}`;\n default:\n return `Nieprawid\u0142owe dane wej\u015Bciowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"n\u00FAmero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"padr\u00E3o\",\n email: \"endere\u00E7o de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"dura\u00E7\u00E3o ISO\",\n ipv4: \"endere\u00E7o IPv4\",\n ipv6: \"endere\u00E7o IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"n\u00FAmero E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipo inv\u00E1lido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inv\u00E1lida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Op\u00E7\u00E3o inv\u00E1lida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inv\u00E1lido: deve come\u00E7ar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inv\u00E1lido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inv\u00E1lido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inv\u00E1lido: deve corresponder ao padr\u00E3o ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} inv\u00E1lido`;\n }\n case \"not_multiple_of\":\n return `N\u00FAmero inv\u00E1lido: deve ser m\u00FAltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inv\u00E1lida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inv\u00E1lida\";\n case \"invalid_element\":\n return `Valor inv\u00E1lido em ${issue.origin}`;\n default:\n return `Campo inv\u00E1lido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"\u0441\u0438\u043C\u0432\u043E\u043B\",\n few: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0430\",\n many: \"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n file: {\n unit: {\n one: \"\u0431\u0430\u0439\u0442\",\n few: \"\u0431\u0430\u0439\u0442\u0430\",\n many: \"\u0431\u0430\u0439\u0442\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n array: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n set: {\n unit: {\n one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n },\n verb: \"\u0438\u043C\u0435\u0442\u044C\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0447\u0438\u0441\u043B\u043E\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u043C\u0430\u0441\u0441\u0438\u0432\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0432\u0432\u043E\u0434\",\n email: \"email \u0430\u0434\u0440\u0435\u0441\",\n url: \"URL\",\n emoji: \"\u044D\u043C\u043E\u0434\u0437\u0438\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F\",\n date: \"ISO \u0434\u0430\u0442\u0430\",\n time: \"ISO \u0432\u0440\u0435\u043C\u044F\",\n duration: \"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\",\n ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\",\n ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\",\n cidrv4: \"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n cidrv6: \"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n base64: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64\",\n base64url: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url\",\n json_string: \"JSON \u0441\u0442\u0440\u043E\u043A\u0430\",\n e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u0432\u043E\u0434\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${issue.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue.keys.length > 1 ? \"\u044B\u0435\" : \"\u044B\u0439\"} \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0438\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435\";\n case \"invalid_element\":\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue.origin}`;\n default:\n return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0161tevilo\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabela\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"vnos\",\n email: \"e-po\u0161tni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in \u010Das\",\n date: \"ISO datum\",\n time: \"ISO \u010Das\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 \u0161tevilka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neveljaven vnos: pri\u010Dakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pri\u010Dakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se za\u010Deti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se kon\u010Dati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i klju\u010Di\" : \" klju\u010D\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven klju\u010D v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n set: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"antal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"lista\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regulj\u00E4rt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad str\u00E4ng\",\n base64url: \"base64url-kodad str\u00E4ng\",\n json_string: \"JSON-str\u00E4ng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: f\u00F6rv\u00E4ntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `F\u00F6r stor(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `F\u00F6r stor(t): f\u00F6rv\u00E4ntat ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig str\u00E4ng: m\u00E5ste b\u00F6rja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig str\u00E4ng: m\u00E5ste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig str\u00E4ng: m\u00E5ste inneh\u00E5lla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig str\u00E4ng: m\u00E5ste matcha m\u00F6nstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: m\u00E5ste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ok\u00E4nda nycklar\" : \"Ok\u00E4nd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"v\u00E4rdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt v\u00E4rde i ${issue.origin ?? \"v\u00E4rdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n file: { unit: \"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n array: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n set: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1\" : \"\u0B8E\u0BA3\u0BCD\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u0B85\u0BA3\u0BBF\";\n }\n if (data === null) {\n return \"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\",\n email: \"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n date: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF\",\n time: \"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n duration: \"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1\",\n ipv4: \"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n ipv6: \"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n cidrv4: \"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n cidrv6: \"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n base64: \"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n base64url: \"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n json_string: \"JSON \u0B9A\u0BB0\u0BAE\u0BCD\",\n e164: \"E.164 \u0B8E\u0BA3\u0BCD\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.joinValues(issue.values, \"|\")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; //\n }\n return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.prefix}\" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"ends_with\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.suffix}\" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"includes\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.includes}\" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n if (_issue.format === \"regex\")\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n case \"unrecognized_keys\":\n return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue.keys.length > 1 ? \"\u0B95\u0BB3\u0BCD\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;\n case \"invalid_union\":\n return \"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\";\n case \"invalid_element\":\n return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;\n default:\n return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n file: { unit: \"\u0E44\u0E1A\u0E15\u0E4C\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n array: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n set: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)\" : \"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)\";\n }\n if (data === null) {\n return \"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n email: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25\",\n url: \"URL\",\n emoji: \"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n date: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO\",\n time: \"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n duration: \"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n ipv4: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4\",\n ipv6: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6\",\n cidrv4: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4\",\n cidrv6: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6\",\n base64: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64\",\n base64url: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL\",\n json_string: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON\",\n e164: \"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)\",\n jwt: \"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT\",\n template_literal: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${issue.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19\" : \"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\"}`;\n return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22\" : \"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 \"${_issue.includes}\" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`;\n if (_issue.format === \"regex\")\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`;\n return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;\n case \"unrecognized_keys\":\n return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49\";\n case \"invalid_element\":\n return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n default:\n return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmal\u0131\" },\n file: { unit: \"bayt\", verb: \"olmal\u0131\" },\n array: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n set: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO s\u00FCre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aral\u0131\u011F\u0131\",\n cidrv6: \"IPv6 aral\u0131\u011F\u0131\",\n base64: \"base64 ile \u015Fifrelenmi\u015F metin\",\n base64url: \"base64url ile \u015Fifrelenmi\u015F metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 say\u0131s\u0131\",\n jwt: \"JWT\",\n template_literal: \"\u015Eablon dizesi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ge\u00E7ersiz de\u011Fer: beklenen ${issue.expected}, al\u0131nan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ge\u00E7ersiz de\u011Fer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ge\u00E7ersiz se\u00E7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00F6\u011Fe\"}`;\n return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ge\u00E7ersiz metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131`;\n if (_issue.format === \"ends_with\")\n return `Ge\u00E7ersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Ge\u00E7ersiz metin: \"${_issue.includes}\" i\u00E7ermeli`;\n if (_issue.format === \"regex\")\n return `Ge\u00E7ersiz metin: ${_issue.pattern} desenine uymal\u0131`;\n return `Ge\u00E7ersiz ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ge\u00E7ersiz say\u0131: ${issue.divisor} ile tam b\u00F6l\u00FCnebilmeli`;\n case \"unrecognized_keys\":\n return `Tan\u0131nmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} i\u00E7inde ge\u00E7ersiz anahtar`;\n case \"invalid_union\":\n return \"Ge\u00E7ersiz de\u011Fer\";\n case \"invalid_element\":\n return `${issue.origin} i\u00E7inde ge\u00E7ersiz de\u011Fer`;\n default:\n return `Ge\u00E7ersiz de\u011Fer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n file: { unit: \"\u0431\u0430\u0439\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n array: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n set: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0447\u0438\u0441\u043B\u043E\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u043C\u0430\u0441\u0438\u0432\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438\",\n url: \"URL\",\n emoji: \"\u0435\u043C\u043E\u0434\u0437\u0456\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO\",\n date: \"\u0434\u0430\u0442\u0430 ISO\",\n time: \"\u0447\u0430\u0441 ISO\",\n duration: \"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO\",\n ipv4: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4\",\n ipv6: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6\",\n cidrv4: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4\",\n cidrv6: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6\",\n base64: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64\",\n base64url: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url\",\n json_string: \"\u0440\u044F\u0434\u043E\u043A JSON\",\n e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${issue.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${parsedType(issue.input)}`;\n // return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${issue.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\"}`;\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} \u0431\u0443\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} \u0431\u0443\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0456\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n case \"invalid_union\":\n return \"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\";\n case \"invalid_element\":\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue.origin}`;\n default:\n return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n return uk();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u062D\u0631\u0648\u0641\", verb: \"\u06C1\u0648\u0646\u0627\" },\n file: { unit: \"\u0628\u0627\u0626\u0679\u0633\", verb: \"\u06C1\u0648\u0646\u0627\" },\n array: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n set: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"\u0646\u0645\u0628\u0631\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u0622\u0631\u06D2\";\n }\n if (data === null) {\n return \"\u0646\u0644\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0627\u0646 \u067E\u0679\",\n email: \"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n url: \"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644\",\n emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n uuid: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n uuidv4: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4\",\n uuidv6: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6\",\n nanoid: \"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n guid: \"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n cuid: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n cuid2: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2\",\n ulid: \"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC\",\n xid: \"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC\",\n ksuid: \"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n datetime: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645\",\n date: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E\",\n time: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A\",\n duration: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A\",\n ipv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n ipv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n cidrv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C\",\n cidrv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C\",\n base64: \"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n base64url: \"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n json_string: \"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF\",\n e164: \"\u0627\u06CC 164 \u0646\u0645\u0628\u0631\",\n jwt: \"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC\",\n template_literal: \"\u0627\u0646 \u067E\u0679\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${issue.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${parsedType(issue.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${util.stringifyPrimitive(issue.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u06D2 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0627\u0635\u0631\"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u0627 ${adj}${issue.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u06D2 ${adj}${issue.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n }\n return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u0627 ${adj}${issue.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.prefix}\" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n }\n if (_issue.format === \"ends_with\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.suffix}\" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n if (_issue.format === \"includes\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.includes}\" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n if (_issue.format === \"regex\")\n return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n return `\u063A\u0644\u0637 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n case \"unrecognized_keys\":\n return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue.keys.length > 1 ? \"\u0632\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;\n case \"invalid_union\":\n return \"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679\";\n case \"invalid_element\":\n return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;\n default:\n return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"k\u00FD t\u1EF1\", verb: \"c\u00F3\" },\n file: { unit: \"byte\", verb: \"c\u00F3\" },\n array: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n set: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"s\u1ED1\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"m\u1EA3ng\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u0111\u1EA7u v\u00E0o\",\n email: \"\u0111\u1ECBa ch\u1EC9 email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ng\u00E0y gi\u1EDD ISO\",\n date: \"ng\u00E0y ISO\",\n time: \"gi\u1EDD ISO\",\n duration: \"kho\u1EA3ng th\u1EDDi gian ISO\",\n ipv4: \"\u0111\u1ECBa ch\u1EC9 IPv4\",\n ipv6: \"\u0111\u1ECBa ch\u1EC9 IPv6\",\n cidrv4: \"d\u1EA3i IPv4\",\n cidrv6: \"d\u1EA3i IPv6\",\n base64: \"chu\u1ED7i m\u00E3 h\u00F3a base64\",\n base64url: \"chu\u1ED7i m\u00E3 h\u00F3a base64url\",\n json_string: \"chu\u1ED7i JSON\",\n e164: \"s\u1ED1 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u0111\u1EA7u v\u00E0o\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${issue.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${util.stringifyPrimitive(issue.values[0])}`;\n return `T\u00F9y ch\u1ECDn kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\u00E1c gi\u00E1 tr\u1ECB ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"ph\u1EA7n t\u1EED\"}`;\n return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\u00FAc b\u1EB1ng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} kh\u00F4ng h\u1EE3p l\u1EC7`;\n }\n case \"not_multiple_of\":\n return `S\u1ED1 kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\u00E0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kh\u00F3a kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kh\u00F3a kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n case \"invalid_union\":\n return \"\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7\";\n case \"invalid_element\":\n return `Gi\u00E1 tr\u1ECB kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n default:\n return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u5B57\u7B26\", verb: \"\u5305\u542B\" },\n file: { unit: \"\u5B57\u8282\", verb: \"\u5305\u542B\" },\n array: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n set: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"\u975E\u6570\u5B57(NaN)\" : \"\u6570\u5B57\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"\u6570\u7EC4\";\n }\n if (data === null) {\n return \"\u7A7A\u503C(null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u8F93\u5165\",\n email: \"\u7535\u5B50\u90AE\u4EF6\",\n url: \"URL\",\n emoji: \"\u8868\u60C5\u7B26\u53F7\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO\u65E5\u671F\u65F6\u95F4\",\n date: \"ISO\u65E5\u671F\",\n time: \"ISO\u65F6\u95F4\",\n duration: \"ISO\u65F6\u957F\",\n ipv4: \"IPv4\u5730\u5740\",\n ipv6: \"IPv6\u5730\u5740\",\n cidrv4: \"IPv4\u7F51\u6BB5\",\n cidrv6: \"IPv6\u7F51\u6BB5\",\n base64: \"base64\u7F16\u7801\u5B57\u7B26\u4E32\",\n base64url: \"base64url\u7F16\u7801\u5B57\u7B26\u4E32\",\n json_string: \"JSON\u5B57\u7B26\u4E32\",\n e164: \"E.164\u53F7\u7801\",\n jwt: \"JWT\",\n template_literal: \"\u8F93\u5165\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${issue.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u4E2A\u5143\u7D20\"}`;\n return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.prefix}\" \u5F00\u5934`;\n if (_issue.format === \"ends_with\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.suffix}\" \u7ED3\u5C3E`;\n if (_issue.format === \"includes\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`;\n return `\u65E0\u6548${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue.divisor} \u7684\u500D\u6570`;\n case \"unrecognized_keys\":\n return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;\n case \"invalid_union\":\n return \"\u65E0\u6548\u8F93\u5165\";\n case \"invalid_element\":\n return `${issue.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;\n default:\n return `\u65E0\u6548\u8F93\u5165`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u5B57\u5143\", verb: \"\u64C1\u6709\" },\n file: { unit: \"\u4F4D\u5143\u7D44\", verb: \"\u64C1\u6709\" },\n array: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n set: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u8F38\u5165\",\n email: \"\u90F5\u4EF6\u5730\u5740\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO \u65E5\u671F\u6642\u9593\",\n date: \"ISO \u65E5\u671F\",\n time: \"ISO \u6642\u9593\",\n duration: \"ISO \u671F\u9593\",\n ipv4: \"IPv4 \u4F4D\u5740\",\n ipv6: \"IPv6 \u4F4D\u5740\",\n cidrv4: \"IPv4 \u7BC4\u570D\",\n cidrv6: \"IPv6 \u7BC4\u570D\",\n base64: \"base64 \u7DE8\u78BC\u5B57\u4E32\",\n base64url: \"base64url \u7DE8\u78BC\u5B57\u4E32\",\n json_string: \"JSON \u5B57\u4E32\",\n e164: \"E.164 \u6578\u503C\",\n jwt: \"JWT\",\n template_literal: \"\u8F38\u5165\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${issue.expected}\uFF0C\u4F46\u6536\u5230 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u500B\u5143\u7D20\"}`;\n return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.prefix}\" \u958B\u982D`;\n }\n if (_issue.format === \"ends_with\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.suffix}\" \u7D50\u5C3E`;\n if (_issue.format === \"includes\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`;\n return `\u7121\u6548\u7684 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue.divisor} \u7684\u500D\u6578`;\n case \"unrecognized_keys\":\n return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue.keys.length > 1 ? \"\u5011\" : \"\"}\uFF1A${util.joinValues(issue.keys, \"\u3001\")}`;\n case \"invalid_key\":\n return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;\n case \"invalid_union\":\n return \"\u7121\u6548\u7684\u8F38\u5165\u503C\";\n case \"invalid_element\":\n return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;\n default:\n return `\u7121\u6548\u7684\u8F38\u5165\u503C`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"\u00E0mi\", verb: \"n\u00ED\" },\n file: { unit: \"bytes\", verb: \"n\u00ED\" },\n array: { unit: \"nkan\", verb: \"n\u00ED\" },\n set: { unit: \"nkan\", verb: \"n\u00ED\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"n\u1ECD\u0301mb\u00E0\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"akop\u1ECD\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n email: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC \u00ECm\u1EB9\u0301l\u00EC\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"\u00E0k\u00F3k\u00F2 ISO\",\n date: \"\u1ECDj\u1ECD\u0301 ISO\",\n time: \"\u00E0k\u00F3k\u00F2 ISO\",\n duration: \"\u00E0k\u00F3k\u00F2 t\u00F3 p\u00E9 ISO\",\n ipv4: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv4\",\n ipv6: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv6\",\n cidrv4: \"\u00E0gb\u00E8gb\u00E8 IPv4\",\n cidrv6: \"\u00E0gb\u00E8gb\u00E8 IPv6\",\n base64: \"\u1ECD\u0300r\u1ECD\u0300 t\u00ED a k\u1ECD\u0301 n\u00ED base64\",\n base64url: \"\u1ECD\u0300r\u1ECD\u0300 base64url\",\n json_string: \"\u1ECD\u0300r\u1ECD\u0300 JSON\",\n e164: \"n\u1ECD\u0301mb\u00E0 E.164\",\n jwt: \"JWT\",\n template_literal: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${issue.expected}, \u00E0m\u1ECD\u0300 a r\u00ED ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${util.stringifyPrimitive(issue.values[0])}`;\n return `\u00C0\u1E63\u00E0y\u00E0n a\u1E63\u00EC\u1E63e: yan \u1ECD\u0300kan l\u00E1ra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.maximum}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.minimum}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\u00FA \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\u00ED p\u1EB9\u0300l\u00FA \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\u00ED \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u00E1 \u00E0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`;\n return `A\u1E63\u00EC\u1E63e: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `N\u1ECD\u0301mb\u00E0 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \u00E8y\u00E0 p\u00EDp\u00EDn ti ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `B\u1ECDt\u00ECn\u00EC \u00E0\u00ECm\u1ECD\u0300: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `B\u1ECDt\u00ECn\u00EC a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n case \"invalid_union\":\n return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n case \"invalid_element\":\n return `Iye a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n default:\n return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n", "export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n", "import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n", "import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n constructor(params) {\n this.counter = 0;\n this.metadataRegistry = params?.metadata ?? globalRegistry;\n this.target = params?.target ?? \"draft-2020-12\";\n this.unrepresentable = params?.unrepresentable ?? \"throw\";\n this.override = params?.override ?? (() => { });\n this.io = params?.io ?? \"output\";\n this.seen = new Map();\n }\n process(schema, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n const formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n };\n // check for schema in seens\n const seen = this.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n this.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n const parent = schema._zod.parent;\n if (parent) {\n // schema was cloned from another schema\n result.ref = parent;\n this.process(parent, params);\n this.seen.get(parent).isParent = true;\n }\n else {\n const _json = result.schema;\n switch (def.type) {\n case \"string\": {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n result.schema.allOf = [\n ...regexes.map((regex) => ({\n ...(this.target === \"draft-7\" || this.target === \"draft-4\" || this.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n break;\n }\n case \"number\": {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n break;\n }\n case \"boolean\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"bigint\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"symbol\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"null\": {\n if (this.target === \"openapi-3.0\") {\n _json.type = \"string\";\n _json.nullable = true;\n _json.enum = [null];\n }\n else\n _json.type = \"null\";\n break;\n }\n case \"any\": {\n break;\n }\n case \"unknown\": {\n break;\n }\n case \"undefined\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"void\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"never\": {\n _json.not = {};\n break;\n }\n case \"date\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"array\": {\n const json = _json;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n break;\n }\n case \"object\": {\n const json = _json;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape; // params.shapeCache.get(schema)!;\n for (const key in shape) {\n json.properties[key] = this.process(shape[key], {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n // const optionalKeys = new Set(def.optional);\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (this.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (this.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = this.process(def.catchall, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n break;\n }\n case \"union\": {\n const json = _json;\n const options = def.options.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, \"anyOf\", i],\n }));\n json.anyOf = options;\n break;\n }\n case \"intersection\": {\n const json = _json;\n const a = this.process(def.left, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = this.process(def.right, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n break;\n }\n case \"tuple\": {\n const json = _json;\n json.type = \"array\";\n const prefixPath = this.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = this.target === \"draft-2020-12\" ? \"items\" : this.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? this.process(def.rest, {\n ...params,\n path: [...params.path, restPath, ...(this.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (this.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (this.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n break;\n }\n case \"record\": {\n const json = _json;\n json.type = \"object\";\n if (this.target === \"draft-7\" || this.target === \"draft-2020-12\") {\n json.propertyNames = this.process(def.keyType, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = this.process(def.valueType, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n break;\n }\n case \"map\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"set\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"enum\": {\n const json = _json;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n break;\n }\n case \"literal\": {\n const json = _json;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"string\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n break;\n }\n case \"file\": {\n const json = _json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(json, file);\n }\n else {\n json.anyOf = mime.map((m) => {\n const mFile = { ...file, contentMediaType: m };\n return mFile;\n });\n }\n }\n else {\n Object.assign(json, file);\n }\n // if (this.unrepresentable === \"throw\") {\n // throw new Error(\"File cannot be represented in JSON Schema\");\n // }\n break;\n }\n case \"transform\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"nullable\": {\n const inner = this.process(def.innerType, params);\n if (this.target === \"openapi-3.0\") {\n result.ref = def.innerType;\n _json.nullable = true;\n }\n else {\n _json.anyOf = [inner, { type: \"null\" }];\n }\n break;\n }\n case \"nonoptional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"success\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"default\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"prefault\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n if (this.io === \"input\")\n _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"catch\": {\n // use conditionals\n this.process(def.innerType, params);\n result.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n _json.default = catchValue;\n break;\n }\n case \"nan\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"template_literal\": {\n const json = _json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n json.type = \"string\";\n json.pattern = pattern.source;\n break;\n }\n case \"pipe\": {\n const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"readonly\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.readOnly = true;\n break;\n }\n // passthrough types\n case \"promise\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"optional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"lazy\": {\n const innerType = schema._zod.innerType;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"custom\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"function\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n break;\n }\n default: {\n def;\n }\n }\n }\n }\n // metadata\n const meta = this.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (this.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (this.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from this.seen in case it was overwritten\n const _result = this.seen.get(schema);\n return _result.schema;\n }\n emit(schema, _params) {\n const params = {\n cycles: _params?.cycles ?? \"ref\",\n reused: _params?.reused ?? \"inline\",\n // unrepresentable: _params?.unrepresentable ?? \"throw\",\n // uri: _params?.uri ?? ((id) => `${id}`),\n external: _params?.external ?? undefined,\n };\n // iterate over seen map;\n const root = this.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // initialize result with root schema fields\n // Object.assign(result, seen.cached);\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (params.external) {\n const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = params.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (params.cycles === \"throw\") {\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (params.external) {\n const ext = params.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = this.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (params.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n // flatten _refs\n const flattenRef = (zodSchema, params) => {\n const seen = this.seen.get(zodSchema);\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n // already seen\n if (seen.ref === null) {\n return;\n }\n // flatten ref if defined\n const ref = seen.ref;\n seen.ref = null; // prevent recursion\n if (ref) {\n flattenRef(ref, params);\n // merge referenced schema into current\n const refSchema = this.seen.get(ref).schema;\n if (refSchema.$ref &&\n (params.target === \"draft-7\" || params.target === \"draft-4\" || params.target === \"openapi-3.0\")) {\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n }\n }\n // execute overrides\n if (!seen.isParent)\n this.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...this.seen.entries()].reverse()) {\n flattenRef(entry[0], { target: this.target });\n }\n const result = {};\n if (this.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (this.target === \"draft-7\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (this.target === \"draft-4\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (this.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // @ts-ignore\n console.warn(`Invalid target: ${this.target}`);\n }\n if (params.external?.uri) {\n const id = params.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = params.external.uri(id);\n }\n Object.assign(result, root.def);\n // build defs object\n const defs = params.external?.defs ?? {};\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (params.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (this.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to .emit() is functionally independent\n // though the seen map is shared\n return JSON.parse(JSON.stringify(result));\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n }\n}\nexport function toJSONSchema(input, _params) {\n if (input instanceof $ZodRegistry) {\n const gen = new JSONSchemaGenerator(_params);\n const defs = {};\n for (const entry of input._idmap.entries()) {\n const [_, schema] = entry;\n gen.process(schema);\n }\n const schemas = {};\n const external = {\n registry: input,\n uri: _params?.uri,\n defs,\n };\n for (const entry of input._idmap.entries()) {\n const [key, schema] = entry;\n schemas[key] = gen.emit(schema, {\n ..._params,\n external,\n });\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n const gen = new JSONSchemaGenerator(_params);\n gen.process(input);\n return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const schema = _schema;\n const def = schema._zod.def;\n switch (def.type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"date\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"void\":\n case \"literal\":\n case \"enum\":\n case \"nan\":\n case \"file\":\n case \"template_literal\":\n return false;\n case \"array\": {\n return isTransforming(def.element, ctx);\n }\n case \"object\": {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n case \"union\": {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n case \"intersection\": {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n case \"tuple\": {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n case \"record\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"map\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"set\": {\n return isTransforming(def.valueType, ctx);\n }\n // inner types\n case \"promise\":\n case \"optional\":\n case \"nonoptional\":\n case \"nullable\":\n case \"readonly\":\n return isTransforming(def.innerType, ctx);\n case \"lazy\":\n return isTransforming(def.getter(), ctx);\n case \"default\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"prefault\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"custom\": {\n return false;\n }\n case \"transform\": {\n return true;\n }\n case \"pipe\": {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n case \"success\": {\n return false;\n }\n case \"catch\": {\n return false;\n }\n case \"function\": {\n return false;\n }\n default:\n def;\n }\n throw new Error(`Unknown schema type: ${def.type}`);\n}\n", "export {};\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n", "import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n", "import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n", "import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", shape ? util.objectClone(shape) : {});\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n", "// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n", "import { z } from \"zod\";\nexport function tool(input) {\n return input;\n}\ntool.schema = z;\n", "import type { Plugin, PluginModule } from \"@opencode-ai/plugin\"\nimport { tool } from \"@opencode-ai/plugin\"\nimport { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync } from \"node:fs\"\nimport { execFileSync } from \"node:child_process\"\nimport { join, dirname } from \"node:path\"\nimport { IntentParser, type TaskIntent, type Subtask } from \"./core/intent-parser.js\"\nimport { Executor } from \"./core/executor.js\"\nimport { Verifier } from \"./core/verifier.js\"\nimport { ErrorAnalyzer } from \"./core/error-analyzer.js\"\nimport { Planner } from \"./core/planner.js\"\nimport { CodebaseNavigator } from \"./core/navigator.js\"\nimport { DependencyTracker } from \"./drift/dependency-tracker.js\"\nimport { ContextCompressor } from \"./drift/context-compressor.js\"\nimport { GitIntegration } from \"./core/git.js\"\nimport { TechDebtScorer } from \"./core/tech-debt-scorer.js\"\nimport { AgentCoordinator } from \"./agents/coordinator.js\"\nimport { AgentRuntime } from \"./agents/agent-runtime.js\"\nimport type { AgentRole, AgentTask } from \"./agents/coordinator.js\"\nimport { Orchestrator, type WorkflowPipeline, type CrossValidationResult } from \"./agents/orchestrator.js\"\nimport { SkillStore } from \"./memory/skill-store.js\"\nimport { EpisodicStore } from \"./memory/episodic-store.js\"\nimport { HallucinationGuard } from \"./drift/hallucination-guard.js\"\nimport { ParallelExecutor } from \"./core/parallel.js\"\nimport { Dashboard } from \"./observability/dashboard.js\"\nimport { CheckpointSystem } from \"./drift/checkpoints.js\"\nimport { SessionStore } from \"./memory/session-store.js\"\nimport { TraceLogger } from \"./observability/trace-logger.js\"\nimport { RoleRegistry, type PromptEntry } from \"./agents/role-registry.js\"\nimport { MemorySchemaVersion, createMemoryEnvelope, parseMemoryEnvelope } from \"./memory/schema-version.js\"\nimport { createSkillDefinition, inspectSkill, serializeSkill, deserializeSkill } from \"./memory/skill-format.js\"\nimport { detectTaskType } from \"./core/task-classifier.js\"\nimport { skillsToTrainingData, trainingDatasetSummary, skillToTrainingExample } from \"./memory/skill-training.js\"\nimport { SelfEvolver } from \"./evolution/self-evolver.js\"\nimport { ContinuousEvolution } from \"./evolution/continuous-evolution.js\"\nimport { LLMEngine } from \"./core/llm.js\"\nimport { AgentLoop } from \"./core/agent-loop.js\"\nimport { PersistenceLayer } from \"./memory/persistence.js\"\nimport { VectorStore } from \"./memory/vector-store.js\"\nimport { ModelRegistry } from \"./core/model-registry.js\"\nimport { ConfigLoader } from \"./core/config.js\"\nimport { PatternDiscovery } from \"./drift/pattern-discovery.js\"\nimport { LiveEvaluator } from \"./evaluation/live-evaluator.js\"\n\nconst createEngine: Plugin = async (input, _options) => {\n // \u2500\u2500 Config (load first, everything else depends on it) \u2500\u2500\n const configLoader = new ConfigLoader(input.worktree)\n const config = configLoader.load()\n configLoader.startWatch()\n\n // \u2500\u2500 Auto-register \"agentic\" agent if not present \u2500\u2500\n const agentsDir = join(input.worktree, \".opencode\", \"agents\")\n const agenticAgentPath = join(agentsDir, \"agentic.md\")\n if (!existsSync(agenticAgentPath)) {\n try {\n mkdirSync(agentsDir, { recursive: true })\n writeFileSync(agenticAgentPath, `---\ndescription: Multi-agent software engineering assistant (20 tools: plan, execute, reflect, verify, nav, delegate, etc.)\nmode: all\n---\n\nYou are an AI assistant with access to 21 agentic engineering tools (agentic_plan, agentic_execute, agentic_reflect, agentic_verify, agentic_nav, agentic_delegate, etc.). Use these tools to help the user plan, implement, verify, and manage software engineering tasks.\n`, \"utf-8\")\n } catch { /* non-fatal: agent file is optional */ }\n }\n\n const intentParser = new IntentParser()\n const executor = new Executor()\n const verifier = new Verifier()\n const errorAnalyzer = new ErrorAnalyzer()\n const planner = new Planner()\n const navigator = new CodebaseNavigator()\n const depTracker = new DependencyTracker()\n // Build initial file-level dependency graph from project source\n try {\n const sourceDir = join(input.worktree, \"src\")\n if (existsSync(sourceDir)) {\n const scanBatch: Record<string, string> = {}\n const walkDir = (dir: string) => {\n try {\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name)\n if (entry.isDirectory() && ![\"node_modules\", \".git\", \"dist\", \".agentic\"].includes(entry.name))\n walkDir(full)\n else if (entry.isFile() && /\\.(ts|tsx|js|jsx|mjs)$/.test(entry.name) && Object.keys(scanBatch).length < 100)\n try { scanBatch[full] = readFileSync(full, \"utf-8\") } catch {}\n }\n } catch {}\n }\n walkDir(sourceDir)\n depTracker.scanFiles(scanBatch, input.worktree)\n }\n } catch { /* non-fatal */ }\n const contextCompressor = new ContextCompressor()\n const git = new GitIntegration(input.worktree)\n const debtScorer = new TechDebtScorer()\n const skillStore = new SkillStore()\n const coordinator = new AgentCoordinator(skillStore)\n const orchestrator = new Orchestrator()\n for (const pipeline of orchestrator.getBuiltInPipelines()) {\n orchestrator.definePipeline(pipeline)\n }\n const episodicStore = new EpisodicStore()\n const checkpoints = new CheckpointSystem()\n const hallucinationGuard = new HallucinationGuard(input.worktree)\n const parallelExec = new ParallelExecutor()\n const dashboard = new Dashboard()\n const sessionStore = new SessionStore()\n const traceLogger = new TraceLogger(input.worktree)\n const roleRegistry = new RoleRegistry()\n const schemaVersion = new MemorySchemaVersion()\n const selfEvolver = new SelfEvolver()\n const continuousEvolution = new ContinuousEvolution()\n const patternDiscovery = new PatternDiscovery()\n const liveEvaluator = new LiveEvaluator()\n const modelRegistry = new ModelRegistry()\n const llmEngine = new LLMEngine()\n llmEngine.setOpencodeClient(input.client)\n llmEngine.setModelRegistry(modelRegistry)\n llmEngine.setSessionStore(sessionStore)\n orchestrator.setLLMEngine(llmEngine)\n errorAnalyzer.setLLM(llmEngine)\n verifier.setLLM(llmEngine)\n\n const agentRuntime = new AgentRuntime()\n agentRuntime.setOpencodeClient(input.client)\n agentRuntime.setModelRegistry(modelRegistry)\n\n // Discover models from OpenCode client + env vars\n ;(async () => {\n try {\n const client = input.client as { config?: { providers?: () => Promise<{ 200?: { providers: Array<{ name: string; id: string; models?: Record<string, unknown> }>; default?: Record<string, string> } }> }; models?: () => Promise<Array<{ id: string }>> }\n const allModels: string[] = []\n\n // 1. Try client.config.providers() \u2014 daftar provider + model dari OpenCode\n if (client?.config?.providers) {\n const provResp = await client.config.providers()\n const providers = provResp?.[200]?.providers ?? []\n const defaultMap = provResp?.[200]?.default ?? {}\n const defaultModelName = defaultMap[Object.keys(defaultMap)[0] ?? \"\"]?.split(\"/\")?.pop() || \"\"\n if (defaultModelName) allModels.push(defaultModelName)\n for (const p of providers) {\n if (p.models) {\n for (const modelKey of Object.keys(p.models)) {\n const name = modelKey.includes(\"/\") ? modelKey.split(\"/\").pop()! : modelKey\n if (name && !allModels.includes(name)) allModels.push(name)\n }\n }\n }\n }\n\n // 2. Try client.models() \u2014 alternatif\n if (allModels.length === 0 && typeof client?.models === \"function\") {\n const models = await client.models()\n for (const m of models) {\n if (m.id && !allModels.includes(m.id)) allModels.push(m.id)\n }\n }\n\n // 3. Fallback: env vars\n const envModel = process.env.OPENAI_MODEL || process.env.LLM_MODEL || \"\"\n if (envModel && !allModels.includes(envModel)) allModels.push(envModel)\n\n // 4. Register semua model yang ditemukan\n const fastModel = process.env.FAST_MODEL || allModels[0] || \"\"\n const capableModel = process.env.CAPABLE_MODEL || allModels[0] || \"\"\n\n for (const m of allModels) modelRegistry.addModel(m)\n if (fastModel) modelRegistry.registerAlias(\"fast\", [fastModel])\n if (capableModel && capableModel !== fastModel) modelRegistry.addModel(capableModel)\n if (capableModel) modelRegistry.registerAlias(\"capable\", [capableModel])\n } catch {\n // Silent fallback \u2014 discovery gagal, pake env var\n const envModel = process.env.OPENAI_MODEL || process.env.LLM_MODEL || \"\"\n const fastModel = process.env.FAST_MODEL || envModel\n const capableModel = process.env.CAPABLE_MODEL || envModel\n if (fastModel) { modelRegistry.addModel(fastModel); modelRegistry.registerAlias(\"fast\", [fastModel]) }\n if (capableModel && capableModel !== fastModel) modelRegistry.addModel(capableModel)\n if (capableModel) modelRegistry.registerAlias(\"capable\", [capableModel])\n }\n })()\n llmEngine.setMemoryStores({\n searchEpisodes: (query: string) => episodicStore.search(query),\n findSkills: (query: string) => skillStore.find(query).map(s => ({ name: s.definition.meta.name, successRate: s.successRate })),\n })\n const agentLoop = new AgentLoop(llmEngine, { maxIterations: 10, autoRetry: true, maxRetries: 2, verifyAfterEach: false })\n const persistence = new PersistenceLayer(input.worktree)\n const vectorStore = new VectorStore()\n vectorStore.setLLM(llmEngine)\n // Set search weights from config\n vectorStore.setSearchWeights(config.memory.search.keywordWeight, config.memory.search.vectorWeight)\n // Set stop word languages from config\n vectorStore.setStopWordsLanguages(config.memory.stopWordsLanguages)\n\n // Embedding: dari config \u2014 kalau ada endpoint, pake remote embedding\n // Kalau null \u2192 lightweight mode (TF-IDF sparse-only, zero dep)\n const embedConfig = config.embedding\n if (embedConfig && embedConfig.model) {\n vectorStore.setEmbeddingConfig(embedConfig.model, embedConfig.endpoint, embedConfig.apiKey)\n vectorStore.setLLM(llmEngine)\n }\n // Lightweight mode: tanpa embedder \u2192 VectorStore fallback ke sparse search otomatis\n\n contextCompressor.setLLM(llmEngine)\n verifier.detectLanguage(input.worktree)\n\n // Restore persisted model stats\n const savedModels = persistence.loadAll<Record<string, import(\"./core/model-registry.js\").ModelStats>>(\"models\")\n for (const m of savedModels) {\n modelRegistry.fromJSON(m.data)\n }\n\n // Restore persisted episodes and skills\n const savedEpisodes = persistence.loadAll<{ planGoal: string; outcome: string; decisions: string[]; filesChanged: string[]; sessionId: string; timestamp: string; tags: string[] }>(\"episodes\")\n for (const ep of savedEpisodes) {\n episodicStore.record(ep.data.sessionId, ep.data.planGoal, ep.data.outcome as \"success\" | \"partial\" | \"failed\", ep.data.decisions, ep.data.filesChanged)\n }\n // Auto-save episodes when recorded\n episodicStore.setPersistenceCallback((episode) => {\n persistence.save(\"episodes\", episode.sessionId, episode)\n })\n const savedSkills = persistence.loadAll<import(\"./memory/skill-format.js\").SkillDefinition>(\"skills\")\n for (const sk of savedSkills) {\n skillStore.importFromEnvelope(JSON.stringify(createMemoryEnvelope(sk.data, \"skill\")))\n }\n\n // Restore persisted prompt states (Stage IV: versioned prompt history)\n const savedPrompts = persistence.loadAll<Array<{ role: string; history: PromptEntry[] }>>(\"prompts\")\n if (savedPrompts.length > 0) {\n // Find the latest state and pass to RoleRegistry constructor\n const latest = savedPrompts.reduce((a, b) => {\n const aTime = new Date(a.updatedAt).getTime()\n const bTime = new Date(b.updatedAt).getTime()\n return aTime > bTime ? a : b\n })\n const promptData = latest.data\n for (const entry of promptData) {\n const state = roleRegistry.getPromptState(entry.role)\n if (state) {\n // Role already has initial history \u2014 skip\n continue\n }\n // Replay history into RoleRegistry (construct already set initial prompts)\n for (const hist of entry.history) {\n let currentPrompt = roleRegistry.getPrompt(entry.role)\n if (currentPrompt && hist.prompt !== currentPrompt) {\n roleRegistry.updatePrompt(entry.role as \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\", hist.prompt, hist.source, hist.description)\n }\n }\n }\n }\n\n await traceLogger.init()\n\n // \u2500\u2500 Config hot-reload propagation \u2500\u2500\n // Ketika config berubah di disk, module-module berikut di-update\n configLoader.onChange((newConfig) => {\n // 1. Vector store: search weights + stop words\n vectorStore.setSearchWeights(newConfig.memory.search.keywordWeight, newConfig.memory.search.vectorWeight)\n vectorStore.setStopWordsLanguages(newConfig.memory.stopWordsLanguages)\n\n // 2. Embedding config\n const embedCfg = newConfig.embedding\n if (embedCfg && embedCfg.model) {\n vectorStore.setEmbeddingConfig(embedCfg.model, embedCfg.endpoint, embedCfg.apiKey)\n }\n\n // 3. Agent delegation depth \u2014 propagate ke coordinator (akan dipakai untuk validasi depth)\n const maxDepth = newConfig.agent.maxDelegationDepth\n if (maxDepth > 0) {\n coordinator.setMaxDepth(maxDepth)\n }\n\n // 4. Session store TTL \u2014 propagate ke session store untuk expired session cleanup\n const forgetDays = newConfig.memory.forgetAfterDays\n if (forgetDays > 0) {\n sessionStore.setForgetAfterDays(forgetDays)\n }\n\n // 5. Trace retention \u2014 propagate ke trace logger untuk pruning\n const retentionDays = newConfig.storage.traceRetentionDays\n if (retentionDays > 0) {\n traceLogger.setRetentionDays(retentionDays)\n }\n })\n\n /** Helper: run the full self-evolution cycle and return a summary */\n async function runAutoEvolve(): Promise<string> {\n await traceLogger.flush()\n\n const allSkills = skillStore.getAll()\n const allEpisodes = episodicStore.getRecent(50)\n const uniqueSessions = new Set(allEpisodes.map(e => e.sessionId))\n\n let allTasks: AgentTask[] = []\n for (const sid of uniqueSessions) {\n allTasks = allTasks.concat(coordinator.getTasks(sid))\n }\n\n const allStepStates: Array<{ stepId: string; success: boolean; output: string }> = []\n for (const sid of uniqueSessions) {\n const session = sessionStore.getOrCreate(sid)\n const subtasks = session.plan?.intent.subtasks ?? []\n for (const step of subtasks) {\n const state = executor.getStepState(sid, step.id)\n if (state?.result) {\n allStepStates.push({\n stepId: step.id,\n success: state.result.success,\n output: state.result.output,\n })\n }\n }\n }\n\n let traces: Array<{ toolUsed: string; success: boolean; step: string }> = []\n const tracePath = `${input.worktree}/.agentic/trace.jsonl`\n try {\n const content = readFileSync(tracePath, \"utf-8\")\n for (const line of content.trim().split(\"\\n\").filter(Boolean)) {\n const parsed = JSON.parse(line)\n traces.push({\n toolUsed: parsed.toolUsed ?? \"unknown\",\n success: parsed.success ?? true,\n step: parsed.step ?? \"\",\n })\n }\n } catch { /* no traces yet */ }\n\n selfEvolver.feedSkills(allSkills)\n selfEvolver.feedEpisodes(allEpisodes)\n selfEvolver.feedTasks(allTasks)\n selfEvolver.feedStepStates(allStepStates)\n selfEvolver.feedTraces(traces)\n\n const report = selfEvolver.evolve()\n\n // Auto-apply role suggestions\n const appliedRoles: string[] = []\n for (const role of report.roleSuggestions) {\n try {\n coordinator.registerCustomRole({\n role: role.name,\n name: role.name,\n tools: role.suggestedTools,\n prompt: `You are ${role.name}. ${role.reason}\\n\\nTrigger: ${role.triggerPattern}`,\n })\n appliedRoles.push(role.name)\n } catch { }\n }\n\n // Auto-apply skill patches\n const patchedSkills: string[] = []\n for (const patch of report.skillPatches) {\n const record = skillStore.getById(patch.skillId)\n if (!record) continue\n const def = record.definition\n let modified = false\n\n for (const change of patch.suggestedChanges) {\n if (change.type === \"add_rollback\") {\n for (const step of def.workflow.steps) {\n if (!step.rollback) {\n step.rollback = change.detail\n modified = true\n }\n }\n }\n if (change.type === \"add_step\") {\n const newStep: import(\"./memory/skill-format.js\").SkillStep = {\n order: def.workflow.steps.length + 1,\n action: \"verify\",\n description: change.detail,\n expectedOutput: \"Step completed successfully\",\n }\n def.workflow.steps.push(newStep)\n modified = true\n }\n }\n\n if (modified) {\n def.quality.usageCount = record.usageCount\n def.quality.successRate = record.successRate\n def.audit.lastModified = new Date().toISOString()\n def.audit.modifiedBy = \"system\"\n def.meta.version++\n persistence.save(\"skills\", def.meta.id, def)\n patchedSkills.push(patch.skillName)\n }\n }\n\n // Auto-apply prompt patches (Stage IV: versioned, source-tracked)\n const appliedPatches: string[] = []\n for (const patch of report.promptPatches) {\n try {\n const existingPrompt = roleRegistry.getPrompt(patch.role)\n if (existingPrompt && !existingPrompt.includes(patch.instruction.slice(0, 40))) {\n const newPrompt = existingPrompt + `\\n\\n## Auto-Patched Instruction (from ${patch.errorCategory} errors)\\n${patch.instruction}`\n roleRegistry.updatePrompt(patch.role as \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\", newPrompt, \"auto-evolve\", `Patch from ${patch.errorCategory} errors (${patch.occurrences}x)`)\n persistence.save(\"prompts\", \"state\", roleRegistry.getAllPromptStates())\n appliedPatches.push(`${patch.role}: \"${patch.instruction.slice(0, 60)}...\"`)\n }\n } catch { /* non-fatal */ }\n }\n\n let result = `### \uD83D\uDD2E Auto-Evolution Complete\\n`\n result += `**Score:** ${report.improvementScore}/100\\n`\n result += `**Sessions:** ${report.metrics.totalSessions} | **Steps:** ${report.metrics.totalSteps} | **Success Rate:** ${(report.metrics.successRate * 100).toFixed(0)}%\\n`\n if (appliedRoles.length > 0) result += `**Roles Registered:** ${appliedRoles.join(\", \")}\\n`\n if (patchedSkills.length > 0) result += `**Skills Patched:** ${patchedSkills.join(\", \")}\\n`\n if (appliedPatches.length > 0) result += `**Prompts Patched:** ${appliedPatches.length}\\n`\n if (appliedRoles.length === 0 && patchedSkills.length === 0 && appliedPatches.length === 0) {\n result += `No changes needed \u2014 system is healthy.\\n`\n }\n return result.trim()\n }\n\n function ctxDir(context: { worktree: string; directory?: string }) {\n return context.worktree\n }\n\n return {\n tool: {\n agentic_plan: tool({\n description: \"Create a structured execution plan. Can auto-decompose feature requests using built-in templates (create/implement, fix/bug, refactor, test, deploy, migrate, doc, perf). Use `llmDecompose: true` for AI-powered decomposition. Call this FIRST for any multi-step task.\",\n args: {\n goal: tool.schema.string().describe(\"The overall goal of the task\"),\n constraints: tool.schema.array(tool.schema.string()).optional().describe(\"Constraints or requirements\"),\n relevantFiles: tool.schema.array(tool.schema.string()).optional().describe(\"Files relevant to this task\"),\n autoDecompose: tool.schema.boolean().optional().describe(\"Auto-decompose the goal into subtasks (default: true). Uses LLM first, falls back to built-in templates.\"),\n llmDecompose: tool.schema.boolean().optional().describe(\"Use LLM for smarter task decomposition (default: true, falls back to templates if LLM unavailable)\"),\n subtasks: tool.schema.array(tool.schema.object({\n id: tool.schema.string().describe(\"Unique identifier for this subtask\"),\n description: tool.schema.string().describe(\"What this subtask should accomplish\"),\n dependsOn: tool.schema.array(tool.schema.string()).optional().describe(\"IDs of subtasks that must be completed first\"),\n verificationCriteria: tool.schema.array(tool.schema.string()).optional().describe(\"How to verify this subtask succeeded\"),\n })).optional().describe(\"Manual subtask list. If omitted and autoDecompose is enabled, the planner will auto-generate steps.\"),\n },\n async execute(args, context) {\n llmEngine.setSessionId(context.sessionID)\n let subtasks = args.subtasks ?? []\n\n if (subtasks.length === 0 && args.autoDecompose !== false) {\n if (args.llmDecompose !== false) {\n await navigator.scan(input.worktree)\n const codebaseSummary = navigator.getSummary()\n try {\n const llmIntent = await planner.decomposeWithLLM(llmEngine, args.goal, codebaseSummary)\n subtasks = llmIntent.subtasks\n } catch {\n // Fall through to template-based\n }\n }\n\n if (subtasks.length === 0) {\n const decomposition = planner.decompose(args.goal, args.relevantFiles ?? [])\n if (decomposition.autoGenerated) {\n subtasks = decomposition.intent.subtasks\n }\n }\n }\n\n const intent: TaskIntent = {\n goal: args.goal,\n constraints: args.constraints ?? [],\n context: {\n relevantFiles: args.relevantFiles ?? [],\n dependencies: [],\n },\n subtasks: subtasks.map(s => ({\n id: s.id,\n description: s.description,\n dependsOn: s.dependsOn ?? [],\n verificationCriteria: s.verificationCriteria ?? [],\n })),\n }\n\n const plan = intentParser.createPlan(intent)\n const errors = intentParser.validatePlan(plan)\n\n executor.initExecution(context.sessionID, plan)\n sessionStore.getOrCreate(context.sessionID).plan = plan\n\n // Wire up dependency tracking from plan \u2014 step-level\n for (const step of subtasks) {\n for (const dep of (step.dependsOn ?? [])) {\n depTracker.addDependency(step.id, dep, \"imports\")\n }\n }\n\n // Wire file-level dependencies from navigator scan\n if (args.relevantFiles && args.relevantFiles.length > 0) {\n for (const file of args.relevantFiles) {\n depTracker.addDependency(`file:${file}`, `goal:${args.goal.slice(0, 40)}`, \"type-ref\")\n }\n }\n\n traceLogger.log({\n step: \"plan\",\n input: args.goal,\n output: JSON.stringify(plan),\n toolUsed: \"agentic_plan\",\n success: errors.length === 0,\n durationMs: 0,\n metadata: { errors, complexity: plan.complexity, autoDecomposed: subtasks !== args.subtasks, llmDecomposed: !!args.llmDecompose },\n })\n\n if (errors.length > 0) {\n return {\n output: `## Plan Created (with warnings)\\n\\n${errors.map(e => `\u26A0\uFE0F ${e}`).join(\"\\n\")}\\n\\n<details>\\n<summary>Plan JSON</summary>\\n\\n\\`\\`\\`json\\n${JSON.stringify(plan, null, 2)}\\n\\`\\`\\`\\n</details>`,\n metadata: { hasErrors: true, plan },\n }\n }\n\n const stepList = plan.intent.subtasks.map((s, i) =>\n `${i + 1}. **${s.id}** \u2014 ${s.description}${s.dependsOn.length ? ` (requires: ${s.dependsOn.join(\", \")})` : \"\"}`\n ).join(\"\\n\")\n\n const autoTag = subtasks !== args.subtasks ? \" (auto-decomposed)\" : \"\"\n\n return {\n output: `## Plan Created${autoTag}\\n\\n**Goal:** ${plan.intent.goal}\\n**Complexity:** ${plan.complexity}\\n**Steps:** ${plan.estimatedSteps}\\n\\n### Steps\\n${stepList}\\n\\nStart with \\`agentic_execute\\` for the first ready step.`,\n metadata: { plan },\n }\n },\n }),\n\n agentic_nav: tool({\n description: \"Scan the project codebase and find relevant files for a task. Use this to understand the project structure before planning, or to find which files to modify.\",\n args: {\n query: tool.schema.string().describe(\"What you're looking for \u2014 a task description, module name, or feature keyword\"),\n maxResults: tool.schema.number().optional().describe(\"Maximum number of files to return (default: 10)\"),\n showSummary: tool.schema.boolean().optional().describe(\"Show full project structure summary\"),\n },\n async execute(args, _context) {\n const maxResults = args.maxResults ?? 10\n await navigator.scan(input.worktree)\n const files = navigator.findRelevantFiles(args.query, maxResults)\n\n // Index files into vector store for hybrid search\n for (const file of files) {\n vectorStore.addDocument(`file:${file}`, `File ${file}`, {\n type: \"file\",\n path: file,\n tags: [],\n })\n }\n\n let output = `## \uD83D\uDD0D Codebase Navigator\\n\\n**Query:** ${args.query}\\n\\n`\n\n if (args.showSummary) {\n output += navigator.getSummary() + \"\\n\\n\"\n }\n\n if (files.length === 0) {\n output += \"No matching files found. Try a different query, or use `showSummary: true` to see the project structure.\"\n } else {\n output += `### Matching Files (${files.length})\\n`\n output += files.map(f => `- \\`${f}\\``).join(\"\\n\")\n\n const testFiles = files.flatMap(f => navigator.getTestFiles(f))\n if (testFiles.length > 0) {\n output += `\\n\\n### Related Test Files\\n`\n output += testFiles.map(f => `- \\`${f}\\``).join(\"\\n\")\n }\n }\n\n traceLogger.log({\n step: \"nav\",\n input: args.query,\n output: `${files.length} files found`,\n toolUsed: \"agentic_nav\",\n success: true,\n durationMs: 0,\n })\n\n return { output, metadata: { files, projectSummary: args.showSummary ? navigator.getSummary() : undefined } }\n },\n }),\n\n agentic_execute: tool({\n description: \"Record completion of a subtask. Auto-verifies compilation on success. Includes error recovery guidance + error propagation analysis on failure. Supports user feedback for continuous learning.\",\n args: {\n stepId: tool.schema.string().describe(\"The ID of the step that was executed\"),\n success: tool.schema.boolean().describe(\"Whether the step completed successfully\"),\n output: tool.schema.string().describe(\"Summary of what was done \u2014 what files changed, what was implemented\"),\n filesModified: tool.schema.array(tool.schema.string()).optional().describe(\"List of files that were modified or created in this step\"),\n error: tool.schema.string().optional().describe(\"Error message if the step failed\"),\n autoVerify: tool.schema.boolean().optional().describe(\"Auto-run compile verification (default: true when success=true)\"),\n feedback: tool.schema.enum([\"positive\", \"negative\"]).optional().describe(\"User feedback on the result. Positive boosts skill confidence; negative triggers adaptation (Gap #9: continuous learning from feedback)\"),\n },\n async execute(args, context) {\n llmEngine.setSessionId(context.sessionID)\n const startTime = Date.now()\n const projectDir = ctxDir(context)\n \n const taskType = detectTaskType(args.output)\n \n const session = sessionStore.getOrCreate(context.sessionID)\n session.currentTaskType = taskType\n\n if (args.filesModified && args.filesModified.length > 0) {\n depTracker.recordChange(context.sessionID, args.stepId, args.filesModified)\n // Update file-level dependency graph for modified/created files\n for (const f of args.filesModified) {\n const absPath = join(projectDir, f)\n try {\n const content = readFileSync(absPath, \"utf-8\")\n depTracker.updateFile(absPath, content, projectDir)\n } catch { /* non-fatal: file may have been deleted */ }\n }\n }\n\n executor.recordResult(context.sessionID, {\n stepId: args.stepId,\n success: args.success,\n output: args.output,\n filesModified: args.filesModified ?? [],\n error: args.error,\n })\n\n sessionStore.addTurn(context.sessionID, {\n role: \"tool\",\n content: `Step ${args.stepId}: ${args.success ? \"SUCCESS\" : \"FAILED\"} \u2014 ${args.output}`,\n timestamp: startTime,\n })\n\n // Checkpoints for risky operations\n const newCheckpoints = checkpoints.evaluate(args.stepId, args.output, args.filesModified ?? [])\n\n let response = `## Step ${args.stepId}: ${args.success ? \"\u2705 SUCCESS\" : \"\u274C FAILED\"}\\n\\n${args.output}\\n`\n\n if (newCheckpoints.length > 0) {\n response += `\\n### \u26A0\uFE0F Checkpoints\\n`\n for (const cp of newCheckpoints) {\n const icon = cp.type === \"block\" ? \"\uD83D\uDED1\" : cp.type === \"review\" ? \"\uD83D\uDC40\" : \"\u26A0\uFE0F\"\n response += `${icon} **${cp.type.toUpperCase()}**: ${cp.description}\\n`\n response += ` _${cp.context}_\\n`\n }\n }\n\n // Enforce block checkpoints\n const blockStatus = checkpoints.isBlocked()\n if (blockStatus.blocked) {\n response += `\\n### \uD83D\uDED1 BLOCKED\\n${blockStatus.reason}\\n\\n`\n response += `Use \\`agentic_execute\\` with the same stepId to acknowledge and proceed, or investigate the issue first.`\n return { output: response, metadata: { progress: executor.getProgress(context.sessionID), blocked: true } }\n }\n\n let verifyResult = undefined\n if (args.success && args.autoVerify !== false) {\n response += `\\n### Auto-Verify\\n`\n const changedFiles = args.filesModified ?? []\n \n // Use verifyAllDeep to include semantic check (Gap #4 fix)\n const session = sessionStore.getOrCreate(context.sessionID)\n const intent = session.plan?.intent.goal ?? args.output\n const requireSemantic = configLoader.get().agent.requireSemanticCheck\n verifyResult = await verifier.verifyAllDeep(args.stepId, projectDir, intent, changedFiles, requireSemantic)\n \n if (verifyResult.passed) {\n response += `\u2705 All checks passed\\n`\n // Show individual check results\n verifyResult.checks.forEach(c => {\n response += ` ${c.passed ? \"\u2705\" : \"\u274C\"} ${c.name}\\n`\n })\n } else {\n response += `\u274C Verification failed after this step!\\n`\n response += verifyResult.checks.map(c =>\n `${c.passed ? \"\u2705\" : \"\u274C\"} **${c.name}**\\n\\`\\`\\`\\n${c.output.slice(0, 400)}\\n\\`\\`\\``\n ).join(\"\\n\\n\")\n response += `\\n\\n\u26A0\uFE0F **Recommendation:** Run \\`agentic_reflect\\` on this step for propagation analysis and fix suggestions.`\n }\n }\n\n if (args.success && configLoader.get().agent.autoHallucinationCheck) {\n response += `\\n### Auto-Hallucination Check\\n`\n const guardResult = hallucinationGuard.check(args.output, args.filesModified ?? [])\n\n if (guardResult.claims.length > 0) {\n const failedClaims = guardResult.claims.filter((c: any) => !c.verified)\n const hallucinationRate = failedClaims.length / guardResult.claims.length\n\n if (failedClaims.length > 0) {\n response += `\u26A0\uFE0F Detected ${failedClaims.length}/${guardResult.claims.length} unverified claims (hallucination rate: ${(hallucinationRate * 100).toFixed(1)}%)\\n`\n failedClaims.forEach((c: any) => {\n response += ` \u274C ${c.type}: ${c.claim}\\n`\n })\n\n const modelId = llmEngine.getCurrentModel()\n if (modelId) {\n modelRegistry.recordHallucination(modelId)\n }\n\n const threshold = configLoader.get().agent.hallucinationThreshold\n const blockEnabled = configLoader.get().agent.blockOnHallucination\n if (hallucinationRate >= threshold && blockEnabled) {\n response += `\\n\uD83D\uDED1 **BLOCKED**: Hallucination rate ${(hallucinationRate * 100).toFixed(1)}% exceeds threshold ${(threshold * 100).toFixed(1)}%\\n`\n response += `This step will be marked as FAILED to prevent cascading errors from phantom files/functions.\\n`\n response += `\\n\u26A0\uFE0F **Recommendation:** Review the step output and verify all file/function references exist before proceeding.`\n \n executor.recordResult(context.sessionID, {\n stepId: args.stepId,\n success: false,\n output: args.output,\n filesModified: args.filesModified ?? [],\n error: `Hallucination detected: ${failedClaims.length} unverified claims`,\n })\n\n return { output: response, metadata: { progress: executor.getProgress(context.sessionID), blocked: true, hallucinationDetected: true } }\n }\n } else {\n response += `\u2705 All ${guardResult.claims.length} claims verified\\n`\n }\n } else {\n response += `\u2705 No claims detected (clean output)\\n`\n }\n }\n\n if (!args.success) {\n const modifiedFiles = executor.getAllFilesModified(context.sessionID)\n const analysis = await errorAnalyzer.analyzeDeep(args.error ?? args.output, modifiedFiles)\n const maxAllowed = executor.getMaxRetries(analysis.category)\n const canRetry = executor.canRetry(context.sessionID, args.stepId, analysis.category)\n const retriesUsed = executor.getRetryCount(context.sessionID, args.stepId)\n const retriesLeft = maxAllowed - retriesUsed\n\n response += `\\n### Error Analysis\\n`\n response += `**Category:** \\`${analysis.category}\\` | **Severity:** ${analysis.severity}\\n`\n response += `**Likely cause:** ${analysis.likelyRootCause}\\n`\n\n // Error propagation trace\n const session = sessionStore.getOrCreate(context.sessionID)\n const planSteps = session.plan?.intent.subtasks.map(s => s.id) ?? []\n const propAnalysis = depTracker.analyzeErrorPropagation(context.sessionID, args.stepId, args.error ?? args.output, planSteps)\n\n if (propAnalysis.likelyCulprit) {\n response += `\\n### \uD83D\uDD17 Error Propagation Trace\\n`\n response += `**Likely origin:** \\`${propAnalysis.likelyCulprit}\\`\\n`\n response += `**Propagation path:** ${propAnalysis.propagationPath.length > 0 ? propAnalysis.propagationPath.map(p => `\\`${p}\\``).join(\" \u2192 \") : \"Direct failure\"}\\n`\n response += `**Suggestion:** ${propAnalysis.suggestion}\\n`\n }\n\n response += `\\n**Suggested fix:** ${analysis.suggestedFix}\\n`\n\n if (canRetry) {\n response += `\\n\uD83D\uDD04 **Retries remaining:** ${retriesLeft}/${maxAllowed} (${analysis.category}) \u2014 fix the issue and call \\`agentic_execute\\` again.`\n } else {\n response += `\\n\uD83D\uDED1 **Max retries (${maxAllowed}) reached for ${analysis.category}.** Address the underlying issue or revise the plan.`\n }\n\n // Feed failure to ContinuousEvolution\n continuousEvolution.feedStepResult({\n stepId: args.stepId,\n success: false,\n output: args.output,\n sessionId: context.sessionID,\n timestamp: startTime,\n category: analysis.category,\n })\n }\n\n if (args.success) {\n // Feed success to ContinuousEvolution\n continuousEvolution.feedStepResult({\n stepId: args.stepId,\n success: true,\n output: args.output,\n sessionId: context.sessionID,\n timestamp: startTime,\n })\n }\n\n const progress = executor.getProgress(context.sessionID)\n const nextStep = executor.getNextStep(context.sessionID)\n\n response += `\\n### Progress\\n`\n response += `\\`\\`\\`\\n`\n response += `\u2705 Done: ${progress.completed}\\n`\n response += `\u274C Failed: ${progress.failed}\\n`\n response += `\uD83D\uDD12 Blocked: ${progress.blocked}\\n`\n response += `\u23F3 Remaining: ${progress.total - progress.completed - progress.failed - progress.blocked}\\n`\n response += `\\`\\`\\`\\n`\n\n if (args.success && nextStep) {\n response += `\\n### Next\\n\u25B6 **${nextStep.id}** \u2014 ${nextStep.description}`\n } else if (args.success && !nextStep) {\n response += `\\n### \uD83C\uDF89 All steps complete!\\nRun \\`agentic_verify\\` for final verification.`\n\n // Record episode\n const session = sessionStore.getOrCreate(context.sessionID)\n if (session.plan) {\n const allSuccess = executor.isHealthy(context.sessionID)\n const allFiles = executor.getAllFilesModified(context.sessionID)\n const decisions = executor.getCompletedSteps(context.sessionID).map(() => \"completed\")\n episodicStore.record(\n context.sessionID,\n session.plan.intent.goal,\n allSuccess ? \"success\" : \"partial\",\n decisions,\n allFiles,\n )\n }\n }\n\n // \u2500\u2500 User Feedback for Continuous Learning (Gap #9) \u2500\u2500\n if (args.feedback) {\n const isPositive = args.feedback === \"positive\"\n response += `\\n### \uD83D\uDCDD Feedback Recorded\\n`\n response += `${isPositive ? \"\u2705 Positive \u2014 confidence increased\" : \"\u274C Negative \u2014 adapting...\"}\\n`\n\n // Update skill success rates based on feedback\n const session = sessionStore.getOrCreate(context.sessionID)\n const goal = session.plan?.intent.goal ?? args.output\n const existingSkills = skillStore.find(goal)\n for (const skill of existingSkills.slice(0, 3)) {\n if (isPositive) {\n // Boost: record success\n skill.usageCount++\n skill.successRate = Math.min(1, skill.successRate + 0.05)\n persistence.save(\"skills\", skill.definition.meta.id, skill.definition)\n } else {\n // Penalize: report failure\n skillStore.reportFailure(skill.definition.meta.id)\n }\n }\n\n // Negative feedback \u2192 trigger adaptation\n if (!isPositive) {\n // Increase retry allowance for this error category\n const modifiedFiles = executor.getAllFilesModified(context.sessionID)\n const feedbackAnalysis = await errorAnalyzer.analyzeDeep(args.output, modifiedFiles)\n const currentMax = executor.getMaxRetries(feedbackAnalysis.category)\n executor.setRetryPolicy(feedbackAnalysis.category, Math.min(currentMax + 1, 5))\n response += ` **Retry limit increased:** \\`${feedbackAnalysis.category}\\` \u2192 ${Math.min(currentMax + 1, 5)}\\n`\n\n // Feed into continuous evolution\n continuousEvolution.feedStepResult({\n stepId: `feedback-${args.stepId}`,\n success: false,\n output: `User negative feedback: ${args.output.slice(0, 200)}`,\n sessionId: context.sessionID,\n timestamp: Date.now(),\n category: feedbackAnalysis.category,\n })\n\n // Check if evolution should trigger \u2014 auto-execute if so\n const trigger = continuousEvolution.shouldEvolve(context.sessionID)\n if (trigger) {\n response += ` \uD83D\uDD04 **Auto-evolution triggered:** ${trigger.reason}\\n`\n try {\n const evolveSummary = await runAutoEvolve()\n response += ` ${evolveSummary.replace(/\\n/g, \"\\n \")}\\n`\n } catch (e) {\n response += ` \u26A0\uFE0F Auto-evolution encountered an error: ${(e as Error).message}\\n`\n }\n }\n }\n }\n\n return { output: response, metadata: { progress, nextStep: nextStep?.id, verifyResult } }\n },\n }),\n\n agentic_reflect: tool({\n description: \"Analyze a failed step. Diagnoses the error category, traces error propagation across the step chain, and suggests a recovery plan.\",\n args: {\n stepId: tool.schema.string().describe(\"The ID of the failed step to analyze\"),\n errorDetails: tool.schema.string().optional().describe(\"Additional error context (full stack trace, test output, etc.)\"),\n attemptedFix: tool.schema.string().optional().describe(\"What you tried to fix the error (if any)\"),\n },\n async execute(args, context) {\n llmEngine.setSessionId(context.sessionID)\n const stepState = executor.getStepState(context.sessionID, args.stepId)\n if (!stepState || !stepState.result) {\n return { output: `No execution record for step \"${args.stepId}\". Has it been run via \\`agentic_execute\\`?` }\n }\n\n if (stepState.result.success) {\n return { output: `Step \"${args.stepId}\" was successful \u2014 no reflection needed.` }\n }\n\n const errorText = [args.errorDetails, stepState.result.output, stepState.result.error]\n .filter(Boolean)\n .join(\"\\n\")\n const modifiedFiles = executor.getAllFilesModified(context.sessionID)\n const analysis = await errorAnalyzer.analyzeDeep(errorText, modifiedFiles)\n const canRetry = executor.canRetry(context.sessionID, args.stepId)\n const retriesUsed = executor.getRetryCount(context.sessionID, args.stepId)\n\n if (args.attemptedFix) {\n executor.recordFixAttempt(context.sessionID, args.stepId, args.attemptedFix, false)\n }\n\n // Error propagation analysis\n const session = sessionStore.getOrCreate(context.sessionID)\n const planSteps = session.plan?.intent.subtasks.map(s => s.id) ?? []\n const propAnalysis = depTracker.analyzeErrorPropagation(context.sessionID, args.stepId, errorText, planSteps)\n\n let output = `## \uD83D\uDD0D Error Analysis: Step \"${args.stepId}\"\\n\\n`\n output += `**Category:** \\`${analysis.category}\\`\\n`\n output += `**Severity:** ${analysis.severity}\\n`\n output += `**Retry #${retriesUsed}/3**\\n\\n`\n output += `### Root Cause\\n${analysis.likelyRootCause}\\n\\n`\n\n if (propAnalysis.likelyCulprit || propAnalysis.propagationPath.length > 0) {\n output += `### \uD83D\uDD17 Error Propagation Trace\\n`\n if (propAnalysis.likelyCulprit) {\n output += `**Likely origin:** \\`${propAnalysis.likelyCulprit}\\`\\n`\n }\n if (propAnalysis.propagationPath.length > 0) {\n output += `**Propagation path:** ${propAnalysis.propagationPath.map(p => `\\`${p}\\``).join(\" \u2192 \")}\\n`\n }\n output += `**Suggestion:** ${propAnalysis.suggestion}\\n\\n`\n }\n\n output += `### Suggested Fix\\n${analysis.suggestedFix}\\n`\n\n if (modifiedFiles.length > 0) {\n output += `\\n### Modified Files (likely sources)\\n`\n output += modifiedFiles.map(f => `- \\`${f}\\``).join(\"\\n\") + \"\\n\"\n }\n\n if (analysis.category === \"compile\" || analysis.category === \"type\") {\n output += `\\n### Recovery Plan\\n1. Check the error output for exact file path and line number\\n2. Fix the syntax/type issue\\n3. Call \\`agentic_execute\\` with \\`success: true\\`\\n`\n } else if (analysis.category === \"test\") {\n output += `\\n### Recovery Plan\\n1. Verify if the test expectation is still correct after changes\\n2. Update code or test accordingly\\n3. Retry the step\\n`\n } else {\n output += `\\n### Recovery Plan\\n1. Review what the step was supposed to accomplish\\n2. Check for unintended side effects in modified files\\n3. Fix and retry\\n`\n }\n\n if (canRetry) {\n output += `\\n---\\n\uD83D\uDD04 **${3 - retriesUsed} retries left.** Fix and call \\`agentic_execute\\` to retry.`\n } else {\n output += `\\n---\\n\uD83D\uDED1 **No retries remaining.** Consider adding a new plan step for this fix.`\n }\n\n return { output }\n },\n }),\n\n agentic_verify: tool({\n description: \"Run full verification: compile + lint + test suite. Auto-detects language (TypeScript, Python, Go, Rust, JavaScript). Includes error analysis on failure.\",\n args: {\n stepId: tool.schema.string().optional().describe(\"Label for this verification\"),\n projectDir: tool.schema.string().optional().describe(\"Project directory (default: worktree)\"),\n },\n async execute(args, context) {\n const projectDir = args.projectDir ?? ctxDir(context)\n const stepId = args.stepId ?? \"full\"\n\n const result = verifier.verifyAll(stepId, projectDir)\n\n traceLogger.log({\n step: `verify:${stepId}`,\n input: projectDir,\n output: JSON.stringify(result),\n toolUsed: \"agentic_verify\",\n success: result.passed,\n durationMs: 0,\n })\n\n const checkOutput = result.checks.map(c =>\n `${c.passed ? \"\u2705\" : \"\u274C\"} **${c.name}**\\n\\`\\`\\`\\n${c.output.slice(0, 600)}\\n\\`\\`\\``\n ).join(\"\\n\\n\")\n\n if (result.passed) {\n return { output: `## \u2705 Verification Passed\\n\\n${checkOutput}`, metadata: result }\n }\n\n const analysis = await errorAnalyzer.analyzeDeep(result.errors.join(\"\\n\"), [])\n return {\n output: `## \u274C Verification Failed\\n\\n${checkOutput}\\n\\n### Analysis\\n**Category:** \\`${analysis.category}\\`\\n**Likely cause:** ${analysis.likelyRootCause}\\n**Fix:** ${analysis.suggestedFix}`,\n metadata: result,\n }\n },\n }),\n\n agentic_status: tool({\n description: \"Show execution dashboard: progress bar, health, blocked steps, dependency graph, retry history, and file change summary.\",\n args: {},\n async execute(_args, context) {\n const progress = executor.getProgress(context.sessionID)\n const nextStep = executor.getNextStep(context.sessionID)\n const blockedSteps = executor.getBlockedSteps(context.sessionID)\n const isComplete = executor.isComplete(context.sessionID)\n const isHealthy = executor.isHealthy(context.sessionID)\n const allFiles = executor.getAllFilesModified(context.sessionID)\n\n let output = `## \uD83D\uDCCA Execution Dashboard\\n\\n`\n\n if (progress.total > 0) {\n const pct = Math.min(100, Math.round((progress.completed / progress.total) * 100))\n const barLen = 20\n const filled = Math.min(barLen, Math.round((pct / 100) * barLen))\n output += `\\`\\`\\`\\n[${\"\u2588\".repeat(filled)}${\"\u2591\".repeat(barLen - filled)}] ${pct}%\\n\\`\\`\\`\\n`\n }\n\n output += `**Health:** ${isHealthy ? \"\u2705 All passing\" : \"\u26A0\uFE0F Errors\"}\\n`\n output += `**Status:** ${isComplete ? \"\uD83C\uDF89 Complete\" : \"\u23F3 In progress\"}\\n\\n`\n output += `| Status | Count |\\n|--------|-------|\\n`\n output += `| \u2705 Done | ${progress.completed} |\\n`\n output += `| \u274C Failed | ${progress.failed} |\\n`\n output += `| \uD83D\uDD12 Blocked | ${progress.blocked} |\\n`\n\n if (nextStep) {\n output += `\\n### Next Ready\\n\u25B6 **${nextStep.id}** \u2014 ${nextStep.description}\\n`\n }\n\n if (blockedSteps.length > 0) {\n output += `\\n### \uD83D\uDD12 Blocked Steps\\n`\n for (const b of blockedSteps) {\n output += `- **${b.id}** \u2014 ${b.description}\\n`\n output += ` Waiting on: ${b.blockedBy.map(d => `\\`${d}\\``).join(\", \")}\\n`\n }\n }\n\n if (allFiles.length > 0) {\n output += `\\n### \uD83D\uDCC1 Files Modified\\n`\n output += allFiles.map(f => `- \\`${f}\\``).join(\"\\n\") + \"\\n\"\n }\n\n output += `\\n### \uD83E\uDD16 Model Reliability\\n`\n const modelSummary = modelRegistry.getSummary()\n output += modelSummary + \"\\n\"\n\n // Session model preferences (Gap: per-role model selection)\n const modelPrefs = sessionStore.getAllModelPreferences(context.sessionID)\n if (modelPrefs.length > 0) {\n output += `\\n### \uD83C\uDFAF Per-Role Model Preferences\\n`\n output += modelPrefs.map(p => `- **${p.role}** \u2192 \\`${p.model}\\``).join(\"\\n\") + \"\\n\"\n }\n\n // Evolution trend\n const trend = continuousEvolution.getTrend()\n if (trend.overall.total > 0) {\n const dirIcon = trend.rolling.direction === \"improving\" ? \"\uD83D\uDCC8\" : trend.rolling.direction === \"degrading\" ? \"\uD83D\uDCC9\" : \"\uD83D\uDCCA\"\n output += `\\n### \uD83D\uDD04 Evolution Trend\\n`\n output += `**Overall:** ${(trend.overall.successRate * 100).toFixed(0)}% (${trend.overall.success}/${trend.overall.total} steps)\\n`\n output += `**Recent (last ${trend.rolling.windowSize}):** ${(trend.rolling.successRate * 100).toFixed(0)}% \u2014 ${dirIcon} ${trend.rolling.direction}\\n`\n if (trend.degradationDetected) {\n output += `\u26A0\uFE0F **Performance degradation detected!** Auto-running self-evolution...\\n`\n try {\n output += `${(await runAutoEvolve()).replace(/\\n/g, \"\\n\")}\\n`\n } catch {\n output += `\u26A0\uFE0F Auto-evolution encountered an error.\\n`\n }\n }\n // Forecast (Gap #12)\n if (trend.forecast && trend.forecast.bucketRates.length > 0) {\n output += `**Forecast next window:** ${(trend.forecast.nextWindowRate * 100).toFixed(0)}%`\n if (trend.forecast.critical) {\n output += ` \uD83D\uDD34 **Critical**`\n }\n if (trend.forecast.stepsUntilCritical !== null) {\n output += ` (~${trend.forecast.stepsUntilCritical} steps to 50%)`\n }\n output += `\\n`\n output += `**Trend buckets:** ${trend.forecast.bucketRates.map(r => `${(r * 100).toFixed(0)}%`).join(\" \u2192 \")}\\n`\n }\n if (trend.recommendations.length > 0) {\n output += `**Tips:**\\n`\n output += trend.recommendations.map(r => `- ${r}`).join(\"\\n\") + \"\\n\"\n }\n }\n\n // Live evaluation score\n const liveScore = liveEvaluator.computeScore()\n if (liveScore.totalSteps > 0 || liveScore.totalDelegations > 0) {\n output += `\\n### \uD83D\uDCCA Live Evaluation Score\\n`\n const bar = \"\u2588\".repeat(Math.round(liveScore.overall / 5))\n output += `**Overall:** ${liveScore.overall}/100 ${bar.padEnd(20, \"\u2591\")}\\n`\n for (const [name, dim] of Object.entries(liveScore.dimensions)) {\n if (dim.weight > 0) {\n output += `- **${name}:** ${(dim.score * 100).toFixed(0)}% (target ${(dim.target * 100).toFixed(0)}%)\\n`\n }\n }\n output += `\\n`\n }\n\n return { output, metadata: { progress, nextStep: nextStep?.id, blockedSteps, isComplete, isHealthy } }\n },\n }),\n\n agentic_context: tool({\n description: \"View and compress the execution context. When approaching context limits, this tool summarizes the conversation history into a compact form preserving key decisions, file changes, and invariants.\",\n args: {\n action: tool.schema.enum([\"view\", \"compress\"]).describe(\"'view' shows current context stats; 'compress' generates a compressed context prompt\"),\n },\n async execute(args, context) {\n const turns = sessionStore.getContext(context.sessionID, 100)\n const session = sessionStore.getOrCreate(context.sessionID)\n const allFiles = executor.getAllFilesModified(context.sessionID)\n const decisions: string[] = []\n\n if (args.action === \"view\") {\n let output = `## \uD83E\uDDE0 Context Status\\n\\n`\n output += `**Turns in memory:** ${turns.length}\\n`\n output += `**Files tracked:** ${allFiles.length}\\n`\n output += `**Plan steps:** ${session.plan?.intent.subtasks.length ?? 0}\\n`\n\n const summary = await contextCompressor.compressWithLLM(\n session.plan?.intent.goal ?? \"N/A\",\n turns,\n decisions,\n allFiles,\n )\n\n output += `**Estimated tokens:** ~${summary.estimatedTokens}\\n`\n\n const shouldCompress = contextCompressor.shouldCompress(turns.length, summary.estimatedTokens)\n if (shouldCompress) {\n output += `\\n\u26A0\uFE0F **Context window approaching capacity.** Run \\`agentic_context\\` with \\`action: \"compress\"\\` to compact.\\n`\n } else {\n output += `\\n\u2705 Context is healthy.\\n`\n }\n\n return { output }\n }\n\n // Compress \u2014 use LLM-enhanced version when available\n const summary = await contextCompressor.compressWithLLM(\n session.plan?.intent.goal ?? \"N/A\",\n turns,\n decisions,\n allFiles,\n )\n\n const prompt = contextCompressor.compressToPrompt(summary)\n\n let output = `## \uD83D\uDDDC\uFE0F Context Compressed\\n\\n`\n output += `Compressed ${turns.length} turns into ~${summary.estimatedTokens} tokens.\\n\\n`\n output += prompt\n\n traceLogger.log({\n step: \"context:compress\",\n input: `${turns.length} turns`,\n output: `${summary.estimatedTokens} tokens`,\n toolUsed: \"agentic_context\",\n success: true,\n durationMs: 0,\n })\n\n return { output }\n },\n }),\n\n agentic_snapshot: tool({\n description: \"Save or restore execution snapshots. Use 'save' to checkpoint current state (plan progress, file changes, decisions). Use 'list' to see all snapshots.\",\n args: {\n action: tool.schema.enum([\"save\", \"list\"]).describe(\"'save' creates a checkpoint; 'list' shows all saved snapshots\"),\n label: tool.schema.string().optional().describe(\"Optional label for the snapshot (e.g., 'after-types')\"),\n },\n async execute(args, context) {\n if (args.action === \"save\") {\n const progress = executor.getProgress(context.sessionID)\n const allFiles = executor.getAllFilesModified(context.sessionID)\n const session = sessionStore.getOrCreate(context.sessionID)\n const planGoal = session.plan?.intent.goal ?? \"N/A\"\n\n const snapshot = {\n label: args.label ?? `snap-${Date.now()}`,\n timestamp: new Date().toISOString(),\n planGoal,\n progress,\n filesModified: allFiles,\n completedSteps: session.plan?.intent.subtasks.filter(s =>\n executor.getCompletedSteps(context.sessionID).includes(s.id)\n ).map(s => s.id) ?? [],\n }\n\n session.artifacts.set(`snapshot:${snapshot.label}`, JSON.stringify(snapshot))\n\n traceLogger.log({\n step: \"snapshot:save\",\n input: snapshot.label,\n output: `${allFiles.length} files, ${progress.completed}/${progress.total} steps`,\n toolUsed: \"agentic_snapshot\",\n success: true,\n durationMs: 0,\n })\n\n return {\n output: `## \uD83D\uDCF8 Snapshot Saved\\n\\n**Label:** \\`${snapshot.label}\\`\\n**Progress:** ${progress.completed}/${progress.total}\\n**Files:** ${allFiles.length}\\n**Timestamp:** ${snapshot.timestamp}`,\n }\n }\n\n // List snapshots\n const session = sessionStore.getOrCreate(context.sessionID)\n const snapshots: string[] = []\n for (const [key] of session.artifacts) {\n if (key.startsWith(\"snapshot:\")) {\n snapshots.push(key.replace(\"snapshot:\", \"\"))\n }\n }\n\n if (snapshots.length === 0) {\n return { output: \"No snapshots saved yet. Use `action: \\\"save\\\"` to create one.\" }\n }\n\n return { output: `## \uD83D\uDCF8 Snapshots\\n\\n${snapshots.map(s => `- \\`${s}\\``).join(\"\\n\")}` }\n },\n }),\n\n agentic_pipeline: tool({\n description: \"Define and run multi-agent workflow pipelines. Chain PM \u2192 Architect \u2192 Developer \u2192 QA for complete feature development. Includes cross-validation between stages.\",\n args: {\n action: tool.schema.enum([\"define\", \"list\", \"run\", \"status\", \"suggest\"]).describe(\"'define' to create a new pipeline; 'list' to show existing; 'run' to start a pipeline; 'status' to check progress; 'suggest' to auto-suggest a pipeline\"),\n pipelineId: tool.schema.string().optional().describe(\"Pipeline ID (for define/run/status)\"),\n stages: tool.schema.array(tool.schema.object({\n role: tool.schema.string().describe(\"Agent role for this stage\"),\n description: tool.schema.string().describe(\"What this stage should accomplish\"),\n validationCriteria: tool.schema.array(tool.schema.string()).optional().describe(\"Criteria to validate this stage\"),\n })).optional().describe(\"Pipeline stages (for define action)\"),\n name: tool.schema.string().optional().describe(\"Pipeline name (for define action)\"),\n description: tool.schema.string().optional().describe(\"Task description (for suggest action)\"),\n },\n async execute(args, context) {\n switch (args.action) {\n case \"define\": {\n if (!args.pipelineId || !args.stages || args.stages.length === 0) {\n return { output: \"pipelineId and stages (non-empty array) required.\" }\n }\n const pipeline: WorkflowPipeline = {\n id: args.pipelineId,\n name: args.name ?? args.pipelineId,\n stages: args.stages,\n createdAt: Date.now(),\n }\n orchestrator.definePipeline(pipeline)\n return {\n output: `## \uD83D\uDCCB Pipeline Defined\\n\\n**ID:** \\`${pipeline.id}\\`\\n**Name:** ${pipeline.name}\\n**Stages:** ${pipeline.stages.length}\\n\\n` +\n pipeline.stages.map((s, i) => `${i + 1}. **${s.role}** \u2014 ${s.description}`).join(\"\\n\"),\n }\n }\n\n case \"list\": {\n const pipelines = orchestrator.listPipelines()\n if (pipelines.length === 0) return { output: \"No pipelines defined. Use `action: \\\"define\\\"` to create one.\" }\n let out = `## \uD83D\uDCCB Defined Pipelines (${pipelines.length})\\n\\n`\n for (const p of pipelines) {\n out += `**${p.name}** (\\`${p.id}\\`) \u2014 ${p.stages.length} stages\\n`\n out += p.stages.map(s => ` - ${s.role}: ${s.description}`).join(\"\\n\") + \"\\n\\n\"\n }\n return { output: out }\n }\n\n case \"suggest\": {\n const suggested = orchestrator.getSuggestedPipeline(args.description ?? \"\")\n const pipeline = orchestrator.getPipeline(suggested)\n if (!pipeline) return { output: `Suggested pipeline: \\`${suggested}\\`. Run \\`action: \"run\"\\` with this pipelineId.` }\n let out = `## \uD83D\uDCA1 Suggested Pipeline: **${pipeline.name}**\\n\\n`\n out += `Run \\`agentic_pipeline\\` with \\`action: \"run\"\\` and \\`pipelineId: \"${pipeline.id}\"\\` to start.\\n\\n`\n out += pipeline.stages.map((s, i) => {\n const category = s.model ?? roleRegistry.suggestModel(s.role)\n const resolved = modelRegistry.resolveAlias(category)\n const modelLabel = resolved.length > 0 && resolved[0] !== category ? `${resolved[0]} (${category})` : category\n return `${i + 1}. **${s.role}** \u2014 ${s.description} (model: ${modelLabel})`\n }).join(\"\\n\")\n return { output: out }\n }\n\n case \"run\": {\n if (!args.pipelineId) return { output: \"pipelineId required.\" }\n const pipeline = orchestrator.getPipeline(args.pipelineId)\n if (!pipeline) return { output: `Pipeline \"${args.pipelineId}\" not found. Define it first or use one of: ${orchestrator.listPipelines().map(p => p.id).join(\", \")}` }\n\n const runId = `run-${context.sessionID}-${args.pipelineId}`\n orchestrator.startRun(runId, args.pipelineId)\n\n coordinator.writeSharedMemory(`pipeline:run:${runId}`, `Started pipeline ${pipeline.name}`, \"coordinator\")\n\n let out = `## \uD83D\uDE80 Pipeline Run Started\\n\\n`\n out += `**Pipeline:** ${pipeline.name} (\\`${args.pipelineId}\\`)\\n`\n out += `**Run ID:** \\`${runId}\\`\\n\\n`\n out += `### Stages\\n`\n out += pipeline.stages.map((s, i) => {\n const prefix = i === 0 ? \"\u25B6\" : \"\u23F3\"\n const category = s.model ?? roleRegistry.suggestModel(s.role)\n const resolved = modelRegistry.resolveAlias(category)\n const modelLabel = resolved.length > 0 && resolved[0] !== category ? `${resolved[0]} (${category})` : category\n return `${prefix} **${s.role}** \u2014 ${s.description} (model: ${modelLabel})`\n }).join(\"\\n\")\n out += `\\n\\n### Next Step\\nDelegate tasks to each stage. Start with \\`agentic_delegate\\` for the first role: **${pipeline.stages[0].role}**.`\n\n return { output: out, metadata: { runId, pipelineId: args.pipelineId } }\n }\n\n case \"status\": {\n const runId = args.pipelineId\n ? `run-${context.sessionID}-${args.pipelineId}`\n : null\n\n if (!runId) {\n return { output: \"Specify pipelineId to check status.\" }\n }\n\n const current = orchestrator.getCurrentStage(runId)\n const results = orchestrator.getAllStageResults(runId)\n\n let out = `## \uD83D\uDCCA Pipeline Status\\n\\n`\n out += `**Run:** \\`${runId}\\`\\n`\n\n const pipeline = args.pipelineId ? orchestrator.getPipeline(args.pipelineId) : null\n if (pipeline) {\n out += `**Pipeline:** ${pipeline.name}\\n\\n`\n out += `| Stage | Status |\\n|-------|--------|\\n`\n for (const stage of pipeline.stages) {\n const hasResult = results.has(stage.role)\n const icon = hasResult ? \"\u2705\" : stage.role === current?.role ? \"\u25B6\" : \"\u23F3\"\n out += `| ${icon} ${stage.role} | ${hasResult ? \"Complete\" : stage.role === current?.role ? \"Active\" : \"Pending\"} |\\n`\n }\n }\n\n if (current) {\n out += `\\n### Current Stage\\n**${current.role}** \u2014 ${current.description}\\n`\n } else {\n out += `\\n### Pipeline Complete\\nAll stages finished.\\n`\n }\n\n return { output: out }\n }\n\n default:\n return { output: `Unknown action \"${args.action}\". Available: define, list, run, status, suggest.` }\n }\n },\n }),\n\n agentic_pr: tool({\n description: \"Generate a pull request description from the execution plan, all step results, and files changed. Use `action: 'create'` to actually open a PR via GitHub CLI (`gh`).\",\n args: {\n title: tool.schema.string().optional().describe(\"Override the PR title (defaults to the plan goal)\"),\n action: tool.schema.enum([\"generate\", \"create\"]).optional().describe(\"'generate' returns PR body (default); 'create' opens actual PR via gh CLI\"),\n baseBranch: tool.schema.string().optional().describe(\"Base branch for PR creation (default: main)\"),\n },\n async execute(args, context) {\n const session = sessionStore.getOrCreate(context.sessionID)\n const allFiles = executor.getAllFilesModified(context.sessionID)\n\n if (!session.plan) {\n return { output: \"No plan found. Create a plan with `agentic_plan` first.\" }\n }\n\n const steps = session.plan.intent.subtasks.map(s => {\n const stepState = executor.getStepState(context.sessionID, s.id)\n return {\n id: s.id,\n description: s.description,\n success: stepState?.result?.success ?? false,\n }\n })\n\n const pr = git.generatePRDescription(args.title ?? session.plan.intent.goal, steps, allFiles)\n\n let output = `## \uD83D\uDCCB PR Description\\n\\n`\n output += `---\\ntitle: ${pr.title}\\n---\\n\\n`\n output += `## Summary\\n\\n${pr.summary}\\n\\n`\n output += `## Changes\\n\\n${pr.changes.join(\"\\n\")}\\n\\n`\n output += `## Files Changed\\n\\n${allFiles.map(f => `- \\`${f}\\``).join(\"\\n\")}\\n\\n`\n output += `## Test Plan\\n\\n${pr.testPlan}\\n\\n`\n\n if (pr.breakingChanges) {\n output += `## \u26A0\uFE0F Breaking Changes\\n\\nSome steps failed. Review carefully before merging.\\n\\n`\n }\n\n output += `## Steps Executed\\n\\n`\n output += steps.map(s =>\n `- ${s.success ? \"\u2705\" : \"\u274C\"} **${s.id}** \u2014 ${s.description}`\n ).join(\"\\n\")\n\n // Auto-commit if git available\n const allSuccess = steps.every(s => s.success)\n let commitInfo = null\n if (allSuccess && allFiles.length > 0 && git.isAvailable()) {\n commitInfo = git.commit(`feat: ${pr.title}`, allFiles)\n }\n\n if (commitInfo) {\n output += `\\n\\n## \uD83D\uDD16 Auto-commit\\n\\n`\n output += `**Commit:** \\`${commitInfo.hash.slice(0, 7)}\\`\\n`\n output += `**Message:** ${commitInfo.message}\\n`\n output += `**Files:** ${commitInfo.files.length}\\n`\n }\n\n // Create actual PR\n if (args.action === \"create\") {\n const prBody = `${pr.summary}\\n\\n## Changes\\n${pr.changes.join(\"\\n\")}\\n\\n## Test Plan\\n${pr.testPlan}`\n const base = args.baseBranch ?? \"main\"\n const prResult = git.createPR(pr.title, prBody, base)\n if (prResult) {\n output += `\\n\\n## \uD83D\uDE80 PR Created\\n\\n`\n output += `**URL:** ${prResult.url}\\n`\n output += `**Number:** #${prResult.number}\\n`\n output += `**Branch:** ${prResult.branch}\\n`\n } else {\n output += `\\n\\n## \u26A0\uFE0F PR Creation Failed\\n\\n`\n output += `Make sure \\`gh\\` CLI is installed and authenticated: \\`gh auth login\\`\\n`\n }\n }\n\n traceLogger.log({\n step: \"pr\",\n input: pr.title,\n output: `${steps.length} steps, ${allFiles.length} files`,\n toolUsed: \"agentic_pr\",\n success: true,\n durationMs: 0,\n metadata: { commitHash: commitInfo?.hash, prCreated: args.action === \"create\" },\n })\n\n return { output }\n },\n }),\n\n agentic_score: tool({\n description: \"Score the current changeset for technical debt. Analyzes coupling, file size, scope, and code patterns. Use before completing to ensure code quality.\",\n args: {\n files: tool.schema.array(tool.schema.string()).optional().describe(\"Specific files to score (defaults to all modified files)\"),\n },\n async execute(args, context) {\n const allFiles = executor.getAllFilesModified(context.sessionID)\n const files = args.files ?? allFiles\n\n if (files.length === 0) {\n return { output: \"No files modified yet. Complete some steps first.\" }\n }\n\n const contents = new Map<string, string>()\n for (const file of files) {\n try {\n contents.set(file, readFileSync(file, \"utf-8\"))\n } catch {\n contents.set(file, `[Unable to read ${file}]`)\n }\n }\n\n const session = sessionStore.getOrCreate(context.sessionID)\n const score = debtScorer.score(session.plan?.intent.goal ?? \"Unknown\", files, contents)\n\n let output = `## \uD83D\uDCCA Tech Debt Score: **${score.overall.toUpperCase()}**\\n\\n`\n output += `**Issues found:** ${score.totalIssues}\\n\\n`\n output += `### Breakdown\\n\\n`\n\n for (const cat of score.breakdown) {\n const bar = \"\u2588\".repeat(Math.min(cat.score, 10)) + \"\u2591\".repeat(Math.max(10 - cat.score, 0))\n output += `**${cat.category}** \\`[${bar}]\\` ${cat.score}/10\\n`\n for (const issue of cat.issues) {\n output += ` - ${issue}\\n`\n }\n output += \"\\n\"\n }\n\n output += `### Suggestion\\n${score.suggestion}\\n`\n\n traceLogger.log({\n step: \"score\",\n input: `${files.length} files`,\n output: score.overall,\n toolUsed: \"agentic_score\",\n success: true,\n durationMs: 0,\n metadata: { overall: score.overall, totalIssues: score.totalIssues },\n })\n\n return { output }\n },\n }),\n\n agentic_delegate: tool({\n description: \"Assign a task to a specialized agent role (architect/developer/qa/coordinator/pm). Supports pipeline-aware delegation with cross-validation between stages and inter-agent messaging.\",\n args: {\n taskId: tool.schema.string().describe(\"Unique ID for this delegated task\"),\n description: tool.schema.string().describe(\"What this agent should do\"),\n role: tool.schema.enum([\"architect\", \"developer\", \"qa\", \"coordinator\", \"pm\"]).optional().describe(\"Target role (auto-detected if omitted)\"),\n context: tool.schema.string().optional().describe(\"Additional context or instructions for the agent\"),\n pipelineRunId: tool.schema.string().optional().describe(\"Pipeline run ID to associate this task with a pipeline stage\"),\n result: tool.schema.string().optional().describe(\"Task result (set when completing a task to trigger downstream stages and cross-validation)\"),\n status: tool.schema.enum([\"pending\", \"running\", \"done\", \"failed\"]).optional().describe(\"Set the task status\"),\n requestReview: tool.schema.boolean().optional().describe(\"Request review from a downstream role after completing this task\"),\n },\n async execute(args, context) {\n const allTasks = coordinator.getTasks(context.sessionID)\n\n // If result is provided, we're completing a task\n if (args.result || args.status) {\n const updated = coordinator.updateTask(context.sessionID, args.taskId, args.status ?? \"done\", args.result)\n if (!updated) return { output: `Task \"${args.taskId}\" not found.` }\n\n // Write to shared memory\n coordinator.writeSharedMemory(`task:${args.taskId}`, (args.result ?? \"\").slice(0, 500), args.role ?? \"unknown\")\n\n let output = `## \u2705 Task Updated\\n\\n`\n output += `**Task:** \\`${args.taskId}\\` \u2192 **${args.status ?? \"done\"}**\\n`\n if (args.result) output += `**Result:** ${args.result.slice(0, 300)}\\n\\n`\n\n // Pipeline: advance to next stage\n if (args.pipelineRunId) {\n const pipelineId = args.pipelineRunId.replace(`run-${context.sessionID}-`, \"\")\n const pipeline = orchestrator.getPipeline(pipelineId)\n if (pipeline) {\n const stageIssues: string[] = []\n const nextStage = orchestrator.advanceStage(args.pipelineRunId, args.result ?? \"\", stageIssues)\n const allResults = orchestrator.getAllStageResults(args.pipelineRunId)\n\n if (nextStage) {\n const pipelineContext = orchestrator.buildContextForRole(nextStage.role, args.pipelineRunId, coordinator.getAllSharedMemory())\n\n output += `### \u25B6 Pipeline Advancing\\n`\n output += `**Next stage:** ${nextStage.role} \u2014 ${nextStage.description}\\n\\n`\n\n // Auto-send message to next agent\n coordinator.sendMessage({\n from: args.role ?? \"coordinator\",\n to: nextStage.role,\n taskId: args.taskId,\n type: \"result\",\n payload: `Stage ${args.role} completed. Next: ${nextStage.role}.\\n\\nContext:\\n${pipelineContext}`,\n })\n\n output += `**Context forwarded** to \\`${nextStage.role}\\` via message bus.\\n`\n } else {\n output += `### \uD83C\uDF89 Pipeline Complete\\nAll stages finished!\\n`\n\n // Run final cross-validation\n const finalValidation = await orchestrator.crossValidate(\n \"coordinator\",\n \"Pipeline completed\",\n allResults,\n coordinator.getAllSharedMemory(),\n )\n output += `\\n### Cross-Validation\\n**Status:** ${finalValidation.passed ? \"\u2705 Passed\" : \"\u274C Issues found\"}\\n`\n output += `**Summary:** ${finalValidation.summary}\\n`\n if (finalValidation.issues.length > 0) {\n output += finalValidation.issues.map(i =>\n `- [${i.severity}] ${i.description} (from ${i.source})`\n ).join(\"\\n\")\n }\n }\n\n // Cross-validate: auto-check against previous stages\n if (args.status === \"done\" && allResults.size > 1) {\n const validation = await orchestrator.crossValidate(\n args.role ?? \"unknown\",\n args.result ?? \"\",\n allResults,\n coordinator.getAllSharedMemory(),\n )\n if (validation.issues.length > 0) {\n output += `\\n### \uD83D\uDD0D Cross-Validation Notes\\n`\n for (const issue of validation.issues) {\n output += `- [${issue.severity}] ${issue.description}\\n`\n }\n }\n }\n }\n }\n\n // Request review from next logical role\n if (args.requestReview && args.result) {\n const reviewRole = args.role === \"developer\" ? \"qa\" : args.role === \"architect\" ? \"developer\" : \"qa\"\n coordinator.sendMessage({\n from: args.role ?? \"developer\",\n to: reviewRole,\n taskId: args.taskId,\n type: \"review_request\",\n payload: `Review requested for task \"${args.taskId}\".\\n\\nResult:\\n${args.result.slice(0, 1000)}`,\n })\n output += `\\n### \uD83D\uDCE8 Review Requested\\n**Reviewer:** ${reviewRole}\\n**Message sent** via inter-agent message bus.\\n`\n }\n\n traceLogger.log({\n step: \"delegate:update\",\n input: args.taskId,\n output: `\u2192 ${args.status}`,\n toolUsed: \"agentic_delegate\",\n success: true,\n durationMs: 0,\n })\n\n return { output }\n }\n\n // Normal delegation flow (LLM-based role suggestion, Gap #6)\n const role: AgentRole = args.role ?? await coordinator.getSuggestedRole(args.description, llmEngine)\n const agent = coordinator.getAgent(role)\n if (!agent) {\n return { output: `Unknown role \"${role}\". Available: architect, developer, qa, coordinator.` }\n }\n\n const contextWithMemory = args.context ?? args.description\n\n // Auto-load relevant skills from skill store (Gap #4: skill-aware delegation)\n const relevantSkills = skillStore.find(args.description).slice(0, 3).map(s => ({\n name: s.definition.meta.name,\n successRate: s.successRate,\n steps: s.definition.workflow.steps.map(st => `${st.action}: ${st.description}`).join(\"; \"),\n }))\n\n const task = coordinator.delegate(role, {\n id: args.taskId,\n assignedTo: role,\n description: args.description,\n input: contextWithMemory,\n status: \"running\",\n pipelineRunId: args.pipelineRunId,\n }, context.sessionID, 0, relevantSkills)\n\n // Build pipeline context if part of a pipeline run\n let pipelineContext = \"\"\n if (args.pipelineRunId) {\n pipelineContext = orchestrator.buildContextForRole(role, args.pipelineRunId, coordinator.getAllSharedMemory())\n }\n\n // Check for pending messages for this role\n const pendingMessages = coordinator.getMessages(role, true)\n\n // \u2500\u2500 Actual Agent Execution via Isolated AgentRuntime \u2500\u2500\n const agentCtx = {\n systemPrompt: agent.prompt ?? `You are a ${role} in a software engineering team.`,\n sessionId: context.sessionID,\n role,\n taskDescription: contextWithMemory,\n pipelineContext: pipelineContext || undefined,\n pendingMessages: pendingMessages.length > 0 ? pendingMessages.map(m => ({ from: m.from, payload: m.payload })) : undefined,\n sharedMemory: coordinator.getAllSharedMemory().map(e => ({ key: e.key, value: e.value, writtenBy: e.writtenBy })),\n }\n const agentResultObj = await agentRuntime.execute(agentCtx)\n const agentResult = agentResultObj.success ? agentResultObj.output : \"\"\n const executionError = agentResultObj.success ? null : (agentResultObj.error ?? \"Agent execution failed\")\n\n if (agentResult) {\n coordinator.updateTask(context.sessionID, args.taskId, \"done\", agentResult)\n coordinator.writeSharedMemory(`task:${args.taskId}`, agentResult.slice(0, 500), role)\n coordinator.writeSharedMemory(`task:${args.taskId}:full`, agentResult, role)\n } else {\n coordinator.updateTask(context.sessionID, args.taskId, \"failed\", executionError ?? \"LLM unavailable\")\n }\n\n let output = `## \uD83E\uDD16 Task Delegated\\n\\n`\n output += `**Task:** \\`${args.taskId}\\`\\n`\n output += `**Role:** ${role} (${agent.name})\\n`\n output += `**Description:** ${args.description}\\n`\n output += `**Status:** ${agentResult ? \"\u2705 Done\" : executionError ? \"\u274C Failed\" : \"\u26A0\uFE0F Unknown\"}\\n`\n if (agentResult) {\n output += `**Result:** ${agentResult.slice(0, 500)}\\n`\n } else if (executionError) {\n output += `**Error:** ${executionError.slice(0, 200)}\\n`\n }\n output += `**Agent Prompt:**\\n\\`\\`\\`\\n${(agent.prompt ?? \"No prompt available\").slice(0, 400)}\\n\\`\\`\\`\\n\\n`\n\n // Model suggestion \u2014 check session preference first, then fall through\n const sessionModelPref = sessionStore.getModelPreference(context.sessionID, role)\n let suggestedModel: string\n let modelLabel: string\n\n if (sessionModelPref) {\n // Session-seeded model preference (Gap: per-role model selection)\n suggestedModel = sessionModelPref\n modelLabel = `${suggestedModel} (session preference)`\n modelRegistry.addModel(suggestedModel)\n } else {\n const suggestedCategory = roleRegistry.suggestModel(role)\n const suggestedModels = modelRegistry.suggestWithFallback(role, [suggestedCategory])\n suggestedModel = suggestedModels.length > 0 ? suggestedModels[0] : suggestedCategory\n modelLabel = suggestedModel !== suggestedCategory ? `${suggestedModel} (${suggestedCategory})` : suggestedModel\n }\n output += `**Model Used:** ${modelLabel}\\n`\n if (agent.model) output += `**Configured Model:** ${agent.model}\\n`\n\n // Model reliability info\n const modelScore = modelRegistry.getScore(suggestedModel)\n if (modelScore) {\n if (modelScore.totalCalls > 0) {\n const icon = modelScore.status === \"healthy\" ? \"\u2705\" : modelScore.status === \"degraded\" ? \"\u26A0\uFE0F\" : \"\u274C\"\n output += `**Model Status:** ${icon} ${modelScore.status} (reliability: ${(modelScore.reliability * 100).toFixed(0)}%, hallucinations: ${(modelScore.hallucinationRate * 100).toFixed(0)}%)\\n`\n } else {\n output += `**Model Status:** No reliability data yet (new model)\\n`\n }\n }\n\n if (args.pipelineRunId) {\n output += `**Pipeline Run:** \\`${args.pipelineRunId}\\`\\n`\n }\n\n if (agentResult) {\n output += `\\n### Agent Output\\n\\`\\`\\`\\n${agentResult.slice(0, 2000)}\\n\\`\\`\\`\\n`\n } else if (executionError) {\n output += `\\n### Execution Error\\n${executionError}\\n`\n }\n\n if (pendingMessages.length > 0) {\n output += `\\n### \uD83D\uDCE8 Pending Messages (${pendingMessages.length})\\n`\n for (const msg of pendingMessages) {\n output += `- From **${msg.from}**: ${msg.payload.slice(0, 200)}\\n`\n }\n }\n\n output += `\\n### Active Tasks (${allTasks.length + 1})\\n`\n output += [...coordinator.getTasks(context.sessionID)].map(t =>\n `- ${t.status === \"done\" ? \"\u2705\" : t.status === \"failed\" ? \"\u274C\" : \"\u23F3\"} **${t.id}** \u2192 ${t.assignedTo}: ${t.description}`\n ).join(\"\\n\")\n\n // Pipeline: auto-advance if part of pipeline\n if (agentResult && args.pipelineRunId) {\n const pipelineId = args.pipelineRunId.replace(`run-${context.sessionID}-`, \"\")\n const pipeline = orchestrator.getPipeline(pipelineId)\n if (pipeline) {\n const stageIssues: string[] = []\n const nextStage = orchestrator.advanceStage(args.pipelineRunId, agentResult, stageIssues)\n const allResults = orchestrator.getAllStageResults(args.pipelineRunId)\n if (nextStage) {\n const nextCtx = orchestrator.buildContextForRole(nextStage.role, args.pipelineRunId, coordinator.getAllSharedMemory())\n coordinator.sendMessage({\n from: role, to: nextStage.role, taskId: args.taskId,\n type: \"result\",\n payload: `Stage ${role} completed. Next: ${nextStage.role}.\\n\\nContext:\\n${nextCtx}`,\n })\n output += `\\n### Pipeline: Next Stage\\n\u25B6 **${nextStage.role}** \u2014 ${nextStage.description}\\n`\n } else {\n output += `\\n### \uD83C\uDF89 Pipeline Complete\\nAll stages finished!\\n`\n const finalValidation = await orchestrator.crossValidate(\"coordinator\", \"Pipeline completed\", allResults, coordinator.getAllSharedMemory())\n output += `**Cross-Validation:** ${finalValidation.passed ? \"\u2705 Passed\" : \"\u274C Issues\"}\\n`\n }\n }\n }\n\n traceLogger.log({\n step: \"delegate\",\n input: args.taskId,\n output: `\u2192 ${role}: ${agentResult ? \"done\" : \"failed\"}`,\n toolUsed: \"agentic_delegate\",\n success: !!agentResult,\n durationMs: 0,\n })\n\n return { output }\n },\n }),\n\n agentic_message: tool({\n description: \"Inter-agent messaging system. Send messages between agent roles, request reviews, check inbox, and view conversation threads. Part of the multi-agent coordination framework.\",\n args: {\n action: tool.schema.enum([\"send\", \"inbox\", \"conversation\", \"mark-read\"]).describe(\"'send' to send a message; 'inbox' to check messages; 'conversation' to view a thread; 'mark-read' to acknowledge a message\"),\n to: tool.schema.string().optional().describe(\"Recipient role (for send action)\"),\n taskId: tool.schema.string().optional().describe(\"Task ID this message relates to (for send/conversation)\"),\n message: tool.schema.string().optional().describe(\"Message content (for send action)\"),\n type: tool.schema.enum([\"result\", \"review_request\", \"review_response\", \"clarification\", \"approval\", \"revision\"]).optional().describe(\"Message type (for send action)\"),\n messageId: tool.schema.string().optional().describe(\"Message ID to mark as read (for mark-read action)\"),\n },\n async execute(args, context) {\n switch (args.action) {\n case \"send\": {\n if (!args.to || !args.message) return { output: \"`to` and `message` required.\" }\n const msg = coordinator.sendMessage({\n from: context.agent ?? \"user\",\n to: args.to,\n taskId: args.taskId ?? \"general\",\n type: args.type ?? \"clarification\",\n payload: args.message,\n })\n return {\n output: `## \uD83D\uDCE8 Message Sent\\n\\n**From:** ${msg.from}\\n**To:** ${msg.to}\\n**Type:** ${msg.type}\\n**ID:** \\`${msg.id}\\`\\n\\n${msg.payload.slice(0, 500)}`,\n }\n }\n\n case \"inbox\": {\n const role = context.agent ?? \"user\"\n const messages = coordinator.getMessages(role, true)\n if (messages.length === 0) return { output: \"\uD83D\uDCED No unread messages.\" }\n\n let out = `## \uD83D\uDCEC Inbox (${messages.length} unread)\\n\\n`\n for (const msg of messages) {\n out += `**${msg.type.toUpperCase()}** from **${msg.from}** [\\`${msg.id}\\`]\\n`\n out += `Task: \\`${msg.taskId}\\` | ${new Date(msg.timestamp).toLocaleTimeString()}\\n`\n out += `> ${msg.payload.slice(0, 200)}\\n\\n`\n }\n return { output: out }\n }\n\n case \"conversation\": {\n if (!args.taskId) return { output: \"taskId required.\" }\n const thread = coordinator.getConversation(args.taskId)\n if (thread.length === 0) return { output: `No messages for task \"${args.taskId}\".` }\n\n let out = `## \uD83D\uDCAC Conversation: \\`${args.taskId}\\`\\n\\n`\n for (const msg of thread) {\n const icon = msg.type === \"approval\" ? \"\u2705\" : msg.type === \"review_request\" ? \"\uD83D\uDD0D\" : msg.type === \"revision\" ? \"\uD83D\uDD04\" : \"\uD83D\uDCAC\"\n out += `${icon} **${msg.from}** \u2192 **${msg.to}** (${msg.type})\\n`\n out += `> ${msg.payload.slice(0, 300)}\\n\\n`\n }\n return { output: out }\n }\n\n case \"mark-read\": {\n if (!args.messageId) return { output: \"messageId required.\" }\n const ok = coordinator.markRead(args.messageId)\n return { output: ok ? `\u2705 Message \\`${args.messageId}\\` marked as read.` : `Message \\`${args.messageId}\\` not found.` }\n }\n\n default:\n return { output: `Unknown action \"${args.action}\". Available: send, inbox, conversation, mark-read.` }\n }\n },\n }),\n\n agentic_skill: tool({\n description: \"Manage reusable skills extracted from successful task completions. Use 'extract' to create a skill from a completed step. Use 'find' to search existing skills.\",\n args: {\n action: tool.schema.enum([\"extract\", \"find\", \"list\"]).describe(\"'extract' creates a skill; 'find' searches; 'list' shows all\"),\n query: tool.schema.string().optional().describe(\"Search query or extraction target (stepId)\"),\n },\n async execute(args, context) {\n if (args.action === \"extract\") {\n const stepId = args.query\n if (!stepId) return { output: \"Provide a stepId as query to extract a skill from.\" }\n\n const stepState = executor.getStepState(context.sessionID, stepId)\n if (!stepState?.result) return { output: `No execution record for step \"${stepId}\".` }\n\n const skill = await skillStore.extract({\n role: \"tool\",\n content: stepState.result.output,\n })\n\n if (!skill) return { output: `Could not extract a skill from step \"${stepId}\". The output pattern is not recognized.` }\n\n persistence.save(\"skills\", skill.definition.meta.id, skill.definition)\n\n return {\n output: `## \uD83E\uDDE0 Skill Extracted\\n\\n**Name:** ${skill.definition.meta.name}\\n**Pattern:** \\`${skill.definition.trigger.pattern}\\`\\n**Steps:** ${skill.definition.workflow.steps.length}\\n**Success rate:** ${(skill.successRate * 100).toFixed(0)}%\\n\\n\\`\\`\\`\\n${skill.definition.workflow.steps.map(s => s.description).join(\"\\n\")}\\n\\`\\`\\``,\n }\n }\n\n if (args.action === \"find\") {\n if (!args.query) return { output: \"Provide a search query.\" }\n const skills = skillStore.find(args.query)\n if (skills.length === 0) return { output: `No skills found for \"${args.query}\".` }\n let output = `## \uD83D\uDD0D Skills Matching \"${args.query}\"\\n\\n`\n output += skills.map(s => `- **${s.definition.meta.name}** (${(s.successRate * 100).toFixed(0)}% success, ${s.usageCount} uses)\\n Pattern: \\`${s.definition.trigger.pattern}\\``).join(\"\\n\")\n return { output }\n }\n\n const skills = skillStore.getAll()\n if (skills.length === 0) return { output: \"No skills yet. Complete tasks and use `action: \\\"extract\\\"` to build the skill library.\" }\n\n let output = `## \uD83E\uDDE0 Skill Library (${skills.length})\\n\\n`\n output += skills.map(s => `- **${s.definition.meta.name}** \u2014 ${(s.successRate * 100).toFixed(0)}% (${s.usageCount} uses)`).join(\"\\n\")\n return { output }\n },\n }),\n\n agentic_model: tool({\n description: \"Configure per-role LLM model preferences for the current session. Use 'set' to assign a model to an agent role. Use 'get' to see current assignment. Use 'list' to view all preferences. Use 'clear' to remove a preference.\",\n args: {\n action: tool.schema.enum([\"set\", \"get\", \"list\", \"clear\"]).describe(\"Action: set/get/list/clear per-role model preference\"),\n role: tool.schema.string().optional().describe(\"Agent role (architect, developer, qa, coordinator, pm)\"),\n model: tool.schema.string().optional().describe(\"Model name (e.g. 'gpt-4o', 'claude-sonnet-4-20250514')\"),\n },\n async execute(args, context) {\n const VALID_ROLES = [\"architect\", \"developer\", \"qa\", \"coordinator\", \"pm\"]\n\n if (args.action === \"list\") {\n const prefs = sessionStore.getAllModelPreferences(context.sessionID)\n if (prefs.length === 0) {\n return { output: \"No model preferences configured for this session. Use `action: \\\"set\\\"` to assign models to agent roles.\" }\n }\n let output = \"## \uD83C\uDFAF Session Model Preferences\\n\\n\"\n output += \"| Role | Model |\\n\"\n output += \"|------|-------|\\n\"\n output += prefs.map(p => `| **${p.role}** | \\`${p.model}\\` |`).join(\"\\n\")\n output += \"\\n\\nThese preferences override the default model selection during delegation.\"\n return { output }\n }\n\n if (args.action === \"set\") {\n if (!args.role) return { output: \"Provide a `role` (e.g. 'architect', 'developer', 'qa', 'coordinator', 'pm').\" }\n if (!args.model) return { output: \"Provide a `model` name (e.g. 'gpt-4o', 'claude-sonnet-4-20250514').\" }\n const roleLower = args.role.toLowerCase()\n if (!VALID_ROLES.includes(roleLower)) {\n return { output: `Invalid role \"${args.role}\". Valid roles: ${VALID_ROLES.join(\", \")}` }\n }\n sessionStore.setModelPreference(context.sessionID, roleLower, args.model)\n // Also register in model registry so it's tracked\n modelRegistry.addModel(args.model)\n modelRegistry.registerAlias(roleLower, [args.model])\n return { output: `\u2705 Model preference set: **${roleLower}** \u2192 \\`${args.model}\\`\\nThis model will be used when delegating tasks to the ${roleLower} role in this session.` }\n }\n\n if (args.action === \"get\") {\n if (!args.role) return { output: \"Provide a `role` to check (e.g. 'architect').\" }\n const model = sessionStore.getModelPreference(context.sessionID, args.role)\n if (!model) {\n return { output: `No model preference set for role \"${args.role}\". Delegation will use default model selection.` }\n }\n return { output: `**${args.role}** \u2192 \\`${model}\\`` }\n }\n\n if (args.action === \"clear\") {\n sessionStore.clearModelPreference(context.sessionID, args.role)\n if (args.role) {\n return { output: `Cleared model preference for role \"${args.role}\".` }\n }\n return { output: \"Cleared all model preferences for this session.\" }\n }\n\n return { output: \"Unknown action. Use 'set', 'get', 'list', or 'clear'.\" }\n },\n }),\n\n agentic_model_reset: tool({\n description: \"Reset model statistics to recover from degraded performance. Use 'reset' to clear stats for a specific model. Use 'reset-stale' to auto-reset models not used in 7+ days. Use 'reset-all' for emergency recovery.\",\n args: {\n action: tool.schema.enum([\"reset\", \"reset-stale\", \"reset-all\"]).describe(\"Action: reset (single model), reset-stale (auto-detect old models), reset-all (emergency)\"),\n model: tool.schema.string().optional().describe(\"Model name (required for 'reset' action)\"),\n staleDays: tool.schema.number().optional().describe(\"Days threshold for stale detection (default: 7)\"),\n },\n async execute(args, context) {\n if (args.action === \"reset\") {\n if (!args.model) return { output: \"Provide a `model` name to reset (e.g. 'gpt-4o').\" }\n \n const beforeScore = modelRegistry.getScore(args.model)\n modelRegistry.resetModel(args.model)\n const afterScore = modelRegistry.getScore(args.model)\n \n return { \n output: `\u2705 Reset model statistics for \\`${args.model}\\`\\n\\n**Before:** ${beforeScore ? `${(beforeScore.reliability * 100).toFixed(0)}% reliability, ${beforeScore.totalCalls} calls` : \"No data\"}\\n**After:** ${afterScore ? `${(afterScore.reliability * 100).toFixed(0)}% reliability, ${afterScore.totalCalls} calls` : \"Clean slate\"}` \n }\n }\n\n if (args.action === \"reset-stale\") {\n const staleDays = args.staleDays ?? 7\n const resetModels = modelRegistry.resetStaleModels(staleDays)\n \n if (resetModels.length === 0) {\n return { output: `No stale models found (threshold: ${staleDays} days unused).` }\n }\n \n return { output: `\u2705 Reset ${resetModels.length} stale model(s):\\n${resetModels.map(m => `- \\`${m}\\``).join(\"\\n\")}\\n\\nThese models had not been used in ${staleDays}+ days.` }\n }\n\n if (args.action === \"reset-all\") {\n const allScores = modelRegistry.getAllScores()\n for (const score of allScores) {\n modelRegistry.resetModel(score.model)\n }\n return { output: `\u26A0\uFE0F **EMERGENCY RESET:** Cleared statistics for ${allScores.length} model(s).\\n\\nAll models now have clean slate. Use this only when all models are blocked.` }\n }\n\n return { output: \"Unknown action. Use 'reset', 'reset-stale', or 'reset-all'.\" }\n },\n }),\n\n agentic_episodes: tool({\n description: \"Browse cross-session memory. Search past tasks and their outcomes to learn from previous sessions. Use before planning similar tasks to avoid repeating mistakes.\",\n args: {\n action: tool.schema.enum([\"search\", \"recent\", \"stats\"]).describe(\"'search' finds relevant past tasks; 'recent' shows latest; 'stats' shows summary\"),\n query: tool.schema.string().optional().describe(\"Search query (for 'search' action)\"),\n },\n async execute(args, context) {\n if (args.action === \"search\") {\n if (!args.query) return { output: \"Provide a search query.\" }\n\n // Index episodes into vector store for RAG-enhanced search\n const allEpisodes = episodicStore.getRecent(50)\n for (const ep of allEpisodes) {\n vectorStore.addDocument(`ep:${ep.sessionId}`, `${ep.planGoal} ${ep.outcome} ${ep.decisions.join(\" \")}`, {\n type: \"episode\",\n sessionId: ep.sessionId,\n outcome: ep.outcome,\n tags: [],\n })\n }\n const vectorResults = await vectorStore.semanticSearch(args.query, 5)\n const episodes = allEpisodes.filter(e => vectorResults.some(r => r.id === `ep:${e.sessionId}`))\n if (episodes.length === 0) return { output: `No episodes found for \"${args.query}\".` }\n let output = `## \uD83E\uDDE0 Episodic Memory (RAG): \"${args.query}\"\\n\\n`\n output += episodes.map(e =>\n `- **${e.outcome === \"success\" ? \"\u2705\" : e.outcome === \"partial\" ? \"\u26A0\uFE0F\" : \"\u274C\"} ${e.planGoal}**\\n Score: ${vectorResults.find(r => r.id === `ep:${e.sessionId}`)?.score.toFixed(2) ?? \"?\"} | Files: ${e.filesChanged.length} | ${e.timestamp.slice(0, 10)}`\n ).join(\"\\n\")\n return { output }\n }\n\n if (args.action === \"recent\") {\n const episodes = episodicStore.getRecent(10)\n if (episodes.length === 0) return { output: \"No episode history yet.\" }\n let output = `## \uD83D\uDCDC Recent Episodes\\n\\n`\n output += episodes.map(e =>\n `- ${e.timestamp.slice(0, 10)} \u2014 **${e.outcome.toUpperCase()}**: ${e.planGoal.slice(0, 80)}`\n ).join(\"\\n\")\n return { output }\n }\n\n const stats = episodicStore.getStats()\n return {\n output: `## \uD83D\uDCCA Episode Stats\\n\\n**Total sessions:** ${stats.total}\\n**Successful:** ${stats.successful}\\n**Partial:** ${stats.partial}\\n**Failed:** ${stats.failed}\\n\\nSuccess rate: ${stats.total > 0 ? ((stats.successful / stats.total) * 100).toFixed(0) : 0}%`,\n }\n },\n }),\n\n agentic_parallel: tool({\n description: \"Analyze or execute steps concurrently. Use `analyze` to see parallelism opportunities, or `execute` to run ready steps in parallel with Promise.all. Supports LLM-driven execution and sub-process OpenCode spawn.\",\n args: {\n action: tool.schema.enum([\"analyze\", \"execute\"]).optional().describe(\"'analyze' (default) shows parallelism plan; 'execute' runs ready steps concurrently\"),\n opencodePath: tool.schema.string().optional().describe(\"Path to `opencode` binary for sub-process spawn (execute mode)\"),\n abortOnFailure: tool.schema.boolean().optional().describe(\"Stop all tasks in phase if one fails (default: false)\"),\n },\n async execute(args, context) {\n const session = sessionStore.getOrCreate(context.sessionID)\n if (!session.plan) return { output: \"No plan found. Create one with `agentic_plan` first.\" }\n\n const subtasks = session.plan.intent.subtasks\n const completed = executor.getCompletedSteps(context.sessionID)\n const plan = parallelExec.analyzeParallelism(subtasks)\n\n if (args.action === \"execute\") {\n const readySteps = subtasks.filter(s =>\n !completed.includes(s.id) &&\n s.dependsOn.every(d => completed.includes(d))\n )\n if (readySteps.length === 0) {\n return { output: \"No ready steps to execute. All steps are either completed or blocked by dependencies.\" }\n }\n\n const cwd = ctxDir(context)\n\n let stepRunner: import(\"./core/parallel.js\").StepRunner\n if (args.opencodePath) {\n stepRunner = (step) => parallelExec.executeWithSubprocessSpawn(step, args.opencodePath!, cwd, context.sessionID)\n } else {\n stepRunner = parallelExec.llmStepRunner({\n llmEngine,\n projectDir: cwd,\n planGoal: session.plan.intent.goal,\n sessionId: context.sessionID,\n })\n }\n\n const { results, durationMs } = await parallelExec.executePlanConcurrently(\n plan, stepRunner, args.abortOnFailure ?? false,\n )\n\n for (const r of results) {\n executor.recordResult(context.sessionID, {\n stepId: r.stepId,\n success: r.success,\n output: r.output ?? \"\",\n filesModified: r.filesModified,\n error: r.error,\n })\n }\n\n traceLogger.log({\n step: \"parallel:execute\",\n input: `${readySteps.length} steps`,\n output: `${results.filter(r => r.success).length}/${results.length} passed`,\n toolUsed: \"agentic_parallel\",\n success: results.every(r => r.success),\n durationMs,\n metadata: { total: results.length, passed: results.filter(r => r.success).length },\n })\n\n let output = `## \u26A1 Parallel Execution Complete (${(durationMs / 1000).toFixed(1)}s)\\n\\n`\n output += `**Steps executed:** ${readySteps.length}\\n`\n output += `**Passed:** ${results.filter(r => r.success).length}\\n`\n output += `**Failed:** ${results.filter(r => !r.success).length}\\n\\n`\n\n for (const r of results) {\n const icon = r.success ? \"\u2705\" : \"\u274C\"\n output += `${icon} **${r.stepId}** \u2014 ${r.output?.slice(0, 120) ?? \"no output\"}\\n`\n if (r.error) output += ` Error: ${r.error.slice(0, 200)}\\n`\n }\n\n const progress = executor.getProgress(context.sessionID)\n output += `\\n### Overall Progress\\n`\n output += `\u2705 ${progress.completed}/${progress.total} | \u274C ${progress.failed} | \u23F3 ${progress.total - progress.completed - progress.failed}`\n\n return { output, metadata: { results, durationMs } }\n }\n\n // Analyze mode (default)\n let output = `## \u26A1 Parallel Execution Plan\\n\\n`\n output += `**Max parallelism:** ${plan.maxParallelism}\\n`\n output += `**Phases:** ${plan.phases.length}\\n\\n`\n\n output += `| Phase | Steps | Parallel |\\n|-------|-------|----------|\\n`\n for (const phase of plan.phases) {\n const stepIds = phase.steps.map(s => s.id).join(\", \")\n output += `| ${phase.index + 1} | ${stepIds} | ${phase.canRunInParallel ? \"\u2705\" : \"\uD83D\uDD12\"} |\\n`\n }\n\n const suggestions = parallelExec.suggestParallelTasks(subtasks, completed)\n if (suggestions.length > 1) {\n output += `\\n### Currently Runnable\\n`\n const groups = new Map<number, string[]>()\n for (const s of suggestions) {\n const list = groups.get(s.parallelGroup) ?? []\n list.push(s.taskId)\n groups.set(s.parallelGroup, list)\n }\n for (const [group, tasks] of groups) {\n const label = tasks.length > 1 ? `\uD83D\uDFE2 Parallel group ${group}` : `\uD83D\uDFE1 Sequential`\n output += `- **${label}**: ${tasks.map(t => `\\`${t}\\``).join(\", \")}\\n`\n }\n output += `\\nRun \\`agentic_parallel\\` with \\`action: \"execute\"\\` to run these steps concurrently.`\n }\n\n const allFiles = new Map<string, string[]>()\n for (const step of subtasks) {\n const stepState = executor.getStepState(context.sessionID, step.id)\n if (stepState?.result?.filesModified) {\n allFiles.set(step.id, stepState.result.filesModified)\n }\n }\n const conflicts = parallelExec.detectConflicts(\n suggestions.map(s => s.taskId),\n allFiles,\n )\n if (conflicts.length > 0) {\n output += `\\n### \u26A0\uFE0F Potential Conflicts\\n`\n for (const c of conflicts) {\n output += `- \\`${c.taskA}\\` \u2694\uFE0F \\`${c.taskB}\\` both touch \\`${c.conflictingFile}\\`\\n`\n }\n }\n\n return { output }\n },\n }),\n\n agentic_dashboard: tool({\n description: \"Generate an observability dashboard from execution traces. Shows timeline, statistics, tool usage, anomaly detection, and model reliability (timeouts, retry storms, silent failures).\",\n args: {},\n async execute(args, _context) {\n // Always show model reliability regardless of trace data\n const modelReliability = modelRegistry.getSummary()\n let traceSection = \"\"\n\n // Read traces from file\n await traceLogger.flush()\n const tracePath = `${input.worktree}/.agentic/trace.jsonl`\n let traces = []\n try {\n const content = readFileSync(tracePath, \"utf-8\")\n traces = content.trim().split(\"\\n\").filter(Boolean).map(l => JSON.parse(l))\n } catch { /* no traces yet */ }\n\n if (traces.length > 0) {\n const data = dashboard.generate(traces, Date.now())\n traceSection = dashboard.formatForDisplay(data)\n }\n\n let output = traceSection || \"### \uD83D\uDCCA Execution Overview\\n\\nNo trace data available yet. Execute some steps first.\\n\"\n output += `\\n### \uD83E\uDD16 Model Reliability\\n${modelReliability}\\n`\n\n // Cross-session pattern discovery\n const allEpisodes = episodicStore.getRecent(200)\n if (allEpisodes.length >= 3) {\n const allStepResults = [] // No direct access to CE's internal results; use episodes instead\n const allSkills = skillStore.getAll().map(s => ({\n name: s.definition.meta.name,\n successRate: s.successRate,\n usageCount: s.usageCount,\n }))\n const report = patternDiscovery.analyze(allEpisodes, [], allSkills)\n\n if (report.errorPatterns.length > 0 || report.recommendations.length > 0) {\n output += `\\n### \uD83D\uDD0D Cross-Session Patterns (${report.totalSessions} sessions)\\n`\n\n if (report.errorPatterns.length > 0) {\n output += `\\n**Recurring Errors:**\\n`\n for (const ep of report.errorPatterns.slice(0, 3)) {\n output += `- \\`${ep.category}\\`: ${ep.sessionCount}/${report.totalSessions} sessions (${(ep.sessionAffinity * 100).toFixed(0)}%)\\n`\n }\n }\n\n if (report.filePatterns.some(f => f.isHotSpot)) {\n output += `\\n**Hot Spot Files:**\\n`\n for (const fp of report.filePatterns.filter(f => f.isHotSpot).slice(0, 3)) {\n output += `- \\`${fp.filePath}\\`: modified in ${fp.sessionCount} sessions`\n if (fp.coChangedFiles.length > 0) {\n output += ` (co-changes: ${fp.coChangedFiles.slice(0, 2).map(c => `\\`${c.filePath}\\``).join(\", \")})`\n }\n output += \"\\n\"\n }\n }\n\n if (report.recommendations.length > 0) {\n const highRecs = report.recommendations.filter(r => r.priority === \"high\")\n if (highRecs.length > 0) {\n output += `\\n**\u26A0\uFE0F High Priority Recommendations:**\\n`\n for (const rec of highRecs.slice(0, 3)) {\n output += `- ${rec.description}\\n`\n }\n }\n }\n }\n }\n\n // Live evaluation score\n const liveScore = liveEvaluator.computeScore()\n if (liveScore.totalSteps > 0 || liveScore.totalDelegations > 0) {\n output += `\\n### \uD83D\uDCCA Live Evaluation Score\\n`\n output += liveEvaluator.formatReport(false)\n }\n\n return { output }\n },\n }),\n\n agentic_guard: tool({\n description: \"Verify the truthfulness of claims made in step outputs. Checks that files referenced actually exist, functions claimed exist in code, and imports are valid. Use to catch LLM hallucinations before they corrupt the codebase.\",\n args: {\n stepId: tool.schema.string().describe(\"The step ID whose output to verify\"),\n },\n async execute(args, context) {\n const stepState = executor.getStepState(context.sessionID, args.stepId)\n if (!stepState?.result) return { output: `No execution record for step \"${args.stepId}\".` }\n\n const output = stepState.result.output\n const files = executor.getAllFilesModified(context.sessionID)\n const check = hallucinationGuard.check(output, files)\n\n if (!check.passed) {\n modelRegistry.recordHallucination(llmEngine.getCurrentModel())\n }\n\n let response = `## \uD83D\uDEE1\uFE0F Hallucination Check: Step \"${args.stepId}\"\\n\\n`\n response += `**Verdict:** ${check.passed ? \"\u2705 All claims verified\" : \"\u274C Unverified claims found\"}\\n\\n`\n response += `**Summary:** ${check.summary}\\n\\n`\n\n if (check.claims.length > 0) {\n response += `### Claims Checked\\n\\n`\n response += `| Claim | Type | Verified |\\n|-------|------|----------|\\n`\n for (const c of check.claims.slice(0, 20)) {\n const icon = c.verified ? \"\u2705\" : \"\u274C\"\n response += `| ${icon} ${c.claim.slice(0, 50)} | ${c.type} | ${c.actual ?? \"?\"} |\\n`\n }\n }\n\n if (!check.passed) {\n response += `\\n### \u26A0\uFE0F Action Required\\n`\n response += `The following claims could not be verified: \\n`\n for (const c of check.claims.filter(c => !c.verified)) {\n response += `- \"${c.claim}\" \u2014 expected ${c.expected} but got ${c.actual}\\n`\n }\n response += `\\nDouble-check these before proceeding. The agent may be hallucinating about files/functions that don't exist.`\n }\n\n response += `\\n### \uD83E\uDD16 Model Reliability\\n`\n const modelScore = modelRegistry.getScore(llmEngine.getCurrentModel())\n if (modelScore && modelScore.totalCalls > 0) {\n const icon = modelScore.status === \"healthy\" ? \"\u2705\" : modelScore.status === \"degraded\" ? \"\u26A0\uFE0F\" : \"\u274C\"\n response += `${icon} **${modelScore.model}** \u2014 reliability: ${(modelScore.reliability * 100).toFixed(0)}%, hallucinations: ${(modelScore.hallucinationRate * 100).toFixed(0)}%, calls: ${modelScore.totalCalls}\\n`\n } else {\n response += `No data yet for current model.\\n`\n }\n\n traceLogger.log({\n step: `guard:${args.stepId}`,\n input: args.stepId,\n output: check.summary,\n toolUsed: \"agentic_guard\",\n success: check.passed,\n durationMs: 0,\n })\n\n return { output: response }\n },\n }),\n\n agentic_evolve: tool({\n description: \"Inspect and extend the agent system itself (Stage IV). Register custom agent roles, define versioned memory schemas, and export skills in self-describing format for other agents to consume.\",\n args: {\n action: tool.schema.enum([\"inspect\", \"register-role\", \"export-skill\", \"memory-schema\", \"evolve\", \"read-prompt\", \"edit-prompt\", \"prompt-history\", \"rollback-prompt\", \"export-training-data\"]).describe(\"What to do: inspect system state, register a custom agent role, export a skill, view memory schema, run self-evolution, manage agent prompts (Stage IV), or export skills as training data for fine-tuning\"),\n name: tool.schema.string().optional().describe(\"Role name or skill name (for register-role, export-skill)\"),\n prompt: tool.schema.string().optional().describe(\"Agent prompt template (for register-role) or new instruction to append (for edit-prompt)\"),\n tools: tool.schema.array(tool.schema.string()).optional().describe(\"Tools available to custom role\"),\n skillId: tool.schema.string().optional().describe(\"Skill ID to export or inspect\"),\n role: tool.schema.string().optional().describe(\"Agent role (for read-prompt, edit-prompt, prompt-history, rollback-prompt)\"),\n version: tool.schema.number().optional().describe(\"Version number (for rollback-prompt)\"),\n description: tool.schema.string().optional().describe(\"Description for the prompt change (for edit-prompt)\"),\n format: tool.schema.enum([\"openai\", \"instructions\"]).optional().describe(\"Output format for training data (for export-training-data, default: openai)\"),\n minSuccessRate: tool.schema.number().optional().describe(\"Minimum skill success rate to include (for export-training-data, default: 0.5)\"),\n },\n async execute(args, _context) {\n switch (args.action) {\n case \"inspect\": {\n const builtIn = roleRegistry.getAllBuiltIn()\n const custom = roleRegistry.getAllCustom()\n const migrations = schemaVersion.getMigrations()\n\n let out = `## \uD83D\uDD2E Agent System State (Stage IV)\\n\\n`\n out += `**Memory schema version:** ${MemorySchemaVersion.currentVersion()}\\n`\n out += `**Registered migrations:** ${migrations.length}\\n\\n`\n out += `### Built-in Roles (${builtIn.length})\\n`\n for (const r of builtIn) {\n out += `- **${r.name}** (\\`${r.role}\\`) \u2014 ${r.tools.length} tools\\n`\n }\n if (custom.length > 0) {\n out += `\\n### Custom Roles (${custom.length})\\n`\n for (const r of custom) {\n out += `- **${r.name}** (\\`${r.role}\\`) \u2014 ${r.tools.length} tools\\n`\n }\n }\n out += `\\n### Extensibility\\n`\n out += `- Custom roles: \\`agentic_evolve register-role\\`\\n`\n out += `- Export skills: \\`agentic_evolve export-skill\\`\\n`\n out += `- Schema info: \\`agentic_evolve memory-schema\\`\\n`\n return { output: out }\n }\n\n case \"register-role\": {\n if (!args.name || !args.prompt) {\n return { output: \"Both `name` and `prompt` are required to register a custom role.\" }\n }\n const roleId = args.name.toLowerCase().replace(/\\s+/g, \"-\")\n roleRegistry.registerCustom({\n role: roleId,\n name: args.name,\n prompt: args.prompt,\n tools: args.tools ?? [\"read\", \"edit\", \"write\", \"bash\"],\n })\n return { output: `Custom role \"${args.name}\" registered as \\`${roleId}\\`. Available via \\`agentic_delegate role=${roleId}\\`.` }\n }\n\n case \"export-skill\": {\n const skillId = args.skillId\n const skillData = createSkillDefinition(\n args.name ?? \"unnamed-skill\",\n args.name ?? \"generic pattern\",\n args.tools ?? [],\n [{ action: \"implement\", description: args.name ?? \"task\", expectedOutput: \"completed\" }],\n )\n\n const json = serializeSkill(skillData)\n const inspection = inspectSkill(skillData)\n\n let out = inspection\n out += `\\n\\n### Machine-Readable Export (agentic-skill/v1)\\n\\`\\`\\`json\\n${json}\\n\\`\\`\\``\n return { output: out }\n }\n\n case \"memory-schema\": {\n let out = `## \uD83E\uDDE0 Memory Schema v${MemorySchemaVersion.currentVersion()}\\n\\n`\n out += `### Envelope Format\\n\\`\\`\\`ts\\n${JSON.stringify(createMemoryEnvelope({ example: true }, \"example\"), null, 2)}\\n\\`\\`\\`\\n\\n`\n out += `### Registered Migrations\\n`\n const migrations = schemaVersion.getMigrations()\n if (migrations.length === 0) {\n out += `No migrations registered yet. Schema v${MemorySchemaVersion.currentVersion()} is current.\\n`\n } else {\n for (const m of migrations) {\n out += `- v${m.from} \u2192 v${m.to}: ${m.description}\\n`\n }\n }\n out += `\\n### Upgrading\\n`\n out += `Data is stored with \\`schema_version\\`. On read, the system auto-migrates from any version to current.\\n`\n out += `New migrations can be registered via \\`schemaVersion.registerMigration()\\` in plugin code.\\n`\n out += `\\n### Compatibility\\n`\n out += `All episodes, skills, and artifacts support schema evolution without data loss.\\n`\n return { output: out }\n }\n\n case \"evolve\": {\n await traceLogger.flush()\n\n const allSkills = skillStore.getAll()\n const allEpisodes = episodicStore.getRecent(50)\n\n const uniqueSessions = new Set(allEpisodes.map(e => e.sessionId))\n let allTasks: AgentTask[] = []\n for (const sid of uniqueSessions) {\n allTasks = allTasks.concat(coordinator.getTasks(sid))\n }\n\n const allStepStates: Array<{ stepId: string; success: boolean; output: string }> = []\n for (const sid of uniqueSessions) {\n const session = sessionStore.getOrCreate(sid)\n const subtasks = session.plan?.intent.subtasks ?? []\n for (const step of subtasks) {\n const state = executor.getStepState(sid, step.id)\n if (state?.result) {\n allStepStates.push({\n stepId: step.id,\n success: state.result.success,\n output: state.result.output,\n })\n }\n }\n }\n\n let traces: Array<{ toolUsed: string; success: boolean; step: string }> = []\n const tracePath = `${input.worktree}/.agentic/trace.jsonl`\n try {\n const content = readFileSync(tracePath, \"utf-8\")\n for (const line of content.trim().split(\"\\n\").filter(Boolean)) {\n const parsed = JSON.parse(line)\n traces.push({\n toolUsed: parsed.toolUsed ?? \"unknown\",\n success: parsed.success ?? true,\n step: parsed.step ?? \"\",\n })\n }\n } catch { /* no traces yet */ }\n\n selfEvolver.feedSkills(allSkills)\n selfEvolver.feedEpisodes(allEpisodes)\n selfEvolver.feedTasks(allTasks)\n selfEvolver.feedStepStates(allStepStates)\n selfEvolver.feedTraces(traces)\n\n const report = selfEvolver.evolve()\n\n // Auto-apply role suggestions\n const appliedRoles: string[] = []\n for (const role of report.roleSuggestions) {\n try {\n coordinator.registerCustomRole({\n role: role.name,\n name: role.name,\n tools: role.suggestedTools,\n prompt: `You are ${role.name}. ${role.reason}\\n\\nTrigger: ${role.triggerPattern}`,\n })\n appliedRoles.push(role.name)\n } catch { }\n }\n\n // Auto-apply skill patches\n const patchedSkills: string[] = []\n for (const patch of report.skillPatches) {\n const record = skillStore.getById(patch.skillId)\n if (!record) continue\n const def = record.definition\n let modified = false\n\n for (const change of patch.suggestedChanges) {\n if (change.type === \"add_rollback\") {\n for (const step of def.workflow.steps) {\n if (!step.rollback) {\n step.rollback = change.detail\n modified = true\n }\n }\n }\n if (change.type === \"add_step\") {\n const newStep: import(\"./memory/skill-format.js\").SkillStep = {\n order: def.workflow.steps.length + 1,\n action: \"verify\",\n description: change.detail,\n expectedOutput: \"Step completed successfully\",\n }\n def.workflow.steps.push(newStep)\n modified = true\n }\n }\n\n if (modified) {\n def.quality.usageCount = record.usageCount\n def.quality.successRate = record.successRate\n def.audit.lastModified = new Date().toISOString()\n def.audit.modifiedBy = \"system\"\n def.meta.version++\n persistence.save(\"skills\", def.meta.id, def)\n patchedSkills.push(patch.skillName)\n }\n }\n\n let out = `## \uD83D\uDD2E Self-Evolution Report\\n\\n`\n out += `**Improvement Score:** ${report.improvementScore}/100\\n`\n out += `**Sessions Analyzed:** ${report.metrics.totalSessions}\\n`\n out += `**Steps Analyzed:** ${report.metrics.totalSteps}\\n`\n out += `**Overall Success Rate:** ${(report.metrics.successRate * 100).toFixed(0)}%\\n`\n out += `**Retry Rate:** ${(report.metrics.retryRate * 100).toFixed(0)}%\\n\\n`\n\n if (appliedRoles.length > 0) {\n out += `### \u2705 Auto-Registered Roles\\n`\n for (const name of appliedRoles) {\n out += `- **${name}** \u2014 registered automatically\\n`\n }\n out += `\\n`\n }\n\n // Auto-apply prompt patches (Stage IV: versioned, source-tracked)\n const appliedPatches: string[] = []\n for (const patch of report.promptPatches) {\n try {\n const existingPrompt = roleRegistry.getPrompt(patch.role)\n if (existingPrompt && !existingPrompt.includes(patch.instruction.slice(0, 40))) {\n const newPrompt = existingPrompt + `\\n\\n## Auto-Patched Instruction (from ${patch.errorCategory} errors)\\n${patch.instruction}`\n roleRegistry.updatePrompt(patch.role as \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\", newPrompt, \"auto-evolve\", `Patch from ${patch.errorCategory} errors (${patch.occurrences}x)`)\n persistence.save(\"prompts\", \"state\", roleRegistry.getAllPromptStates())\n appliedPatches.push(`${patch.role}: \"${patch.instruction.slice(0, 60)}...\"`)\n }\n } catch { /* non-fatal */ }\n }\n\n if (patchedSkills.length > 0) {\n out += `### \u2705 Auto-Patched Skills\\n`\n for (const name of patchedSkills) {\n out += `- **${name}** \u2014 patched automatically\\n`\n }\n out += `\\n`\n }\n\n if (appliedPatches.length > 0) {\n out += `### \u2705 Auto-Patched Prompts\\n`\n for (const p of appliedPatches) {\n out += `- ${p}\\n`\n }\n out += `\\n`\n }\n\n out += `### Recommendations\\n`\n if (report.metrics.recommendations.length === 0) {\n out += `All metrics within healthy ranges. No changes recommended.\\n`\n } else {\n for (const rec of report.metrics.recommendations) {\n out += `- ${rec}\\n`\n }\n }\n\n if (report.skillPatches.length > 0) {\n out += `\\n### \uD83D\uDD27 Skill Patches (${report.skillPatches.length})\\n`\n for (const patch of report.skillPatches) {\n out += `\\n**${patch.skillName}** \u2014 ${patch.failures} failures\\n`\n for (const change of patch.suggestedChanges) {\n out += `- [${change.type}] ${change.description}\\n`\n out += ` \u2192 ${change.detail}\\n`\n }\n }\n }\n\n if (report.roleSuggestions.length > 0) {\n out += `\\n### \uD83D\uDC65 Role Suggestions (${report.roleSuggestions.length})\\n`\n for (const role of report.roleSuggestions) {\n out += `\\n**${role.name}**\\n`\n out += `- Trigger: \"${role.triggerPattern}\"\\n`\n out += `- Tools: ${role.suggestedTools.map(t => `\\`${t}\\``).join(\", \")}\\n`\n out += `- Reason: ${role.reason}\\n`\n }\n }\n\n if (report.metrics.topErrorCategories.length > 0) {\n out += `\\n### \uD83D\uDCCA Top Error Categories\\n`\n for (const err of report.metrics.topErrorCategories) {\n out += `- **${err.category}**: ${err.count} occurrence(s)\\n`\n }\n }\n\n if (report.promptPatches.length > 0) {\n out += `\\n### \uD83D\uDCDD Prompt Auto-Patches (${report.promptPatches.length})\\n`\n for (const pp of report.promptPatches) {\n const priorityIcon = pp.priority === \"high\" ? \"\uD83D\uDD34\" : pp.priority === \"medium\" ? \"\uD83D\uDFE1\" : \"\uD83D\uDFE2\"\n out += `${priorityIcon} **${pp.role}** \u2014 ${pp.errorCategory} (${pp.occurrences}x)\\n`\n out += ` \u2192 ${pp.instruction}\\n`\n }\n }\n\n // Cross-session pattern discovery (Gap #3)\n const allSkillsForPd = skillStore.getAll().map(s => ({\n name: s.definition.meta.name,\n successRate: s.successRate,\n usageCount: s.usageCount,\n }))\n const patternReport = patternDiscovery.analyze(allEpisodes, [], allSkillsForPd)\n if (patternReport.recommendations.length > 0) {\n out += `\\n### \uD83D\uDD0D Cross-Session Patterns\\n`\n out += `**Total sessions analyzed:** ${patternReport.totalSessions}\\n\\n`\n\n const highRecs = patternReport.recommendations.filter(r => r.priority === \"high\")\n if (highRecs.length > 0) {\n out += `**\u26A0\uFE0F High Priority (${highRecs.length})**\\n`\n for (const rec of highRecs) {\n out += `- ${rec.description}\\n`\n out += ` \u2192 ${rec.action}\\n`\n }\n out += \"\\n\"\n }\n\n const medRecs = patternReport.recommendations.filter(r => r.priority === \"medium\")\n if (medRecs.length > 0) {\n out += `**Medium Priority (${medRecs.length})**\\n`\n for (const rec of medRecs) {\n out += `- ${rec.description}\\n`\n }\n out += \"\\n\"\n }\n\n if (patternReport.errorPatterns.length > 0) {\n out += `**Error Patterns:**\\n`\n for (const ep of patternReport.errorPatterns) {\n out += `- \\`${ep.category}\\`: ${ep.sessionCount}/${patternReport.totalSessions} sessions (${(ep.sessionAffinity * 100).toFixed(0)}%)\\n`\n }\n out += \"\\n\"\n }\n\n if (patternReport.filePatterns.some(f => f.isHotSpot)) {\n out += `**Hot Spot Files:**\\n`\n for (const fp of patternReport.filePatterns.filter(f => f.isHotSpot).slice(0, 5)) {\n out += `- \\`${fp.filePath}\\` \u2192 ${fp.sessionCount} sessions`\n if (fp.coChangedFiles.length > 0) {\n out += ` (co-changed: ${fp.coChangedFiles.map(c => `\\`${c.filePath}\\``).join(\", \")}`\n }\n out += \")\\n\"\n }\n }\n }\n\n return { output: out }\n }\n\n case \"read-prompt\": {\n const targetRole = args.role ?? \"developer\"\n const prompt = roleRegistry.getPrompt(targetRole)\n if (!prompt) return { output: `Role \"${targetRole}\" not found.` }\n const state = roleRegistry.getPromptState(targetRole)\n const ver = state?.currentVersion ?? 1\n return {\n output: `## \uD83D\uDCD6 Prompt for \\`${targetRole}\\` (v${ver})\\n\\n\\`\\`\\`\\n${prompt}\\n\\`\\`\\``,\n }\n }\n\n case \"edit-prompt\": {\n const targetRole = args.role ?? \"developer\"\n if (!args.prompt) return { output: \"`prompt` (instruction to append) is required for edit-prompt.\" }\n const existingPrompt = roleRegistry.getPrompt(targetRole)\n if (!existingPrompt) return { output: `Role \"${targetRole}\" not found.` }\n const newPrompt = existingPrompt + `\\n\\n## Self-Patched Instruction (agent-driven)\\n${args.prompt}`\n const updated = roleRegistry.updatePrompt(targetRole as \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\", newPrompt, \"agent-self\", args.description ?? \"Agent self-modification\")\n if (!updated) return { output: `Failed to update prompt for role \"${targetRole}\". Only built-in roles can be edited.` }\n persistence.save(\"prompts\", \"state\", roleRegistry.getAllPromptStates())\n return {\n output: `\u2705 Prompt for \\`${targetRole}\\` updated (v${roleRegistry.getPromptState(targetRole)?.currentVersion}). New instruction appended at the end.`,\n }\n }\n\n case \"prompt-history\": {\n const targetRole = args.role ?? \"developer\"\n const history = roleRegistry.getPromptHistory(targetRole)\n if (history.length === 0) return { output: `No prompt history for \"${targetRole}\".` }\n let out = `## \uD83D\uDCDC Prompt History for \\`${targetRole}\\`\\n\\n`\n for (const entry of history) {\n const preview = entry.prompt.slice(-200).replace(/\\n/g, \" \")\n out += `**v${entry.version}** \u2014 ${entry.timestamp} \u2014 source: ${entry.source}`\n if (entry.description) out += ` \u2014 ${entry.description}`\n out += `\\n\\`\\`\\`\\n...${preview.slice(-200)}\\n\\`\\`\\`\\n\\n`\n }\n return { output: out }\n }\n\n case \"rollback-prompt\": {\n const targetRole = args.role ?? \"developer\"\n const version = args.version\n if (!version) return { output: \"`version` is required for rollback-prompt.\" }\n const history = roleRegistry.getPromptHistory(targetRole)\n if (history.length === 0) return { output: `No prompt history for \"${targetRole}\".` }\n const target = history.find(e => e.version === version)\n if (!target) return { output: `Version ${version} not found for \"${targetRole}\". Available versions: ${history.map(e => `v${e.version}`).join(\", \")}` }\n const ok = roleRegistry.rollbackPrompt(targetRole, version)\n if (!ok) return { output: `Failed to rollback prompt for \"${targetRole}\".` }\n persistence.save(\"prompts\", \"state\", roleRegistry.getAllPromptStates())\n return {\n output: `\u2705 Prompt for \\`${targetRole}\\` rolled back to v${version} (from ${target.timestamp}).`,\n }\n }\n\n case \"export-training-data\": {\n const allSkills = skillStore.getAll()\n const fmt = args.format ?? \"openai\"\n const minRate = args.minSuccessRate ?? 0.5\n const dataset = skillsToTrainingData(allSkills, fmt, minRate)\n\n const filteredSkills = allSkills.filter(s => s.successRate >= minRate)\n const examples = filteredSkills.map(s => skillToTrainingExample(s))\n const summary = trainingDatasetSummary(examples)\n\n let out = summary\n out += `\\n\\n### Training Data (${dataset.format})\\n`\n out += `\\`\\`\\`\\n${dataset.data.slice(0, 2000)}${dataset.data.length > 2000 ? \"\\n\u2026 (truncated)\" : \"\"}\\n\\`\\`\\``\n if (dataset.data.length > 2000) {\n out += `\\n\\n**Full dataset:** ${dataset.data.length} characters, ${dataset.totalExamples} examples`\n }\n return { output: out }\n }\n\n default:\n return { output: `Unknown action: ${args.action}. Available: inspect, register-role, export-skill, memory-schema, evolve, read-prompt, edit-prompt, prompt-history, rollback-prompt, export-training-data.` }\n }\n },\n }),\n\n agentic_auto: tool({\n description: \"Fully autonomous engineering agent. Give it a goal and it plans, implements, verifies, and fixes code automatically \u2014 no step-by-step guidance needed.\",\n args: {\n goal: tool.schema.string().describe(\"The goal to accomplish autonomously\"),\n constraints: tool.schema.array(tool.schema.string()).optional().describe(\"Constraints or requirements\"),\n },\n async execute(args, context) {\n llmEngine.setSessionId(context.sessionID)\n const startTime = Date.now()\n const projectDir = ctxDir(context)\n\n // 1. Scan codebase for context\n await navigator.scan(projectDir)\n const summary = navigator.getSummary()\n\n // 2. LLM-driven plan (fallback to template if LLM returns empty)\n let subtasks: Subtask[] = []\n try {\n const intent = await planner.decomposeWithLLM(llmEngine, args.goal, summary)\n if (intent.subtasks.length > 0) subtasks = intent.subtasks\n } catch { /* fall through */ }\n if (subtasks.length === 0) {\n const template = planner.decompose(args.goal, [])\n if (template.autoGenerated) subtasks = template.intent.subtasks\n }\n if (subtasks.length === 0) {\n subtasks = [\n { id: \"step-1\", description: args.goal, dependsOn: [], verificationCriteria: [\"All code compiles\", \"Logic is correct\"] },\n ]\n }\n if (subtasks.length === 0) {\n return {\n output: `## \uD83E\uDD16 Autonomous Agent Report\\n\\n**Goal:** ${args.goal}\\n**Result:** 0/0 steps \u2014 could not decompose into subtasks. Try rephrasing the goal or using \\`agentic_plan\\` manually.`,\n metadata: { result: { completedSteps: [], failedSteps: [], totalIterations: 0, success: false, summary: \"Planning failed: no subtasks generated\" } },\n }\n }\n\n const plan = intentParser.createPlan({\n goal: args.goal,\n constraints: args.constraints ?? [],\n context: { relevantFiles: [], dependencies: [] },\n subtasks,\n })\n executor.initExecution(context.sessionID, plan)\n\n // 3. Execute steps via AgentLoop.runLoop()\n const parseStepOutput = (content: string): { files?: Array<{ path: string; content: string }>; summary?: string } => {\n const cleaned = content.trim()\n try {\n const parsed = JSON.parse(cleaned)\n if (parsed && typeof parsed === \"object\") return parsed\n } catch { /* try next */ }\n const jsonBlock = cleaned.match(/```(?:json)?\\s*\\n?(\\{[\\s\\S]*?\\})\\s*\\n?```/)\n if (jsonBlock) {\n try { return JSON.parse(jsonBlock[1]) } catch { /* try next */ }\n }\n const jsonMatch = cleaned.match(/\\{[\\s\\S]*?\"files\"[\\s\\S]*?\"summary\"[\\s\\S]*?\\}/)\n if (jsonMatch) {\n try {\n const p = JSON.parse(jsonMatch[0])\n if (Array.isArray(p.files) || p.summary) return p\n } catch { /* try next */ }\n }\n return { files: [], summary: cleaned.replace(/```[\\s\\S]*?```/g, \"\").slice(0, 200).trim() }\n }\n\n const stepExecutor = async (step: Subtask) => {\n const stepsSoFar = executor.getCompletedSteps(context.sessionID)\n const prevState = executor.getStepState(context.sessionID, step.id)\n const retryNote = prevState?.retryCount && prevState.retryCount > 0\n ? `\\nPREVIOUS ATTEMPT FAILED (retry #${prevState.retryCount}/3). Errors:\\n${(prevState.errorHistory || []).map(e => `- ${e.error}`).join(\"\\n\")}`\n : \"\"\n const resp = await llmEngine.call({\n systemPrompt: `You are an autonomous software engineer implementing a step of a larger plan. Generate implementation as JSON with:\n- \"files\": [{ \"path\": \"relative/file/path\", \"content\": \"file content\" }]\n- \"summary\": \"what was done\"\nOnly include files that need changing. Return ONLY valid JSON.` + llmEngine.getMemoryContext(step.description),\n userPrompt: `Goal: ${args.goal}\\nStep (${step.id}): ${step.description}\\nDir: ${projectDir}\\nCompleted steps: ${stepsSoFar.join(\", \") || \"none\"}${retryNote}`,\n jsonMode: false,\n temperature: prevState?.retryCount ? 0.4 : 0.3,\n })\n\n const impl = parseStepOutput(resp.content)\n\n // Validate LLM actually produced implementation\n const hasContent = (impl.files && impl.files.length > 0) || (impl.summary && impl.summary.length > 20)\n if (!hasContent) {\n return { success: false, output: `LLM produced no implementation. Raw output: ${resp.content.slice(0, 200)}`, filesModified: [] }\n }\n\n const files: string[] = []\n for (const file of impl.files ?? []) {\n const fullPath = join(projectDir, file.path)\n mkdirSync(dirname(fullPath), { recursive: true })\n writeFileSync(fullPath, file.content, \"utf-8\")\n files.push(file.path)\n }\n\n return { success: true, output: impl.summary ?? step.description, filesModified: files }\n }\n\n const fixExecutor = async (fix: string) => {\n try {\n execFileSync(\"bash\", [\"-c\", fix], { cwd: projectDir, timeout: 30000, stdio: \"pipe\" })\n return true\n } catch { return false }\n }\n\n const result = await agentLoop.runLoop(\n context.sessionID, executor, verifier, errorAnalyzer, depTracker,\n projectDir, stepExecutor, fixExecutor,\n )\n\n // 4. Trace + episode\n const allFiles = executor.getAllFilesModified(context.sessionID)\n traceLogger.log({\n step: \"auto\", input: args.goal, output: JSON.stringify(result),\n toolUsed: \"agentic_auto\", success: result.success,\n durationMs: Date.now() - startTime, metadata: { ...result } as unknown as Record<string, unknown>,\n })\n\n episodicStore.record(\n context.sessionID, args.goal,\n result.success ? \"success\" : \"partial\",\n result.completedSteps.map(() => \"completed\"),\n allFiles,\n )\n\n // 5. Feed results to ContinuousEvolution\n const completedSteps = executor.getCompletedSteps(context.sessionID)\n for (const stepId of completedSteps) {\n continuousEvolution.feedStepResult({\n stepId,\n success: true,\n output: \"completed\",\n sessionId: context.sessionID,\n timestamp: Date.now(),\n })\n }\n for (const stepId of result.failedSteps) {\n continuousEvolution.feedStepResult({\n stepId,\n success: false,\n output: \"failed\",\n sessionId: context.sessionID,\n timestamp: Date.now(),\n })\n }\n const autoTrend = continuousEvolution.checkAndNotify()\n\n // 6. Auto-extract skill if successful\n if (result.success && result.completedSteps.length > 0) {\n const skillResult = await skillStore.extract({\n role: \"tool\",\n content: `\u2705 Successfully completed: ${args.goal}\\nSteps completed: ${result.completedSteps.join(\", \")}\\nSummary: ${result.summary}`,\n }, [args.goal, ...(args.constraints ?? [])])\n if (skillResult) {\n persistence.save(\"skills\", skillResult.definition.meta.id, skillResult.definition)\n }\n }\n\n // 7. Report\n const totalSteps = result.completedSteps.length + result.failedSteps.length\n let report = `## \uD83E\uDD16 Autonomous Agent Report\\n\\n`\n report += `**Goal:** ${args.goal}\\n`\n report += `**Result:** ${result.completedSteps.length}/${totalSteps} steps (${result.totalIterations} iterations)\\n`\n report += `${result.success ? \"\u2705 All passed\" : \"\u26A0\uFE0F Some failed\"}\\n`\n report += `**Duration:** ${((Date.now() - startTime) / 1000).toFixed(1)}s\\n\\n`\n if (allFiles.length > 0) {\n report += `### Files Modified\\n\\`\\`\\`\\n${[...new Set(allFiles)].join(\"\\n\")}\\n\\`\\`\\`\\n`\n }\n report += `\\n${result.summary}`\n\n // Evolution trend summary\n if (autoTrend.overall.total >= 5 || autoTrend.degradationDetected) {\n const dirIcon = autoTrend.rolling.direction === \"improving\" ? \"\uD83D\uDCC8\" : autoTrend.rolling.direction === \"degrading\" ? \"\uD83D\uDCC9\" : \"\uD83D\uDCCA\"\n report += `\\n\\n### ${dirIcon} Evolution Trend\\n`\n report += `**Overall:** ${(autoTrend.overall.successRate * 100).toFixed(0)}% (${autoTrend.overall.success}/${autoTrend.overall.total})\\n`\n report += `**Recent (last ${autoTrend.rolling.windowSize}):** ${(autoTrend.rolling.successRate * 100).toFixed(0)}% \u2014 ${autoTrend.rolling.direction}\\n`\n if (autoTrend.degradationDetected) {\n report += `\u26A0\uFE0F **Degradation detected!** Auto-running self-evolution...\\n`\n try {\n const evolveSummary = await runAutoEvolve()\n report += `${evolveSummary.replace(/\\n/g, \"\\n\")}\\n`\n } catch (e) {\n report += `\u26A0\uFE0F Auto-evolution encountered an error: ${(e as Error).message}\\n`\n }\n }\n if (autoTrend.recommendations.length > 0) {\n report += `**Suggestions:**\\n${autoTrend.recommendations.map(r => `- ${r}`).join(\"\\n\")}\\n`\n }\n }\n\n // Live evaluation score\n if (liveEvaluator.computeScore().totalSteps > 0 || liveEvaluator.computeScore().totalDelegations > 0) {\n report += `\\n\\n${liveEvaluator.formatReport(false)}`\n }\n\n return { output: report, metadata: { result } }\n },\n }),\n },\n\n \"tool.execute.after\": async (toolInput: { tool: string; args: Record<string, unknown>; sessionID: string; callID: string }, _output: { title: string; output: string; metadata: unknown }) => {\n traceLogger.log({\n step: \"tool\",\n input: JSON.stringify(toolInput.args ?? {}),\n output: \"completed\",\n toolUsed: toolInput.tool,\n success: true,\n durationMs: 0,\n })\n\n // Feed LiveEvaluator from tool execution\n try {\n const args = toolInput.args ?? {}\n switch (toolInput.tool) {\n case \"agentic_execute\": {\n const success = args.success === true\n if (args.stepId) {\n liveEvaluator.feedStepResult({ stepId: String(args.stepId), success, sessionId: toolInput.sessionID })\n // Error recovery tracking: if retry succeeded after an error\n if (success && args.error && String(args.error).length > 0) {\n liveEvaluator.feedErrorRecovery(`exec-${args.stepId}`, true)\n } else if (!success && args.error && String(args.error).length > 0) {\n liveEvaluator.feedErrorRecovery(`exec-${args.stepId}`, false)\n }\n }\n break\n }\n case \"agentic_reflect\": {\n // Each reflect call counts as error recovery attempt\n if (args.stepId) {\n liveEvaluator.feedErrorRecovery(`reflect-${args.stepId}`, true)\n }\n break\n }\n case \"agentic_nav\": {\n if (args.query) {\n const outputText = _output?.output || \"\"\n const fileMatches = (outputText.match(/\\.ts/g) ?? []).length\n liveEvaluator.feedNavigation(String(args.query), fileMatches)\n }\n break\n }\n case \"agentic_delegate\": {\n if (args.taskId && args.role) {\n const outputOk = (_output?.output || \"\").includes(\"delegated\") || (_output?.output || \"\").includes(\"Delegated\")\n liveEvaluator.feedDelegation(String(args.taskId), String(args.role), outputOk)\n }\n break\n }\n case \"agentic_skill\": {\n if (args.action === \"find\" || args.action === \"search\") {\n const found = (_output?.output || \"\").includes(\"Skill\") || (_output?.output || \"\").includes(\"skill\")\n liveEvaluator.feedSkillLookup(found)\n }\n break\n }\n }\n } catch { /* non-fatal */ }\n },\n\n dispose: async () => {\n configLoader.stopWatch()\n persistence.save(\"models\", \"registry\", modelRegistry.toJSON())\n persistence.save(\"prompts\", \"state\", roleRegistry.getAllPromptStates())\n await traceLogger.dispose()\n },\n }\n}\n\nexport const AgenticEngine: Plugin = createEngine\n\nconst pluginModule: PluginModule = {\n id: \"agentic-engine\",\n server: createEngine,\n}\nexport default pluginModule\n\n// Re-export key classes so tests can construct them directly\nexport { ErrorAnalyzer } from \"./core/error-analyzer.js\"\nexport { RoleRegistry } from \"./agents/role-registry.js\"\nexport { VectorStore } from \"./memory/vector-store.js\"\nexport { Verifier } from \"./core/verifier.js\"\nexport { ContinuousEvolution } from \"./evolution/continuous-evolution.js\"\nexport { SelfEvolver } from \"./evolution/self-evolver.js\"\nexport { AgentCoordinator } from \"./agents/coordinator.js\"\nexport { Executor } from \"./core/executor.js\"\nexport { PatternDiscovery } from \"./drift/pattern-discovery.js\"\nexport { skillToTrainingExample, skillsToTrainingData, exportOpenAIJSONL, exportInstructionsJSON, trainingDatasetSummary } from \"./memory/skill-training.js\"\nexport { LiveEvaluator } from \"./evaluation/live-evaluator.js\"\n", "export interface Subtask {\n id: string\n description: string\n dependsOn: string[]\n verificationCriteria: string[]\n}\n\nexport interface TaskIntent {\n goal: string\n constraints: string[]\n context: {\n relevantFiles: string[]\n dependencies: string[]\n }\n subtasks: Subtask[]\n}\n\nexport interface Plan {\n intent: TaskIntent\n estimatedSteps: number\n complexity: \"low\" | \"medium\" | \"high\"\n warnings: string[]\n}\n\nexport class IntentParser {\n createPlan(intent: TaskIntent): Plan {\n const complexity = intent.subtasks.length <= 3 ? \"low\"\n : intent.subtasks.length <= 8 ? \"medium\"\n : \"high\"\n\n const warnings: string[] = []\n if (complexity === \"high\") {\n warnings.push(\"Complex task detected. Consider breaking it down further.\")\n }\n if (intent.constraints.length === 0) {\n warnings.push(\"No constraints specified. Consider adding guardrails.\")\n }\n\n return {\n intent,\n estimatedSteps: intent.subtasks.length,\n complexity,\n warnings,\n }\n }\n\n validatePlan(plan: Plan): string[] {\n const errors: string[] = []\n const ids = new Set(plan.intent.subtasks.map(s => s.id))\n\n for (const step of plan.intent.subtasks) {\n for (const dep of step.dependsOn) {\n if (!ids.has(dep)) {\n errors.push(`Step \"${step.id}\" depends on unknown step \"${dep}\"`)\n }\n }\n }\n\n if (plan.intent.subtasks.length === 0) {\n errors.push(\"Plan has no subtasks\")\n }\n\n return errors\n }\n}\n", "import type { Subtask, Plan } from \"./intent-parser\"\n\nexport interface ExecutionResult {\n stepId: string\n success: boolean\n output: string\n filesModified?: string[]\n error?: string\n}\n\nexport interface StepErrorHistory {\n error: string\n attemptedFix: string\n timestamp: number\n success: boolean\n}\n\nexport interface StepState {\n result?: ExecutionResult\n retryCount: number\n errorHistory: StepErrorHistory[]\n}\n\nexport interface ExecutionState {\n plan: Plan\n completedSteps: Set<string>\n failedSteps: Map<string, string>\n stepStates: Map<string, StepState>\n currentStepIndex: number\n}\n\nexport class Executor {\n private maxRetries = 3\n private states = new Map<string, ExecutionState>()\n\n /** Per-error-category retry limits (Gap #13: adaptive retry policies).\n * Different error types need different retry strategies:\n * - compile/type: usually deterministic, 3 retries\n * - test: flaky tests may need fewer retries\n * - import: file-not-found won't fix by retrying\n * - runtime: environmental, worth a few retries\n */\n private retryPolicies = new Map<string, number>([\n [\"compile\", 3],\n [\"type\", 3],\n [\"test\", 2],\n [\"import\", 1],\n [\"runtime\", 3],\n [\"unknown\", 3],\n ])\n\n /** Set max retries for a specific error category. Default categories: compile, type, test, import, runtime, unknown */\n setRetryPolicy(category: string, maxRetries: number): void {\n this.retryPolicies.set(category, maxRetries)\n }\n\n /** Get max retries for an error category, or the global default if not categorized */\n getMaxRetries(category?: string): number {\n if (category && this.retryPolicies.has(category)) {\n return this.retryPolicies.get(category)!\n }\n return this.maxRetries\n }\n\n /** Get all retry policy summaries */\n getRetryPolicies(): Array<{ category: string; maxRetries: number }> {\n return [...this.retryPolicies.entries()]\n .map(([category, maxRetries]) => ({ category, maxRetries }))\n .sort((a, b) => a.category.localeCompare(b.category))\n }\n\n initExecution(sessionId: string, plan: Plan): ExecutionState {\n const state: ExecutionState = {\n plan,\n completedSteps: new Set(),\n failedSteps: new Map(),\n stepStates: new Map(),\n currentStepIndex: 0,\n }\n this.states.set(sessionId, state)\n return state\n }\n\n getNextStep(sessionId: string): Subtask | null {\n const state = this.states.get(sessionId)\n if (!state) return null\n\n for (const step of state.plan.intent.subtasks) {\n if (state.completedSteps.has(step.id)) continue\n if (state.failedSteps.has(step.id)) continue\n\n const depsMet = step.dependsOn.every(d => state.completedSteps.has(d))\n if (depsMet) {\n state.currentStepIndex = state.plan.intent.subtasks.indexOf(step)\n return step\n }\n }\n\n return null\n }\n\n getBlockedSteps(sessionId: string): Array<{ id: string; description: string; blockedBy: string[] }> {\n const state = this.states.get(sessionId)\n if (!state) return []\n\n const blocked: Array<{ id: string; description: string; blockedBy: string[] }> = []\n for (const step of state.plan.intent.subtasks) {\n if (state.completedSteps.has(step.id)) continue\n if (state.failedSteps.has(step.id)) continue\n const unmet = step.dependsOn.filter(d => !state.completedSteps.has(d))\n if (unmet.length > 0) {\n blocked.push({ id: step.id, description: step.description, blockedBy: unmet })\n }\n }\n return blocked\n }\n\n recordResult(sessionId: string, result: ExecutionResult): void {\n const state = this.states.get(sessionId)\n if (!state) return\n\n let stepState = state.stepStates.get(result.stepId)\n if (!stepState) {\n stepState = { retryCount: 0, errorHistory: [] }\n state.stepStates.set(result.stepId, stepState)\n }\n\n stepState.result = result\n\n if (result.success) {\n state.completedSteps.add(result.stepId)\n } else {\n stepState.retryCount++\n stepState.errorHistory.push({\n error: result.error ?? \"Unknown error\",\n attemptedFix: \"\",\n timestamp: Date.now(),\n success: false,\n })\n\n // Adaptive: use per-category retry limit (Gap #13)\n const errorCategory = this.detectErrorCategory(result.error ?? result.output)\n const maxRetries = this.getMaxRetries(errorCategory)\n\n if (stepState.retryCount < maxRetries) {\n state.failedSteps.delete(result.stepId)\n } else {\n state.failedSteps.set(result.stepId, result.error ?? `Max retries (${maxRetries}) exceeded for category: ${errorCategory}`)\n }\n }\n }\n\n recordFixAttempt(sessionId: string, stepId: string, fix: string, success: boolean): void {\n const state = this.states.get(sessionId)\n if (!state) return\n\n const stepState = state.stepStates.get(stepId)\n if (stepState && stepState.errorHistory.length > 0) {\n const last = stepState.errorHistory[stepState.errorHistory.length - 1]\n last.attemptedFix = fix\n last.success = success\n }\n }\n\n canRetry(sessionId: string, stepId: string, category?: string): boolean {\n const state = this.states.get(sessionId)\n if (!state) return false\n const ss = state.stepStates.get(stepId)\n\n // Adaptive: if category provided, use per-category limit\n if (category) {\n return (ss?.retryCount ?? 0) < this.getMaxRetries(category)\n }\n\n // Fall back to last known error's category\n if (ss?.result?.error) {\n const detectedCategory = this.detectErrorCategory(ss.result.error)\n return (ss?.retryCount ?? 0) < this.getMaxRetries(detectedCategory)\n }\n\n return (ss?.retryCount ?? 0) < this.maxRetries\n }\n\n /** Detect error category from error text */\n private detectErrorCategory(errorText: string): string {\n const lower = errorText.toLowerCase()\n if (lower.includes(\"cannot find module\") || lower.includes(\"module not found\") || lower.includes(\"import\") || lower.includes(\"require\")) return \"import\"\n if (lower.includes(\"type\") && (lower.includes(\"not assignable\") || lower.includes(\"is not a type\") || lower.includes(\"property\") || lower.includes(\"does not exist\"))) return \"type\"\n if (lower.includes(\"compile\") || lower.includes(\"tsc\") || lower.includes(\"syntax error\") || lower.includes(\"unexpected token\")) return \"compile\"\n if (lower.includes(\"test\") || lower.includes(\"assert\") || lower.includes(\"expected\") && lower.includes(\"to be\") || lower.includes(\"expect.\")) return \"test\"\n if (lower.includes(\"timeout\") || lower.includes(\"econnrefused\") || lower.includes(\"etimedout\") || lower.includes(\"network\")) return \"runtime\"\n return \"unknown\"\n }\n\n getRetryCount(sessionId: string, stepId: string): number {\n const state = this.states.get(sessionId)\n if (!state) return 0\n return state.stepStates.get(stepId)?.retryCount ?? 0\n }\n\n getCompletedSteps(sessionId: string): string[] {\n const state = this.states.get(sessionId)\n if (!state) return []\n return [...state.completedSteps]\n }\n\n getStepState(sessionId: string, stepId: string): StepState | undefined {\n return this.states.get(sessionId)?.stepStates.get(stepId)\n }\n\n isComplete(sessionId: string): boolean {\n const state = this.states.get(sessionId)\n if (!state) return false\n\n return state.plan.intent.subtasks.every(\n s => state.completedSteps.has(s.id) || state.failedSteps.has(s.id)\n )\n }\n\n isHealthy(sessionId: string): boolean {\n const state = this.states.get(sessionId)\n if (!state) return false\n return state.failedSteps.size === 0\n }\n\n getProgress(sessionId: string): { completed: number; total: number; failed: number; blocked: number } {\n const state = this.states.get(sessionId)\n if (!state) return { completed: 0, total: 0, failed: 0, blocked: 0 }\n\n return {\n completed: state.completedSteps.size,\n total: state.plan.intent.subtasks.length,\n failed: state.failedSteps.size,\n blocked: this.getBlockedSteps(sessionId).length,\n }\n }\n\n getAllFilesModified(sessionId: string): string[] {\n const state = this.states.get(sessionId)\n if (!state) return []\n const files = new Set<string>()\n for (const stepState of state.stepStates.values()) {\n if (stepState.result?.filesModified) {\n for (const f of stepState.result.filesModified) files.add(f)\n }\n }\n return [...files]\n }\n\n removeSession(sessionId: string): void {\n this.states.delete(sessionId)\n }\n}\n", "import { execFileSync } from \"node:child_process\"\nimport { existsSync, readFileSync } from \"node:fs\"\nimport { resolve } from \"node:path\"\nimport type { LLMEngine } from \"./llm.js\"\n\nexport type SupportedLanguage = \"typescript\" | \"python\" | \"go\" | \"rust\" | \"javascript\" | \"unknown\"\n\nexport interface VerificationResult {\n passed: boolean\n stepId: string\n checks: CheckResult[]\n errors: string[]\n}\n\nexport interface CheckResult {\n name: string\n passed: boolean\n output: string\n}\n\nexport interface LanguageConfig {\n compileCmd: (projectDir: string) => { bin: string; args: string[]; timeout: number }\n testCmd: (projectDir: string, testPattern?: string) => { bin: string; args: string[]; timeout: number }\n fileExts: string[]\n testFileExts: string[]\n}\n\nconst LANGUAGE_CONFIGS: Record<SupportedLanguage, LanguageConfig> = {\n typescript: {\n compileCmd: (dir) => ({ bin: \"npx\", args: [\"tsc\", \"--noEmit\", \"--pretty\", \"false\"], timeout: 30000 }),\n testCmd: (dir, pattern) => {\n const args = [\"vitest\", \"run\", \"--reporter\", \"verbose\"]\n if (pattern) args.push(\"--\", pattern)\n return { bin: \"npx\", args, timeout: 60000 }\n },\n fileExts: [\".ts\", \".tsx\"],\n testFileExts: [\".test.ts\", \".spec.ts\", \".test.tsx\", \".spec.tsx\"],\n },\n javascript: {\n compileCmd: (dir) => ({ bin: \"node\", args: [\"-e\", \"process.exit(0)\"], timeout: 5000 }),\n testCmd: (dir, pattern) => {\n const args = [\"vitest\", \"run\", \"--reporter\", \"verbose\"]\n if (pattern) args.push(\"--\", pattern)\n return { bin: \"npx\", args, timeout: 60000 }\n },\n fileExts: [\".js\", \".jsx\", \".mjs\"],\n testFileExts: [\".test.js\", \".spec.js\", \".test.jsx\", \".spec.jsx\"],\n },\n python: {\n compileCmd: (dir) => ({ bin: \"python\", args: [\"-m\", \"py_compile\", \"-q\", \".\"], timeout: 30000 }),\n testCmd: (dir, pattern) => {\n const args = [\"-m\", \"pytest\", \"-q\"]\n if (pattern) args.push(pattern)\n return { bin: \"python\", args, timeout: 60000 }\n },\n fileExts: [\".py\"],\n testFileExts: [\"test_\", \"_test.py\"],\n },\n go: {\n compileCmd: (dir) => ({ bin: \"go\", args: [\"vet\", \"./...\"], timeout: 30000 }),\n testCmd: (dir, pattern) => {\n const args = [\"test\", \"./...\", \"-count=1\"]\n if (pattern) args.push(\"-run\", pattern)\n return { bin: \"go\", args, timeout: 120000 }\n },\n fileExts: [\".go\"],\n testFileExts: [\"_test.go\"],\n },\n rust: {\n compileCmd: (dir) => ({ bin: \"cargo\", args: [\"check\", \"--quiet\"], timeout: 120000 }),\n testCmd: (dir, pattern) => {\n const args = [\"test\"]\n if (pattern) args.push(pattern)\n return { bin: \"cargo\", args, timeout: 120000 }\n },\n fileExts: [\".rs\"],\n testFileExts: [\"test.rs\"],\n },\n unknown: {\n compileCmd: (dir) => ({ bin: \"echo\", args: [\"no compile step\"], timeout: 1000 }),\n testCmd: (dir) => ({ bin: \"echo\", args: [\"no test step\"], timeout: 1000 }),\n fileExts: [],\n testFileExts: [],\n },\n}\n\nexport class Verifier {\n private detectedLang: SupportedLanguage = \"unknown\"\n private llm: LLMEngine | null = null\n\n setLLM(llm: LLMEngine): void {\n this.llm = llm\n }\n\n hasLLM(): boolean {\n return this.llm !== null\n }\n\n async verifySemantic(stepId: string, intent: string, changedFiles: string[], projectDir: string): Promise<CheckResult> {\n if (!this.llm) {\n return { name: \"semantic\", passed: true, output: \"Semantic verification skipped (no LLM configured)\" }\n }\n\n const fileContents: Record<string, string> = {}\n for (const f of changedFiles) {\n const absPath = resolve(projectDir, f)\n try {\n fileContents[f] = readFileSync(absPath, \"utf-8\")\n } catch { /* skip unreadable files */ }\n }\n\n if (Object.keys(fileContents).length === 0) {\n return { name: \"semantic\", passed: true, output: \"Semantic verification skipped (no readable changed files)\" }\n }\n\n const filesBlock = Object.entries(fileContents).map(([path, content]) =>\n `### ${path}\\n\\`\\`\\`\\n${content.slice(0, 2000)}\\n\\`\\`\\``\n ).join(\"\\n\\n\")\n\n const resp = await this.llm.call({\n systemPrompt: \"You are a semantic verification assistant. Given an intent/goal and the code changes made, determine if the changes correctly implement the intent. Consider: edge cases, completeness, correctness. Respond as JSON with keys: passed (boolean), reasoning (string), issuesFound (array of strings). If the code correctly implements the intent, passed must be true.\",\n userPrompt: `## Intent\\n${intent}\\n\\n## Changed Files\\n${filesBlock}\\n\\nVerify if these changes correctly implement the intent. Return JSON.`,\n jsonMode: true,\n temperature: 0.1,\n })\n\n try {\n const parsed = JSON.parse(resp.content)\n const issues = Array.isArray(parsed.issuesFound) ? parsed.issuesFound : []\n const passed = parsed.passed !== false\n return {\n name: \"semantic\",\n passed,\n output: `Semantic verification: ${passed ? \"PASS\" : \"ISSUES FOUND\"}\\nReasoning: ${parsed.reasoning ?? \"N/A\"}\\n${issues.length > 0 ? `Issues:\\n${issues.map((i: string) => `- ${i}`).join(\"\\n\")}` : \"\"}`,\n }\n } catch {\n return { name: \"semantic\", passed: true, output: `Semantic verification: ${resp.content.slice(0, 500)}` }\n }\n }\n\n async verifyAllDeep(stepId: string, projectDir: string, intent?: string, changedFiles?: string[], requireSemanticCheck = false): Promise<VerificationResult> {\n const checks: CheckResult[] = [\n this.verifyCompile(projectDir),\n ]\n if (this.detectedLang !== \"unknown\") {\n checks.push(this.verifyLint(projectDir))\n }\n checks.push(this.verifyTests(projectDir))\n\n if (this.llm && intent && changedFiles && changedFiles.length > 0) {\n const semantic = await this.verifySemantic(stepId, intent, changedFiles, projectDir)\n checks.push(semantic)\n } else if (requireSemanticCheck && changedFiles && changedFiles.length > 0) {\n checks.push({\n name: \"semantic\",\n passed: false,\n output: \"Semantic verification required but no LLM configured. Set requireSemanticCheck=false or configure LLM.\",\n })\n }\n\n const errors = checks.filter(c => !c.passed).map(c => c.output)\n return { passed: errors.length === 0, stepId, checks, errors }\n }\n\n detectLanguage(projectDir: string): SupportedLanguage {\n const checks: Array<{ lang: SupportedLanguage; file: string }> = [\n { lang: \"typescript\", file: \"tsconfig.json\" },\n { lang: \"rust\", file: \"Cargo.toml\" },\n { lang: \"go\", file: \"go.mod\" },\n { lang: \"python\", file: \"pyproject.toml\" },\n { lang: \"python\", file: \"setup.py\" },\n { lang: \"python\", file: \"requirements.txt\" },\n { lang: \"javascript\", file: \"package.json\" },\n ]\n\n for (const { lang, file } of checks) {\n if (existsSync(resolve(projectDir, file))) {\n if (lang === \"javascript\" && existsSync(resolve(projectDir, \"tsconfig.json\"))) {\n this.detectedLang = \"typescript\"\n return \"typescript\"\n }\n this.detectedLang = lang\n return lang\n }\n }\n\n this.detectedLang = \"unknown\"\n return \"unknown\"\n }\n\n getLanguage(): SupportedLanguage {\n return this.detectedLang\n }\n\n verifyCompile(projectDir: string): CheckResult {\n const lang = this.detectedLang === \"unknown\" ? this.detectLanguage(projectDir) : this.detectedLang\n const config = LANGUAGE_CONFIGS[lang] ?? LANGUAGE_CONFIGS.unknown\n const { bin, args, timeout } = config.compileCmd(projectDir)\n\n try {\n const output = execFileSync(bin, args, {\n cwd: projectDir,\n timeout,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n return {\n name: `compile:${lang}`,\n passed: true,\n output: output || \"Compilation successful\",\n }\n } catch (e: unknown) {\n const err = e as { stdout?: string; stderr?: string; message?: string }\n return {\n name: `compile:${lang}`,\n passed: false,\n output: err.stderr || err.stdout || err.message || \"Compilation failed\",\n }\n }\n }\n\n verifyTests(projectDir: string, testPattern = \"\"): CheckResult {\n const lang = this.detectedLang === \"unknown\" ? this.detectLanguage(projectDir) : this.detectedLang\n const config = LANGUAGE_CONFIGS[lang] ?? LANGUAGE_CONFIGS.unknown\n const { bin, args, timeout } = config.testCmd(projectDir, testPattern)\n\n try {\n const output = execFileSync(bin, args, {\n cwd: projectDir,\n timeout,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n return {\n name: testPattern ? `test:${testPattern}` : `test:all:${lang}`,\n passed: true,\n output: output || \"Tests passed\",\n }\n } catch (e: unknown) {\n const err = e as { stdout?: string; stderr?: string; message?: string }\n return {\n name: testPattern ? `test:${testPattern}` : `test:all:${lang}`,\n passed: false,\n output: err.stdout || err.stderr || err.message || \"Tests failed\",\n }\n }\n }\n\n verifyLint(projectDir: string): CheckResult {\n const lang = this.detectedLang === \"unknown\" ? this.detectLanguage(projectDir) : this.detectedLang\n\n const lintConfigs: Partial<Record<SupportedLanguage, { bin: string; args: string[] }>> = {\n typescript: { bin: \"npx\", args: [\"eslint\", \".\", \"--quiet\"] },\n javascript: { bin: \"npx\", args: [\"eslint\", \".\", \"--quiet\"] },\n python: { bin: \"python\", args: [\"-m\", \"ruff\", \"check\", \".\"] },\n go: { bin: \"golangci-lint\", args: [\"run\", \"./...\"] },\n }\n\n const config = lintConfigs[lang]\n if (!config) {\n return { name: `lint:${lang}`, passed: true, output: \"No linter configured for this language\" }\n }\n\n try {\n const output = execFileSync(config.bin, config.args, {\n cwd: projectDir,\n timeout: 60000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n return { name: `lint:${lang}`, passed: true, output: output || \"Lint passed\" }\n } catch (e: unknown) {\n const err = e as { stdout?: string; stderr?: string; message?: string }\n return {\n name: `lint:${lang}`,\n passed: false,\n output: err.stdout || err.stderr || err.message || \"Lint failed\",\n }\n }\n }\n\n verifyAll(stepId: string, projectDir: string): VerificationResult {\n if (this.detectedLang === \"unknown\") this.detectLanguage(projectDir)\n\n const checks = [\n this.verifyCompile(projectDir),\n ]\n if (this.detectedLang !== \"unknown\") {\n checks.push(this.verifyLint(projectDir))\n }\n checks.push(this.verifyTests(projectDir))\n\n const errors = checks.filter(c => !c.passed).map(c => c.output)\n\n return {\n passed: errors.length === 0,\n stepId,\n checks,\n errors,\n }\n }\n\n verifyRelated(stepId: string, projectDir: string, changedFiles: string[]): VerificationResult {\n if (this.detectedLang === \"unknown\") this.detectLanguage(projectDir)\n const lang = this.detectedLang\n const config = LANGUAGE_CONFIGS[lang] ?? LANGUAGE_CONFIGS.typescript\n\n const checks: CheckResult[] = [this.verifyCompile(projectDir)]\n\n const isTestFile = (f: string): boolean => config.testFileExts.some(ext => {\n if (ext.startsWith(\"test_\")) {\n const basename = f.split(\"/\").pop() ?? f\n return basename.startsWith(\"test_\")\n }\n if (ext.startsWith(\"_test.\")) return f.endsWith(ext)\n return f.endsWith(ext)\n })\n\n const testFiles = changedFiles.filter(f => isTestFile(f))\n const sourceFiles = changedFiles.filter(f =>\n !isTestFile(f) && config.fileExts.some(ext => f.endsWith(ext))\n )\n\n const inferredTestFiles = sourceFiles.flatMap(f => {\n const base = f.replace(/\\.\\w+$/, \"\")\n const dir = base.replace(/\\/[^/]*$/, \"\")\n const filename = base.replace(/.*\\//, \"\")\n\n return config.testFileExts.flatMap(ext => {\n if (ext.startsWith(\"test_\")) {\n return [`${dir}/test_${filename}${config.fileExts[0] ?? \".py\"}`]\n }\n if (ext.endsWith(\"_\")) {\n return [`${base}${ext}`]\n }\n return [`${base}${ext}`]\n })\n })\n\n const allTestFiles = [...new Set([...testFiles, ...inferredTestFiles])]\n\n if (allTestFiles.length > 0) {\n checks.push({\n name: `test:${allTestFiles.length} related files`,\n passed: true,\n output: `Related test files: ${allTestFiles.join(\", \")}`,\n })\n }\n\n if (lang !== \"unknown\") {\n checks.push(this.verifyLint(projectDir))\n }\n checks.push(this.verifyTests(projectDir))\n\n const errors = checks.filter(c => !c.passed).map(c => c.output)\n return {\n passed: errors.length === 0,\n stepId,\n checks,\n errors,\n }\n }\n}\n", "/** Minimal LLM interface \u2014 avoids importing the full LLMEngine */\nexport interface ErrorAnalyzerLLM {\n call(req: { systemPrompt: string; userPrompt: string; temperature?: number }): Promise<{ content: string }>\n}\n\nexport interface ErrorAnalysis {\n category: \"compile\" | \"type\" | \"test\" | \"import\" | \"runtime\" | \"unknown\"\n summary: string\n likelyRootCause: string\n suggestedFix: string\n affectedFiles: string[]\n severity: \"low\" | \"medium\" | \"high\" | \"critical\"\n}\n\nexport class ErrorAnalyzer {\n private llm: ErrorAnalyzerLLM | null = null\n\n /** Inject an LLM engine for asynchronous fallback analysis. */\n setLLM(llm: ErrorAnalyzerLLM): void {\n this.llm = llm\n }\n\n /** Check whether an LLM is configured for fallback. */\n hasLLM(): boolean {\n return this.llm !== null\n }\n\n /**\n * Synchronous rule-based analysis. Fast and dependency-free.\n * For ambiguous errors, returns category:\"unknown\".\n */\n analyze(errorMessage: string, modifiedFiles: string[]): ErrorAnalysis {\n const msg = errorMessage.toLowerCase()\n\n if (msg.includes(\"cannot find module\") || msg.includes(\"module not found\") || msg.includes(\"could not resolve\")) {\n const match = errorMessage.match(/['\"]([@\\w\\-/.]+)['\"]/)\n return {\n category: \"import\",\n summary: \"Missing module or broken import\",\n likelyRootCause: `The module ${match?.[1] ?? \"imported\"} could not be resolved. Check the import path or install the dependency.`,\n suggestedFix: `Verify the import statement is correct. If it's an npm package, run: npm install ${match?.[1] ?? \"\"}`,\n affectedFiles: modifiedFiles,\n severity: \"critical\",\n }\n }\n\n if (msg.includes(\"type\") && (msg.includes(\"is not assignable\") || msg.includes(\"has no\") || msg.includes(\"does not exist on type\"))) {\n return {\n category: \"type\",\n summary: \"TypeScript type error\",\n likelyRootCause: \"A type mismatch or missing property was introduced by recent changes.\",\n suggestedFix: \"Check the type annotations on recently modified code. Ensure function signatures, interfaces, and type imports match.\",\n affectedFiles: modifiedFiles,\n severity: \"high\",\n }\n }\n\n if (msg.includes(\"error ts\") || msg.includes(\"compilation failed\") || msg.includes(\"syntax error\")) {\n return {\n category: \"compile\",\n summary: \"Code fails to compile\",\n likelyRootCause: \"Syntax errors, missing imports, or broken references in recently modified files.\",\n suggestedFix: \"Run the compiler to see exact line numbers. Check the most recently modified files first.\",\n affectedFiles: modifiedFiles,\n severity: \"high\",\n }\n }\n\n if (msg.includes(\"test\") && (msg.includes(\"failed\") || msg.includes(\"assert\") || msg.includes(\"expect\"))) {\n return {\n category: \"test\",\n summary: \"Test assertion failure\",\n likelyRootCause: \"A code change broke existing behavior or the test expectations are outdated.\",\n suggestedFix: \"Review the failing test assertions. Either the code change introduced a bug, or the test needs to be updated to match new behavior.\",\n affectedFiles: modifiedFiles,\n severity: \"medium\",\n }\n }\n\n if (msg.includes(\"error\") && (msg.includes(\"throw\") || msg.includes(\"cannot\") || msg.includes(\"undefined\") || msg.includes(\"null\"))) {\n return {\n category: \"runtime\",\n summary: \"Runtime error detected\",\n likelyRootCause: \"A code path is hitting an unexpected state \u2014 possibly null/undefined access, missing guard, or unhandled edge case.\",\n suggestedFix: \"Add defensive checks (null guards, try/catch) at the point of failure. Consider adding input validation.\",\n affectedFiles: modifiedFiles,\n severity: \"high\",\n }\n }\n\n return {\n category: \"unknown\",\n summary: \"Unclassified error\",\n likelyRootCause: \"The error message does not match known patterns. Manual investigation needed.\",\n suggestedFix: \"Read the full error output carefully. Compare against the last successful state of the codebase.\",\n affectedFiles: modifiedFiles,\n severity: \"medium\",\n }\n }\n\n /**\n * Asynchronous LLM-enhanced analysis.\n * Tries rule-based first; if unknown AND LLM is available, asks the LLM\n * to classify the error and suggest a fix.\n */\n async analyzeDeep(errorMessage: string, modifiedFiles: string[]): Promise<ErrorAnalysis> {\n // Try rule-based first\n const ruleResult = this.analyze(errorMessage, modifiedFiles)\n if (ruleResult.category !== \"unknown\" || !this.llm) {\n return ruleResult\n }\n\n // LLM fallback for unknown errors\n try {\n const resp = await this.llm.call({\n systemPrompt: `You are an expert error analyzer for software engineering.\nGiven an error message, classify it into one category: compile, type, test, import, runtime, or unknown.\nThen provide:\n1. A short summary of the error\n2. The likely root cause (1-2 sentences)\n3. A specific, actionable suggested fix\n4. Severity: low, medium, high, or critical\n\nReturn your answer as JSON with fields: category, summary, likelyRootCause, suggestedFix, severity.\nOnly return valid JSON, no other text.`,\n userPrompt: `Error message:\n\\`\\`\\`\n${errorMessage.slice(0, 2000)}\n\\`\\`\\`\n\nModified files:\n${modifiedFiles.map(f => `- ${f}`).join(\"\\n\")}`,\n temperature: 0.1,\n })\n\n const cleaned = resp.content.trim()\n const jsonMatch = cleaned.match(/\\{[\\s\\S]*\\}/)\n if (jsonMatch) {\n const parsed = JSON.parse(jsonMatch[0])\n const validCategories = [\"compile\", \"type\", \"test\", \"import\", \"runtime\", \"unknown\"]\n return {\n category: validCategories.includes(parsed.category) ? parsed.category : \"unknown\",\n summary: parsed.summary ?? \"LLM-analyzed error\",\n likelyRootCause: parsed.likelyRootCause ?? parsed.rootCause ?? \"Could not determine root cause\",\n suggestedFix: parsed.suggestedFix ?? parsed.fix ?? \"Could not determine fix\",\n affectedFiles: modifiedFiles,\n severity: [\"low\", \"medium\", \"high\", \"critical\"].includes(parsed.severity) ? parsed.severity : \"medium\",\n }\n }\n } catch {\n // LLM fallback failed \u2014 return original unknown result\n }\n\n return ruleResult\n }\n}\n", "import type { TaskIntent, Subtask } from \"./intent-parser.js\"\nimport type { LLMEngine } from \"./llm.js\"\n\nexport interface DecompositionRule {\n pattern: RegExp | string\n keywords: string[]\n template: (context: string) => Subtask[]\n}\n\nexport class Planner {\n private rules: DecompositionRule[] = [\n {\n pattern: /add|create|build|implement/i,\n keywords: [\"feature\", \"component\", \"module\", \"page\", \"endpoint\", \"api\"],\n template: (goal: string) => [\n { id: \"plan-types\", description: \"Define TypeScript interfaces and types needed\", dependsOn: [], verificationCriteria: [\"No type errors\"] },\n { id: \"plan-impl\", description: `Implement: ${goal}`, dependsOn: [\"plan-types\"], verificationCriteria: [\"Tests pass\"] },\n { id: \"plan-tests\", description: \"Write comprehensive unit tests\", dependsOn: [\"plan-impl\"], verificationCriteria: [\"All tests pass\"] },\n ],\n },\n {\n pattern: /fix|bug|repair|resolve|patch/i,\n keywords: [\"bug\", \"issue\", \"error\", \"crash\", \"broken\"],\n template: (goal: string) => [\n { id: \"fix-repro\", description: \"Reproduce the bug and add a failing test\", dependsOn: [], verificationCriteria: [\"Test reproduces the error\"] },\n { id: \"fix-root\", description: `Identify root cause and apply fix: ${goal}`, dependsOn: [\"fix-repro\"], verificationCriteria: [\"Failing test now passes\"] },\n { id: \"fix-regression\", description: \"Run full test suite to check for regressions\", dependsOn: [\"fix-root\"], verificationCriteria: [\"All tests pass\"] },\n ],\n },\n {\n pattern: /refactor|clean|restructure|extract/i,\n keywords: [\"refactor\", \"cleanup\", \"extract\", \"move\", \"rename\"],\n template: (goal: string) => [\n { id: \"refactor-audit\", description: \"Audit current implementation and document dependencies\", dependsOn: [], verificationCriteria: [\"Dependency map created\"] },\n { id: \"refactor-extract\", description: `Extract and restructure: ${goal}`, dependsOn: [\"refactor-audit\"], verificationCriteria: [\"Tests still pass\"] },\n { id: \"refactor-cleanup\", description: \"Remove old code and update references\", dependsOn: [\"refactor-extract\"], verificationCriteria: [\"No dead code\", \"Tests pass\"] },\n ],\n },\n {\n pattern: /test|spec|verify/i,\n keywords: [\"test\", \"spec\", \"coverage\", \"verify\"],\n template: (goal: string) => [\n { id: \"test-audit\", description: \"Identify untested code paths and edge cases\", dependsOn: [], verificationCriteria: [\"Coverage gaps documented\"] },\n { id: \"test-write\", description: `Write tests: ${goal}`, dependsOn: [\"test-audit\"], verificationCriteria: [\"New tests pass\"] },\n { id: \"test-verify\", description: \"Run full suite and verify coverage improved\", dependsOn: [\"test-write\"], verificationCriteria: [\"Coverage increased\"] },\n ],\n },\n {\n pattern: /deploy|release|ship/i,\n keywords: [\"deploy\", \"release\", \"publish\", \"launch\", \"ship\"],\n template: (goal: string) => [\n { id: \"deploy-audit\", description: \"Verify all tests pass and build succeeds\", dependsOn: [], verificationCriteria: [\"CI green\"] },\n { id: \"deploy-build\", description: `Build production artifacts: ${goal}`, dependsOn: [\"deploy-audit\"], verificationCriteria: [\"Build succeeds\"] },\n { id: \"deploy-release\", description: \"Tag release and update changelog\", dependsOn: [\"deploy-build\"], verificationCriteria: [\"Release tagged\"] },\n ],\n },\n {\n pattern: /migrate|upgrade|update dep/i,\n keywords: [\"migrate\", \"upgrade\", \"update\", \"bump\", \"dependency\"],\n template: (goal: string) => [\n { id: \"migrate-check\", description: \"Check breaking changes and compatibility\", dependsOn: [], verificationCriteria: [\"Breaking changes documented\"] },\n { id: \"migrate-impl\", description: `Apply migration: ${goal}`, dependsOn: [\"migrate-check\"], verificationCriteria: [\"Migration applied\"] },\n { id: \"migrate-verify\", description: \"Run full test suite and check for regressions\", dependsOn: [\"migrate-impl\"], verificationCriteria: [\"All tests pass\"] },\n ],\n },\n {\n pattern: /doc|document|readme/i,\n keywords: [\"document\", \"documentation\", \"readme\", \"docs\", \"comment\"],\n template: (goal: string) => [\n { id: \"doc-audit\", description: \"Identify undocumented APIs and missing docs\", dependsOn: [], verificationCriteria: [\"Gaps documented\"] },\n { id: \"doc-write\", description: `Write documentation: ${goal}`, dependsOn: [\"doc-audit\"], verificationCriteria: [\"Docs generated\"] },\n { id: \"doc-review\", description: \"Review documentation accuracy and completeness\", dependsOn: [\"doc-write\"], verificationCriteria: [\"Docs reviewed\"] },\n ],\n },\n {\n pattern: /perf|optimize|speed|slow|fast/i,\n keywords: [\"performance\", \"optimize\", \"speed\", \"slow\", \"bottleneck\", \"profile\"],\n template: (goal: string) => [\n { id: \"perf-profile\", description: \"Profile and identify bottlenecks\", dependsOn: [], verificationCriteria: [\"Bottleneck identified\"] },\n { id: \"perf-impl\", description: `Apply optimization: ${goal}`, dependsOn: [\"perf-profile\"], verificationCriteria: [\"Performance improved\"] },\n { id: \"perf-verify\", description: \"Benchmark and verify no regressions\", dependsOn: [\"perf-impl\"], verificationCriteria: [\"Benchmarks stable\"] },\n ],\n },\n {\n pattern: /security|auth|vuln|injection|xss|csrf/i,\n keywords: [\"security\", \"vulnerability\", \"auth\", \"permission\", \"encrypt\", \"harden\", \"protect\"],\n template: (goal: string) => [\n { id: \"sec-audit\", description: \"Audit current security posture and identify vulnerabilities\", dependsOn: [], verificationCriteria: [\"Vulnerabilities documented\"] },\n { id: \"sec-fix\", description: `Apply security fix: ${goal}`, dependsOn: [\"sec-audit\"], verificationCriteria: [\"Fix verified\"] },\n { id: \"sec-verify\", description: \"Run security scan and verify no regressions\", dependsOn: [\"sec-fix\"], verificationCriteria: [\"Scan passes\"] },\n ],\n },\n {\n pattern: /docker|container|image/i,\n keywords: [\"docker\", \"container\", \"image\", \"dockerfile\", \"compose\"],\n template: (goal: string) => [\n { id: \"docker-audit\", description: \"Review current Docker setup and dependencies\", dependsOn: [], verificationCriteria: [\"Dockerfile reviewed\"] },\n { id: \"docker-build\", description: `Build and optimize Docker image: ${goal}`, dependsOn: [\"docker-audit\"], verificationCriteria: [\"Image builds\"] },\n { id: \"docker-test\", description: \"Test container startup and health check\", dependsOn: [\"docker-build\"], verificationCriteria: [\"Container healthy\"] },\n ],\n },\n {\n pattern: /ci|cd|pipeline|github.action|gitlab/i,\n keywords: [\"ci\", \"cd\", \"pipeline\", \"github action\", \"gitlab\", \"deploy\", \"automation\"],\n template: (goal: string) => [\n { id: \"ci-design\", description: \"Design CI/CD pipeline stages and triggers\", dependsOn: [], verificationCriteria: [\"Pipeline stages defined\"] },\n { id: \"ci-impl\", description: `Implement CI/CD pipeline: ${goal}`, dependsOn: [\"ci-design\"], verificationCriteria: [\"Pipeline runs\"] },\n { id: \"ci-verify\", description: \"Verify pipeline executes end-to-end\", dependsOn: [\"ci-impl\"], verificationCriteria: [\"Pipeline green\"] },\n ],\n },\n ]\n\n decompose(goal: string, relevantFiles: string[]): { intent: TaskIntent; autoGenerated: boolean } {\n const intent: TaskIntent = {\n goal,\n constraints: [],\n context: { relevantFiles, dependencies: [] },\n subtasks: [],\n }\n\n for (const rule of this.rules) {\n const patternMatch = typeof rule.pattern === \"string\"\n ? goal.toLowerCase().includes(rule.pattern.toLowerCase())\n : rule.pattern.test(goal)\n\n const keywordMatch = rule.keywords.some(k => goal.toLowerCase().includes(k.toLowerCase()))\n\n if (patternMatch && keywordMatch) {\n intent.subtasks = rule.template(goal)\n return { intent, autoGenerated: true }\n }\n }\n\n return { intent, autoGenerated: false }\n }\n\n registerRule(rule: DecompositionRule): void {\n this.rules.push(rule)\n }\n\n getRules(): DecompositionRule[] {\n return [...this.rules]\n }\n\n async decomposeWithLLM(llm: LLMEngine, goal: string, codebaseSummary: string): Promise<TaskIntent> {\n const llmPlan = await llm.generatePlan(goal, [], codebaseSummary)\n const subtasks = Array.isArray(llmPlan.steps)\n ? llmPlan.steps.map(s => ({\n id: s.id,\n description: s.description,\n dependsOn: s.dependsOn ?? [],\n verificationCriteria: [],\n }))\n : []\n const intent: TaskIntent = {\n goal,\n constraints: [],\n context: { relevantFiles: [], dependencies: [] },\n subtasks,\n }\n return intent\n }\n\n suggestSubtask(id: string, description: string, dependsOn: string[] = []): Subtask {\n return { id, description, dependsOn, verificationCriteria: [] }\n }\n}\n", "import { readdir, readFile, stat, access } from \"node:fs/promises\"\nimport type { Dirent } from \"node:fs\"\nimport { join, extname, basename, dirname } from \"node:path\"\n\nexport interface ModuleInfo {\n path: string\n name: string\n ext: string\n size: number\n exports: string[]\n imports: string[]\n}\n\nexport interface ProjectIndex {\n root: string\n modules: ModuleInfo[]\n language: \"typescript\" | \"javascript\" | \"python\" | \"unknown\"\n hasTests: boolean\n testDir: string | null\n srcDir: string | null\n}\n\nexport class CodebaseNavigator {\n private index: ProjectIndex | null = null\n\n async scan(root: string): Promise<ProjectIndex> {\n if (this.index) return this.index\n\n const modules: ModuleInfo[] = []\n const srcDir = await this.findDir(root, [\"src\", \"lib\", \"app\", \"source\"])\n const testDir = await this.findDir(root, [\"test\", \"tests\", \"spec\", \"__tests__\"])\n\n const scanDir = srcDir ?? root\n await this.walk(scanDir, modules, root)\n\n const hasTests = testDir !== null\n const language = this.detectLanguage(modules)\n\n this.index = { root, modules, language, hasTests, testDir, srcDir }\n return this.index\n }\n\n findRelevantFiles(taskDescription: string, maxFiles = 10): string[] {\n if (!this.index) return []\n\n const keywords = taskDescription\n .toLowerCase()\n .split(/[\\s,_\\-.:/]+/)\n .filter(w => w.length > 2)\n\n const scored = this.index.modules.map(m => {\n let score = 0\n const name = m.name.toLowerCase()\n const path = m.path.toLowerCase()\n\n for (const kw of keywords) {\n if (name.includes(kw)) score += 10\n if (path.includes(kw)) score += 5\n if (m.imports.some(i => i.toLowerCase().includes(kw))) score += 3\n if (m.exports.some(e => e.toLowerCase().includes(kw))) score += 8\n }\n\n if (m.ext === \".test.ts\" || m.ext === \".spec.ts\") score -= 2\n\n return { path: m.path, score }\n })\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, maxFiles)\n .map(s => s.path)\n }\n\n getTestFiles(sourceFile: string): string[] {\n if (!this.index) return []\n const stem = basename(sourceFile, extname(sourceFile))\n const dir = dirname(sourceFile)\n\n const candidates = [\n join(dir, `${stem}.test.ts`),\n join(dir, `${stem}.spec.ts`),\n join(dir, \"__tests__\", `${stem}.test.ts`),\n ]\n\n if (this.index.testDir) {\n const relDir = dir.replace(this.index.srcDir ?? this.index.root, \"\")\n candidates.push(join(this.index.testDir, relDir, `${stem}.test.ts`))\n candidates.push(join(this.index.testDir, `${stem}.test.ts`))\n }\n\n return candidates.filter(t => this.index!.modules.some(m => m.path === t))\n }\n\n getSummary(): string {\n if (!this.index) return \"No index available. Run scan first.\"\n\n const i = this.index\n return [\n `**Root:** ${i.root}`,\n `**Language:** ${i.language}`,\n `**Modules:** ${i.modules.length} files`,\n `**Tests:** ${i.hasTests ? `Yes (${i.testDir})` : \"No test directory found\"}`,\n `**Source:** ${i.srcDir ?? i.root}`,\n ``,\n `**File breakdown:**`,\n ...this.groupByDir(i.modules).map(([dir, count]) => ` ${dir}: ${count} files`),\n ].join(\"\\n\")\n }\n\n private groupByDir(modules: ModuleInfo[]): Array<[string, number]> {\n const groups = new Map<string, number>()\n for (const m of modules) {\n const dir = dirname(m.path)\n groups.set(dir, (groups.get(dir) ?? 0) + 1)\n }\n return [...groups].sort((a, b) => b[1] - a[1])\n }\n\n private async findDir(root: string, names: string[]): Promise<string | null> {\n for (const name of names) {\n const p = join(root, name)\n try {\n const s = await stat(p)\n if (s.isDirectory()) return p\n } catch { /* skip */ }\n }\n return null\n }\n\n private async walk(dir: string, modules: ModuleInfo[], root: string): Promise<void> {\n let entries: Dirent[]\n try {\n entries = await readdir(dir, { withFileTypes: true })\n } catch {\n return\n }\n\n for (const entry of entries) {\n const fullPath = join(dir, entry.name)\n if (entry.isDirectory()) {\n if (entry.name === \"node_modules\" || entry.name === \".git\" || entry.name === \"dist\" || entry.name === \".agentic\") continue\n await this.walk(fullPath, modules, root)\n } else if (entry.isFile()) {\n const ext = extname(entry.name)\n if (![\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".mts\"].includes(ext)) continue\n\n let size = 0\n try { size = (await stat(fullPath)).size } catch { /* skip */ }\n\n const imports: string[] = []\n const exports: string[] = []\n try {\n const content = await readFile(fullPath, \"utf-8\")\n for (const line of content.split(\"\\n\")) {\n const impMatch = line.match(/import\\s+.*?from\\s+['\"](.+?)['\"]/)\n if (impMatch) imports.push(impMatch[1])\n const expMatch = line.match(/export\\s+(const|function|class|interface|type|default)\\s+(\\w+)/)\n if (expMatch) exports.push(expMatch[2])\n }\n } catch { /* skip */ }\n\n modules.push({\n path: fullPath,\n name: entry.name.replace(ext, \"\"),\n ext,\n size,\n exports,\n imports,\n })\n }\n }\n }\n\n private detectLanguage(modules: ModuleInfo[]): ProjectIndex[\"language\"] {\n const ts = modules.filter(m => [\".ts\", \".tsx\", \".mts\"].includes(m.ext)).length\n const js = modules.filter(m => [\".js\", \".jsx\", \".mjs\"].includes(m.ext)).length\n if (ts > js) return \"typescript\"\n if (js > ts) return \"javascript\"\n if (ts + js > 0) return \"unknown\"\n return \"unknown\"\n }\n}\n", "import { readFileSync, existsSync } from \"node:fs\"\nimport { join, relative, dirname, resolve } from \"node:path\"\n\nexport interface FileChange {\n file: string\n stepId: string\n changeType: \"create\" | \"modify\" | \"delete\"\n timestamp: number\n}\n\nexport interface DependencyEdge {\n from: string\n to: string\n relation: \"imports\" | \"extends\" | \"type-ref\"\n}\n\nexport interface PropagationAnalysis {\n likelyCulprit: string | null\n affectedSteps: string[]\n propagationPath: string[]\n suggestion: string\n rootCauseConfidence: number\n}\n\nexport interface ImpactAnalysis {\n file: string\n impactedFiles: string[]\n impactedSteps: string[]\n risk: \"low\" | \"medium\" | \"high\"\n}\n\nexport class DependencyTracker {\n private fileChanges = new Map<string, FileChange[]>()\n private dependencies = new Map<string, DependencyEdge[]>()\n private stepFiles = new Map<string, Map<string, string[]>>()\n private fileGraph = new Map<string, Set<string>>()\n\n // \u2500\u2500 File-level import parsing \u2500\u2500\n\n /**\n * Parse import/require statements from file content.\n * Supports: import x from \"y\", import { x } from \"y\", import * as x from \"y\",\n * const x = require(\"y\"), dynamic import(), re-exports.\n */\n parseImports(content: string): string[] {\n const imports: string[] = []\n const seen = new Set<string>()\n\n // ESM import + export from\n const importRegex = /(?:import\\s+(?:(?:\\{[^}]*\\}|[^;{]+?)\\s+from\\s+|)\\s*[\"'`]|export\\s+(?:\\{[^}]*\\}|\\*)\\s+from\\s+[\"'`])([^\"'`]+)[\"'`]/g\n // require() calls\n const requireRegex = /(?:require|import)\\s*\\(\\s*[\"'`]([^\"'`]+)[\"'`]\\s*\\)/g\n // dynamic import()\n const dynamicImportRegex = /import\\s*\\(\\s*[\"'`]([^\"'`]+)[\"'`]\\s*\\)/g\n\n for (const match of content.matchAll(importRegex)) {\n const raw = match[1]\n if (raw && !seen.has(raw)) { seen.add(raw); imports.push(raw) }\n }\n for (const match of content.matchAll(requireRegex)) {\n const raw = match[1]\n if (raw && !seen.has(raw)) { seen.add(raw); imports.push(raw) }\n }\n for (const match of content.matchAll(dynamicImportRegex)) {\n const raw = match[1]\n if (raw && !seen.has(raw)) { seen.add(raw); imports.push(raw) }\n }\n\n return imports\n }\n\n /**\n * Resolve a relative import specifier to possible filesystem paths.\n */\n resolveImportPath(sourceFile: string, specifier: string): string[] {\n if (!specifier.startsWith(\".\")) return [] // skip npm packages\n const sourceDir = dirname(sourceFile)\n const base = join(sourceDir, specifier).replace(/\\\\/g, \"/\")\n\n // Remove known extension if present\n const withoutExt = base.replace(/\\.(ts|tsx|js|jsx|mjs|cjs)$/, \"\")\n const extensions = [\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\", \".cjs\"]\n\n const candidates: string[] = []\n // Try exact path first\n candidates.push(base)\n // Try with/extensions\n for (const ext of extensions) {\n if (!base.endsWith(ext)) candidates.push(withoutExt + ext)\n }\n // Try as index file in directory\n for (const ext of extensions) {\n candidates.push(join(withoutExt, \"index\") + ext)\n }\n\n return candidates\n }\n\n /**\n * Scan a batch of files and build the file-level dependency graph.\n * Only processes relative imports (local files), skips npm packages.\n *\n * @param files Record<absoluteFilePath, fileContent>\n * @param projectDir Project root for computing relative paths\n */\n scanFiles(files: Record<string, string>, projectDir: string): void {\n for (const [absPath, content] of Object.entries(files)) {\n const allImportSpecifiers = this.parseImports(content)\n const localSpecifiers = allImportSpecifiers.filter(s => s.startsWith(\".\"))\n\n if (localSpecifiers.length === 0) continue\n\n const sourceRel = relative(projectDir, absPath).replace(/\\\\/g, \"/\")\n const resolvedTargets: string[] = []\n\n for (const spec of localSpecifiers) {\n const candidates = this.resolveImportPath(absPath, spec)\n for (const cand of candidates) {\n if (existsSync(cand)) {\n const targetRel = relative(projectDir, cand).replace(/\\\\/g, \"/\")\n resolvedTargets.push(targetRel)\n break // first existing resolution wins\n }\n }\n }\n\n if (resolvedTargets.length > 0) {\n const existing = this.fileGraph.get(sourceRel) ?? new Set()\n for (const t of resolvedTargets) {\n existing.add(t)\n this.addDependency(sourceRel, t, \"imports\")\n }\n this.fileGraph.set(sourceRel, existing)\n }\n }\n }\n\n /**\n * Get files that directly import the given file (via file-level graph).\n */\n getFileDependents(filePath: string): string[] {\n const normalized = filePath.replace(/\\\\/g, \"/\")\n const result: string[] = []\n for (const [source, targets] of this.fileGraph) {\n for (const t of targets) {\n if (t === normalized || t.endsWith(\"/\" + normalized) || normalized.endsWith(\"/\" + t)) {\n result.push(source)\n break\n }\n }\n }\n return [...new Set(result)]\n }\n\n /**\n * Incrementally update the file graph for a single file (e.g., after creation/modification).\n * Re-parses imports and replaces the entry in the graph.\n */\n updateFile(absPath: string, content: string, projectDir: string): void {\n const relPath = relative(projectDir, absPath).replace(/\\\\/g, \"/\")\n // Remove old entries for this file\n this.fileGraph.delete(relPath)\n this.dependencies.delete(relPath)\n // Remove old edges where this file was the target\n for (const [src, targets] of this.fileGraph) {\n if (targets.has(relPath)) {\n targets.delete(relPath)\n }\n }\n // Re-scan\n this.scanFiles({ [absPath]: content }, projectDir)\n }\n\n /**\n * Get files that a given file directly imports (via file-level graph).\n */\n getFileImports(filePath: string): string[] {\n const normalized = filePath.replace(/\\\\/g, \"/\")\n return [...(this.fileGraph.get(normalized) ?? [])]\n }\n\n /**\n * Traverse transitive dependents (A imports B imports C \u2192 change C impacts A).\n */\n private getTransitiveDependents(file: string, visited?: Set<string>): string[] {\n const visitedSet = visited ?? new Set<string>()\n if (visitedSet.has(file)) return []\n visitedSet.add(file)\n const direct = this.getFileDependents(file)\n const all = [...direct]\n for (const d of direct) {\n all.push(...this.getTransitiveDependents(d, visitedSet))\n }\n return all\n }\n\n recordChange(sessionId: string, stepId: string, files: string[]): void {\n const changes = this.fileChanges.get(sessionId) ?? []\n for (const file of files) {\n changes.push({\n file,\n stepId,\n changeType: \"modify\",\n timestamp: Date.now(),\n })\n }\n this.fileChanges.set(sessionId, changes)\n\n const sessionFiles = this.stepFiles.get(sessionId) ?? new Map()\n const existing = sessionFiles.get(stepId) ?? []\n sessionFiles.set(stepId, [...new Set([...existing, ...files])])\n this.stepFiles.set(sessionId, sessionFiles)\n }\n\n addDependency(from: string, to: string, relation: DependencyEdge[\"relation\"]): void {\n const edges = this.dependencies.get(from) ?? []\n const exists = edges.some(e => e.to === to && e.relation === relation)\n if (!exists) {\n edges.push({ from, to, relation })\n this.dependencies.set(from, edges)\n }\n }\n\n getDependencies(module: string): DependencyEdge[] {\n return this.dependencies.get(module) ?? []\n }\n\n getDependents(module: string): DependencyEdge[] {\n const dependents: DependencyEdge[] = []\n for (const edges of this.dependencies.values()) {\n for (const edge of edges) {\n if (edge.to === module) dependents.push(edge)\n }\n }\n return dependents\n }\n\n analyzeImpact(sessionId: string, changedFiles: string[]): ImpactAnalysis[] {\n const results: ImpactAnalysis[] = []\n for (const file of changedFiles) {\n // Combine step-level + file-level dependents\n const stepDeps = this.getDependents(file).map(e => e.from)\n const fileDeps = this.getFileDependents(file)\n const transitiveDeps = this.getTransitiveDependents(file)\n const combinedFiles = [...new Set([...stepDeps, ...fileDeps, ...transitiveDeps])]\n\n // Map back to steps\n const sessionFiles = this.stepFiles.get(sessionId)\n const impactedSteps: string[] = []\n if (sessionFiles) {\n for (const [stepId, files] of sessionFiles) {\n const overlap = files.some(f => combinedFiles.includes(f) || f === file)\n if (overlap) impactedSteps.push(stepId)\n }\n }\n\n results.push({\n file,\n impactedFiles: combinedFiles,\n impactedSteps: [...new Set(impactedSteps)],\n risk: combinedFiles.length > 5 ? \"high\" : combinedFiles.length > 2 ? \"medium\" : \"low\",\n })\n }\n return results\n }\n\n getFilesChangedByStep(sessionId: string, stepId: string): string[] {\n const changes = this.fileChanges.get(sessionId) ?? []\n return [...new Set(changes.filter(c => c.stepId === stepId).map(c => c.file))]\n }\n\n getFilesChangedByPreviousSteps(sessionId: string, currentStepId: string, planSteps: string[]): string[] {\n const currentIdx = planSteps.indexOf(currentStepId)\n if (currentIdx <= 0) return []\n\n const changes = this.fileChanges.get(sessionId) ?? []\n const files = new Set<string>()\n for (const c of changes) {\n const stepIdx = planSteps.indexOf(c.stepId)\n if (stepIdx >= 0 && stepIdx < currentIdx) {\n files.add(c.file)\n }\n }\n return [...files]\n }\n\n analyzeErrorPropagation(sessionId: string, failingStepId: string, error: string, planSteps: string[]): PropagationAnalysis {\n const previousFiles = this.getFilesChangedByPreviousSteps(sessionId, failingStepId, planSteps)\n\n const currentStepFiles = this.getFilesChangedByStep(sessionId, failingStepId)\n const allPreviousFiles = new Set<string>()\n\n for (const stepId of planSteps) {\n if (stepId === failingStepId) break\n const stepFiles = this.getFilesChangedByStep(sessionId, stepId)\n for (const f of stepFiles) allPreviousFiles.add(f)\n }\n\n const matchesInError: string[] = []\n for (const file of allPreviousFiles) {\n if (error.toLowerCase().includes(file.toLowerCase())) {\n matchesInError.push(file)\n }\n }\n\n let likelyCulprit: string | null = null\n let confidence = 0\n\n if (matchesInError.length > 0) {\n likelyCulprit = matchesInError[matchesInError.length - 1]\n confidence = matchesInError.length >= 2 ? 0.8 : 0.5\n } else if (previousFiles.length > 0) {\n const latestStepBefore = planSteps.slice(0, planSteps.indexOf(failingStepId)).reverse()\n for (const stepId of latestStepBefore) {\n const stepFiles = this.getFilesChangedByStep(sessionId, stepId)\n if (stepFiles.length > 0) {\n likelyCulprit = stepFiles[stepFiles.length - 1]\n confidence = 0.3\n break\n }\n }\n }\n\n if (currentStepFiles.length > 0 && !likelyCulprit) {\n likelyCulprit = currentStepFiles[0]\n confidence = 0.2\n }\n\n const affectedSteps: string[] = []\n const changes = this.fileChanges.get(sessionId) ?? []\n const conflictFiles = new Set(changes.map(c => c.file))\n if (previousFiles.some(f => conflictFiles.has(f))) {\n for (const c of changes) {\n if (c.stepId !== failingStepId) affectedSteps.push(c.stepId)\n }\n }\n\n const propagationPath: string[] = []\n for (const stepId of planSteps) {\n if (stepId === failingStepId) break\n const changedFiles = this.getFilesChangedByStep(sessionId, stepId)\n const hasOverlap = changedFiles.some(f =>\n error.toLowerCase().includes(f.toLowerCase())\n )\n if (hasOverlap || changedFiles.length > 0) {\n propagationPath.push(stepId)\n }\n }\n\n let suggestion = \"\"\n if (likelyCulprit) {\n // Check both file-level and step-level impact\n const fileImpact = this.analyzeImpact(sessionId, [likelyCulprit])\n const stepImpact = this.getDependents(likelyCulprit)\n const ri = fileImpact[0]\n const combinedImpact = [...new Set([\n ...(ri?.impactedSteps ?? []),\n ...stepImpact.map(e => e.from),\n ])]\n\n // Include file-level dependents in suggestion\n const fileLevelDeps = this.getFileDependents(likelyCulprit)\n suggestion = `Error likely originates from changes to ${likelyCulprit} (confidence: ${(confidence * 100).toFixed(0)}%).`\n if (combinedImpact.length > 0) {\n suggestion += ` Step impacts: ${combinedImpact.join(\", \")}.`\n }\n if (fileLevelDeps.length > 0) {\n suggestion += ` File-level dependents: ${fileLevelDeps.join(\", \")}.`\n }\n suggestion += ` Review this file first, then check propagation.`\n } else if (propagationPath.length > 0) {\n suggestion = `Error may have propagated from earlier steps: ${propagationPath.join(\", \")}. Check those changes for side effects.`\n } else {\n suggestion = \"Unable to trace error source with confidence. Review the most recent changes manually and consider adding dependency tracking.\"\n }\n\n return { likelyCulprit, affectedSteps: [...new Set(affectedSteps)], propagationPath, suggestion, rootCauseConfidence: confidence }\n }\n\n clear(sessionId?: string): void {\n if (sessionId) {\n this.fileChanges.delete(sessionId)\n this.stepFiles.delete(sessionId)\n } else {\n this.fileChanges.clear()\n this.dependencies.clear()\n this.stepFiles.clear()\n this.fileGraph.clear()\n }\n }\n}\n", "import type { LLMEngine } from \"../core/llm.js\"\n\nexport interface ContextSummary {\n planSummary: string\n decisions: string[]\n fileChanges: string[]\n invariants: string[]\n openItems: string[]\n estimatedTokens: number\n}\n\nexport class ContextCompressor {\n private windowSize = 5\n private summaryInterval = 5\n private llm: LLMEngine | null = null\n\n setLLM(llm: LLMEngine): void {\n this.llm = llm\n }\n\n compress(planSummary: string, turns: Array<{ role: string; content: string }>, decisions: string[], fileChanges: string[]): ContextSummary {\n const relevantTurns = turns.slice(-this.windowSize * 3)\n\n const extracted = this.extractKeyInfo(relevantTurns)\n\n const allDecisions = [...new Set([...decisions, ...extracted.decisions])]\n const allFileChanges = [...new Set([...fileChanges, ...extracted.fileChanges])]\n const allInvariants = extracted.invariants\n const allOpenItems = extracted.openItems\n\n const summary: ContextSummary = {\n planSummary: `Goal: ${planSummary.slice(0, 200)}`,\n decisions: allDecisions.slice(-10),\n fileChanges: allFileChanges.slice(-15),\n invariants: allInvariants,\n openItems: allOpenItems,\n estimatedTokens: this.estimateTokens(planSummary, allDecisions, allFileChanges),\n }\n\n return summary\n }\n\n async compressWithLLM(planGoal: string, turns: Array<{ role: string; content: string }>, decisions: string[], fileChanges: string[]): Promise<ContextSummary> {\n if (!this.llm) return this.compress(planGoal, turns, decisions, fileChanges)\n\n try {\n const turnTexts = turns.map(t => `[${t.role}]: ${t.content}`)\n const llmSummary = await this.llm.summarizeContext(planGoal, turnTexts)\n\n const extracted = this.extractKeyInfo(turns)\n\n return {\n planSummary: `Goal: ${planGoal.slice(0, 200)}\\n\\nLLM Summary: ${llmSummary.slice(0, 500)}`,\n decisions: [...new Set([...decisions, ...extracted.decisions])].slice(-10),\n fileChanges: [...new Set([...fileChanges, ...extracted.fileChanges])].slice(-15),\n invariants: extracted.invariants,\n openItems: extracted.openItems,\n estimatedTokens: Math.ceil(llmSummary.length / 4),\n }\n } catch {\n return this.compress(planGoal, turns, decisions, fileChanges)\n }\n }\n\n shouldCompress(turnCount: number, currentTokensEstimate: number, maxTokens = 100_000): boolean {\n return turnCount > this.summaryInterval * 3 || currentTokensEstimate > maxTokens * 0.7\n }\n\n compressToPrompt(summary: ContextSummary): string {\n const parts: string[] = [\n \"## Compressed Context\",\n \"\",\n `**Plan:** ${summary.planSummary}`,\n ]\n\n if (summary.decisions.length > 0) {\n parts.push(\"\", \"### Key Decisions\", ...summary.decisions.map((d, i) => `${i + 1}. ${d}`))\n }\n\n if (summary.fileChanges.length > 0) {\n parts.push(\"\", \"### Files Modified\", ...summary.fileChanges.map(f => `- \\`${f}\\``))\n }\n\n if (summary.invariants.length > 0) {\n parts.push(\"\", \"### Invariants (MUST be preserved)\", ...summary.invariants.map(i => `- ${i}`))\n }\n\n if (summary.openItems.length > 0) {\n parts.push(\"\", \"### Open Items\", ...summary.openItems.map(i => `- ${i}`))\n }\n\n parts.push(\"\", `---`, `*Compressed context (~${summary.estimatedTokens} tokens)*`)\n\n return parts.join(\"\\n\")\n }\n\n private extractKeyInfo(turns: Array<{ role: string; content: string }>): {\n decisions: string[]\n fileChanges: string[]\n invariants: string[]\n openItems: string[]\n } {\n const decisions: string[] = []\n const fileChanges: string[] = []\n const invariants: string[] = []\n const openItems: string[] = []\n\n for (const turn of turns) {\n const content = turn.content ?? \"\"\n\n const decisionMatches = content.match(/(?:decided|chose|opted|will use|using|selected|picked) (.+?)(?:\\.|$)/gi)\n if (decisionMatches) {\n decisions.push(...decisionMatches.map(d => d.trim()).slice(0, 3))\n }\n\n const fileMatches = content.match(/(?:src|lib|test|app|pkg|cmd)\\/[\\w/.\\-]+/gi)\n if (fileMatches) {\n fileChanges.push(...fileMatches)\n }\n\n if (content.includes(\"must not\") || content.includes(\"should never\") || content.includes(\"invariant\") || content.includes(\"must preserve\")) {\n const lines = content.split(\"\\n\").filter(l =>\n l.includes(\"must not\") || l.includes(\"should never\") || l.includes(\"invariant\") || l.includes(\"must preserve\")\n )\n invariants.push(...lines.map(l => l.trim()).slice(0, 3))\n }\n\n if (content.includes(\"TODO\") || content.includes(\"FIXME\") || content.includes(\"remaining\") || content.includes(\"still need\") || content.includes(\"pending\")) {\n openItems.push(content.slice(0, 120))\n }\n }\n\n return { decisions, fileChanges, invariants, openItems }\n }\n\n private estimateTokens(planSummary: string, decisions: string[], fileChanges: string[]): number {\n const text = [planSummary, ...decisions, ...fileChanges].join(\" \")\n return Math.ceil(text.length / 4)\n }\n}\n", "import { execFileSync } from \"node:child_process\"\n\nexport interface CommitInfo {\n hash: string\n message: string\n files: string[]\n timestamp: string\n}\n\nexport interface PRDescription {\n title: string\n summary: string\n changes: string[]\n testPlan: string\n breakingChanges: boolean\n}\n\nexport interface PRCreationResult {\n url: string\n number: number\n title: string\n branch: string\n}\n\nexport class GitIntegration {\n private cwd: string\n\n constructor(cwd: string) {\n this.cwd = cwd\n }\n\n isAvailable(): boolean {\n try {\n execFileSync(\"git\", [\"rev-parse\", \"--git-dir\"], { cwd: this.cwd, stdio: \"ignore\" })\n return true\n } catch {\n return false\n }\n }\n\n stage(files: string[]): boolean {\n if (!this.isAvailable()) return false\n try {\n execFileSync(\"git\", [\"add\", ...files], { cwd: this.cwd, stdio: \"ignore\" })\n return true\n } catch {\n return false\n }\n }\n\n commit(message: string, files: string[]): CommitInfo | null {\n if (!this.isAvailable()) return null\n try {\n if (files.length > 0) {\n execFileSync(\"git\", [\"add\", ...files], { cwd: this.cwd, stdio: \"ignore\" })\n }\n execFileSync(\"git\", [\"commit\", \"-m\", message], { cwd: this.cwd, stdio: \"ignore\" })\n const hash = execFileSync(\"git\", [\"rev-parse\", \"HEAD\"], { cwd: this.cwd, encoding: \"utf-8\" }).trim()\n const timestamp = execFileSync(\"git\", [\"log\", \"-1\", \"--format=%aI\"], { cwd: this.cwd, encoding: \"utf-8\" }).trim()\n return { hash, message, files, timestamp }\n } catch {\n return null\n }\n }\n\n getHistory(count = 10): CommitInfo[] {\n if (!this.isAvailable()) return []\n try {\n const output = execFileSync(\n \"git\",\n [\"log\", `-${count}`, \"--format=%H|||%s|||%aI\", \"--name-only\"],\n { cwd: this.cwd, encoding: \"utf-8\" }\n )\n const commits: CommitInfo[] = []\n let current: CommitInfo | null = null\n\n for (const line of output.split(\"\\n\")) {\n if (line.includes(\"|||\")) {\n if (current) commits.push(current)\n const [hash, message, timestamp] = line.split(\"|||\")\n current = { hash, message, timestamp, files: [] }\n } else if (line && current) {\n current.files.push(line.trim())\n }\n }\n if (current) commits.push(current)\n return commits\n } catch {\n return []\n }\n }\n\n getCurrentBranch(): string {\n try {\n return execFileSync(\"git\", [\"rev-parse\", \"--abbrev-ref\", \"HEAD\"], {\n cwd: this.cwd, encoding: \"utf-8\",\n }).trim()\n } catch {\n return \"main\"\n }\n }\n\n push(branch?: string): boolean {\n if (!this.isAvailable()) return false\n try {\n const args = [\"push\"]\n if (branch) args.push(\"origin\", branch)\n execFileSync(\"git\", args, { cwd: this.cwd, stdio: \"ignore\" })\n return true\n } catch {\n return false\n }\n }\n\n createBranch(name: string): boolean {\n if (!this.isAvailable()) return false\n try {\n execFileSync(\"git\", [\"checkout\", \"-b\", name], { cwd: this.cwd, stdio: \"ignore\" })\n return true\n } catch {\n return false\n }\n }\n\n createPR(title: string, body: string, base = \"main\"): PRCreationResult | null {\n if (!this.isAvailable()) return null\n try {\n const branch = this.getCurrentBranch()\n this.push(branch)\n\n const output = execFileSync(\"gh\", [\n \"pr\", \"create\",\n \"--title\", title,\n \"--body\", body,\n \"--base\", base,\n \"--head\", branch,\n ], { cwd: this.cwd, encoding: \"utf-8\" }).trim()\n\n const urlMatch = output.match(/https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/pull\\/(\\d+)/)\n if (urlMatch) {\n return {\n url: urlMatch[0],\n number: parseInt(urlMatch[1], 10),\n title,\n branch,\n }\n }\n\n return { url: output, number: 0, title, branch }\n } catch {\n return null\n }\n }\n\n getDiff(base = \"main\"): string {\n if (!this.isAvailable()) return \"\"\n try {\n return execFileSync(\"git\", [\"diff\", base], { cwd: this.cwd, encoding: \"utf-8\" })\n } catch {\n return \"\"\n }\n }\n\n generatePRDescription(\n goal: string,\n steps: Array<{ id: string; description: string; success: boolean }>,\n filesChanged: string[],\n ): PRDescription {\n const completedSteps = steps.filter(s => s.success)\n const failedSteps = steps.filter(s => !s.success)\n const allSuccess = failedSteps.length === 0\n\n const title = goal.length > 72 ? goal.slice(0, 69) + \"...\" : goal\n\n const summary = allSuccess\n ? `Implements: ${goal}\\n\\nCompleted ${completedSteps.length} steps across ${filesChanged.length} files.`\n : `Partially implements: ${goal}\\n\\nCompleted ${completedSteps.length}/${steps.length} steps. ${failedSteps.length} steps need follow-up.`\n\n const changes = completedSteps.map(s => `- ${s.description}`)\n\n const testPlan = [\n `- [ ] Verify all changes compile without errors`,\n `- [ ] Run full test suite`,\n `- [ ] Manual review of ${filesChanged.slice(0, 5).join(\", \")}`,\n ].join(\"\\n\")\n\n return {\n title,\n summary,\n changes,\n testPlan,\n breakingChanges: !allSuccess,\n }\n }\n}\n", "export interface DebtScore {\n overall: \"low\" | \"medium\" | \"high\" | \"critical\"\n breakdown: DebtCategory[]\n totalIssues: number\n suggestion: string\n}\n\nexport interface DebtCategory {\n category: string\n score: number\n issues: string[]\n}\n\nexport class TechDebtScorer {\n score(planGoal: string, filesChanged: string[], fileContents: Map<string, string>): DebtScore {\n const breakdown: DebtCategory[] = []\n let totalIssues = 0\n\n // 1. Coupling analysis\n const coupling = this.analyzeCoupling(filesChanged, fileContents)\n breakdown.push(coupling)\n totalIssues += coupling.issues.length\n\n // 2. File size analysis\n const size = this.analyzeSize(filesChanged, fileContents)\n breakdown.push(size)\n totalIssues += size.issues.length\n\n // 3. Change scope analysis\n const scope = this.analyzeScope(filesChanged)\n breakdown.push(scope)\n totalIssues += scope.issues.length\n\n // 4. Pattern analysis\n const patterns = this.analyzePatterns(fileContents)\n breakdown.push(patterns)\n totalIssues += patterns.issues.length\n\n const maxScore = Math.max(...breakdown.map(b => b.score))\n let overall: DebtScore[\"overall\"] = \"low\"\n if (maxScore >= 8) overall = \"critical\"\n else if (maxScore >= 6) overall = \"high\"\n else if (maxScore >= 3) overall = \"medium\"\n\n const suggestion = this.generateSuggestion(overall, breakdown, totalIssues)\n\n return { overall, breakdown, totalIssues, suggestion }\n }\n\n private analyzeCoupling(filesChanged: string[], contents: Map<string, string>): DebtCategory {\n const issues: string[] = []\n let score = 0\n\n if (filesChanged.length > 5) {\n issues.push(`${filesChanged.length} files modified \u2014 high coupling risk`)\n score += 3\n }\n\n for (const [file, content] of contents) {\n const importCount = (content.match(/^import\\s/gm) || []).length\n if (importCount > 10) {\n issues.push(`${file} has ${importCount} imports \u2014 consider splitting`)\n score += 1\n }\n }\n\n return { category: \"coupling\", score: Math.min(score, 10), issues }\n }\n\n private analyzeSize(filesChanged: string[], contents: Map<string, string>): DebtCategory {\n const issues: string[] = []\n let score = 0\n\n for (const [file, content] of contents) {\n const lines = content.split(\"\\n\").length\n if (lines > 300) {\n issues.push(`${file} is ${lines} lines \u2014 too large, consider splitting`)\n score += 2\n } else if (lines > 150) {\n issues.push(`${file} is ${lines} lines \u2014 monitor size`)\n score += 1\n }\n }\n\n return { category: \"size\", score: Math.min(score, 10), issues }\n }\n\n private analyzeScope(filesChanged: string[]): DebtCategory {\n const issues: string[] = []\n let score = 0\n\n const dirs = new Set(filesChanged.map(f => f.split(\"/\").slice(0, -1).join(\"/\")))\n if (dirs.size > 3) {\n issues.push(`Changes span ${dirs.size} directories \u2014 broad impact`)\n score += 2\n }\n\n const hasTest = filesChanged.some(f => f.includes(\".test.\") || f.includes(\".spec.\"))\n if (!hasTest && filesChanged.length > 0) {\n issues.push(\"No test files changed \u2014 add tests for new code\")\n score += 2\n }\n\n return { category: \"scope\", score: Math.min(score, 10), issues }\n }\n\n private analyzePatterns(contents: Map<string, string>): DebtCategory {\n const issues: string[] = []\n let score = 0\n\n for (const [file, content] of contents) {\n if (content.includes(\"any\")) {\n issues.push(`${file} uses 'any' type \u2014 replace with specific types`)\n score += 2\n }\n if ((content.match(/\\/\\/\\s*TODO/g) || []).length > 2) {\n issues.push(`${file} has multiple TODOs \u2014 address before merging`)\n score += 1\n }\n if (content.includes(\"as unknown as\")) {\n issues.push(`${file} uses 'as unknown as' cast \u2014 type-safety bypass`)\n score += 1\n }\n }\n\n return { category: \"patterns\", score: Math.min(score, 10), issues }\n }\n\n private generateSuggestion(overall: string, breakdown: DebtCategory[], total: number): string {\n if (overall === \"low\") return \"Minimal debt. Proceed confidently.\"\n if (overall === \"medium\") return `${total} issue(s) found. Address before next iteration.`\n if (overall === \"high\") return `${total} issue(s) found. Fix before merging \u2014 add to next sprint.`\n return `${total} issue(s) found. Critical debt \u2014 block merge until resolved.`\n }\n}\n", "import type { AgentRole } from \"./coordinator.js\"\n\nexport interface AgentDef {\n role: AgentRole\n name: string\n prompt: string\n tools: string[]\n model?: string\n}\n\nexport type CustomRole = string\n\nexport interface CustomAgentDef {\n role: CustomRole\n name: string\n prompt: string\n tools: string[]\n model?: string\n}\n\n/** Complexity level for model suggestion */\nexport type TaskComplexity = \"simple\" | \"moderate\" | \"complex\"\n\nexport type PromptSource = \"auto-evolve\" | \"agent-self\" | \"manual\" | \"initial\"\n\nexport interface PromptEntry {\n version: number\n prompt: string\n timestamp: string\n source: PromptSource\n description?: string\n}\n\nexport interface PromptState {\n currentVersion: number\n history: PromptEntry[]\n}\n\nexport class RoleRegistry {\n private builtIn: Map<AgentRole, AgentDef> = new Map()\n private custom: Map<CustomRole, CustomAgentDef> = new Map()\n private promptHistory: Map<string, PromptState> = new Map()\n\n private defaultModels: Record<AgentRole, string> = {\n architect: \"fast\", // analisis \u2014 cukup model cepat\n developer: \"capable\", // implementasi \u2014 model paling capable\n qa: \"fast\", // review \u2014 model cepat sudah cukup\n coordinator: \"capable\", // koordinasi \u2014 perlu reasoning baik\n pm: \"fast\", // requirement \u2014 model cepat\n }\n\n constructor(initialPrompts?: Array<{ role: string; history: PromptEntry[] }>) {\n if (initialPrompts) {\n for (const entry of initialPrompts) {\n const latest = entry.history.reduce((a, b) => a.version > b.version ? a : b)\n this.promptHistory.set(entry.role, { currentVersion: latest.version, history: entry.history })\n }\n }\n this.builtIn.set(\"architect\", {\n role: \"architect\",\n name: \"System Architect\",\n prompt: `You are a software architect. Analyze requirements and produce architecture decisions.\n\n## Output Format\nAlways structure your output as:\n\n### Architecture Decisions\n- **Decision**: <what was decided>\n- **Rationale**: <why this decision>\n- **Alternatives Considered**: <other options>\n\n### File Structure\n- \\`src/module/file.ts\\` \u2014 <purpose>\n\n### Interface Contracts\n- \\`Interface\\` / \\`Function signature\\` \u2014 <contract description>\n\n### Trade-offs\n- <trade-off description>\n\n## Few-Shot Examples\n\n**Input**: \"Add a user authentication system with JWT tokens\"\n**Output**:\n### Architecture Decisions\n- **Decision**: Use JWT with refresh tokens instead of session-based auth\n- **Rationale**: Stateless, scales horizontally without Redis session store; refresh tokens reduce exposure window\n- **Alternatives Considered**: Session-based (needs Redis), OAuth2 (overkill for first-party auth)\n\n### File Structure\n- \\`src/auth/jwt.ts\\` \u2014 JWT sign/verify helpers\n- \\`src/auth/middleware.ts\\` \u2014 Express/Koa middleware for route protection\n- \\`src/auth/refresh.ts\\` \u2014 Refresh token rotation logic\n\n### Interface Contracts\n- \\`signToken(payload: object, expiresIn: string): string\\`\n- \\`verifyToken(token: string): TokenPayload | null\\`\n- \\`authMiddleware(required?: boolean): Middleware\\`\n\n### Trade-offs\n- Refresh token rotation adds complexity but improves security\n- Pure JWT without server-side revocation means tokens live until expiry\n\n---\n\n**Input**: \"Refactor the payment module to support multiple providers\"\n**Output**:\n### Architecture Decisions\n- **Decision**: Strategy pattern with provider interface\n- **Rationale**: Each provider (Stripe, PayPal, Midtrans) implements same contract; adding new provider = new class, no existing code changes\n- **Alternatives Considered**: Switch statements (fragile), inheritance (tight coupling), feature flags (temporary)\n\n### File Structure\n- \\`src/payment/provider.ts\\` \u2014 Provider interface\n- \\`src/payment/stripe.ts\\` \u2014 Stripe implementation\n- \\`src/payment/paypal.ts\\` \u2014 PayPal implementation\n- \\`src/payment/factory.ts\\` \u2014 Provider selection logic\n\n### Interface Contracts\n- \\`interface PaymentProvider { charge(amount: number, currency: string, source: string): PaymentResult; refund(transactionId: string): RefundResult }\\`\n- \\`function createProvider(type: \"stripe\" | \"paypal\"): PaymentProvider\\`\n\n### Trade-offs\n- Strategy pattern adds indirection but makes testing easier (mock provider)\n- Factory needs config or env var to determine provider\n\n---\n\nIf this requires sub-tasks, delegate to developers via agentic_delegate. After ALL work is done, extract a reusable skill via agentic_skill with action \"extract\".\n\nBe concise. Focus on structure, not implementation details.`,\n tools: [\"read\", \"grep\", \"glob\", \"agentic_nav\", \"agentic_score\", \"agentic_delegate\", \"agentic_skill\"],\n })\n\n this.builtIn.set(\"developer\", {\n role: \"developer\",\n name: \"Feature Developer\",\n prompt: `You are a senior developer. Implement features following existing codebase patterns.\n\n## Rules\n1. Always read existing files first to understand patterns before writing new code\n2. Write unit tests for all new code\n3. Follow the project's conventions (naming, imports with .js extensions, types)\n4. Keep functions small (< 30 lines), one responsibility each\n5. Don't break existing tests \u2014 run them after changes\n6. After completing, call agentic_skill with action \"extract\" to save a reusable skill\n\n## Few-Shot Examples\n\n**Task**: \"Add a calculateTotal function that sums items with tax\"\n**Step 1**: Read existing patterns\n\\`\\`\\`\nread src/pricing/utils.ts\n\\`\\`\\`\n\n**Step 2**: Implement\n\\`\\`\\`\n// src/pricing/utils.ts\nexport interface LineItem {\n price: number\n quantity: number\n taxRate?: number // default 0.1 (10%)\n}\n\nexport function calculateTotal(items: LineItem[]): number {\n return items.reduce((sum, item) => {\n const subtotal = item.price * item.quantity\n const tax = subtotal * (item.taxRate ?? 0.1)\n return sum + subtotal + tax\n }, 0)\n}\n\\`\\`\\`\n\n**Step 3**: Write tests\n\\`\\`\\`\n// src/pricing/utils.test.ts\nimport { describe, it, expect } from \"vitest\"\nimport { calculateTotal } from \"./utils.js\"\n\ndescribe(\"calculateTotal\", () => {\n it(\"sums item prices with default tax\", () => {\n const items = [{ price: 100, quantity: 2 }]\n expect(calculateTotal(items)).toBe(220) // 200 + 20 tax\n })\n\n it(\"accepts custom tax rate\", () => {\n const items = [{ price: 100, quantity: 1, taxRate: 0 }]\n expect(calculateTotal(items)).toBe(100) // no tax\n })\n})\n\\`\\`\\`\n\n**Step 4**: Verify tests pass\n\\`\\`\\`\nnpm test\n\\`\\`\\`\n\n---\n\n**Task**: \"Fix bug: calculateTotal crashes on empty array\"\n**Step 1**: Read current code\n\\`\\`\\`\nread src/pricing/utils.ts\n\\`\\`\\`\n// Current: return items.reduce(...) \u2192 crashes on []\n\n**Step 2**: Fix with guard\n\\`\\`\\`\nexport function calculateTotal(items: LineItem[]): number {\n if (items.length === 0) return 0 // \u274C was missing this\n return items.reduce(...)\n}\n\\`\\`\\`\n\n**Step 3**: Add test for edge case\n\\`\\`\\`\nit(\"returns 0 for empty items\", () => {\n expect(calculateTotal([])).toBe(0)\n})\n\\`\\`\\`\n\n---\n\nPrioritize correctness and readability. Don't over-engineer.`,\n tools: [\"read\", \"edit\", \"write\", \"bash\", \"glob\", \"grep\", \"agentic_skill\"],\n })\n\n this.builtIn.set(\"qa\", {\n role: \"qa\",\n name: \"QA Engineer\",\n prompt: `You are a QA engineer. Review implementations for bugs, edge cases, and security issues.\n\n## Review Checklist\n- \u2705 Edge cases: empty arrays, null/undefined inputs, boundary values\n- \u2705 Error handling: are errors caught? Are error messages helpful?\n- \u2705 Security: injection risks, auth bypass, data exposure\n- \u2705 Test quality: do tests actually verify behavior? Any missing test scenarios?\n- \u2705 Regression: do existing tests still pass?\n\n## Output Format\nFor each issue, use this format:\n\\`\\`\\`\n\u274C [severity] <brief title>\n- **File**: src/file.ts:line\n- **Issue**: <description>\n- **Repro**: <steps to reproduce or input that triggers it>\n- **Fix**: <suggested fix>\n\\`\\`\\`\n\nSeverity: critical | high | medium | low\n\n## Few-Shot Examples\n\n**Code under review**:\nexport function calculateTotal(items: { price: number; quantity: number }[]) {\n return items.reduce((sum, item) => sum + item.price * item.quantity)\n}\n\n**QA Report**:\n\\`\\`\\`\n\u274C [critical] No guard against empty array\n- **File**: pricing.ts:1\n- **Issue**: reduce() throws TypeError on empty array\n- **Repro**: calculateTotal([])\n- **Fix**: Add items.length === 0 guard, or pass initial value 0 to reduce\n\n\u274C [medium] taxRate not handled\n- **File**: pricing.ts:1\n- **Issue**: Items may have tax rate but parameter is not accepted\n- **Repro**: Any item with tax expectations\n- **Fix**: Accept optional taxRate parameter per item\n\\`\\`\\`\n\n---\n\n**Code under review**:\napp.get(\"/api/users/:id\", async (req, res) => {\n const user = db.users.findById(req.params.id)\n res.json(user)\n})\n\n**QA Report**:\n\\`\\`\\`\n\u274C [critical] SQL injection risk\n- **File**: routes.ts:2\n- **Issue**: req.params.id used directly \u2014 possible injection if db layer doesn't sanitize\n- **Repro**: GET /api/users/1; DROP TABLE users --\n- **Fix**: Use parameterized queries or ORM that handles sanitization\n\n\u274C [high] Missing auth check\n- **File**: routes.ts:1-3\n- **Issue**: No authentication middleware attached\n- **Repro**: Any unauthenticated request returns user data\n- **Fix**: Add auth middleware: app.get(\"/api/users/:id\", authMiddleware, handler)\n\\`\\`\\`\n\n---\n\nBe thorough. Every edge case matters. Report ONLY real issues \u2014 don't flag style preferences.`,\n tools: [\"read\", \"glob\", \"grep\", \"bash\", \"agentic_verify\", \"agentic_skill\"],\n })\n\n this.builtIn.set(\"coordinator\", {\n role: \"coordinator\",\n name: \"Task Coordinator\",\n prompt: `You are a project coordinator. Decompose goals into tasks, delegate to the right agents, and ensure quality.\n\n## Workflow\n1. Understand the goal \u2014 use agentic_nav to scan the codebase first\n2. Decompose into ordered subtasks with clear dependencies\n3. Delegate each subtask to the correct role:\n - **architect**: structural decisions, file layout, interface design\n - **developer**: implementation, unit tests\n - **qa**: code review, test verification, security audit\n4. Track progress with agentic_status\n5. Resolve blockers by re-assigning or adjusting scope\n6. After all done, call agentic_skill action \"extract\" to save the workflow\n7. Report final status to user\n\n## Few-Shot Examples\n\n**Input**: \"Add user profile page with avatar upload\"\n**Plan**:\n1. **architect**: Design profile page structure, file layout, API contracts\n \u2192 depends on: nothing\n2. **developer**: Implement profile page UI and API endpoints\n \u2192 depends on: step 1 (architecture)\n3. **developer**: Implement avatar upload with image resizing\n \u2192 depends on: step 2 (profile API)\n4. **qa**: Review all code, test upload edge cases\n \u2192 depends on: step 2, step 3\n\n**Delegation sequence**:\n\\`\\`\\`\nagentic_delegate taskId=\"arch-profile\" role=\"architect\" description=\"Design profile page structure\" \n\u2192 wait for result\nagentic_delegate taskId=\"dev-profile\" role=\"developer\" description=\"Implement profile page\" \nagentic_delegate taskId=\"dev-avatar\" role=\"developer\" description=\"Implement avatar upload\" \n\u2192 run dev tasks in parallel (they depend on arch, not each other)\nagentic_delegate taskId=\"qa-review\" role=\"qa\" description=\"Review all profile code\"\n\\`\\`\\`\n\n---\n\n**Input**: \"Fix login failing on Safari\"\n**Plan**:\n1. **developer**: Investigate Safari-specific issue (cookie/WebKit/Storage)\n2. **developer**: Implement fix with browser detection or polyfill\n3. **qa**: Verify fix on Safari + regression on Chrome/Firefox\n\n---\n\nThink like a tech lead. Prioritize, delegate, verify.`,\n tools: [\"agentic_plan\", \"agentic_delegate\", \"agentic_status\", \"agentic_pr\", \"agentic_skill\"],\n })\n\n this.builtIn.set(\"pm\", {\n role: \"pm\",\n name: \"Product Manager\",\n prompt: `You are a product manager. Translate business goals into technical specifications.\n\n## Output Format\nFor each feature:\n### Feature: <name>\n**Business Value**: <why this matters>\n**Acceptance Criteria**:\n- [ ] <criterion 1>\n- [ ] <criterion 2>\n**Dependencies**: <what must exist first>\n**Scope Boundary**: <what is NOT included>\n\n## Few-Shot Examples\n\n**Input**: \"Users are abandoning the signup flow at step 3 \u2014 the phone verification is too slow. We need to let users skip it and verify later.\"\n\n**Output**:\n### Feature: Deferred Phone Verification\n**Business Value**: Reduce signup abandonment by allowing users to start using the app immediately\n**Acceptance Criteria**:\n- [ ] User can complete signup without phone verification\n- [ ] App shows \"Verify phone\" banner post-signup until verified\n- [ ] Verified badge shows on profile after verification\n- [ ] Unverified users can still use all core features (read-only for sensitive actions)\n**Dependencies**: Existing signup flow must be refactored to make phone step optional\n**Scope Boundary**: Not changing SMS provider; not adding email fallback\n\n---\n\n**Input**: \"Competitor just launched AI-powered code review. We need parity within 2 sprints.\"\n\n**Output**:\n### Feature: AI Code Review Assistant\n**Business Value**: Competitor parity \u2014 retain developers who expect AI review\n**Acceptance Criteria**:\n- [ ] PR diff analyzed for common bug patterns (off-by-one, null ref, injection)\n- [ ] Suggestions posted as PR comments\n- [ ] User can dismiss/snooze suggestions\n- [ ] Works with GitHub and GitLab\n**Dependencies**: LLM API integration, GitHub app permissions\n**Scope Boundary**: Not doing auto-fix yet (Phase 2); not analyzing non-code files\n\n### Prioritization\n1. P0: PR analysis + comments (core value)\n2. P1: Dismiss/snooze UX\n3. P2: GitLab support (lower user share)\n\n---\n\nFocus on the \"what\" and \"why\". Leave the \"how\" to architects and developers.`,\n tools: [\"agentic_plan\", \"agentic_nav\", \"agentic_delegate\", \"agentic_episodes\", \"read\"],\n })\n // Initialize prompt history for all built-in roles (if not already loaded from persistence)\n const builtInRoles: AgentRole[] = [\"architect\", \"developer\", \"qa\", \"coordinator\", \"pm\"]\n for (const role of builtInRoles) {\n if (!this.promptHistory.has(role)) {\n this.addHistoryEntry(role, this.builtIn.get(role)!.prompt, \"initial\", \"Built-in prompt\")\n }\n }\n }\n\n registerCustom(def: CustomAgentDef): void {\n this.custom.set(def.role, def)\n if (!this.promptHistory.has(def.role)) {\n this.addHistoryEntry(def.role, def.prompt, \"manual\", `Custom role: ${def.name}`)\n }\n }\n\n private addHistoryEntry(role: string, prompt: string, source: PromptSource, description?: string): void {\n const existing = this.promptHistory.get(role)\n const version = existing ? existing.currentVersion + 1 : 1\n const entry: PromptEntry = { version, prompt, timestamp: new Date().toISOString(), source, description }\n if (existing) {\n existing.history.push(entry)\n existing.currentVersion = version\n } else {\n this.promptHistory.set(role, { currentVersion: version, history: [entry] })\n }\n }\n\n /**\n * Update the system prompt for a built-in role with version tracking.\n * Returns true if the role was found and updated.\n */\n updatePrompt(role: AgentRole, newPrompt: string, source: PromptSource = \"manual\", description?: string): boolean {\n const existing = this.builtIn.get(role)\n if (!existing) return false\n this.builtIn.set(role, { ...existing, prompt: newPrompt })\n this.addHistoryEntry(role, newPrompt, source, description)\n return true\n }\n\n /** Get the current prompt for a role (built-in or custom) */\n getPrompt(role: string): string | undefined {\n return this.builtIn.get(role as AgentRole)?.prompt ?? this.custom.get(role)?.prompt\n }\n\n /** Get prompt version history for a role */\n getPromptHistory(role: string): PromptEntry[] {\n return this.promptHistory.get(role)?.history ?? []\n }\n\n /** Get the full prompt state for a role (current version + history) */\n getPromptState(role: string): PromptState | undefined {\n return this.promptHistory.get(role)\n }\n\n /** Get all prompt states (for persistence) */\n getAllPromptStates(): Array<{ role: string; history: PromptEntry[] }> {\n return [...this.promptHistory.entries()].map(([role, state]) => ({ role, history: state.history }))\n }\n\n /**\n * Rollback a role's prompt to a specific version.\n * Returns true if the rollback succeeded.\n */\n rollbackPrompt(role: string, version: number): boolean {\n const state = this.promptHistory.get(role)\n if (!state) return false\n const entry = state.history.find(e => e.version === version)\n if (!entry) return false\n\n const def = this.builtIn.get(role as AgentRole)\n if (def) {\n this.builtIn.set(role as AgentRole, { ...def, prompt: entry.prompt })\n }\n const custom = this.custom.get(role)\n if (custom) {\n this.custom.set(role, { ...custom, prompt: entry.prompt })\n }\n if (!def && !custom) return false\n\n this.addHistoryEntry(role, entry.prompt, \"manual\", `Rollback to version ${version}`)\n return true\n }\n\n getBuiltIn(role: AgentRole): AgentDef | undefined {\n return this.builtIn.get(role)\n }\n\n getCustom(role: CustomRole): CustomAgentDef | undefined {\n return this.custom.get(role)\n }\n\n getAllBuiltIn(): AgentDef[] {\n return [...this.builtIn.values()]\n }\n\n getAllCustom(): CustomAgentDef[] {\n return [...this.custom.values()]\n }\n\n listRoles(): string[] {\n return [\n ...this.builtIn.keys(),\n ...this.custom.keys(),\n ]\n }\n\n suggestModel(role: string, complexity: TaskComplexity = \"moderate\"): string {\n // 1. Custom role? check its model\n const custom = this.custom.get(role)\n if (custom?.model) return custom.model\n\n // 2. Built-in role? check if user set a model\n const builtIn = this.builtIn.get(role as AgentRole)\n if (builtIn?.model) return builtIn.model\n\n // 3. Auto-suggest based on role + complexity\n const base = this.defaultModels[role as AgentRole] ?? \"capable\"\n if (complexity === \"simple\" && base === \"capable\") return \"fast\"\n if (complexity === \"complex\" && base === \"fast\") return \"capable\"\n return base\n }\n\n setModel(role: AgentRole, model: string): void {\n const def = this.builtIn.get(role)\n if (def) def.model = model\n }\n}\n", "import { RoleRegistry, type AgentDef, type CustomAgentDef } from \"./role-registry.js\"\nimport type { SkillStore } from \"../memory/skill-store.js\"\n\nexport type AgentRole = \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\"\n\nexport interface AgentTask {\n id: string\n assignedTo: string\n description: string\n input: string\n status: \"pending\" | \"running\" | \"done\" | \"failed\"\n result?: string\n sharedContext?: string\n validatedBy?: string[]\n pipelineRunId?: string\n delegationDepth?: number\n}\n\nexport interface SharedMemoryEntry {\n key: string\n value: string\n writtenBy: string\n timestamp: number\n}\n\nexport interface AgentMessage {\n id: string\n from: string\n to: string\n taskId: string\n type: \"result\" | \"review_request\" | \"review_response\" | \"clarification\" | \"approval\" | \"revision\"\n payload: string\n context?: Record<string, string>\n timestamp: number\n read: boolean\n}\n\nexport type SharedMemoryListener = (entry: SharedMemoryEntry) => void\n\nexport class AgentCoordinator {\n private sharedMemory = new Map<string, SharedMemoryEntry>()\n private memoryListeners: SharedMemoryListener[] = []\n private messages = new Map<string, AgentMessage[]>()\n private registry: RoleRegistry\n private tasks = new Map<string, AgentTask[]>()\n private pipelineRuns = new Map<string, string[]>()\n private maxDepth = 3\n private skillStore?: SkillStore\n\n constructor(skillStore?: SkillStore) {\n this.registry = new RoleRegistry()\n this.skillStore = skillStore\n }\n\n /** Set max delegation depth (from config hot-reload) */\n setMaxDepth(depth: number): void {\n this.maxDepth = depth\n }\n\n /** Get current max delegation depth */\n getMaxDepth(): number {\n return this.maxDepth\n }\n\n onSharedMemoryWrite(listener: SharedMemoryListener): void {\n this.memoryListeners.push(listener)\n }\n\n writeSharedMemory(key: string, value: string, agentRole: string): SharedMemoryEntry {\n const entry: SharedMemoryEntry = { key, value, writtenBy: agentRole, timestamp: Date.now() }\n this.sharedMemory.set(key, entry)\n for (const listener of this.memoryListeners) {\n try { listener(entry) } catch { }\n }\n return entry\n }\n\n writeSharedMemoryBatch(entries: Array<{ key: string; value: string; agentRole: string }>): void {\n for (const e of entries) {\n this.writeSharedMemory(e.key, e.value, e.agentRole)\n }\n }\n\n readSharedMemory(key: string): SharedMemoryEntry | undefined {\n return this.sharedMemory.get(key)\n }\n\n searchSharedMemory(query: string): SharedMemoryEntry[] {\n const q = query.toLowerCase()\n return [...this.sharedMemory.values()].filter(e =>\n e.key.toLowerCase().includes(q) || e.value.toLowerCase().includes(q)\n )\n }\n\n getAllSharedMemory(): SharedMemoryEntry[] {\n return [...this.sharedMemory.values()]\n }\n\n getAgent(role: string): AgentDef | CustomAgentDef | undefined {\n return this.registry.getBuiltIn(role as AgentRole) ?? this.registry.getCustom(role)\n }\n\n registerCustomRole(def: CustomAgentDef): void {\n this.registry.registerCustom(def)\n }\n\n // --- Message Bus ---\n\n sendMessage(msg: Omit<AgentMessage, \"id\" | \"timestamp\" | \"read\">): AgentMessage {\n const message: AgentMessage = {\n ...msg,\n id: `msg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n timestamp: Date.now(),\n read: false,\n }\n const inbox = this.messages.get(msg.to) ?? []\n inbox.push(message)\n this.messages.set(msg.to, inbox)\n return message\n }\n\n getMessages(agentRole: string, unreadOnly = false): AgentMessage[] {\n const inbox = this.messages.get(agentRole) ?? []\n if (unreadOnly) return inbox.filter(m => !m.read)\n return inbox\n }\n\n markRead(messageId: string): boolean {\n for (const [, inbox] of this.messages) {\n const msg = inbox.find(m => m.id === messageId)\n if (msg) { msg.read = true; return true }\n }\n return false\n }\n\n getConversation(taskId: string): AgentMessage[] {\n const all: AgentMessage[] = []\n for (const [, inbox] of this.messages) {\n all.push(...inbox.filter(m => m.taskId === taskId))\n }\n return all.sort((a, b) => a.timestamp - b.timestamp)\n }\n\n // --- Task Management ---\n\n delegate(role: string, task: AgentTask, sessionId: string, parentDepth = 0, relevantSkills?: Array<{ name: string; successRate: number; steps: string }>): AgentTask {\n task.assignedTo = role\n task.status = \"pending\"\n task.delegationDepth = parentDepth + 1\n\n if (!relevantSkills && this.skillStore) {\n const foundSkills = this.skillStore.find(task.description).slice(0, 3)\n relevantSkills = foundSkills.map((s: any) => ({\n name: s.name,\n successRate: s.successRate,\n steps: s.steps.map((step: any) => step.description).join(\" \u2192 \")\n }))\n }\n\n const entries = this.getAllSharedMemory()\n const contextParts: string[] = []\n if (entries.length > 0) {\n contextParts.push(entries\n .map(e => `[${e.key}] (by ${e.writtenBy}): ${e.value}`)\n .join(\"\\n\"))\n }\n\n if (relevantSkills && relevantSkills.length > 0) {\n const skillsBlock = relevantSkills.slice(0, 3).map(s =>\n `- **${s.name}** (${(s.successRate * 100).toFixed(0)}% success rate)\\n Steps: ${s.steps}`\n ).join(\"\\n\\n\")\n contextParts.push(`## Relevant Skills\\n${skillsBlock}\\n\\nConsider applying these proven patterns from past successful tasks.`)\n }\n\n if (contextParts.length > 0) {\n task.sharedContext = contextParts.join(\"\\n\\n\")\n }\n\n const sessionTasks = this.tasks.get(sessionId) ?? []\n sessionTasks.push(task)\n this.tasks.set(sessionId, sessionTasks)\n\n return task\n }\n\n getTasks(sessionId: string): AgentTask[] {\n return this.tasks.get(sessionId) ?? []\n }\n\n getTasksByRole(sessionId: string, role: string): AgentTask[] {\n return (this.tasks.get(sessionId) ?? []).filter(t => t.assignedTo === role)\n }\n\n updateTask(sessionId: string, taskId: string, status: AgentTask[\"status\"], result?: string): boolean {\n const tasks = this.tasks.get(sessionId)\n if (!tasks) return false\n\n const task = tasks.find(t => t.id === taskId)\n if (!task) return false\n\n task.status = status\n if (result) task.result = result\n\n if (status === \"done\" && task.assignedTo) {\n this.writeSharedMemory(`task:${taskId}:result`, result ?? \"completed\", task.assignedTo)\n }\n\n return true\n }\n\n /** Get downstream tasks that depend on a completed task via the pipeline */\n getNextInPipeline(taskId: string, sessionId: string): AgentTask | null {\n const tasks = this.tasks.get(sessionId) ?? []\n const currentIdx = tasks.findIndex(t => t.id === taskId)\n if (currentIdx < 0 || currentIdx >= tasks.length - 1) return null\n\n const current = tasks[currentIdx]\n if (current.status !== \"done\") return null\n\n for (let i = currentIdx + 1; i < tasks.length; i++) {\n const next = tasks[i]\n if (next.status === \"pending\") return next\n }\n return null\n }\n\n // --- Pipeline Run Tracking ---\n\n setPipelineRun(sessionId: string, pipelineId: string, taskIds: string[]): void {\n this.pipelineRuns.set(sessionId, taskIds)\n this.writeSharedMemory(`pipeline:${sessionId}`, pipelineId, \"coordinator\")\n }\n\n getPipelineRun(sessionId: string): string[] | undefined {\n return this.pipelineRuns.get(sessionId)\n }\n\n /**\n * Suggest the best agent role for a task description.\n * Uses LLM when available (Gap #6), falls back to keyword matching.\n */\n async getSuggestedRole(description: string, llm?: { suggestRole: (desc: string) => Promise<string | null> }): Promise<AgentRole> {\n // Try LLM first when available (paper's intelligent agent assignment)\n if (llm) {\n try {\n const llmRole = await llm.suggestRole(description)\n if (llmRole && [\"architect\", \"developer\", \"qa\", \"coordinator\", \"pm\"].includes(llmRole)) {\n return llmRole as AgentRole\n }\n } catch { /* fall through to keyword */ }\n }\n\n // Keyword fallback\n const d = description.toLowerCase()\n if (d.includes(\"architect\") || d.includes(\"design\") || d.includes(\"structure\") || d.includes(\"api contract\")) return \"architect\"\n if (d.includes(\"test\") || d.includes(\"qa\") || d.includes(\"verify\") || d.includes(\"validate\") || d.includes(\"check\")) return \"qa\"\n if (d.includes(\"coordinate\") || d.includes(\"orchestrate\") || d.includes(\"plan\") || d.includes(\"overview\")) return \"coordinator\"\n if (d.includes(\"pm\") || d.includes(\"product\") || d.includes(\"requirement\") || d.includes(\"spec\") || d.includes(\"acceptance\")) return \"pm\"\n return \"developer\"\n }\n}\n", "import { execFileSync } from \"node:child_process\"\n\n// Error logging helper for silent catch blocks\nfunction logParseError(context: string, error: unknown): void {\n if (process.env.DEBUG_LLM_PARSING) {\n console.error(`[LLM Parse Error] ${context}:`, error);\n }\n}\n\nexport interface LLMConfig {\n provider: \"openai\" | \"anthropic\" | \"local\" | \"opencode\"\n apiKey?: string\n baseURL?: string\n model?: string\n maxTokens?: number\n temperature?: number\n variant?: string\n}\n\nexport interface LLMRequest {\n systemPrompt: string\n userPrompt: string\n maxTokens?: number\n temperature?: number\n jsonMode?: boolean\n}\n\nexport interface LLMResponse {\n content: string\n usage?: { promptTokens: number; completionTokens: number }\n finishReason?: string\n}\n\nconst DEFAULT_MODELS: Record<string, string> = {\n openai: \"gpt-4o\",\n anthropic: \"claude-3-5-sonnet-20240620\",\n local: \"codellama\",\n opencode: \"opencode-default\",\n}\n\nimport type { ModelRegistry } from \"./model-registry.js\"\n\nexport class LLMEngine {\n private config: LLMConfig\n private opencodeClient: unknown = null\n private pluginSessionId: string | null = null\n private modelRegistry?: ModelRegistry\n private sessionStore?: import(\"../memory/session-store.js\").SessionStore\n private memoryStores?: {\n searchEpisodes: (query: string) => Array<{ planGoal: string; outcome: string; timestamp: string }>\n findSkills: (query: string) => Array<{ name: string; successRate: number }>\n }\n\n constructor(config: Partial<LLMConfig> = {}) {\n this.config = {\n provider: config.provider ?? this.detectProvider(),\n apiKey: config.apiKey ?? process.env.OPENAI_API_KEY,\n baseURL: config.baseURL ?? process.env.OPENAI_BASE_URL,\n model: config.model ?? process.env.OPENAI_MODEL,\n maxTokens: config.maxTokens ?? 4096,\n temperature: config.temperature ?? 0.3,\n variant: config.variant ?? process.env.OPENAI_VARIANT,\n }\n }\n\n setMemoryStores(stores: {\n searchEpisodes: (query: string) => Array<{ planGoal: string; outcome: string; timestamp: string }>\n findSkills: (query: string) => Array<{ name: string; successRate: number }>\n }): void {\n this.memoryStores = stores\n }\n\n getMemoryContext(query: string): string {\n return this.buildMemoryContext(query)\n }\n\n private buildMemoryContext(query: string): string {\n if (!this.memoryStores) return \"\"\n const parts: string[] = []\n try {\n const episodes = this.memoryStores.searchEpisodes(query).slice(0, 3)\n if (episodes.length > 0) {\n parts.push(\"Relevant past sessions:\")\n parts.push(episodes.map(e => `- ${e.outcome === \"success\" ? \"\u2705\" : e.outcome === \"partial\" ? \"\u26A0\uFE0F\" : \"\u274C\"} ${e.planGoal} (${e.timestamp.slice(0, 10)})`).join(\"\\n\"))\n }\n const skills = this.memoryStores.findSkills(query).slice(0, 3)\n if (skills.length > 0) {\n parts.push(\"Relevant known skills:\")\n parts.push(skills.map(s => `- ${s.name} (${(s.successRate * 100).toFixed(0)}% success rate)`).join(\"\\n\"))\n }\n } catch (error) {\n logParseError('buildMemoryContext', error);\n }\n return parts.length > 0 ? `\\n\\n## Memory Context\\n${parts.join(\"\\n\\n\")}` : \"\"\n }\n\n setOpencodeClient(client: unknown): void {\n this.opencodeClient = client\n if (this.config.provider === \"opencode\" || !process.env.OPENAI_API_KEY) {\n this.config.provider = \"opencode\"\n }\n }\n\n setSessionId(sessionId: string): void {\n this.pluginSessionId = sessionId\n }\n\n setModelRegistry(registry: ModelRegistry): void {\n this.modelRegistry = registry\n }\n\n setSessionStore(store: import(\"../memory/session-store.js\").SessionStore): void {\n this.sessionStore = store\n }\n\n updateConfig(config: Partial<LLMConfig>): void {\n Object.assign(this.config, config)\n }\n\n getCurrentModel(): string {\n return this.config.model ?? \"unknown\"\n }\n\n async call(req: LLMRequest): Promise<LLMResponse> {\n const startTime = Date.now()\n let success = false\n let response: LLMResponse\n\n try {\n switch (this.config.provider) {\n case \"openai\":\n response = await this.callOpenAI(req)\n break\n case \"anthropic\":\n response = await this.callAnthropic(req)\n break\n case \"local\":\n response = await this.callLocal(req)\n break\n case \"opencode\":\n response = await this.callOpenCode(req)\n break\n default:\n if (this.opencodeClient) response = await this.callOpenCode(req)\n else response = await this.callOpenAI(req)\n }\n success = !response.content.startsWith(\"LLM error\") && !response.content.startsWith(\"[NO_LLM]\") && !response.content.startsWith(\"LLM call failed\")\n } catch (error) {\n logParseError('LLM call', error);\n response = { content: \"LLM call threw an exception\", finishReason: \"error\" }\n success = false\n }\n\n const latency = Date.now() - startTime\n \n const taskType = this.sessionStore && this.pluginSessionId\n ? this.sessionStore.getOrCreate(this.pluginSessionId).currentTaskType\n : undefined\n this.modelRegistry?.recordCall(this.getCurrentModel(), success, latency, taskType)\n\n return response\n }\n\n async decomposeTask(goal: string, context: string): Promise<string[]> {\n try {\n const resp = await this.call({\n systemPrompt: \"You are a software task decomposer. Break down the given goal into sequential subtasks. Each subtask should be a single, concrete action. Return as JSON array of strings.\" + this.buildMemoryContext(goal),\n userPrompt: `Goal: ${goal}\\n\\nContext:\\n${context}\\n\\nBreak this down into 3-7 sequential subtasks. Return JSON array of strings.`,\n jsonMode: false,\n temperature: 0.2,\n })\n\n const cleaned = resp.content.trim()\n try {\n const parsed = JSON.parse(cleaned)\n if (Array.isArray(parsed)) return parsed\n if (parsed.subtasks && Array.isArray(parsed.subtasks)) return parsed.subtasks\n if (parsed.steps && Array.isArray(parsed.steps)) return parsed.steps\n } catch (error) {\n logParseError('decomposeTask JSON parse', error);\n }\n\n const codeBlock = cleaned.match(/```(?:json)?\\s*\\n?(\\[[\\s\\S]*?\\])\\s*\\n?```/)\n if (codeBlock) {\n try { const arr = JSON.parse(codeBlock[1]); if (Array.isArray(arr)) return arr } catch (error) { logParseError('decomposeTask codeBlock', error); }\n }\n\n const arrMatch = cleaned.match(/\\[[\\s\\S]*?\\]/)\n if (arrMatch) {\n try { const arr = JSON.parse(arrMatch[0]); if (Array.isArray(arr)) return arr } catch (error) { logParseError('decomposeTask arrMatch', error); }\n }\n } catch (error) {\n logParseError('decomposeTask', error);\n }\n\n return []\n }\n\n async summarizeContext(planGoal: string, turns: string[]): Promise<string> {\n const resp = await this.call({\n systemPrompt: \"You are a context compressor. Summarize the following conversation into a compact form that preserves: key decisions made, files changed, invariants that must be preserved, and remaining tasks. Be concise.\" + this.buildMemoryContext(planGoal),\n userPrompt: `Goal: ${planGoal}\\n\\nConversation:\\n${turns.join(\"\\n\")}\\n\\nProvide a compact summary.`,\n maxTokens: 1024,\n temperature: 0.1,\n })\n return resp.content\n }\n\n async analyzeError(errorText: string, modifiedFiles: string[]): Promise<{\n category: string\n rootCause: string\n fix: string\n }> {\n try {\n const resp = await this.call({\n systemPrompt: \"You are an error analyst. Given an error message and list of recently modified files, determine: the error category (compile/type/test/import/runtime), the likely root cause, and a specific fix suggestion. Return as JSON with keys: category, rootCause, fix.\" + this.buildMemoryContext(errorText),\n userPrompt: `Error:\\n${errorText}\\n\\nRecently modified files:\\n${modifiedFiles.join(\"\\n\")}\\n\\nAnalyze and return JSON.`,\n jsonMode: false,\n temperature: 0.2,\n })\n\n const cleaned = resp.content.trim()\n try {\n const parsed = JSON.parse(cleaned)\n if (parsed.category || parsed.rootCause) return parsed\n } catch (error) {\n logParseError('analyzeError JSON parse', error);\n }\n\n const codeBlock = cleaned.match(/```(?:json)?\\s*\\n?(\\{[\\s\\S]*?\\})\\s*\\n?```/)\n if (codeBlock) {\n try {\n const parsed = JSON.parse(codeBlock[1])\n if (parsed.category) return parsed\n } catch (error) {\n logParseError('analyzeError codeBlock', error);\n }\n }\n\n const jsonMatch = cleaned.match(/\\{[\\s\\S]*?\"category\"[\\s\\S]*?\"rootCause\"[\\s\\S]*?\"fix\"[\\s\\S]*?\\}/)\n if (jsonMatch) {\n try {\n const parsed = JSON.parse(jsonMatch[0])\n if (parsed.category) return parsed\n } catch (error) {\n logParseError('analyzeError jsonMatch', error);\n }\n }\n } catch (error) {\n logParseError('analyzeError', error);\n }\n\n return { category: \"unknown\", rootCause: \"Unable to analyze\", fix: \"Manual investigation needed\" }\n }\n\n private extractJSON<T>(content: string, requiredKey?: string): T | null {\n const cleaned = content.trim()\n try {\n const parsed = JSON.parse(cleaned)\n if (!requiredKey || (parsed && typeof parsed === \"object\" && requiredKey in parsed)) return parsed as T\n } catch (error) {\n logParseError('extractJSON direct parse', error);\n }\n const codeBlock = cleaned.match(/```(?:json)?\\s*\\n?(\\{[\\s\\S]*?\\})\\s*\\n?```/)\n if (codeBlock) {\n try {\n const parsed = JSON.parse(codeBlock[1])\n if (!requiredKey || (parsed && typeof parsed === \"object\" && requiredKey in parsed)) return parsed as T\n } catch (error) {\n logParseError('extractJSON codeBlock', error);\n }\n }\n if (requiredKey) {\n const loose = cleaned.match(new RegExp(`\\\\{[\\s\\S]*?\"${requiredKey}\"[\\\\s\\\\S]*?\\\\}`))\n if (loose) {\n try {\n const parsed = JSON.parse(loose[0])\n if (requiredKey in parsed) return parsed as T\n } catch (error) {\n logParseError('extractJSON loose match', error);\n }\n }\n const arrMatch = cleaned.match(/\\[[\\s\\S]*?\\]/)\n if (requiredKey === \"steps\" && arrMatch) {\n try {\n const arr = JSON.parse(arrMatch[0])\n if (Array.isArray(arr)) return { steps: arr, complexity: \"medium\" } as unknown as T\n } catch (error) {\n logParseError('extractJSON arrMatch', error);\n }\n }\n }\n return null\n }\n\n async generatePlan(goal: string, constraints: string[], codebaseSummary: string): Promise<{\n steps: Array<{ id: string; description: string; dependsOn: string[] }>\n complexity: string\n }> {\n try {\n const resp = await this.call({\n systemPrompt: `You are a software planning assistant. Generate a plan as JSON with \"steps\" (array of {id, description, dependsOn}) and \"complexity\" (\"low\"/\"medium\"/\"high\"). Steps IDs like \"step-1\", \"step-2\".` + this.buildMemoryContext(goal),\n userPrompt: `Goal: ${goal}\\nCodebase: ${codebaseSummary}\\n\\nGenerate plan JSON.`,\n jsonMode: false,\n temperature: 0.3,\n })\n const parsed = this.extractJSON<{ steps: Array<{ id: string; description: string; dependsOn: string[] }>; complexity: string }>(resp.content, \"steps\")\n if (parsed && Array.isArray(parsed.steps) && parsed.steps.length > 0) return parsed\n } catch (error) {\n logParseError('generatePlan', error);\n }\n return { steps: [], complexity: \"low\" }\n }\n\n async reviewCode(goal: string, files: Record<string, string>): Promise<string[]> {\n const filesStr = Object.entries(files).map(([path, content]) => `### ${path}\\n\\`\\`\\`\\n${content.slice(0, 2000)}\\n\\`\\`\\``).join(\"\\n\\n\")\n const resp = await this.call({\n systemPrompt: \"You are a code reviewer. Review the given files for potential issues: type safety, edge cases, error handling, performance, security, and maintainability. Return a JSON array of issue descriptions (strings). If no issues found, return empty array.\" + this.buildMemoryContext(goal),\n userPrompt: `Goal: ${goal}\\n\\nFiles:\\n${filesStr}\\n\\nList issues found as JSON array.`,\n jsonMode: true,\n temperature: 0.2,\n })\n try {\n return JSON.parse(resp.content)\n } catch (error) {\n logParseError('reviewCode JSON parse', error);\n return []\n }\n }\n\n async suggestRole(description: string): Promise<string | null> {\n try {\n const resp = await this.call({\n systemPrompt: \"You are an agent role classifier. Given a task description, determine the best agent role for it. Available roles: architect (design/structure/API), developer (implementation/coding/fix), qa (testing/verification/review), coordinator (planning/orchestration/coordination), pm (requirements/specs/acceptance). Return ONLY the role name in lowercase: architect, developer, qa, coordinator, or pm. No explanation, no punctuation.\" + this.buildMemoryContext(description),\n userPrompt: description,\n temperature: 0.1,\n maxTokens: 20,\n })\n const role = resp.content.trim().toLowerCase()\n if ([\"architect\", \"developer\", \"qa\", \"coordinator\", \"pm\"].includes(role)) {\n return role as \"architect\" | \"developer\" | \"qa\" | \"coordinator\" | \"pm\"\n }\n } catch (error) {\n logParseError('suggestAgentRole', error);\n }\n return null\n }\n\n async suggestSkillSteps(taskDescription: string, successOutput: string): Promise<{\n steps: Array<{ action: string; description: string; tool?: string; expectedOutput: string; rollback?: string }>\n }> {\n const resp = await this.call({\n systemPrompt: \"You are a skill extractor. Given a task description and its successful output, extract reusable procedural steps. Each step should have: action, description, tool (optional), expectedOutput, and rollback (optional). Return as JSON with \\\"steps\\\" array.\" + this.buildMemoryContext(taskDescription),\n userPrompt: `Task: ${taskDescription}\\n\\nSuccessful output:\\n${successOutput}\\n\\nExtract reusable steps as JSON.`,\n jsonMode: true,\n temperature: 0.3,\n })\n try {\n return JSON.parse(resp.content)\n } catch (error) {\n logParseError('suggestSkillSteps JSON parse', error);\n return { steps: [{ action: \"execute\", description: taskDescription, expectedOutput: \"completed\" }] }\n }\n }\n\n private detectProvider(): LLMConfig[\"provider\"] {\n if (process.env.OPENAI_API_KEY || process.env.OPENAI_BASE_URL) return \"openai\"\n if (process.env.ANTHROPIC_API_KEY) return \"anthropic\"\n return \"opencode\"\n }\n\n private async callOpenAI(req: LLMRequest): Promise<LLMResponse> {\n const apiKey = this.config.apiKey ?? process.env.OPENAI_API_KEY ?? \"\"\n const baseUrl = this.config.baseURL ?? process.env.OPENAI_BASE_URL\n if (!apiKey && !baseUrl) return this.fallbackResponse(req)\n\n const body: Record<string, unknown> = {\n model: this.config.model ?? DEFAULT_MODELS.openai,\n messages: [\n { role: \"system\", content: req.systemPrompt },\n { role: \"user\", content: req.userPrompt },\n ],\n max_tokens: req.maxTokens ?? this.config.maxTokens,\n temperature: req.temperature ?? this.config.temperature,\n }\n\n if (this.config.variant) {\n body.variant = this.config.variant\n }\n\n if (req.jsonMode) {\n body.response_format = { type: \"json_object\" }\n }\n\n return this.httpCall(\n this.config.baseURL ?? \"https://api.openai.com/v1/chat/completions\",\n apiKey,\n body,\n )\n }\n\n private async callAnthropic(req: LLMRequest): Promise<LLMResponse> {\n const apiKey = this.config.apiKey ?? process.env.ANTHROPIC_API_KEY\n if (!apiKey) return this.fallbackResponse(req)\n\n const body = {\n model: this.config.model ?? DEFAULT_MODELS.anthropic,\n max_tokens: req.maxTokens ?? this.config.maxTokens,\n temperature: req.temperature ?? this.config.temperature,\n system: req.systemPrompt + (req.jsonMode ? \"\\nYou MUST return valid JSON only.\" : \"\"),\n messages: [{ role: \"user\", content: req.userPrompt }],\n }\n\n return this.httpCall(\n \"https://api.anthropic.com/v1/messages\",\n apiKey,\n body,\n { \"anthropic-version\": \"2023-06-01\" },\n )\n }\n\n private async callLocal(req: LLMRequest): Promise<LLMResponse> {\n try {\n const prompt = req.systemPrompt + \"\\n\\n\" + req.userPrompt\n const output = execFileSync(\"ollama\", [\"run\", this.config.model ?? \"codellama\", prompt], {\n encoding: \"utf-8\",\n timeout: 60000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n return { content: output.trim() }\n } catch (error) {\n logParseError('callLocal ollama', error);\n return this.fallbackResponse(req)\n }\n }\n\n private async callOpenCode(req: LLMRequest): Promise<LLMResponse> {\n // Try direct HTTP call first if we have credentials for any provider\n const openaiKey = this.config.apiKey ?? process.env.OPENAI_API_KEY\n const openaiBaseUrl = this.config.baseURL ?? process.env.OPENAI_BASE_URL\n const anthropicKey = process.env.ANTHROPIC_API_KEY\n if (openaiKey || openaiBaseUrl) {\n return this.callOpenAI(req)\n }\n if (anthropicKey) {\n return this.callAnthropic(req)\n }\n\n // Fall back to OpenCode SDK client (noReply must be false to get a response)\n if (this.opencodeClient && this.pluginSessionId) {\n try {\n const client = this.opencodeClient as {\n session: {\n prompt: (opts: {\n body: { system?: string; noReply?: boolean; parts: Array<{ type: string; text: string }> }\n path: { id: string }\n }) => Promise<{ data?: { parts?: Array<{ type: string; text?: string }> }; parts?: Array<{ type: string; text?: string }> }>\n }\n }\n\n const result = await client.session.prompt({\n body: {\n system: req.jsonMode\n ? `${req.systemPrompt}\\n\\nRespond with ONLY valid JSON. No markdown, no explanation.`\n : req.systemPrompt,\n noReply: false,\n parts: [{ type: \"text\", text: req.userPrompt }],\n },\n path: { id: this.pluginSessionId },\n })\n\n const parts = result.data?.parts ?? result.parts ?? []\n const textPart = parts.find((p: { type: string; text?: string }) => p.type === \"text\")\n const text = textPart?.text ?? \"\"\n\n if (text.trim()) {\n return { content: text.trim(), finishReason: \"stop\" }\n }\n } catch (error) {\n logParseError('callOpenCode', error);\n }\n }\n\n return this.fallbackResponse(req)\n }\n\n private async httpCall(url: string, apiKey: string, body: unknown, extraHeaders: Record<string, string> = {}): Promise<LLMResponse> {\n try {\n const payload = JSON.stringify(body)\n const args = [\n \"-s\", \"-X\", \"POST\", url,\n \"-H\", \"Content-Type: application/json\",\n \"-H\", `Authorization: Bearer ${apiKey}`,\n ]\n for (const [k, v] of Object.entries(extraHeaders)) {\n args.push(\"-H\", `${k}: ${v}`)\n }\n args.push(\"-d\", payload)\n\n const output = execFileSync(\"curl\", args, {\n encoding: \"utf-8\",\n timeout: 60000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n\n const data = JSON.parse(output)\n\n if (data.error) {\n return { content: `LLM error: ${data.error.message ?? JSON.stringify(data.error)}` }\n }\n\n if (data.content) {\n return {\n content: typeof data.content === \"string\" ? data.content : data.content[0]?.text ?? JSON.stringify(data.content),\n usage: data.usage ? { promptTokens: data.usage.input_tokens ?? 0, completionTokens: data.usage.output_tokens ?? 0 } : undefined,\n finishReason: data.stop_reason,\n }\n }\n\n const choice = data.choices?.[0]\n if (choice) {\n return {\n content: choice.message?.content ?? JSON.stringify(choice),\n usage: data.usage ? { promptTokens: data.usage.prompt_tokens ?? 0, completionTokens: data.usage.completion_tokens ?? 0 } : undefined,\n finishReason: choice.finish_reason,\n }\n }\n\n return { content: JSON.stringify(data) }\n } catch (e) {\n return { content: `LLM call failed: ${(e as Error).message}` }\n }\n }\n\n private fallbackResponse(req: LLMRequest): LLMResponse {\n if (req.jsonMode) {\n return { content: `{\"_no_llm\": true}`, finishReason: \"no_llm\" }\n }\n return { content: `[NO_LLM] No LLM configured. Set OPENAI_API_KEY (OpenAI/compatible), ANTHROPIC_API_KEY (Claude), or OPENAI_BASE_URL (local LLM), or run within OpenCode for native LLM access.`, finishReason: \"no_llm\" }\n }\n}\n\nexport const llmEngine = new LLMEngine()\n", "import { LLMEngine } from \"../core/llm.js\"\nimport type { ModelRegistry } from \"../core/model-registry.js\"\nimport type { AgentRole } from \"./coordinator.js\"\nimport { RoleRegistry } from \"./role-registry.js\"\n\nexport interface AgentContext {\n systemPrompt: string\n sessionId: string\n role: AgentRole | string\n taskDescription: string\n pipelineContext?: string\n pendingMessages?: Array<{ from: string; payload: string }>\n sharedMemory?: Array<{ key: string; value: string; writtenBy: string }>\n}\n\nexport interface AgentResult {\n output: string\n success: boolean\n error?: string\n modelUsed?: string\n}\n\n/**\n * Manages isolated LLM runtimes per role + session.\n * Each role gets its own LLMEngine instance with a dedicated session ID,\n * so architect, developer, and QA operate in separate context windows.\n */\nexport class AgentRuntime {\n private engines = new Map<string, LLMEngine>()\n private opencodeClient: unknown = null\n private modelRegistry?: ModelRegistry\n private roleRegistry: RoleRegistry\n\n constructor() {\n this.roleRegistry = new RoleRegistry()\n }\n\n setOpencodeClient(client: unknown): void {\n this.opencodeClient = client\n }\n\n setModelRegistry(registry: ModelRegistry): void {\n this.modelRegistry = registry\n }\n\n getRoleRegistry(): RoleRegistry {\n return this.roleRegistry\n }\n\n /**\n * Get or create an isolated LLM engine for a specific role + session.\n * Each engine has its own sessionId = `${parentSessionId}-${role}`.\n */\n private getEngine(parentSessionId: string, role: string): LLMEngine {\n const key = `${parentSessionId}::${role}`\n if (!this.engines.has(key)) {\n const engine = new LLMEngine()\n engine.setOpencodeClient(this.opencodeClient)\n engine.setSessionId(`${parentSessionId}-${role}`)\n if (this.modelRegistry) engine.setModelRegistry(this.modelRegistry)\n this.engines.set(key, engine)\n }\n return this.engines.get(key)!\n }\n\n /**\n * Execute a task with a dedicated LLM call using the role's system prompt.\n * The engine is isolated per (session, role) pair.\n */\n async execute(ctx: AgentContext): Promise<AgentResult> {\n const engine = this.getEngine(ctx.sessionId, ctx.role)\n const roleDef = this.roleRegistry.getBuiltIn(ctx.role as AgentRole)\n ?? this.roleRegistry.getCustom(ctx.role)\n\n // Build the system prompt from the role definition + context\n const promptParts: string[] = []\n if (roleDef?.prompt) {\n promptParts.push(roleDef.prompt)\n } else {\n promptParts.push(`You are a ${ctx.role} in a software engineering team.`)\n }\n promptParts.push(`\\n\\nCurrent task: ${ctx.taskDescription}`)\n\n if (ctx.pipelineContext) {\n promptParts.push(`\\n\\n## Pipeline Context\\n${ctx.pipelineContext}`)\n }\n if (ctx.pendingMessages && ctx.pendingMessages.length > 0) {\n promptParts.push(`\\n\\n## Pending Messages\\n${ctx.pendingMessages.map(m => `From ${m.from}: ${m.payload}`).join(\"\\n\")}`)\n }\n if (ctx.sharedMemory && ctx.sharedMemory.length > 0) {\n promptParts.push(`\\n\\n## Shared Memory\\n${ctx.sharedMemory.map(m => `[${m.key}] (by ${m.writtenBy}): ${m.value.slice(0, 200)}`).join(\"\\n\")}`)\n }\n\n try {\n const resp = await engine.call({\n systemPrompt: promptParts.join(\"\\n\"),\n userPrompt: ctx.taskDescription,\n temperature: 0.3,\n maxTokens: 4096,\n })\n const output = resp.content\n if (output.startsWith(\"LLM error\") || output.startsWith(\"[NO_LLM]\")) {\n return { output, success: false, error: output }\n }\n return { output, success: true, modelUsed: engine.getCurrentModel() }\n } catch (e) {\n return { output: \"\", success: false, error: (e as Error).message }\n }\n }\n}\n", "import type { AgentRole, AgentTask, SharedMemoryEntry } from \"./coordinator.js\"\nimport type { AgentDef, CustomAgentDef } from \"./role-registry.js\"\nimport type { LLMEngine } from \"../core/llm.js\"\n\nexport interface PipelineStage {\n role: string\n description: string\n validationCriteria?: string[]\n model?: string\n}\n\nexport interface WorkflowPipeline {\n id: string\n name: string\n stages: PipelineStage[]\n createdAt: number\n}\n\nexport interface CrossValidationResult {\n stage: string\n targetStage: string\n issues: Array<{\n severity: \"error\" | \"warning\" | \"info\"\n description: string\n source: string\n }>\n passed: boolean\n summary: string\n}\n\nexport class Orchestrator {\n private pipelines = new Map<string, WorkflowPipeline>()\n private activeRuns = new Map<string, {\n pipelineId: string\n currentStageIndex: number\n stageResults: Map<string, { output: string; issues: string[]; validatedBy: string[] }>\n }>()\n private llmEngine: LLMEngine | null = null\n\n setLLMEngine(engine: LLMEngine): void {\n this.llmEngine = engine\n }\n\n definePipeline(pipeline: WorkflowPipeline): void {\n this.pipelines.set(pipeline.id, pipeline)\n }\n\n getPipeline(id: string): WorkflowPipeline | undefined {\n return this.pipelines.get(id)\n }\n\n listPipelines(): WorkflowPipeline[] {\n return [...this.pipelines.values()]\n }\n\n startRun(runId: string, pipelineId: string): boolean {\n const pipeline = this.pipelines.get(pipelineId)\n if (!pipeline) return false\n this.activeRuns.set(runId, {\n pipelineId,\n currentStageIndex: 0,\n stageResults: new Map(),\n })\n return true\n }\n\n getCurrentStage(runId: string): PipelineStage | null {\n const run = this.activeRuns.get(runId)\n if (!run) return null\n const pipeline = this.pipelines.get(run.pipelineId)\n if (!pipeline) return null\n if (run.currentStageIndex >= pipeline.stages.length) return null\n return pipeline.stages[run.currentStageIndex]\n }\n\n advanceStage(runId: string, output: string, issues: string[]): PipelineStage | null {\n const run = this.activeRuns.get(runId)\n if (!run) return null\n const pipeline = this.pipelines.get(run.pipelineId)\n if (!pipeline) return null\n\n const currentStage = pipeline.stages[run.currentStageIndex]\n if (currentStage) {\n run.stageResults.set(currentStage.role, { output, issues, validatedBy: [] })\n }\n\n run.currentStageIndex++\n if (run.currentStageIndex >= pipeline.stages.length) return null\n return pipeline.stages[run.currentStageIndex]\n }\n\n getStageResult(runId: string, role: string): { output: string; issues: string[]; validatedBy: string[] } | undefined {\n return this.activeRuns.get(runId)?.stageResults.get(role)\n }\n\n getAllStageResults(runId: string): Map<string, { output: string; issues: string[]; validatedBy: string[] }> {\n return this.activeRuns.get(runId)?.stageResults ?? new Map()\n }\n\n async crossValidate(\n targetRole: string,\n output: string,\n allStageResults: Map<string, { output: string; issues: string[]; validatedBy: string[] }>,\n sharedMemory: SharedMemoryEntry[],\n ): Promise<CrossValidationResult> {\n const issues: CrossValidationResult[\"issues\"] = []\n\n // Basic structural checks\n for (const [role, result] of allStageResults) {\n if (role === targetRole) continue\n if (!result.output || result.output.trim().length === 0) {\n issues.push({ severity: \"warning\", description: `Output from ${role} stage appears empty or incomplete`, source: role })\n }\n }\n\n // Semantic validation via LLM (if available)\n if (this.llmEngine && allStageResults.size >= 2) {\n const previousStages = [...allStageResults].filter(([r]) => r !== targetRole)\n const previousOutputs = previousStages.map(([r, res]) => `### ${r}\\n${res.output.slice(0, 1000)}`).join(\"\\n\\n\")\n\n const validationPrompt = `You are a cross-validator. Compare the outputs of different stages in a software engineering pipeline. Identify any inconsistencies, contradictions, or missing pieces between stages.\n\nPrevious stage outputs:\n${previousOutputs}\n\nCurrent stage (${targetRole}) output:\n${output.slice(0, 1500)}\n\nCheck:\n1. Does the current output contradict any previous stage?\n2. Are there requirements from earlier stages that are not addressed?\n3. Are there any gaps or missing pieces?\n\nReturn your analysis as JSON with:\n- \"passed\": boolean\n- \"issues\": array of { \"severity\": \"error\"|\"warning\"|\"info\", \"description\": string, \"source\": string }\n- \"summary\": string`\n\n try {\n const llmResp = await this.llmEngine.call({\n systemPrompt: \"You are a strict cross-validator. Compare pipeline stage outputs for consistency.\",\n userPrompt: validationPrompt,\n jsonMode: true,\n temperature: 0.1,\n maxTokens: 1024,\n })\n const parsed = JSON.parse(llmResp.content)\n if (parsed.issues && Array.isArray(parsed.issues)) {\n for (const issue of parsed.issues) {\n if (issue.severity && issue.description && !issues.some(i => i.description === issue.description)) {\n issues.push({\n severity: issue.severity as \"error\" | \"warning\" | \"info\",\n description: issue.description,\n source: issue.source ?? \"llm-validator\",\n })\n }\n }\n }\n } catch { /* LLM call failed, fall through */ }\n }\n\n const passed = issues.filter(i => i.severity === \"error\").length === 0\n const summary = passed\n ? `Cross-validation passed: ${allStageResults.size} stages reviewed, no critical issues`\n : `Cross-validation found ${issues.length} issue(s): ${issues.filter(i => i.severity === \"error\").length} error(s), ${issues.filter(i => i.severity === \"warning\").length} warning(s)`\n\n return { stage: targetRole, targetStage: targetRole, issues, passed, summary }\n }\n\n buildContextForRole(role: string, runId: string, sharedMemory: SharedMemoryEntry[]): string {\n const parts: string[] = []\n const run = this.activeRuns.get(runId)\n if (!run) return \"\"\n\n const pipeline = this.pipelines.get(run.pipelineId)\n if (pipeline) {\n parts.push(`## Pipeline: ${pipeline.name}`)\n parts.push(pipeline.stages.map((s, i) =>\n ` ${i < run.currentStageIndex ? \"\u2705\" : i === run.currentStageIndex ? \"\u25B6\" : \"\u23F3\"} **${s.role}**: ${s.description}`\n ).join(\"\\n\"))\n parts.push(\"\")\n }\n\n for (const [prevRole, result] of run.stageResults) {\n if (prevRole === role) continue\n parts.push(`### Output from ${prevRole}`)\n parts.push(result.output.slice(0, 500))\n if (result.issues.length > 0) {\n parts.push(`Issues flagged: ${result.issues.join(\", \")}`)\n }\n parts.push(\"\")\n }\n\n if (sharedMemory.length > 0) {\n parts.push(\"### Shared Memory\")\n for (const entry of sharedMemory) {\n parts.push(`[${entry.key}] (by ${entry.writtenBy}): ${entry.value.slice(0, 200)}`)\n }\n }\n\n return parts.join(\"\\n\")\n }\n\n getSuggestedPipeline(description: string): string {\n const d = description.toLowerCase()\n if (d.includes(\"feature\") || d.includes(\"new\") || d.includes(\"implement\") || d.includes(\"add\")) return \"feature-dev\"\n if (d.includes(\"fix\") || d.includes(\"bug\") || d.includes(\"repair\")) return \"fix-verify\"\n if (d.includes(\"refactor\") || d.includes(\"restructure\") || d.includes(\"extract\")) return \"refactor-review\"\n if (d.includes(\"deploy\") || d.includes(\"release\") || d.includes(\"ci\") || d.includes(\"cd\")) return \"deploy-check\"\n return \"feature-dev\"\n }\n\n getBuiltInPipelines(): WorkflowPipeline[] {\n return [\n {\n id: \"feature-dev\",\n name: \"Feature Development\",\n stages: [\n { role: \"pm\", description: \"Define requirements and acceptance criteria\" },\n { role: \"architect\", description: \"Design architecture and interface contracts\" },\n { role: \"developer\", description: \"Implement the feature following the architecture\" },\n { role: \"qa\", description: \"Review implementation for correctness, edge cases, and regressions\" },\n ],\n createdAt: Date.now(),\n },\n {\n id: \"fix-verify\",\n name: \"Bug Fix + Verify\",\n stages: [\n { role: \"qa\", description: \"Reproduce the bug and document the exact failure\" },\n { role: \"developer\", description: \"Fix the root cause\" },\n { role: \"qa\", description: \"Verify the fix and run regression tests\" },\n ],\n createdAt: Date.now(),\n },\n {\n id: \"refactor-review\",\n name: \"Refactor + Review\",\n stages: [\n { role: \"architect\", description: \"Design the new structure and migration path\" },\n { role: \"developer\", description: \"Execute the refactoring\" },\n { role: \"qa\", description: \"Verify no regressions from refactoring\" },\n ],\n createdAt: Date.now(),\n },\n {\n id: \"deploy-check\",\n name: \"Deploy Checklist\",\n stages: [\n { role: \"pm\", description: \"Confirm scope and readiness\" },\n { role: \"qa\", description: \"Run full regression suite and check for blockers\" },\n { role: \"coordinator\", description: \"Orchestrate the deploy and monitor\" },\n ],\n createdAt: Date.now(),\n },\n ]\n }\n}\n", "export interface SkillMeta {\n format: \"agentic-skill/v1\"\n id: string\n name: string\n version: number\n author: \"agent\" | \"human\"\n agentRole?: string\n}\n\nexport interface SkillDefinition {\n meta: SkillMeta\n trigger: {\n pattern: string\n keywords: string[]\n context: string[]\n }\n workflow: {\n steps: SkillStep[]\n estimatedDuration: string\n parallelizable: boolean\n }\n quality: {\n successRate: number\n usageCount: number\n failureScenarios: string[]\n }\n audit: {\n createdAt: string\n lastUsed: string\n lastModified: string\n modifiedBy: string\n }\n}\n\nexport interface SkillStep {\n order: number\n action: string\n description: string\n tool?: string\n expectedOutput: string\n rollback?: string\n}\n\nexport function createSkillDefinition(\n name: string,\n triggerPattern: string,\n keywords: string[],\n steps: { action: string; description: string; tool?: string; expectedOutput: string; rollback?: string }[],\n triggerContext?: string[],\n): SkillDefinition {\n const now = new Date().toISOString()\n return {\n meta: {\n format: \"agentic-skill/v1\",\n id: `skill-${Date.now()}`,\n name,\n version: 1,\n author: \"agent\",\n },\n trigger: {\n pattern: triggerPattern,\n keywords: keywords.slice(0, 10),\n context: triggerContext ?? [],\n },\n workflow: {\n steps: steps.map((s, i) => ({\n order: i + 1,\n action: s.action,\n description: s.description,\n tool: s.tool,\n expectedOutput: s.expectedOutput,\n rollback: s.rollback ?? inferRollback(s.action, s.description),\n })),\n estimatedDuration: `${steps.length * 2}m`,\n parallelizable: steps.some(s => s.tool === \"agentic_parallel\"),\n },\n quality: {\n successRate: 1.0,\n usageCount: 1,\n failureScenarios: [],\n },\n audit: {\n createdAt: now,\n lastUsed: now,\n lastModified: now,\n modifiedBy: \"system\",\n },\n }\n}\n\nfunction inferRollback(action: string, description: string): string | undefined {\n const lower = action.toLowerCase() + \" \" + description.toLowerCase()\n\n if (lower.includes(\"create\") || lower.includes(\"add\") || lower.includes(\"write\")) {\n return \"Delete the created file or revert the addition\"\n }\n if (lower.includes(\"delete\") || lower.includes(\"remove\")) {\n return \"Restore from git: git checkout -- <file>\"\n }\n if (lower.includes(\"modify\") || lower.includes(\"update\") || lower.includes(\"edit\")) {\n return \"Revert changes: git checkout -- <file> or git revert <commit>\"\n }\n if (lower.includes(\"install\") || lower.includes(\"add dep\")) {\n return \"Remove dependency: npm uninstall <package>\"\n }\n if (lower.includes(\"migrate\")) {\n return \"Run down migration: <tool> migrate down\"\n }\n if (lower.includes(\"rename\") || lower.includes(\"move\")) {\n return \"Move file back to original location\"\n }\n\n return \"Undo changes via git: git stash or git checkout\"\n}\n\nexport function serializeSkill(skill: SkillDefinition): string {\n return JSON.stringify(skill, null, 2)\n}\n\nexport function deserializeSkill(json: string): SkillDefinition | null {\n try {\n const parsed = JSON.parse(json)\n if (parsed?.meta?.format?.startsWith(\"agentic-skill/\")) return parsed as SkillDefinition\n return null\n } catch {\n return null\n }\n}\n\nexport function inspectSkill(skill: SkillDefinition): string {\n let out = `## Skill: ${skill.meta.name}\\n\\n`\n out += `**Format:** ${skill.meta.format}\\n`\n out += `**Version:** ${skill.meta.version}\\n`\n out += `**Author:** ${skill.meta.author}\\n`\n out += `**Success Rate:** ${(skill.quality.successRate * 100).toFixed(0)}%\\n`\n out += `**Usage:** ${skill.quality.usageCount}\\n\\n`\n out += `### Trigger\\n- Pattern: \"${skill.trigger.pattern}\"\\n- Keywords: ${skill.trigger.keywords.join(\", \")}\\n\\n`\n out += `### Workflow\\n`\n for (const step of skill.workflow.steps) {\n out += `${step.order}. **${step.action}** \u2014 ${step.description}\\n`\n if (step.tool) out += ` Tool: \\`${step.tool}\\`\\n`\n out += ` Expected: ${step.expectedOutput}\\n`\n }\n return out\n}\n", "export const MEMORY_SCHEMA_VERSION = 1\n\nexport interface SchemaMigration {\n from: number\n to: number\n description: string\n apply: (data: unknown) => unknown\n}\n\nexport class MemorySchemaVersion {\n private migrations: SchemaMigration[] = []\n\n constructor() {\n this.registerBuiltIn()\n }\n\n private registerBuiltIn(): void {\n this.registerMigration({\n from: 0,\n to: 1,\n description: \"Initial schema: add schema_version and timestamp fields to all memory objects\",\n apply: (data: unknown) => {\n const d = data as Record<string, unknown>\n return {\n schema_version: 1,\n ...d,\n migrated_at: new Date().toISOString(),\n _migration: \"v0\u2192v1: added schema envelope\",\n }\n },\n })\n }\n\n registerMigration(migration: SchemaMigration): void {\n const exists = this.migrations.some(m => m.from === migration.from && m.to === migration.to)\n if (!exists) {\n this.migrations.push(migration)\n this.migrations.sort((a, b) => a.from - b.from)\n }\n }\n\n upgrade<T>(data: T, currentVersion: number): T {\n let result = data\n for (const m of this.migrations) {\n if (m.from === currentVersion) {\n result = m.apply(result) as T\n currentVersion = m.to\n }\n }\n return result\n }\n\n getMigrations(): SchemaMigration[] {\n return [...this.migrations]\n }\n\n static currentVersion(): number {\n return MEMORY_SCHEMA_VERSION\n }\n}\n\nexport function createMemoryEnvelope<T>(data: T, type: string): { schema_version: number; type: string; data: T; created_at: string } {\n return {\n schema_version: MEMORY_SCHEMA_VERSION,\n type,\n data,\n created_at: new Date().toISOString(),\n }\n}\n\nexport function parseMemoryEnvelope<T>(envelope: unknown): { version: number; type: string; data: T; createdAt: string } | null {\n const e = envelope as Record<string, unknown> | undefined\n if (!e || typeof e.schema_version !== \"number\" || typeof e.type !== \"string\" || !e.data) return null\n return {\n version: e.schema_version,\n type: e.type,\n data: e.data as T,\n createdAt: (typeof e.created_at === \"string\" ? e.created_at : new Date().toISOString()),\n }\n}\n", "import { type SkillDefinition, type SkillStep, type SkillMeta, createSkillDefinition, inspectSkill, serializeSkill, deserializeSkill } from \"./skill-format.js\"\nimport { createMemoryEnvelope, parseMemoryEnvelope, MEMORY_SCHEMA_VERSION } from \"./schema-version.js\"\n\nexport { type SkillDefinition, type SkillStep, type SkillMeta, inspectSkill, serializeSkill, deserializeSkill, createSkillDefinition }\n\nexport interface SkillRecord {\n definition: SkillDefinition\n usageCount: number\n successRate: number\n lastUsed: string\n}\n\nexport class SkillStore {\n private skills = new Map<string, SkillRecord>()\n\n async extract(turn: { role: string; content: string }, contextTags: string[] = []): Promise<SkillRecord | null> {\n const content = turn.content\n\n if (!this.isExtractablePattern(content)) return null\n\n const name = this.extractName(content)\n if (!name) return null\n\n const steps = this.extractSteps(content)\n if (steps.length === 0) return null\n\n const existing = [...this.skills.values()].find(s => s.definition.meta.name === name)\n if (existing) {\n existing.usageCount++\n existing.successRate = (existing.successRate * (existing.usageCount - 1) + 1) / existing.usageCount\n existing.lastUsed = new Date().toISOString()\n existing.definition.quality.usageCount = existing.usageCount\n existing.definition.quality.successRate = existing.successRate\n existing.definition.audit.lastUsed = existing.lastUsed\n existing.definition.audit.lastModified = existing.lastUsed\n existing.definition.audit.modifiedBy = \"agent\"\n return existing\n }\n\n const keywords = this.extractKeywords(content)\n const inferredTools = this.inferTools(content)\n\n const def = createSkillDefinition(\n name,\n this.extractPattern(content),\n keywords,\n steps.map((s, i) => ({\n action: this.inferAction(s),\n description: s,\n tool: inferredTools[i] ?? this.inferToolForStep(s),\n expectedOutput: `Step ${i + 1} completed`,\n })),\n contextTags.length > 0 ? contextTags : undefined,\n )\n\n const record: SkillRecord = {\n definition: def,\n usageCount: 1,\n successRate: 1.0,\n lastUsed: new Date().toISOString(),\n }\n\n this.skills.set(def.meta.id, record)\n return record\n }\n\n find(query: string): SkillRecord[] {\n const q = query.toLowerCase()\n return [...this.skills.values()]\n .filter(s =>\n s.definition.meta.name.toLowerCase().includes(q) ||\n s.definition.trigger.pattern.toLowerCase().includes(q) ||\n s.definition.meta.name.toLowerCase().includes(q)\n )\n .sort((a, b) => b.successRate - a.successRate)\n .slice(0, 5)\n }\n\n getAll(): SkillRecord[] {\n return [...this.skills.values()].sort((a, b) => b.lastUsed.localeCompare(a.lastUsed))\n }\n\n getById(id: string): SkillRecord | undefined {\n return this.skills.get(id)\n }\n\n reportFailure(skillId: string): boolean {\n const record = this.skills.get(skillId)\n if (!record) return false\n\n record.usageCount++\n record.successRate = (record.successRate * (record.usageCount - 1)) / record.usageCount\n record.definition.quality.usageCount = record.usageCount\n record.definition.quality.successRate = record.successRate\n record.definition.quality.failureScenarios.push(`Failed at ${new Date().toISOString()}`)\n record.definition.audit.lastModified = new Date().toISOString()\n return true\n }\n\n exportEnvelope(skillId: string): string | null {\n const record = this.skills.get(skillId)\n if (!record) return null\n return JSON.stringify(createMemoryEnvelope(record.definition, \"skill\"), null, 2)\n }\n\n importFromEnvelope(json: string): boolean {\n const parsed = parseMemoryEnvelope<SkillDefinition>(JSON.parse(json))\n if (!parsed || parsed.type !== \"skill\") return false\n\n const existing = this.skills.get(parsed.data.meta.id)\n if (existing) {\n existing.definition = parsed.data\n existing.usageCount = parsed.data.quality.usageCount\n existing.successRate = parsed.data.quality.successRate\n existing.lastUsed = parsed.data.audit.lastUsed\n return true\n }\n\n this.skills.set(parsed.data.meta.id, {\n definition: parsed.data,\n usageCount: parsed.data.quality.usageCount,\n successRate: parsed.data.quality.successRate,\n lastUsed: parsed.data.audit.lastUsed,\n })\n return true\n }\n\n private isExtractablePattern(content: string): boolean {\n const lower = content.toLowerCase()\n return (lower.includes(\"\u2705\") || lower.includes(\"success\")) && (lower.includes(\"step\") || lower.includes(\"complete\") || lower.includes(\"done\"))\n }\n\n private extractName(content: string): string | null {\n const patterns = [\n /(?:created|added|implemented|built)\\s+(\\w[\\w\\s]{3,40})/i,\n /Step\\s+\\w+:\\s*(.+?)(?:\\.|$)/i,\n /Completed\\s+(.+?)(?:\\.|$)/i,\n ]\n for (const p of patterns) {\n const m = content.match(p)\n if (m) return m[1].trim().slice(0, 50)\n }\n return null\n }\n\n private extractSteps(content: string): string[] {\n const steps: string[] = []\n const lines = content.split(\"\\n\")\n for (const line of lines) {\n const m = line.match(/^\\d+\\.\\s+(.+)/)\n if (m) steps.push(m[1].trim())\n }\n return steps\n }\n\n private extractPattern(content: string): string {\n const keywords = content.match(/\\b(\\w{4,})\\b/g)\n return (keywords ?? []).slice(0, 5).join(\" \")\n }\n\n private extractKeywords(content: string): string[] {\n return [...new Set(content.match(/\\b(\\w{3,})\\b/g) ?? [])].slice(0, 10)\n }\n\n private inferAction(stepDesc: string): string {\n const lower = stepDesc.toLowerCase()\n if (lower.includes(\"create\") || lower.includes(\"add\") || lower.includes(\"write\")) return \"create\"\n if (lower.includes(\"delete\") || lower.includes(\"remove\")) return \"delete\"\n if (lower.includes(\"modify\") || lower.includes(\"update\") || lower.includes(\"edit\") || lower.includes(\"change\")) return \"modify\"\n if (lower.includes(\"install\") || lower.includes(\"setup\")) return \"install\"\n if (lower.includes(\"test\") || lower.includes(\"verify\") || lower.includes(\"check\")) return \"verify\"\n if (lower.includes(\"run\") || lower.includes(\"exec\")) return \"execute\"\n if (lower.includes(\"review\") || lower.includes(\"audit\") || lower.includes(\"inspect\")) return \"review\"\n return \"execute\"\n }\n\n private inferToolForStep(stepDesc: string): string | undefined {\n const lower = stepDesc.toLowerCase()\n if (lower.includes(\"read\") || lower.includes(\"check file\")) return \"read\"\n if (lower.includes(\"write\") || lower.includes(\"create file\")) return \"write\"\n if (lower.includes(\"edit\") || lower.includes(\"modify\")) return \"edit\"\n if (lower.includes(\"run\") || lower.includes(\"test\") || lower.includes(\"exec\")) return \"bash\"\n if (lower.includes(\"install\") || lower.includes(\"npm\") || lower.includes(\"pip\")) return \"bash\"\n if (lower.includes(\"search\") || lower.includes(\"find\")) return \"grep\"\n return undefined\n }\n\n private inferTools(content: string): string[] {\n const tools: string[] = []\n const toolPatterns: Array<{ pattern: RegExp; tool: string }> = [\n { pattern: /\\b(read|Read)\\b/, tool: \"read\" },\n { pattern: /\\b(edit|Edit)\\b/, tool: \"edit\" },\n { pattern: /\\b(write|Write)\\b/, tool: \"write\" },\n { pattern: /\\b(bash|Bash|exec|run)\\b/, tool: \"bash\" },\n { pattern: /\\b(grep|search|find)\\b/, tool: \"grep\" },\n ]\n for (const { pattern, tool } of toolPatterns) {\n if (pattern.test(content)) tools.push(tool)\n }\n return [...new Set(tools)]\n }\n}\n", "import { createMemoryEnvelope, parseMemoryEnvelope, MEMORY_SCHEMA_VERSION, MemorySchemaVersion } from \"./schema-version.js\"\n\nexport interface Episode {\n id: string\n sessionId: string\n planGoal: string\n summary: string\n outcome: \"success\" | \"partial\" | \"failed\"\n decisions: string[]\n filesChanged: string[]\n timestamp: string\n tags: string[]\n}\n\nexport interface EpisodeEnvelope {\n schema_version: number\n type: \"episode\"\n data: Episode\n created_at: string\n}\n\nexport class EpisodicStore {\n private episodes: Episode[] = []\n private migrator = new MemorySchemaVersion()\n private onRecord?: (episode: Episode) => void\n\n setPersistenceCallback(cb: (episode: Episode) => void): void {\n this.onRecord = cb\n }\n\n record(sessionId: string, planGoal: string, outcome: Episode[\"outcome\"], decisions: string[], filesChanged: string[]): Episode {\n const episode: Episode = {\n id: `ep-${Date.now()}`,\n sessionId,\n planGoal,\n summary: `${outcome === \"success\" ? \"Completed\" : outcome === \"partial\" ? \"Partially completed\" : \"Failed\"}: ${planGoal}`,\n outcome,\n decisions,\n filesChanged,\n timestamp: new Date().toISOString(),\n tags: this.extractTags(planGoal, decisions),\n }\n\n this.episodes.push(episode)\n this.onRecord?.(episode)\n return episode\n }\n\n search(query: string): Episode[] {\n const q = query.toLowerCase()\n return this.episodes\n .filter(e =>\n e.planGoal.toLowerCase().includes(q) ||\n e.tags.some(t => t.includes(q)) ||\n e.decisions.some(d => d.toLowerCase().includes(q)) ||\n e.filesChanged.some(f => f.toLowerCase().includes(q))\n )\n .sort((a, b) => b.timestamp.localeCompare(a.timestamp))\n .slice(0, 10)\n }\n\n getRecent(limit = 10): Episode[] {\n return [...this.episodes]\n .sort((a, b) => b.timestamp.localeCompare(a.timestamp))\n .slice(0, limit)\n }\n\n getBySession(sessionId: string): Episode[] {\n return this.episodes.filter(e => e.sessionId === sessionId)\n }\n\n getStats(): { total: number; successful: number; partial: number; failed: number } {\n return {\n total: this.episodes.length,\n successful: this.episodes.filter(e => e.outcome === \"success\").length,\n partial: this.episodes.filter(e => e.outcome === \"partial\").length,\n failed: this.episodes.filter(e => e.outcome === \"failed\").length,\n }\n }\n\n exportEpisode(id: string): EpisodeEnvelope | null {\n const ep = this.episodes.find(e => e.id === id)\n if (!ep) return null\n return createMemoryEnvelope(ep, \"episode\") as EpisodeEnvelope\n }\n\n importEpisode(envelope: EpisodeEnvelope): boolean {\n const parsed = parseMemoryEnvelope<Episode>(envelope)\n if (!parsed || parsed.type !== \"episode\") return false\n\n if (parsed.version < MEMORY_SCHEMA_VERSION) {\n const upgraded = this.migrator.upgrade(parsed.data, parsed.version)\n this.episodes.push(upgraded)\n return true\n }\n\n if (!this.episodes.some(e => e.id === parsed.data.id)) {\n this.episodes.push(parsed.data)\n return true\n }\n return false\n }\n\n exportAll(): EpisodeEnvelope[] {\n return this.episodes.map(e => createMemoryEnvelope(e, \"episode\") as EpisodeEnvelope)\n }\n\n getMigrator(): MemorySchemaVersion {\n return this.migrator\n }\n\n private extractTags(goal: string, decisions: string[]): string[] {\n const words = [...goal.split(/\\s+/), ...decisions.join(\" \").split(/\\s+/)]\n return [...new Set(words.filter(w => w.length > 3).map(w => w.toLowerCase()))]\n }\n}\n", "import { existsSync, readFileSync } from \"node:fs\"\nimport { resolve, isAbsolute } from \"node:path\"\n\nexport interface HallucinationCheck {\n passed: boolean\n claims: ClaimResult[]\n summary: string\n}\n\nexport interface ClaimResult {\n claim: string\n type: \"file_exists\" | \"function_exists\" | \"import_valid\" | \"api_signature\"\n verified: boolean\n actual?: string\n expected?: string\n}\n\nexport class HallucinationGuard {\n private worktree: string\n\n constructor(worktree: string) {\n this.worktree = worktree\n }\n\n check(executionOutput: string, modifiedFiles: string[]): HallucinationCheck {\n const claims: ClaimResult[] = []\n\n const fileClaims = this.extractFileClaims(executionOutput)\n for (const claim of fileClaims) {\n const resolved = this.resolveSafe(claim)\n const exists = resolved ? existsSync(resolved) : false\n claims.push({\n claim,\n type: \"file_exists\",\n verified: exists,\n actual: exists ? \"exists\" : \"does not exist\",\n expected: \"exists\",\n })\n }\n\n const funcClaims = this.extractFunctionClaims(executionOutput)\n for (const claim of funcClaims) {\n const resolved = this.resolveSafe(claim.file)\n const found = resolved ? this.functionExists(claim.function, resolved, modifiedFiles) : false\n claims.push({\n claim: `${claim.function} in ${claim.file}`,\n type: \"function_exists\",\n verified: found,\n actual: found ? \"found\" : \"not found\",\n expected: \"found\",\n })\n }\n\n const importClaims = this.extractImportClaims(executionOutput)\n for (const claim of importClaims) {\n const resolved = this.resolveSafe(claim)\n const exists = resolved ? existsSync(resolved) : false\n claims.push({\n claim,\n type: \"import_valid\",\n verified: exists,\n actual: exists ? \"exists\" : \"missing\",\n expected: \"exists\",\n })\n }\n\n const sigClaims = this.extractApiSignatureClaims(executionOutput, modifiedFiles)\n for (const claim of sigClaims) {\n const resolved = this.resolveSafe(claim.file)\n const sigValid = resolved ? this.verifyApiSignature(claim.method, claim.file, resolved) : false\n claims.push({\n claim: `${claim.method} in ${claim.file}`,\n type: \"api_signature\",\n verified: sigValid,\n actual: sigValid ? \"signature matches\" : \"signature mismatch or not found\",\n expected: \"signature exists\",\n })\n }\n\n const passed = claims.every(c => c.verified)\n const failedCount = claims.filter(c => !c.verified).length\n\n return {\n passed,\n claims,\n summary: passed\n ? \"All claims verified.\"\n : `${failedCount} unverified claim(s) found. These statements may be hallucinations.`,\n }\n }\n\n private resolveSafe(claim: string): string | null {\n const normalized = claim.replace(/['\"]/g, \"\")\n if (isAbsolute(normalized)) {\n if (!normalized.startsWith(this.worktree)) return null\n return normalized\n }\n const resolved = resolve(this.worktree, normalized)\n if (!resolved.startsWith(this.worktree)) return null\n return resolved\n }\n\n private extractFileClaims(output: string): string[] {\n const patterns = [\n /(?:created|wrote|generated|saved)\\s+['\"]?([\\w/.\\-]+\\.(?:ts|js|tsx|jsx|json|py|go|rs|md|yaml|yml|toml))['\"]?/gi,\n /(?:in|at|to)\\s+['\"]?([\\w/.\\-]+\\.(?:ts|js|tsx|jsx|py|go|rs|md))['\"]?/gi,\n ]\n\n const files = new Set<string>()\n for (const pattern of patterns) {\n for (const match of output.matchAll(pattern)) {\n const file = match[1]\n if (file && file.length > 2) files.add(file)\n }\n }\n\n return [...files]\n }\n\n private extractFunctionClaims(output: string): Array<{ function: string; file: string }> {\n const results: Array<{ function: string; file: string }> = []\n const pattern = /(?:added|implemented|created|modified)\\s+(\\w+)\\s+(?:in|to|at)\\s+['\"]?([\\w/.\\-]+)['\"]?/gi\n\n for (const match of output.matchAll(pattern)) {\n results.push({ function: match[1], file: match[2] })\n }\n\n return results\n }\n\n private extractImportClaims(output: string): string[] {\n const files = new Set<string>()\n const pattern = /(?:import|require)\\s+.*?['\"](.+?)['\"]/g\n\n for (const match of output.matchAll(pattern)) {\n const imp = match[1]\n if (imp && imp.length > 1) files.add(imp)\n }\n\n return [...files]\n }\n\n private extractApiSignatureClaims(output: string, _modifiedFiles: string[]): Array<{ method: string; file: string }> {\n const results: Array<{ method: string; file: string }> = []\n\n const patterns = [\n /(?:calls|invokes|uses|references)\\s+(\\w+)\\s+(?:from|in)\\s+['\"]?([\\w/.\\-]+\\.(?:ts|js|py|go|rs))['\"]?/gi,\n /(?:API|endpoint|method|function)\\s+(\\w+)\\s+(?:in|at)\\s+['\"]?([\\w/.\\-]+\\.(?:ts|js|py|go|rs))['\"]?/gi,\n /(?:returns|exports)\\s+(\\w+)\\s+(?:from)\\s+['\"]?([\\w/.\\-]+\\.(?:ts|js|py|go|rs))['\"]?/gi,\n ]\n\n for (const pattern of patterns) {\n for (const match of output.matchAll(pattern)) {\n results.push({ method: match[1], file: match[2] })\n }\n }\n\n return results\n }\n\n private verifyApiSignature(methodName: string, relativePath: string, absolutePath: string): boolean {\n try {\n const content = readFileSync(absolutePath, \"utf-8\")\n\n const isPython = relativePath.endsWith(\".py\")\n const isGo = relativePath.endsWith(\".go\")\n const isRust = relativePath.endsWith(\".rs\")\n\n if (isPython) {\n const defPattern = new RegExp(`def\\\\s+${methodName}\\\\s*\\\\(`)\n const classPattern = new RegExp(`class\\\\s+${methodName}\\\\s*[(:]`)\n return defPattern.test(content) || classPattern.test(content)\n }\n\n if (isGo) {\n const funcPattern = new RegExp(`func\\\\s+(?:\\\\(\\\\w+\\\\s+\\\\*?\\\\w+\\\\)\\\\s+)?${methodName}\\\\s*\\\\(`)\n return funcPattern.test(content)\n }\n\n if (isRust) {\n const fnPattern = new RegExp(`(?:pub\\\\s+)?fn\\\\s+${methodName}\\\\s*[<(]`)\n const implPattern = new RegExp(`impl\\\\s+.*\\\\{[^}]*fn\\\\s+${methodName}\\\\s*[<(]`)\n return fnPattern.test(content) || implPattern.test(content)\n }\n\n const patterns = [\n new RegExp(`(?:function|const|let|var|export\\\\s+(?:const|function|class|default|async\\\\s+function))\\\\s+${methodName}\\\\b`),\n new RegExp(`${methodName}\\\\s*[=(:]`),\n new RegExp(`(?:async\\\\s+)?${methodName}\\\\s*\\\\(`),\n ]\n return patterns.some(p => p.test(content))\n } catch {\n return false\n }\n }\n\n private functionExists(funcName: string, file: string, _knownFiles: string[]): boolean {\n try {\n const content = readFileSync(file, \"utf-8\")\n const patterns = [\n new RegExp(`(?:function|const|let|var|export\\\\s+(?:const|function|class|default|async\\\\s+function))\\\\s+${funcName}\\\\b`),\n new RegExp(`${funcName}\\\\s*[=(:]`),\n new RegExp(`(?:async\\\\s+)?${funcName}\\\\s*\\\\(`),\n ]\n return patterns.some(p => p.test(content))\n } catch {\n return false\n }\n }\n}\n", "import type { Subtask } from \"./intent-parser.js\"\nimport type { LLMEngine } from \"./llm.js\"\nimport { execFileSync } from \"node:child_process\"\nimport { writeFileSync, mkdirSync, existsSync } from \"node:fs\"\nimport { join, dirname } from \"node:path\"\n\nexport interface ParallelPlan {\n phases: Phase[]\n maxParallelism: number\n}\n\nexport interface Phase {\n index: number\n steps: Subtask[]\n canRunInParallel: boolean\n}\n\nexport interface ParallelExecutionResult {\n stepId: string\n success: boolean\n output?: string\n error?: string\n filesModified: string[]\n}\n\nexport type StepRunner = (step: Subtask) => Promise<ParallelExecutionResult>\n\nexport interface LLMStepRunnerOptions {\n llmEngine: LLMEngine\n projectDir: string\n planGoal: string\n sessionId: string\n opencodePath?: string\n verbose?: boolean\n}\n\nexport interface ConcurrentExecutionReport {\n phaseResults: Array<{\n phaseIndex: number\n steps: Array<{ id: string; description: string }>\n results: ParallelExecutionResult[]\n }>\n totalSteps: number\n completedSteps: number\n failedSteps: number\n totalDurationMs: number\n summary: string\n}\n\nexport class ParallelExecutor {\n analyzeParallelism(subtasks: Subtask[]): ParallelPlan {\n const phases: Phase[] = []\n const completed = new Set<string>()\n const remaining = new Set(subtasks.map(s => s.id))\n\n let phaseIndex = 0\n while (remaining.size > 0) {\n const ready: Subtask[] = []\n for (const step of subtasks) {\n if (!remaining.has(step.id)) continue\n if (step.dependsOn.every(d => completed.has(d))) {\n ready.push(step)\n }\n }\n\n if (ready.length === 0) {\n // Circular dependency or all blocked\n const leftover = subtasks.filter(s => remaining.has(s.id))\n phases.push({ index: phaseIndex++, steps: leftover, canRunInParallel: false })\n break\n }\n\n for (const step of ready) {\n remaining.delete(step.id)\n completed.add(step.id)\n }\n\n phases.push({ index: phaseIndex++, steps: ready, canRunInParallel: ready.length > 1 })\n }\n\n return {\n phases,\n maxParallelism: Math.max(...phases.map(p => p.steps.length), 1),\n }\n }\n\n async executePhase(\n phase: Phase,\n runner: StepRunner,\n abortOnFailure = false,\n ): Promise<ParallelExecutionResult[]> {\n if (!phase.canRunInParallel || phase.steps.length <= 1) {\n const results: ParallelExecutionResult[] = []\n for (const step of phase.steps) {\n const result = await runner(step)\n results.push(result)\n if (abortOnFailure && !result.success) break\n }\n return results\n }\n\n const promises = phase.steps.map(step => runner(step))\n const results = await Promise.all(promises)\n\n if (abortOnFailure && results.some(r => !r.success)) {\n return results\n }\n\n return results\n }\n\n async executeAll(\n plan: ParallelPlan,\n runner: StepRunner,\n abortOnFailure = false,\n ): Promise<ParallelExecutionResult[]> {\n const allResults: ParallelExecutionResult[] = []\n\n for (const phase of plan.phases) {\n const phaseResults = await this.executePhase(phase, runner, abortOnFailure)\n allResults.push(...phaseResults)\n\n if (abortOnFailure && phaseResults.some(r => !r.success)) {\n break\n }\n }\n\n return allResults\n }\n\n suggestParallelTasks(subtasks: Subtask[], currentlyCompleted: string[]): { taskId: string; parallelGroup: number }[] {\n const completed = new Set(currentlyCompleted)\n const ready: Subtask[] = []\n\n for (const step of subtasks) {\n if (completed.has(step.id)) continue\n if (step.dependsOn.every(d => completed.has(d))) {\n ready.push(step)\n }\n }\n\n // Group steps that have no shared dependencies (can truly run in parallel)\n const groups = new Map<string, number>()\n let groupId = 0\n\n for (const step of ready) {\n const depKey = [...step.dependsOn].sort().join(\",\")\n const group = groups.get(depKey)\n if (group !== undefined) {\n groups.set(step.id, group)\n } else {\n groups.set(depKey, groupId)\n groups.set(step.id, groupId)\n groupId++\n }\n }\n\n return ready.map(s => ({ taskId: s.id, parallelGroup: groups.get(s.id) ?? 0 }))\n }\n\n detectConflicts(parallelTasks: string[], modifiedFiles: Map<string, string[]>): Array<{ taskA: string; taskB: string; conflictingFile: string }> {\n const conflicts: Array<{ taskA: string; taskB: string; conflictingFile: string }> = []\n\n for (let i = 0; i < parallelTasks.length; i++) {\n for (let j = i + 1; j < parallelTasks.length; j++) {\n const filesA = modifiedFiles.get(parallelTasks[i]) ?? []\n const filesB = modifiedFiles.get(parallelTasks[j]) ?? []\n\n for (const file of filesA) {\n if (filesB.includes(file)) {\n conflicts.push({\n taskA: parallelTasks[i],\n taskB: parallelTasks[j],\n conflictingFile: file,\n })\n }\n }\n }\n }\n\n return conflicts\n }\n\n llmStepRunner(opts: LLMStepRunnerOptions): StepRunner {\n return async (step: Subtask): Promise<ParallelExecutionResult> => {\n const startTime = Date.now()\n try {\n const resp = await opts.llmEngine.call({\n systemPrompt: `You are an autonomous software engineer implementing a step of a larger plan. Generate implementation as JSON with:\n- \"files\": [{ \"path\": \"relative/file/path\", \"content\": \"file content\" }]\n- \"summary\": \"what was done\"\nOnly include files that need changing. Return ONLY valid JSON.` + opts.llmEngine.getMemoryContext(step.description),\n userPrompt: `Goal: ${opts.planGoal}\\nStep (${step.id}): ${step.description}\\nDir: ${opts.projectDir}\\nComplete the step.`,\n jsonMode: true,\n temperature: 0.3,\n })\n\n let impl: { files?: Array<{ path: string; content: string }>; summary?: string }\n try { impl = JSON.parse(resp.content) } catch {\n return { stepId: step.id, success: false, error: \"LLM JSON parse error\", output: resp.content, filesModified: [] }\n }\n\n const files: string[] = []\n for (const file of impl.files ?? []) {\n const fullPath = join(opts.projectDir, file.path)\n mkdirSync(dirname(fullPath), { recursive: true })\n writeFileSync(fullPath, file.content, \"utf-8\")\n files.push(file.path)\n }\n\n return {\n stepId: step.id,\n success: true,\n output: impl.summary ?? step.description,\n filesModified: files,\n }\n } catch (e) {\n return { stepId: step.id, success: false, error: (e as Error).message, output: \"\", filesModified: [] }\n }\n }\n }\n\n async executePlanConcurrently(\n plan: ParallelPlan,\n stepRunner: StepRunner,\n abortOnFailure = false,\n ): Promise<{ results: ParallelExecutionResult[]; durationMs: number }> {\n const startTime = Date.now()\n const results = await this.executeAll(plan, stepRunner, abortOnFailure)\n return { results, durationMs: Date.now() - startTime }\n }\n\n async executeWithSubprocessSpawn(\n step: Subtask,\n opencodePath: string,\n projectDir: string,\n sessionId: string,\n ): Promise<ParallelExecutionResult> {\n try {\n if (!existsSync(opencodePath)) {\n return { stepId: step.id, success: false, error: `opencode not found at ${opencodePath}`, output: \"\", filesModified: [] }\n }\n\n const taskJson = JSON.stringify({\n goal: `Implement: ${step.description}`,\n sessionId,\n constraints: [],\n })\n\n const result = execFileSync(opencodePath, [\"eval\", \"--json\", taskJson], {\n cwd: projectDir,\n encoding: \"utf-8\",\n timeout: 120000,\n maxBuffer: 10 * 1024 * 1024,\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n })\n\n return {\n stepId: step.id,\n success: true,\n output: result.trim(),\n filesModified: [],\n }\n } catch (e) {\n return {\n stepId: step.id,\n success: false,\n error: (e as Error).message,\n output: \"\",\n filesModified: [],\n }\n }\n }\n}\n", "import type { TraceEntry } from \"./trace-logger\"\n\nexport interface DashboardData {\n timeline: TimelineEvent[]\n statistics: Statistics\n anomalies: Anomaly[]\n}\n\nexport interface TimelineEvent {\n time: string\n tool: string\n step: string\n success: boolean\n durationMs: number\n}\n\nexport interface Statistics {\n totalCalls: number\n successRate: number\n averageLatency: number\n toolsUsed: Map<string, number>\n peakConcurrency: number\n}\n\nexport interface Anomaly {\n type: \"timeout\" | \"loop\" | \"retry_storm\" | \"silent_failure\"\n description: string\n detectedAt: string\n tool?: string\n count?: number\n}\n\nexport class Dashboard {\n generate(traces: TraceEntry[], sessionStart: number): DashboardData {\n const timeline: TimelineEvent[] = traces.map(t => ({\n time: t.timestamp,\n tool: t.toolUsed,\n step: t.step,\n success: t.success,\n durationMs: t.durationMs,\n }))\n\n const totalCalls = traces.length\n const successCount = traces.filter(t => t.success).length\n const avgLatency = traces.reduce((sum, t) => sum + t.durationMs, 0) / Math.max(totalCalls, 1)\n const toolsUsed = new Map<string, number>()\n for (const t of traces) {\n toolsUsed.set(t.toolUsed, (toolsUsed.get(t.toolUsed) ?? 0) + 1)\n }\n\n const statistics: Statistics = {\n totalCalls,\n successRate: totalCalls > 0 ? successCount / totalCalls : 0,\n averageLatency: avgLatency,\n toolsUsed,\n peakConcurrency: this.computePeakConcurrency(traces),\n }\n\n const anomalies = this.detectAnomalies(traces)\n\n return { timeline, statistics, anomalies }\n }\n\n formatForDisplay(data: DashboardData): string {\n let output = `## \uD83D\uDCC8 Observability Dashboard\\n\\n`\n\n // Stats\n output += `### Statistics\\n`\n output += `| Metric | Value |\\n|--------|-------|\\n`\n output += `| Total calls | ${data.statistics.totalCalls} |\\n`\n output += `| Success rate | ${(data.statistics.successRate * 100).toFixed(1)}% |\\n`\n output += `| Avg latency | ${data.statistics.averageLatency.toFixed(0)}ms |\\n`\n output += `| Peak concurrent | ${data.statistics.peakConcurrency} |\\n`\n\n // Tools used\n output += `\\n### Tools Used\\n`\n for (const [tool, count] of [...data.statistics.toolsUsed].sort((a, b) => b[1] - a[1])) {\n output += `| \\`${tool}\\` | ${count} |\\n`\n }\n\n // Timeline\n output += `\\n### Timeline (last 20)\\n`\n const recent = data.timeline.slice(-20)\n for (const evt of recent) {\n const icon = evt.success ? \"\u2705\" : \"\u274C\"\n const dur = evt.durationMs > 0 ? ` (${evt.durationMs}ms)` : \"\"\n output += `| ${evt.time.slice(11, 19)} | ${icon} \\`${evt.tool}\\` | ${evt.step}${dur} |\\n`\n }\n\n // Anomalies\n if (data.anomalies.length > 0) {\n output += `\\n### \u26A0\uFE0F Anomalies Detected\\n`\n for (const a of data.anomalies) {\n output += `- **${a.type}**: ${a.description}\\n`\n }\n } else {\n output += `\\n### \u2705 No anomalies detected\\n`\n }\n\n return output\n }\n\n private computePeakConcurrency(traces: TraceEntry[]): number {\n let max = 0\n for (let i = 0; i < traces.length; i++) {\n let concurrent = 0\n const start = new Date(traces[i].timestamp).getTime()\n for (let j = 0; j < traces.length; j++) {\n const t = new Date(traces[j].timestamp).getTime()\n if (Math.abs(t - start) < 100) concurrent++\n }\n max = Math.max(max, concurrent)\n }\n return max\n }\n\n private detectAnomalies(traces: TraceEntry[]): Anomaly[] {\n const anomalies: Anomaly[] = []\n\n // Slow operations (>30s)\n for (const t of traces) {\n if (t.durationMs > 30_000) {\n anomalies.push({\n type: \"timeout\",\n description: `Slow operation: ${t.toolUsed} took ${t.durationMs}ms`,\n detectedAt: t.timestamp,\n tool: t.toolUsed,\n })\n }\n }\n\n // Retry storms (>3 failures for same step)\n const failCounts = new Map<string, number>()\n for (const t of traces) {\n if (!t.success && t.step.startsWith(\"execute:\")) {\n const stepId = t.step.replace(\"execute:\", \"\")\n failCounts.set(stepId, (failCounts.get(stepId) ?? 0) + 1)\n }\n }\n for (const [stepId, count] of failCounts) {\n if (count >= 3) {\n anomalies.push({\n type: \"retry_storm\",\n description: `Step \"${stepId}\" failed ${count} times`,\n detectedAt: new Date().toISOString(),\n count,\n })\n }\n }\n\n // Loop detection: same tool/step repeating without progress\n const sequence: Array<{ step: string; tool: string; idx: number }> = []\n for (let i = 0; i < traces.length; i++) {\n sequence.push({ step: traces[i].step, tool: traces[i].toolUsed, idx: i })\n }\n\n for (let cycleLen = 2; cycleLen <= 5; cycleLen++) {\n for (let start = 0; start + cycleLen * 2 < sequence.length; start++) {\n const cycle1 = sequence.slice(start, start + cycleLen)\n const cycle2 = sequence.slice(start + cycleLen, start + cycleLen * 2)\n const isRepeat = cycle1.every((c, i) =>\n c.step === cycle2[i].step && c.tool === cycle2[i].tool\n )\n if (isRepeat) {\n const toolNames = [...new Set(cycle1.map(c => c.tool))].join(\", \")\n anomalies.push({\n type: \"loop\",\n description: `Repeating pattern detected: ${toolNames} x ${cycleLen} steps at index ${start}`,\n detectedAt: traces[start + cycleLen * 2]?.timestamp ?? new Date().toISOString(),\n tool: toolNames,\n count: cycleLen,\n })\n break\n }\n }\n }\n\n // Silent failures (false success claims with failed verify)\n let lastVerifyFailed = false\n let lastFailedVerifyStep = \"\"\n for (const t of traces) {\n if (t.step.startsWith(\"verify:\") && !t.success) {\n lastVerifyFailed = true\n lastFailedVerifyStep = t.step\n }\n if (lastVerifyFailed && t.step.startsWith(\"execute:\") && t.success) {\n anomalies.push({\n type: \"silent_failure\",\n description: `Step reported success but verification \"${lastFailedVerifyStep}\" had previously failed`,\n detectedAt: t.timestamp,\n tool: t.toolUsed,\n })\n lastVerifyFailed = false\n }\n if (t.step.startsWith(\"execute:\") && !t.success) {\n lastVerifyFailed = false\n }\n }\n\n return anomalies\n }\n}\n", "export interface Checkpoint {\n id: string\n type: \"warning\" | \"review\" | \"block\"\n description: string\n context: string\n timestamp: string\n acknowledged: boolean\n}\n\nexport class CheckpointSystem {\n private checkpoints = new Map<string, Checkpoint[]>()\n private blockEnforcement = true\n\n enableBlockEnforcement(enabled: boolean): void {\n this.blockEnforcement = enabled\n }\n\n isBlocked(): { blocked: boolean; reason?: string } {\n if (!this.blockEnforcement) return { blocked: false }\n const unacknowledged = this.getUnacknowledged()\n const blocker = unacknowledged.find(c => c.type === \"block\")\n if (blocker) {\n return {\n blocked: true,\n reason: `Blocked by checkpoint \"${blocker.id}\": ${blocker.description}. Acknowledge to proceed.`,\n }\n }\n return { blocked: false }\n }\n\n evaluate(stepId: string, action: string, filesModified: string[]): Checkpoint[] {\n const results: Checkpoint[] = []\n\n // File deletion\n if (action.includes(\"delete\") || action.includes(\"remove\")) {\n if (filesModified.some(f => f.endsWith(\".ts\") || f.endsWith(\".js\") || f.endsWith(\".py\") || f.endsWith(\".go\") || f.endsWith(\".rs\"))) {\n results.push({\n id: `${stepId}-delete`,\n type: \"warning\",\n description: `Deleting source files: ${filesModified.filter(f => f.match(/\\.(ts|js|tsx|py|go|rs)$/)).join(\", \")}`,\n context: \"Deleted files may break imports in other modules.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n }\n\n // Large change set\n if (filesModified.length > 5) {\n results.push({\n id: `${stepId}-scope`,\n type: \"review\",\n description: `Modifying ${filesModified.length} files in one step`,\n context: \"Large change sets increase risk of merge conflicts and regressions.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n\n // API contract change\n if (action.toLowerCase().includes(\"export\") || action.toLowerCase().includes(\"interface\") || action.toLowerCase().includes(\"api\")) {\n results.push({\n id: `${stepId}-api`,\n type: \"review\",\n description: \"Public API or interface change detected\",\n context: \"API contract changes may affect consumers. Document the change.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n\n // Critical infrastructure\n for (const file of filesModified) {\n if (file.includes(\"config\") || file.includes(\"env\") || file.includes(\"secret\") || file.includes(\".env\") || file.includes(\"credentials\")) {\n results.push({\n id: `${stepId}-config-${file.replace(/[^a-zA-Z0-9]/g, \"-\")}`,\n type: \"block\",\n description: `Configuration/secret file changed: ${file}`,\n context: \"\u26A0\uFE0F Manual review required for config/env/secret changes. Acknowledge with agentic_execute to proceed.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n\n const highRiskPatterns = [\"/etc/\", \"/var/\", \"/boot/\", \"/usr/lib\", \"/lib/systemd\", \".ssh/\", \".gnupg/\", \".aws/credentials\", \".kube/config\"]\n for (const risky of highRiskPatterns) {\n if (file.includes(risky)) {\n results.push({\n id: `${stepId}-system-${file.replace(/[^a-zA-Z0-9]/g, \"-\")}`,\n type: \"block\",\n description: `System-critical path modified: ${file}`,\n context: \"\u26A0\uFE0F System-level file changes require explicit approval.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n }\n }\n\n // Test-only changes without source changes\n const onlyTests = filesModified.every(f => f.includes(\".test.\") || f.includes(\".spec.\") || f.includes(\"_test.\"))\n if (onlyTests && filesModified.length > 0) {\n results.push({\n id: `${stepId}-tests-only`,\n type: \"warning\",\n description: \"Only test files modified \u2014 no production code changed\",\n context: \"Verify tests are testing real scenarios, not just passing.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n\n // Schema or migration files\n for (const file of filesModified) {\n if (file.includes(\"schema\") || file.includes(\"migration\") || file.includes(\".sql\")) {\n results.push({\n id: `${stepId}-schema-${file.replace(/[^a-zA-Z0-9]/g, \"-\")}`,\n type: \"review\",\n description: `Schema/migration file changed: ${file}`,\n context: \"Database or data schema changes should be reviewed for backward compatibility.\",\n timestamp: new Date().toISOString(),\n acknowledged: false,\n })\n }\n }\n\n this.checkpoints.set(stepId, results)\n return results\n }\n\n acknowledge(stepId: string, checkpointId: string): boolean {\n const cps = this.checkpoints.get(stepId)\n if (!cps) return false\n\n const cp = cps.find(c => c.id === checkpointId)\n if (!cp) return false\n\n cp.acknowledged = true\n return true\n }\n\n acknowledgeAll(stepId: string): number {\n const cps = this.checkpoints.get(stepId)\n if (!cps) return 0\n let count = 0\n for (const cp of cps) {\n if (!cp.acknowledged) {\n cp.acknowledged = true\n count++\n }\n }\n return count\n }\n\n getUnacknowledged(): Checkpoint[] {\n const all: Checkpoint[] = []\n for (const cps of this.checkpoints.values()) {\n all.push(...cps.filter(c => !c.acknowledged))\n }\n return all\n }\n\n hasBlockers(): boolean {\n return this.getUnacknowledged().some(c => c.type === \"block\")\n }\n}\n", "export interface ConversationTurn {\n role: \"user\" | \"assistant\" | \"tool\"\n content: string\n timestamp: number\n metadata?: Record<string, unknown>\n}\n\nexport interface SessionState {\n sessionId: string\n turns: ConversationTurn[]\n plan?: import(\"../core/intent-parser\").Plan\n artifacts: Map<string, string>\n currentTaskType?: string\n}\n\nexport interface ExecutorSnapshot {\n completedSteps: string[]\n stepStates: Map<string, { id: string; success: boolean }>\n}\n\nexport class SessionStore {\n private sessions = new Map<string, SessionState>()\n private executorSnapshots = new Map<string, ExecutorSnapshot>()\n /** Per-session model preferences: role \u2192 model name */\n private modelPreferences = new Map<string, Map<string, string>>()\n /** TTL in days for session expiry (0 = never expire). Config-hot-reloadable. */\n private forgetAfterDays = 30\n\n /** Set the TTL for session expiry \u2014 called on config hot-reload. */\n setForgetAfterDays(days: number): void {\n this.forgetAfterDays = Math.max(0, days)\n }\n\n /** Remove sessions that haven't been touched since TTL. */\n pruneExpired(): number {\n if (this.forgetAfterDays <= 0) return 0\n const cutoff = Date.now() - this.forgetAfterDays * 24 * 60 * 60 * 1000\n let removed = 0\n for (const [id, session] of this.sessions) {\n const lastTurn = session.turns[session.turns.length - 1]\n if (lastTurn && lastTurn.timestamp < cutoff) {\n this.removeSession(id)\n removed++\n }\n }\n return removed\n }\n\n getOrCreate(sessionId: string): SessionState {\n let session = this.sessions.get(sessionId)\n if (!session) {\n session = {\n sessionId,\n turns: [],\n artifacts: new Map(),\n }\n this.sessions.set(sessionId, session)\n }\n return session\n }\n\n updateProgress(sessionId: string, snapshot: ExecutorSnapshot): void {\n this.executorSnapshots.set(sessionId, snapshot)\n }\n\n addTurn(sessionId: string, turn: ConversationTurn): void {\n const session = this.getOrCreate(sessionId)\n session.turns.push(turn)\n }\n\n getContext(sessionId: string, maxTurns = 20): ConversationTurn[] {\n const session = this.sessions.get(sessionId)\n if (!session) return []\n return session.turns.slice(-maxTurns)\n }\n\n getContextSummary(sessionId: string): string {\n const session = this.sessions.get(sessionId)\n if (!session) return \"\"\n const snapshot = this.executorSnapshots.get(sessionId)\n\n const plan = session.plan\n const turnCount = session.turns.length\n const completedCount = snapshot?.completedSteps.length ?? 0\n const totalSteps = plan?.estimatedSteps ?? snapshot?.stepStates.size ?? 0\n\n let summary = `Session: ${sessionId}\\n`\n summary += `Turns: ${turnCount}\\n`\n summary += `Progress: ${completedCount}/${totalSteps} steps\\n`\n\n if (plan) {\n summary += `Plan: ${plan.intent.goal}\\n`\n }\n\n return summary\n }\n\n removeSession(sessionId: string): void {\n this.sessions.delete(sessionId)\n this.executorSnapshots.delete(sessionId)\n this.modelPreferences.delete(sessionId)\n }\n\n // \u2500\u2500 Session-Seeded Model Preference (Gap: per-role model selection) \u2500\u2500\n\n /** Set preferred model for a given agent role in this session. */\n setModelPreference(sessionId: string, role: string, model: string): void {\n let prefs = this.modelPreferences.get(sessionId)\n if (!prefs) {\n prefs = new Map()\n this.modelPreferences.set(sessionId, prefs)\n }\n prefs.set(role.toLowerCase(), model)\n }\n\n /** Get preferred model for a given agent role, or undefined. */\n getModelPreference(sessionId: string, role: string): string | undefined {\n const prefs = this.modelPreferences.get(sessionId)\n return prefs?.get(role.toLowerCase())\n }\n\n /** Get all model preferences for a session. Returns array of { role, model }. */\n getAllModelPreferences(sessionId: string): Array<{ role: string; model: string }> {\n const prefs = this.modelPreferences.get(sessionId)\n if (!prefs) return []\n return [...prefs.entries()].map(([role, model]) => ({ role, model }))\n }\n\n /** Clear model preference for a specific role, or all roles if omitted. */\n clearModelPreference(sessionId: string, role?: string): void {\n const prefs = this.modelPreferences.get(sessionId)\n if (!prefs) return\n if (role) {\n prefs.delete(role.toLowerCase())\n } else {\n this.modelPreferences.delete(sessionId)\n }\n }\n}\n", "import { mkdir, writeFile, appendFile, readFile, rm } from \"node:fs/promises\"\nimport { join, dirname } from \"node:path\"\nimport { existsSync } from \"node:fs\"\n\nexport interface TraceEntry {\n timestamp: string\n step: string\n input: string\n output: string\n toolUsed: string\n success: boolean\n durationMs: number\n metadata?: Record<string, unknown>\n}\n\nexport class TraceLogger {\n private logPath: string\n private buffer: TraceEntry[] = []\n private flushInterval: ReturnType<typeof setInterval> | null = null\n /** Retention days for trace entries (0 = never prune). Config-hot-reloadable. */\n private retentionDays = 7\n\n constructor(worktree: string) {\n this.logPath = join(worktree, \".agentic\", \"trace.jsonl\")\n }\n\n /** Set retention days for pruning old traces \u2014 called on config hot-reload. */\n setRetentionDays(days: number): void {\n this.retentionDays = Math.max(0, days)\n }\n\n /** Prune trace entries older than retentionDays, in-place rewriting the file. */\n async pruneOldTraces(): Promise<number> {\n if (this.retentionDays <= 0) return 0\n if (!existsSync(this.logPath)) return 0\n const cutoff = Date.now() - this.retentionDays * 24 * 60 * 60 * 1000\n const cutoffStr = new Date(cutoff).toISOString()\n try {\n const content = await readFile(this.logPath, \"utf-8\")\n const lines = content.split(\"\\n\").filter(Boolean)\n const kept = lines.filter(line => {\n try {\n const entry = JSON.parse(line)\n return entry.timestamp >= cutoffStr\n } catch { return false }\n })\n // Only rewrite if we actually removed something\n if (kept.length < lines.length) {\n await writeFile(this.logPath, kept.map(e => JSON.stringify(e)).join(\"\\n\") + \"\\n\")\n }\n return lines.length - kept.length\n } catch { return 0 }\n }\n\n async init(): Promise<void> {\n const dir = dirname(this.logPath)\n await mkdir(dir, { recursive: true })\n }\n\n log(entry: Omit<TraceEntry, \"timestamp\">): void {\n this.buffer.push({\n ...entry,\n timestamp: new Date().toISOString(),\n })\n\n if (this.buffer.length >= 10) {\n this.flush()\n }\n\n if (!this.flushInterval) {\n this.flushInterval = setInterval(() => this.flush(), 5000)\n }\n }\n\n async flush(): Promise<void> {\n if (this.buffer.length === 0) return\n\n const snapshot = [...this.buffer]\n const lines = snapshot.map(e => JSON.stringify(e)).join(\"\\n\") + \"\\n\"\n\n try {\n await appendFile(this.logPath, lines)\n this.buffer = this.buffer.slice(snapshot.length)\n } catch {\n try {\n await writeFile(this.logPath, lines)\n this.buffer = this.buffer.slice(snapshot.length)\n } catch {\n // Silently fail \u2014 data retained in buffer for next flush\n }\n }\n }\n\n async dispose(): Promise<void> {\n if (this.flushInterval) {\n clearInterval(this.flushInterval)\n this.flushInterval = null\n }\n await this.flush()\n }\n}\n", "/**\n * Task Type Classifier\n * \n * Automatically detects task type from description for capability-aware model selection.\n */\n\nexport enum TaskType {\n CODING = 'coding',\n REASONING = 'reasoning',\n TESTING = 'testing',\n DOCUMENTATION = 'documentation',\n DEBUGGING = 'debugging',\n}\n\ninterface TaskPattern {\n type: TaskType\n keywords: RegExp\n}\n\nconst TASK_PATTERNS: TaskPattern[] = [\n {\n type: TaskType.CODING,\n keywords: /\\b(implement|create|add|build|code|develop|write|program|construct|generate|refactor)\\b/i,\n },\n {\n type: TaskType.REASONING,\n keywords: /\\b(design|architect|analyze|decide|evaluate|assess|compare|tradeoff|strategy|plan|approach|consider)\\b/i,\n },\n {\n type: TaskType.TESTING,\n keywords: /\\b(test|verify|validate|check|qa|quality|coverage|assert|expect|spec)\\b/i,\n },\n {\n type: TaskType.DOCUMENTATION,\n keywords: /\\b(document|readme|comment|explain|describe|guide|tutorial|example|doc)\\b/i,\n },\n {\n type: TaskType.DEBUGGING,\n keywords: /\\b(debug|fix|error|bug|crash|issue|problem|troubleshoot|diagnose|investigate)\\b/i,\n },\n]\n\n/**\n * Detect task type from description using keyword matching.\n * \n * @param description Task description or action text\n * @returns Detected task type (defaults to CODING if no match)\n */\nexport function detectTaskType(description: string): TaskType {\n if (!description || typeof description !== 'string') {\n return TaskType.CODING // Default fallback\n }\n\n // Check each pattern in order of priority\n for (const pattern of TASK_PATTERNS) {\n if (pattern.keywords.test(description)) {\n return pattern.type\n }\n }\n\n // Default to CODING if no keywords matched\n return TaskType.CODING\n}\n\n/**\n * Get human-readable label for task type.\n */\nexport function getTaskTypeLabel(type: TaskType): string {\n const labels: Record<TaskType, string> = {\n [TaskType.CODING]: 'Implementation & Development',\n [TaskType.REASONING]: 'Analysis & Design',\n [TaskType.TESTING]: 'Testing & Verification',\n [TaskType.DOCUMENTATION]: 'Documentation & Guides',\n [TaskType.DEBUGGING]: 'Debugging & Troubleshooting',\n }\n return labels[type] || type\n}\n", "import type { SkillRecord } from \"./skill-store.js\"\n\nexport interface TrainingExample {\n instruction: string\n response: string\n skillName: string\n quality: number\n}\n\nexport interface TrainingDataset {\n format: \"openai\" | \"instructions\"\n totalExamples: number\n qualityFilter: number\n data: string\n}\n\n/**\n * Convert a single skill into a training example.\n * instruction = trigger pattern + name \u2192 what the agent should do\n * response = structured workflow steps \u2192 how the agent should do it\n */\nexport function skillToTrainingExample(skill: SkillRecord): TrainingExample {\n const def = skill.definition\n const stepsText = def.workflow.steps\n .map(s => `${s.order}. ${s.action}: ${s.description}${s.tool ? ` (tool: ${s.tool})` : \"\"}`)\n .join(\"\\n\")\n\n const response = [\n `## Workflow: ${def.meta.name}`,\n stepsText,\n def.workflow.steps.length > 0 ? `\\nEstimated duration: ${def.workflow.estimatedDuration}` : \"\",\n def.quality.failureScenarios.length > 0\n ? `\\nCommon failure scenarios:\\n${def.quality.failureScenarios.map(f => `- ${f}`).join(\"\\n\")}`\n : \"\",\n def.workflow.steps.some(s => s.rollback)\n ? `\\nRollback strategies:\\n${def.workflow.steps.filter(s => s.rollback).map(s => `- ${s.action}: ${s.rollback}`).join(\"\\n\")}`\n : \"\",\n ].filter(Boolean).join(\"\\n\")\n\n const instruction = def.trigger.pattern || def.meta.name\n\n return {\n instruction,\n response,\n skillName: def.meta.name,\n quality: skill.successRate,\n }\n}\n\n/**\n * Export skills as OpenAI fine-tuning JSONL format.\n * Each line: {\"messages\": [{\"role\": \"system\", \"content\": \"...\"}, {\"role\": \"user\", \"content\": \"...\"}, {\"role\": \"assistant\", \"content\": \"...\"}]}\n */\nexport function exportOpenAIJSONL(examples: TrainingExample[]): string {\n return examples.map(ex => {\n const entry = {\n messages: [\n { role: \"system\", content: \"You are a senior software engineer implementing features following reusable patterns.\" },\n { role: \"user\", content: ex.instruction },\n { role: \"assistant\", content: ex.response },\n ],\n }\n return JSON.stringify(entry)\n }).join(\"\\n\")\n}\n\n/**\n * Export skills as simple instruction-response JSON array.\n */\nexport function exportInstructionsJSON(examples: TrainingExample[]): string {\n return JSON.stringify(examples.map(ex => ({\n instruction: ex.instruction,\n output: ex.response,\n source: ex.skillName,\n quality: ex.quality,\n })), null, 2)\n}\n\n/**\n * Generate a summary of the training dataset quality.\n */\nexport function trainingDatasetSummary(examples: TrainingExample[]): string {\n if (examples.length === 0) return \"No training examples generated.\"\n\n const avgQuality = examples.reduce((s, e) => s + e.quality, 0) / examples.length\n const highQuality = examples.filter(e => e.quality >= 0.8).length\n const mediumQuality = examples.filter(e => e.quality >= 0.5 && e.quality < 0.8).length\n const lowQuality = examples.filter(e => e.quality < 0.5).length\n\n let out = `## \uD83D\uDCCA Training Dataset Summary\\n\\n`\n out += `**Total examples:** ${examples.length}\\n`\n out += `**Average quality score:** ${(avgQuality * 100).toFixed(0)}%\\n`\n out += `**Quality distribution:**\\n`\n out += `- High (\u226580%): ${highQuality}\\n`\n out += `- Medium (50-79%): ${mediumQuality}\\n`\n out += `- Low (<50%): ${lowQuality}\\n\\n`\n out += `### Examples\\n`\n for (const ex of examples.slice(0, 5)) {\n out += `- **${ex.skillName}** (quality: ${(ex.quality * 100).toFixed(0)}%)\\n`\n out += ` Instruction: ${ex.instruction.slice(0, 100)}${ex.instruction.length > 100 ? \"\u2026\" : \"\"}\\n`\n }\n if (examples.length > 5) {\n out += ` \u2026 and ${examples.length - 5} more\\n`\n }\n return out\n}\n\n/**\n * Convert all skills to training examples, filtered by minimum success rate.\n */\nexport function skillsToTrainingData(\n skills: SkillRecord[],\n format: \"openai\" | \"instructions\" = \"openai\",\n minSuccessRate = 0.5,\n): TrainingDataset {\n const examples = skills\n .filter(s => s.successRate >= minSuccessRate)\n .map(s => skillToTrainingExample(s))\n\n const data = format === \"openai\"\n ? exportOpenAIJSONL(examples)\n : exportInstructionsJSON(examples)\n\n return {\n format,\n totalExamples: examples.length,\n qualityFilter: minSuccessRate,\n data,\n }\n}\n", "import type { SkillRecord } from \"../memory/skill-store.js\"\nimport type { Episode } from \"../memory/episodic-store.js\"\nimport type { AgentTask } from \"../agents/coordinator.js\"\nimport type { CustomAgentDef } from \"../agents/role-registry.js\"\n\nexport interface EvolutionMetrics {\n totalSessions: number\n totalSteps: number\n successRate: number\n retryRate: number\n avgRetriesPerFailure: number\n topErrorCategories: Array<{ category: string; count: number }>\n skillEffectiveness: Array<{ name: string; successRate: number; usage: number }>\n toolUsage: Array<{ tool: string; calls: number; failureRate: number }>\n recommendations: string[]\n}\n\nexport interface SkillPatch {\n skillId: string\n skillName: string\n failures: number\n suggestedChanges: Array<{\n type: \"add_step\" | \"add_tool\" | \"add_rollback\" | \"reorder\" | \"split\"\n description: string\n detail: string\n }>\n}\n\nexport interface RoleSuggestion {\n name: string\n triggerPattern: string\n suggestedTools: string[]\n reason: string\n}\n\nexport interface PromptPatch {\n role: string\n errorCategory: string\n instruction: string\n priority: \"high\" | \"medium\" | \"low\"\n occurrences: number\n}\n\nexport interface EvolutionReport {\n metrics: EvolutionMetrics\n skillPatches: SkillPatch[]\n roleSuggestions: RoleSuggestion[]\n promptPatches: PromptPatch[]\n improvementScore: number // 0-100, higher = more evolving\n}\n\nexport class SelfEvolver {\n private skills: SkillRecord[] = []\n private episodes: Episode[] = []\n private tasks: AgentTask[] = []\n private stepStates: Array<{ stepId: string; success: boolean; output: string }> = []\n private traceEntries: Array<{ toolUsed: string; success: boolean; step: string }> = []\n\n feedSkills(skills: SkillRecord[]): void { this.skills = skills }\n feedEpisodes(episodes: Episode[]): void { this.episodes = episodes }\n feedTasks(tasks: AgentTask[]): void { this.tasks = tasks }\n feedStepStates(steps: Array<{ stepId: string; success: boolean; output: string }>): void { this.stepStates = steps }\n feedTraces(traces: Array<{ toolUsed: string; success: boolean; step: string }>): void { this.traceEntries = traces }\n\n evolve(): EvolutionReport {\n const metrics = this.computeMetrics()\n const skillPatches = this.analyzeSkills()\n const roleSuggestions = this.suggestRoles()\n const promptPatches = this.suggestPromptPatches(metrics)\n\n // Auto-apply safe prompt patches (low-risk, high-priority)\n const appliedPatches: PromptPatch[] = []\n for (const patch of promptPatches) {\n // Auto-apply if: (1) high-priority AND (2) low occurrences (new pattern, not widespread)\n // OR: medium-priority with very high occurrences (proven pattern)\n const shouldAutoApply = \n (patch.priority === \"high\" && patch.occurrences >= 2 && patch.occurrences <= 5) ||\n (patch.priority === \"medium\" && patch.occurrences >= 10)\n \n if (shouldAutoApply) {\n // Mark as applied (actual prompt injection happens in RoleRegistry)\n appliedPatches.push(patch)\n }\n }\n\n const improvementScore = Math.min(100, Math.round(\n (skillPatches.length * 15) +\n (roleSuggestions.length * 10) +\n (promptPatches.length * 8) +\n (appliedPatches.length * 12) + // Bonus for auto-applied patches\n (metrics.successRate * 20) +\n (metrics.recommendations.length * 5)\n ))\n\n return { metrics, skillPatches, roleSuggestions, promptPatches, improvementScore }\n }\n\n private computeMetrics(): EvolutionMetrics {\n const sessions = new Set(this.episodes.map(e => e.sessionId))\n const totalSteps = this.stepStates.length || this.tasks.length\n const doneSteps = this.stepStates.filter(s => s.success).length\n const failedSteps = this.stepStates.filter(s => !s.success).length\n const done = doneSteps + this.tasks.filter(t => t.status === \"done\").length\n const failed = failedSteps + this.tasks.filter(t => t.status === \"failed\").length\n const total = done + failed || 1\n\n const errorCategories = new Map<string, number>()\n for (const ep of this.episodes) {\n if (ep.outcome !== \"success\") {\n for (const tag of ep.tags) {\n errorCategories.set(tag, (errorCategories.get(tag) ?? 0) + 1)\n }\n }\n }\n\n const topErrors = [...errorCategories.entries()]\n .sort((a, b) => b[1] - a[1])\n .slice(0, 5)\n .map(([category, count]) => ({ category, count }))\n\n const skillEff = this.skills.map(s => ({\n name: s.definition.meta.name,\n successRate: s.successRate,\n usage: s.usageCount,\n }))\n\n const toolUsage = new Map<string, { calls: number; failures: number }>()\n for (const t of this.traceEntries) {\n const entry = toolUsage.get(t.toolUsed) ?? { calls: 0, failures: 0 }\n entry.calls++\n if (!t.success) entry.failures++\n toolUsage.set(t.toolUsed, entry)\n }\n\n const toolStats = [...toolUsage.entries()]\n .map(([tool, stats]) => ({\n tool,\n calls: stats.calls,\n failureRate: stats.calls > 0 ? stats.failures / stats.calls : 0,\n }))\n .sort((a, b) => b.calls - a.calls)\n\n const recommendations: string[] = []\n\n if (total > 0 && done / total < 0.5) {\n recommendations.push(\"Task success rate is below 50%. Consider more granular task decomposition in agentic_plan.\")\n }\n\n if (sessions.size > 3 && this.episodes.filter(e => e.outcome === \"failed\").length / Math.max(this.episodes.length, 1) > 0.3) {\n recommendations.push(\"High cross-session failure rate. Consider adding a 'review' checkpoint between plan and execute phases.\")\n }\n\n const unusedTools = [\n \"agentic_context\", \"agentic_snapshot\", \"agentic_score\",\n ].filter(t => !toolUsage.has(t))\n\n if (unusedTools.length > 0) {\n recommendations.push(`Underutilized tools: ${unusedTools.join(\", \")}. These could improve observability and quality.`)\n }\n\n const retryFraction = failed / Math.max(total, 1)\n if (retryFraction > 0.3) {\n recommendations.push(\"High retry rate (>30%). Consider adding more explicit verification criteria to plan steps.\")\n }\n\n // Error pattern analysis\n for (const step of this.stepStates) {\n if (!step.success && step.output.length > 0) {\n const lower = step.output.toLowerCase()\n if (lower.includes(\"type\") || lower.includes(\"compile\")) {\n recommendations.push(\"Frequent type/compile errors detected. Enable `autoVerify` on all execute calls to catch these early.\")\n break\n }\n }\n }\n\n return {\n totalSessions: sessions.size,\n totalSteps,\n successRate: total > 0 ? done / total : 0,\n retryRate: retryFraction,\n avgRetriesPerFailure: failed > 0 ? (totalSteps - done) / failed : 0,\n topErrorCategories: topErrors,\n skillEffectiveness: skillEff,\n toolUsage: toolStats,\n recommendations,\n }\n }\n\n private analyzeSkills(): SkillPatch[] {\n const patches: SkillPatch[] = []\n\n for (const skill of this.skills) {\n if (skill.successRate >= 0.8) continue // healthy skills\n\n const def = skill.definition\n const suggestions: SkillPatch[\"suggestedChanges\"] = []\n\n for (const scenario of def.quality.failureScenarios.slice(-3)) {\n if (scenario.includes(\"rollback\") || scenario.includes(\"undo\")) {\n suggestions.push({\n type: \"add_rollback\",\n description: \"Add rollback step for failed operations\",\n detail: \"Each step that modifies state should have a corresponding undo action\",\n })\n }\n if (scenario.includes(\"timeout\") || scenario.includes(\"slow\")) {\n suggestions.push({\n type: \"add_step\",\n description: \"Add timeout/retry wrapper step\",\n detail: \"Wrap long-running operations with retry: utils/retry.ts handles exponential backoff\",\n })\n }\n if (scenario.includes(\"missing\") || scenario.includes(\"not found\")) {\n suggestions.push({\n type: \"add_step\",\n description: \"Add pre-flight validation step\",\n detail: \"Check prerequisites before executing main workflow\",\n })\n }\n }\n\n if (def.workflow.steps.length > 5) {\n suggestions.push({\n type: \"split\",\n description: \"Split into smaller, independently testable sub-skills\",\n detail: `This skill has ${def.workflow.steps.length} steps. Consider splitting at logical boundaries.`,\n })\n }\n\n if (suggestions.length > 0) {\n patches.push({\n skillId: def.meta.id,\n skillName: def.meta.name,\n failures: Math.round(skill.usageCount * (1 - skill.successRate)),\n suggestedChanges: suggestions,\n })\n }\n }\n\n return patches\n }\n\n private suggestRoles(): RoleSuggestion[] {\n const suggestions: RoleSuggestion[] = []\n\n const taskOutcomes = new Map<string, { total: number; failed: number }>()\n for (const task of this.tasks) {\n const entry = taskOutcomes.get(task.assignedTo) ?? { total: 0, failed: 0 }\n entry.total++\n if (task.status === \"failed\") entry.failed++\n taskOutcomes.set(task.assignedTo, entry)\n }\n\n const failedTasks = this.tasks.filter(t => t.status === \"failed\")\n const failKeywords = new Map<string, number>()\n\n for (const task of failedTasks) {\n const words = task.description.toLowerCase().split(/\\W+/).filter(w => w.length > 3)\n for (const w of words) {\n failKeywords.set(w, (failKeywords.get(w) ?? 0) + 1)\n }\n }\n\n const significantKeywords = [...failKeywords.entries()]\n .filter(([, count]) => count >= 2)\n .sort((a, b) => b[1] - a[1])\n\n for (const [keyword, count] of significantKeywords) {\n if (keyword === \"security\" || keyword === \"vulnerability\" || keyword === \"injection\") {\n suggestions.push({\n name: \"Security Auditor\",\n triggerPattern: `tasks involving ${keyword}`,\n suggestedTools: [\"read\", \"grep\", \"agentic_guard\", \"agentic_verify\"],\n reason: `${count} task(s) involving \"${keyword}\" failed. A dedicated security role could prevent these via specialized review patterns.`,\n })\n }\n\n if (keyword === \"performance\" || keyword === \"optimize\" || keyword === \"slow\") {\n suggestions.push({\n name: \"Performance Engineer\",\n triggerPattern: `tasks involving ${keyword}`,\n suggestedTools: [\"bash\", \"agentic_score\", \"agentic_verify\"],\n reason: `${count} task(s) involving \"${keyword}\" failed. A performance-focused agent could catch bottlenecks early.`,\n })\n }\n\n if (keyword === \"database\" || keyword === \"migration\" || keyword === \"schema\") {\n suggestions.push({\n name: \"DB Specialist\",\n triggerPattern: `tasks involving ${keyword}`,\n suggestedTools: [\"bash\", \"read\", \"agentic_nav\"],\n reason: `${count} task(s) involving \"${keyword}\" failed. A database specialist could prevent schema drift and migration errors.`,\n })\n }\n }\n\n const hasCoordinator = taskOutcomes.has(\"coordinator\")\n if (!hasCoordinator && this.tasks.length > 10) {\n suggestions.push({\n name: \"Task Coordinator\",\n triggerPattern: \"multi-step tasks with cross-cutting concerns\",\n suggestedTools: [\"agentic_plan\", \"agentic_status\", \"agentic_delegate\", \"agentic_parallel\"],\n reason: \"With 10+ tasks and no coordinator role active, orchestration overhead may cause failures.\",\n })\n }\n\n return suggestions.slice(0, 5)\n }\n\n /**\n * Generate prompt patches from recurring error patterns (Gap #1: prompt auto-patching).\n * Maps error categories \u2192 specific instruction additions for the relevant agent role.\n */\n private suggestPromptPatches(metrics: EvolutionMetrics): PromptPatch[] {\n const patches: PromptPatch[] = []\n\n // Error category \u2192 (role, instruction) mapping\n const errorToPatch: Array<{\n category: string\n role: string\n instruction: string\n priority: \"high\" | \"medium\" | \"low\"\n }> = [\n {\n category: \"compile\",\n role: \"developer\",\n instruction: \"Before writing code, verify that all types and interfaces are compatible. Run `npx tsc --noEmit` to check for type errors before considering a step complete.\",\n priority: \"high\",\n },\n {\n category: \"type\",\n role: \"developer\",\n instruction: \"Always define explicit type annotations for function parameters and return values. Avoid `any` types. Verify type exports/imports match between files.\",\n priority: \"high\",\n },\n {\n category: \"import\",\n role: \"architect\",\n instruction: \"Before implementing, document all file dependencies and ensure import paths are correct. Verify the import exists at the expected relative path.\",\n priority: \"high\",\n },\n {\n category: \"test\",\n role: \"qa\",\n instruction: \"When reviewing code, check edge cases: empty inputs, null/undefined values, boundary conditions, and error paths. Ensure tests cover both success and failure scenarios.\",\n priority: \"medium\",\n },\n {\n category: \"runtime\",\n role: \"developer\",\n instruction: \"Add error handling for runtime edge cases: network timeouts, file not found, permission denied, and invalid input. Use try/catch blocks and return user-friendly error messages.\",\n priority: \"medium\",\n },\n ]\n\n for (const errCat of metrics.topErrorCategories) {\n const mapping = errorToPatch.find(e => e.category === errCat.category)\n if (mapping && errCat.count >= 2) {\n patches.push({\n role: mapping.role,\n errorCategory: errCat.category,\n instruction: mapping.instruction,\n priority: errCat.count >= 5 ? \"high\" : mapping.priority,\n occurrences: errCat.count,\n })\n }\n }\n\n return patches\n }\n}\n", "/**\n * ContinuousEvolution \u2014 auto-feedback pipeline for self-evolving agents.\n *\n * Tracks a rolling window of step results, detects performance degradation,\n * and triggers evolution analysis when anomalies are found.\n *\n * Aligns with the paper's \"continuous evolution\" vision:\n * agents that monitor their own performance and self-improve over time.\n */\n\nexport interface StepResult {\n stepId: string\n success: boolean\n output: string\n sessionId: string\n timestamp: number\n category?: string\n}\n\nexport interface ForecastData {\n /** Predicted success rate for the next window */\n nextWindowRate: number\n /** Estimated remaining steps until success rate drops below 50%, or null if not predictable */\n stepsUntilCritical: number | null\n /** True if the forecast shows imminent critical degradation */\n critical: boolean\n /** Per-bucket success rates for transparency */\n bucketRates: number[]\n}\n\nexport interface PerformanceTrend {\n overall: { total: number; success: number; successRate: number }\n rolling: { windowSize: number; successRate: number; direction: \"improving\" | \"stable\" | \"degrading\" }\n degradationDetected: boolean\n anomalyCount: number\n recentErrors: Array<{ stepId: string; output: string; category: string; timestamp: number }>\n recommendations: string[]\n /** Predictive degradation forecast (Gap #12) */\n forecast: ForecastData\n}\n\nexport interface EvolutionTrigger {\n reason: string\n type: \"degradation\" | \"anomaly_spike\" | \"milestone\"\n metrics: {\n recentRate: number\n overallRate: number\n anomalyRatio: number\n }\n}\n\nexport type DegradationCallback = (trend: PerformanceTrend, trigger: EvolutionTrigger) => void\n\nexport class ContinuousEvolution {\n private windowSize: number\n private results: StepResult[] = []\n private degradationCallbacks: DegradationCallback[] = []\n private lastEvolveSession: string | null = null\n private evolveCount = 0\n\n constructor(windowSize = 20) {\n this.windowSize = windowSize\n }\n\n /** Feed a step result into the rolling window */\n feedStepResult(result: StepResult): void {\n this.results.push(result)\n // Keep bounded \u2014 retain 2\u00D7 window for historical comparison\n if (this.results.length > this.windowSize * 2 + 10) {\n this.results = this.results.slice(-this.windowSize * 2)\n }\n }\n\n /** Feed multiple results at once (e.g. after a session completes) */\n feedBatch(results: StepResult[]): void {\n for (const r of results) {\n this.feedStepResult(r)\n }\n }\n\n /** Register a callback that fires when degradation is detected */\n onDegradation(cb: DegradationCallback): void {\n this.degradationCallbacks.push(cb)\n }\n\n /** Get current performance trend */\n getTrend(): PerformanceTrend {\n const total = this.results.length\n const successes = this.results.filter(r => r.success).length\n const overallRate = total > 0 ? successes / total : 1\n\n // Rolling window (most recent N)\n const recent = this.results.slice(-this.windowSize)\n const recentSuccesses = recent.filter(r => r.success).length\n const recentRate = recent.length > 0 ? recentSuccesses / recent.length : 1\n\n // Earlier window for comparison\n const earlier = this.results.slice(0, Math.min(this.windowSize, this.results.length - recent.length))\n const earlierSuccesses = earlier.filter(r => r.success).length\n const earlierRate = earlier.length > 0 ? earlierSuccesses / earlier.length : 1\n\n // Direction: \u22655% swing in either direction\n const direction = recentRate > earlierRate + 0.05\n ? \"improving\"\n : recentRate < earlierRate - 0.05\n ? \"degrading\"\n : \"stable\"\n\n const degradationDetected = direction === \"degrading\" && recentRate < 0.6\n\n const recentErrors: PerformanceTrend[\"recentErrors\"] = []\n const categories = new Map<string, number>()\n for (const r of this.results) {\n if (!r.success) {\n if (r.category) categories.set(r.category, (categories.get(r.category) ?? 0) + 1)\n }\n }\n\n for (const r of this.results.slice(-5).filter(r => !r.success)) {\n recentErrors.push({\n stepId: r.stepId,\n output: r.output.slice(0, 200),\n category: r.category ?? \"unknown\",\n timestamp: r.timestamp,\n })\n }\n\n const recommendations: string[] = []\n\n // \u2500\u2500 Predictive Degradation Forecast (Gap #12) \u2500\u2500\n // Divide results into 5 chronological buckets and compute per-bucket rates\n const forecast: ForecastData = {\n nextWindowRate: recentRate,\n stepsUntilCritical: null,\n critical: false,\n bucketRates: [],\n }\n\n if (this.results.length >= 10) {\n const bucketSize = Math.max(1, Math.floor(this.results.length / 5))\n const bucketRates: number[] = []\n for (let i = 0; i < 5; i++) {\n const start = i * bucketSize\n const end = Math.min(start + bucketSize, this.results.length)\n const bucket = this.results.slice(start, end)\n const bucketSuccesses = bucket.filter(r => r.success).length\n bucketRates.push(bucket.length > 0 ? bucketSuccesses / bucket.length : 0)\n }\n forecast.bucketRates = bucketRates\n\n // Simple linear regression: if rates are consistently decreasing, extrapolate\n const isDecreasing = bucketRates.length >= 3 &&\n bucketRates.slice(1).every((r, i) => r <= bucketRates[i]) &&\n bucketRates[0] > bucketRates[bucketRates.length - 1]\n\n if (isDecreasing) {\n // Compute average decline per bucket\n const totalDecline = bucketRates[0] - bucketRates[bucketRates.length - 1]\n const avgDecline = totalDecline / (bucketRates.length - 1)\n\n // Predict next window rate\n const nextRate = Math.max(0, bucketRates[bucketRates.length - 1] - avgDecline)\n forecast.nextWindowRate = nextRate\n forecast.critical = nextRate < 0.5\n\n // Estimate when rate would cross 50%\n if (bucketRates[bucketRates.length - 1] > 0.5 && avgDecline > 0) {\n const stepsToCross = Math.ceil((bucketRates[bucketRates.length - 1] - 0.5) / avgDecline) * bucketSize\n forecast.stepsUntilCritical = stepsToCross\n }\n\n if (forecast.critical) {\n recommendations.push(`\uD83D\uDD2E **Forecast:** Performance projected to drop to ${(nextRate * 100).toFixed(0)}% in the next window. ${forecast.stepsUntilCritical ? `Critical threshold (~50%) expected in ~${forecast.stepsUntilCritical} steps.` : \"Consider proactive evolution analysis.\"}`)\n }\n }\n }\n if (degradationDetected) {\n recommendations.push(\"Performance degradation detected. Run `agentic_evolve evolve` or enable auto-evolution to analyze root causes.\")\n }\n if (categories.size > 0) {\n const topCat = [...categories.entries()].sort((a, b) => b[1] - a[1])[0]\n if (topCat && topCat[1] >= 3) {\n recommendations.push(`Recurring error pattern: \"${topCat[0]}\" (${topCat[1]} occurrences). Consider adding targeted verification for this category.`)\n }\n }\n if (this.results.length >= 10 && overallRate < 0.5) {\n recommendations.push(\"Overall success rate below 50%. Review plan decomposition granularity and verification criteria.\")\n }\n if (this.results.length >= this.windowSize && recentRate === 1 && overallRate < 0.8) {\n recommendations.push(\"Recent improvement trend detected. Extract successful patterns as reusable skills via `agentic_skill extract`.\")\n }\n\n return {\n overall: { total, success: successes, successRate: overallRate },\n rolling: { windowSize: this.windowSize, successRate: recentRate, direction },\n degradationDetected,\n anomalyCount: this.results.filter(r => !r.success).length,\n recentErrors,\n recommendations,\n forecast,\n }\n }\n\n /** Check trend and fire callbacks if degradation found. Returns current trend. */\n checkAndNotify(): PerformanceTrend {\n const trend = this.getTrend()\n if (trend.degradationDetected) {\n const trigger: EvolutionTrigger = {\n reason: `Success rate dropped to ${(trend.rolling.successRate * 100).toFixed(0)}% in last ${trend.rolling.windowSize} steps (direction: ${trend.rolling.direction})`,\n type: \"degradation\",\n metrics: {\n recentRate: trend.rolling.successRate,\n overallRate: trend.overall.successRate,\n anomalyRatio: trend.anomalyCount / Math.max(trend.overall.total, 1),\n },\n }\n for (const cb of this.degradationCallbacks) {\n try { cb(trend, trigger) } catch { /* non-fatal */ }\n }\n }\n return trend\n }\n\n /**\n * Decide whether to auto-trigger evolution analysis.\n * Returns null if no trigger needed, or an EvolutionTrigger explaining why.\n */\n shouldEvolve(sessionId: string): EvolutionTrigger | null {\n const trend = this.getTrend()\n\n // Don't evolve twice in the same session\n if (this.lastEvolveSession === sessionId) return null\n\n // Cap total evolutions to prevent infinite loops\n if (this.evolveCount >= 5) return null\n\n // Trigger 1: Degradation\n if (trend.degradationDetected) {\n this.lastEvolveSession = sessionId\n this.evolveCount++\n return {\n reason: `Auto-evolution triggered by performance degradation: ${(trend.rolling.successRate * 100).toFixed(0)}% success rate in recent window`,\n type: \"degradation\",\n metrics: {\n recentRate: trend.rolling.successRate,\n overallRate: trend.overall.successRate,\n anomalyRatio: trend.anomalyCount / Math.max(trend.overall.total, 1),\n },\n }\n }\n\n // Trigger 2: Milestone \u2014 every 50 completed steps, auto-evolve\n if (this.results.length > 0 && this.results.length % 50 === 0) {\n this.lastEvolveSession = sessionId\n this.evolveCount++\n return {\n reason: `Milestone reached: ${this.results.length} steps completed. Periodic evolution analysis.`,\n type: \"milestone\",\n metrics: {\n recentRate: trend.rolling.successRate,\n overallRate: trend.overall.successRate,\n anomalyRatio: trend.anomalyCount / Math.max(trend.overall.total, 1),\n },\n }\n }\n\n return null\n }\n\n /** Reset state (for testing) */\n reset(): void {\n this.results = []\n this.lastEvolveSession = null\n this.evolveCount = 0\n }\n\n /** Get raw counts */\n getStats(): { totalResults: number; evolveCount: number; windowSize: number } {\n return {\n totalResults: this.results.length,\n evolveCount: this.evolveCount,\n windowSize: this.windowSize,\n }\n }\n}\n", "import type { Subtask } from \"./intent-parser.js\"\nimport { Executor } from \"./executor.js\"\nimport { Verifier } from \"./verifier.js\"\nimport { ErrorAnalyzer } from \"./error-analyzer.js\"\nimport { DependencyTracker } from \"../drift/dependency-tracker.js\"\nimport { LLMEngine } from \"./llm.js\"\n\nexport interface AgentLoopConfig {\n maxIterations: number\n autoRetry: boolean\n maxRetries: number\n verifyAfterEach: boolean\n}\n\nexport interface LoopResult {\n completedSteps: string[]\n failedSteps: string[]\n totalIterations: number\n success: boolean\n summary: string\n}\n\nexport interface LoopObserver {\n onStepStart(stepId: string, iteration: number): void\n onStepComplete(stepId: string, success: boolean, output: string): void\n onLoopComplete(result: LoopResult): void\n}\n\nexport class AgentLoop {\n private config: AgentLoopConfig\n private llm: LLMEngine\n private observers: LoopObserver[] = []\n\n constructor(llm: LLMEngine, config: Partial<AgentLoopConfig> = {}) {\n this.llm = llm\n this.config = {\n maxIterations: config.maxIterations ?? 20,\n autoRetry: config.autoRetry ?? true,\n maxRetries: config.maxRetries ?? 3,\n verifyAfterEach: config.verifyAfterEach ?? true,\n }\n }\n\n addObserver(observer: LoopObserver): void {\n this.observers.push(observer)\n }\n\n async runLoop(\n sessionId: string,\n executor: Executor,\n verifier: Verifier,\n errorAnalyzer: ErrorAnalyzer,\n depTracker: DependencyTracker,\n projectDir: string,\n stepExecutor: (step: Subtask) => Promise<{ success: boolean; output: string; filesModified: string[]; error?: string }>,\n fixExecutor?: (fix: string) => Promise<boolean>,\n ): Promise<LoopResult> {\n const completedSteps: string[] = []\n const failedSteps: string[] = []\n let iteration = 0\n\n while (iteration < this.config.maxIterations) {\n iteration++\n\n const nextStep = executor.getNextStep(sessionId)\n if (!nextStep) break\n\n let retryCount = 0\n let stepSuccess = false\n let stepOutput = \"\"\n\n while (retryCount <= this.config.maxRetries) {\n this.observers.forEach(o => o.onStepStart(nextStep.id, iteration))\n\n const result = await stepExecutor(nextStep)\n\n if (result.filesModified && result.filesModified.length > 0) {\n depTracker.recordChange(sessionId, nextStep.id, result.filesModified)\n }\n\n executor.recordResult(sessionId, {\n stepId: nextStep.id,\n success: result.success,\n output: result.output,\n filesModified: result.filesModified,\n error: result.error,\n })\n\n stepSuccess = result.success\n stepOutput = result.output\n\n if (stepSuccess) {\n if (this.config.verifyAfterEach) {\n const verifyResult = result.filesModified.length > 0\n ? verifier.verifyRelated(nextStep.id, projectDir, result.filesModified)\n : verifier.verifyAll(nextStep.id, projectDir)\n\n if (!verifyResult.passed) {\n stepSuccess = false\n stepOutput = `Verification failed: ${verifyResult.errors.join(\"\\n\")}`\n const analysis = await errorAnalyzer.analyzeDeep(stepOutput, result.filesModified)\n this.observers.forEach(o => o.onStepComplete(nextStep.id, false, analysis.suggestedFix))\n\n if (!this.config.autoRetry) break\n\n const repairResult = await this.attemptRepair(nextStep, stepOutput, analysis, fixExecutor)\n if (!repairResult) {\n retryCount++\n break\n }\n continue\n }\n }\n\n completedSteps.push(nextStep.id)\n this.observers.forEach(o => o.onStepComplete(nextStep.id, true, stepOutput))\n break\n }\n\n retryCount++\n this.observers.forEach(o => o.onStepComplete(nextStep.id, false, stepOutput))\n\n if (!this.config.autoRetry || retryCount > this.config.maxRetries) break\n\n const analysis = await errorAnalyzer.analyzeDeep(stepOutput, result.filesModified ?? [])\n const repairResult = await this.attemptRepair(nextStep, stepOutput, analysis, fixExecutor)\n if (!repairResult) break\n }\n\n if (!stepSuccess) {\n failedSteps.push(nextStep.id)\n }\n }\n\n const result: LoopResult = {\n completedSteps,\n failedSteps,\n totalIterations: iteration,\n success: failedSteps.length === 0,\n summary: `Completed ${completedSteps.length} steps, ${failedSteps.length} failed in ${iteration} iterations.`,\n }\n\n this.observers.forEach(o => o.onLoopComplete(result))\n return result\n }\n\n private async attemptRepair(\n step: Subtask,\n error: string,\n analysis: ReturnType<ErrorAnalyzer[\"analyze\"]>,\n fixExecutor?: (fix: string) => Promise<boolean>,\n ): Promise<boolean> {\n try {\n const llmAnalysis = await this.llm.analyzeError(error, [])\n if (llmAnalysis && llmAnalysis.category !== \"unknown\" && llmAnalysis.fix && llmAnalysis.fix !== \"Manual investigation needed\") {\n // If a fixExecutor is provided, try it. If it fails, still retry (the step executor\n // will get another chance with the error context).\n if (fixExecutor) {\n const fixed = await fixExecutor(llmAnalysis.fix).catch(() => false)\n if (fixed) return true\n }\n return true // retry step execution even if bash fix failed\n }\n } catch {\n // LLM repair failed, but we can still try basic fixes\n }\n\n // Compile/type/import errors are generally retryable - the step executor\n // will try again with the error signal\n if (analysis && (analysis.category === \"import\" || analysis.category === \"compile\" || analysis.category === \"type\")) {\n return true\n }\n return true // always allow retry for non-fatal errors\n }\n}\n", "import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, unlinkSync } from \"node:fs\"\nimport { resolve } from \"node:path\"\n\nexport interface PersistentState<T> {\n key: string\n data: T\n updatedAt: string\n}\n\nexport class PersistenceLayer {\n private baseDir: string\n private storeDir: string\n\n constructor(worktree: string) {\n this.baseDir = worktree\n this.storeDir = resolve(worktree, \".agentic\", \"store\")\n this.ensureDir()\n }\n\n save<T>(namespace: string, key: string, data: T): void {\n const dir = resolve(this.storeDir, namespace)\n if (!existsSync(dir)) mkdirSync(dir, { recursive: true })\n\n const state: PersistentState<T> = {\n key,\n data,\n updatedAt: new Date().toISOString(),\n }\n writeFileSync(resolve(dir, `${key}.json`), JSON.stringify(state, null, 2), \"utf-8\")\n }\n\n load<T>(namespace: string, key: string): T | null {\n const filePath = resolve(this.storeDir, namespace, `${key}.json`)\n if (!existsSync(filePath)) return null\n try {\n const state = JSON.parse(readFileSync(filePath, \"utf-8\")) as PersistentState<T>\n return state.data\n } catch {\n return null\n }\n }\n\n loadAll<T>(namespace: string): PersistentState<T>[] {\n const dir = resolve(this.storeDir, namespace)\n if (!existsSync(dir)) return []\n const results: PersistentState<T>[] = []\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n if (entry.isFile() && entry.name.endsWith(\".json\")) {\n try {\n const state = JSON.parse(readFileSync(resolve(dir, entry.name), \"utf-8\")) as PersistentState<T>\n results.push(state)\n } catch {\n // skip corrupted files\n }\n }\n }\n return results\n }\n\n delete(namespace: string, key: string): boolean {\n const filePath = resolve(this.storeDir, namespace, `${key}.json`)\n if (!existsSync(filePath)) return false\n try {\n unlinkSync(filePath)\n return true\n } catch {\n return false\n }\n }\n\n listKeys(namespace: string): string[] {\n const dir = resolve(this.storeDir, namespace)\n if (!existsSync(dir)) return []\n return readdirSync(dir, { withFileTypes: true })\n .filter(e => e.isFile() && e.name.endsWith(\".json\"))\n .map(e => e.name.replace(\".json\", \"\"))\n }\n\n private ensureDir(): void {\n if (!existsSync(this.storeDir)) {\n mkdirSync(this.storeDir, { recursive: true })\n }\n }\n}\n", "import type { LLMEngine } from \"../core/llm.js\"\nimport type { LocalEmbedder } from \"./local-embedder.js\"\nimport { createRequire } from \"node:module\"\n\nconst _require = createRequire(import.meta.url)\n\nexport type DocumentType = \"episode\" | \"skill\" | \"file\" | \"code\"\n\nexport interface DocumentMeta {\n type: DocumentType\n sessionId?: string\n tags?: string[]\n [key: string]: unknown\n}\n\nexport interface SearchResult {\n id: string\n content: string\n metadata: DocumentMeta\n score: number\n}\n\nexport type SearchMode = \"sparse\" | \"dense\" | \"hybrid\" | \"llm-rerank\"\n\n/**\n * Stop words dari package `stopword` (62 bahasa, zero deps).\n * Di-load lazy via require \u2014 esbuild akan bundle seluruh package.\n */\nlet stopWordModule: Record<string, string[]> | null = null\nlet stopWordLoadAttempted = false\n\nfunction loadStopWords(): Record<string, string[]> | null {\n if (stopWordLoadAttempted) return stopWordModule\n stopWordLoadAttempted = true\n try {\n stopWordModule = _require(\"stopword\") as Record<string, string[]>\n } catch {\n stopWordModule = null\n }\n return stopWordModule\n}\n\nconst combinedStopCache = new Map<string, Set<string>>()\n\nfunction getStopWordSet(langs: string[]): Set<string> {\n const key = [...langs].sort().join(\",\")\n const cached = combinedStopCache.get(key)\n if (cached) return cached\n\n const mod = loadStopWords()\n const words = new Set<string>()\n\n if (mod) {\n for (const lang of langs) {\n const arr = mod[lang]\n if (Array.isArray(arr)) {\n for (const w of arr) words.add(w)\n }\n }\n }\n\n // Fallback: minimal English + Indonesian stop words built-in\n if (words.size === 0) {\n const FALLBACK = new Set([\n \"yang\", \"dan\", \"di\", \"ke\", \"dari\", \"ini\", \"itu\", \"dan\", \"atau\",\n \"tidak\", \"adalah\", \"akan\", \"dengan\", \"untuk\", \"pada\", \"dalam\",\n \"the\", \"and\", \"is\", \"are\", \"was\", \"were\", \"be\", \"been\",\n \"a\", \"an\", \"to\", \"for\", \"of\", \"in\", \"on\", \"at\", \"by\", \"with\",\n \"this\", \"that\", \"these\", \"those\", \"it\", \"its\", \"we\", \"our\",\n \"you\", \"your\", \"they\", \"them\", \"their\", \"i\", \"me\", \"my\",\n ])\n for (const w of FALLBACK) words.add(w)\n }\n\n combinedStopCache.set(key, words)\n return words\n}\n\ninterface VectorEntry {\n id: string\n content: string\n metadata: DocumentMeta\n tfidf: Map<string, number>\n norm: number\n dense?: Float32Array\n}\n\nexport class VectorStore {\n private documents: Map<string, VectorEntry> = new Map()\n private vocabulary: Map<string, number> = new Map()\n private maxCacheSize = 100\n private searchCache: Map<string, SearchResult[]> = new Map()\n private semanticCache: Map<string, SearchResult[]> = new Map()\n private llmEngine: LLMEngine | null = null\n private embedder: LocalEmbedder | null = null\n private embedQueue: Array<{ id: string; content: string }> = []\n private embedProcessing = false\n /** Search weights \u2014 from config */\n private keywordWeight = 0.3\n private vectorWeight = 0.7\n /** Remote embedding config \u2014 dari config, bukan local embedder */\n private remoteEmbedModel: string | null = null\n private remoteEmbedEndpoint: string | null = null\n private remoteEmbedApiKey: string | null = null\n /** ISO 639-3 language codes for stop word filtering */\n private stopWordsLanguages: string[] = [\"ind\", \"eng\"]\n\n setLLM(llm: LLMEngine): void {\n this.llmEngine = llm\n }\n\n setEmbedder(embedder: LocalEmbedder): void {\n this.embedder = embedder\n }\n\n /** Set search weights from config \u2014 menggantikan hardcoded alpha */\n setSearchWeights(keyword: number, vector: number): void {\n this.keywordWeight = keyword\n this.vectorWeight = vector\n }\n\n /** Set remote embedding config \u2014 untuk full vector mode */\n setEmbeddingConfig(model: string, endpoint: string | null, apiKey: string | null): void {\n this.remoteEmbedModel = model\n this.remoteEmbedEndpoint = endpoint\n this.remoteEmbedApiKey = apiKey\n }\n\n /** Set stop word languages \u2014 dari config */\n setStopWordsLanguages(langs: string[]): void {\n if (langs.length > 0) this.stopWordsLanguages = langs\n }\n\n /** Get remote embedding config */\n getEmbeddingConfig(): { model: string; endpoint: string | null; apiKey: string | null } | null {\n if (!this.remoteEmbedModel) return null\n return { model: this.remoteEmbedModel, endpoint: this.remoteEmbedEndpoint, apiKey: this.remoteEmbedApiKey }\n }\n\n private queueDenseEmbed(id: string, content: string): void {\n if (!this.embedder) return\n this.embedQueue.push({ id, content })\n this.processEmbedQueue()\n }\n\n private async processEmbedQueue(): Promise<void> {\n if (this.embedProcessing || !this.embedder) return\n this.embedProcessing = true\n\n while (this.embedQueue.length > 0) {\n const batch = this.embedQueue.splice(0, 5)\n await Promise.all(batch.map(async ({ id, content }) => {\n try {\n const vec = await this.embedder!.embed(content)\n if (vec) {\n const doc = this.documents.get(id)\n if (doc) doc.dense = vec\n }\n } catch { /* skip failed embeddings */ }\n }))\n }\n\n this.embedProcessing = false\n }\n\n addDocument(id: string, content: string, metadata: DocumentMeta): void {\n const tokens = this.tokenize(content)\n const tf = new Map<string, number>()\n for (const t of tokens) {\n tf.set(t, (tf.get(t) ?? 0) + 1)\n }\n\n const existing = this.documents.get(id)\n if (existing) {\n for (const t of existing.tfidf.keys()) {\n const prev = this.vocabulary.get(t)\n if (prev !== undefined) {\n if (prev <= 1) this.vocabulary.delete(t)\n else this.vocabulary.set(t, prev - 1)\n }\n }\n }\n\n const tfs = tokenFreqToTF(tokens, tf)\n const totalDocs = this.documents.size + 1\n const tfidf = new Map<string, number>()\n for (const [term, tfVal] of tfs) {\n const df = (this.vocabulary.get(term) ?? 0) + 1\n const idf = Math.log((totalDocs) / df) + 1\n if (idf > 0) tfidf.set(term, tfVal * idf)\n }\n\n let norm = 0\n for (const v of tfidf.values()) norm += v * v\n norm = Math.sqrt(norm)\n\n this.documents.set(id, { id, content, metadata, tfidf, norm })\n\n for (const t of tokens) {\n this.vocabulary.set(t, (this.vocabulary.get(t) ?? 0) + 1)\n }\n\n this.searchCache.clear()\n this.semanticCache.clear()\n\n this.queueDenseEmbed(id, content)\n }\n\n search(query: string, topK = 5): SearchResult[] {\n return this.sparseSearch(query, topK)\n }\n\n async searchWithMode(query: string, topK = 5, mode: SearchMode = \"hybrid\"): Promise<SearchResult[]> {\n const cacheKey = `${mode}::${query}::${topK}`\n const cached = this.searchCache.get(cacheKey)\n if (cached) return cached\n\n if (this.documents.size === 0) return []\n\n let results: SearchResult[]\n\n switch (mode) {\n case \"dense\":\n results = await this.denseSearch(query, topK)\n break\n case \"hybrid\":\n results = await this.hybridSearch(query, topK)\n break\n case \"sparse\":\n default:\n results = this.sparseSearch(query, topK)\n break\n }\n\n if (this.searchCache.size >= this.maxCacheSize) {\n const firstKey = this.searchCache.keys().next().value\n if (firstKey !== undefined) this.searchCache.delete(firstKey)\n }\n this.searchCache.set(cacheKey, results)\n\n return results\n }\n\n private sparseSearch(query: string, topK: number): SearchResult[] {\n const queryTokens = this.tokenize(query)\n if (queryTokens.length === 0) return []\n\n const queryTF = new Map<string, number>()\n for (const t of queryTokens) {\n queryTF.set(t, (queryTF.get(t) ?? 0) + 1)\n }\n const qTf = tokenFreqToTF(queryTokens, queryTF)\n const totalDocs = this.documents.size\n\n let qNorm = 0\n const qWeight = new Map<string, number>()\n for (const [term, tfVal] of qTf) {\n const df = this.vocabulary.get(term) ?? 0\n const idf = df > 0 ? Math.log((totalDocs) / df) + 1 : 1\n const w = tfVal * idf\n qWeight.set(term, w)\n qNorm += w * w\n }\n qNorm = Math.sqrt(qNorm)\n if (qNorm === 0) return []\n\n const scores: SearchResult[] = []\n for (const doc of this.documents.values()) {\n let dot = 0\n for (const [term, qw] of qWeight) {\n const dw = doc.tfidf.get(term)\n if (dw) dot += qw * dw\n }\n const score = doc.norm > 0 ? dot / (qNorm * doc.norm) : 0\n if (score > 0.01) {\n scores.push({ id: doc.id, content: doc.content, metadata: { ...doc.metadata }, score })\n }\n }\n\n scores.sort((a, b) => b.score - a.score)\n return scores.slice(0, topK)\n }\n\n private async denseSearch(query: string, topK: number): Promise<SearchResult[]> {\n if (!this.embedder || !this.embedder.ready) {\n return this.sparseSearch(query, topK)\n }\n\n const hasDense = [...this.documents.values()].some(d => d.dense)\n if (!hasDense) return this.sparseSearch(query, topK)\n\n const qVec = await this.embedder.embed(query)\n if (!qVec) return this.sparseSearch(query, topK)\n\n const results: SearchResult[] = []\n for (const doc of this.documents.values()) {\n if (!doc.dense) continue\n let dot = 0, nA = 0, nB = 0\n for (let i = 0; i < doc.dense.length; i++) {\n const qv = qVec[i] ?? 0\n const dv = doc.dense[i] ?? 0\n dot += qv * dv\n nA += qv * qv\n nB += dv * dv\n }\n const sim = Math.sqrt(nA) * Math.sqrt(nB)\n const score = sim === 0 ? 0 : dot / sim\n if (score > 0.1) {\n results.push({ id: doc.id, content: doc.content, metadata: { ...doc.metadata }, score })\n }\n }\n\n results.sort((a, b) => b.score - a.score)\n return results.slice(0, topK)\n }\n\n private async hybridSearch(query: string, topK: number): Promise<SearchResult[]> {\n const [denseResults, sparseResults] = await Promise.all([\n this.denseSearch(query, Math.max(topK * 3, 15)),\n Promise.resolve(this.sparseSearch(query, Math.max(topK * 3, 15))),\n ])\n\n const combined = new Map<string, { sparseScore: number; denseScore: number; result: SearchResult }>()\n\n const maxSparse = sparseResults[0]?.score ?? 1\n for (const r of sparseResults) {\n combined.set(r.id, { sparseScore: r.score / maxSparse, denseScore: 0, result: r })\n }\n\n const maxDense = denseResults[0]?.score ?? 1\n for (const r of denseResults) {\n const existing = combined.get(r.id)\n if (existing) {\n existing.denseScore = r.score / maxDense\n } else {\n combined.set(r.id, { sparseScore: 0, denseScore: r.score / maxDense, result: r })\n }\n }\n\n const alpha = this.keywordWeight\n const results = [...combined.values()]\n .map(({ sparseScore, denseScore, result }) => ({\n ...result,\n score: (this.keywordWeight) * sparseScore + (this.vectorWeight) * denseScore,\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, topK)\n\n return results\n }\n\n async semanticSearch(query: string, topK = 5): Promise<SearchResult[]> {\n if (this.documents.size === 0) return []\n\n const cached = this.semanticCache.get(`${query}::${topK}`)\n if (cached) return cached\n\n const candidateCount = Math.max(topK * 2, 10)\n const hybridResults = await this.hybridSearch(query, candidateCount)\n\n if (!this.llmEngine || hybridResults.length <= topK) {\n const results = hybridResults.slice(0, topK)\n this.semanticCache.set(`${query}::${topK}`, results)\n return results\n }\n\n try {\n const docList = hybridResults.map((r, i) => `[${i}] ${r.content.slice(0, 200)}`).join(\"\\n\")\n const resp = await this.llmEngine.call({\n systemPrompt: \"You are a search relevance ranker. Given a query and a list of documents, rank the documents by relevance. Return ONLY a JSON array of document indices in descending relevance order (most relevant first), e.g. [3, 0, 7].\",\n userPrompt: `Query: \"${query}\"\\n\\nDocuments:\\n${docList}\\n\\nReturn indices sorted by relevance as JSON array.`,\n jsonMode: true,\n temperature: 0,\n maxTokens: 256,\n })\n\n const rankings: number[] = JSON.parse(resp.content)\n const reranked: SearchResult[] = []\n const seen = new Set<number>()\n\n for (const idx of rankings) {\n if (idx >= 0 && idx < hybridResults.length && !seen.has(idx)) {\n reranked.push({ ...hybridResults[idx], score: 1 - reranked.length / rankings.length })\n seen.add(idx)\n }\n }\n for (let i = 0; i < hybridResults.length; i++) {\n if (!seen.has(i)) reranked.push({ ...hybridResults[i], score: 0.1 })\n }\n\n const results = reranked.slice(0, topK)\n this.semanticCache.set(`${query}::${topK}`, results)\n return results\n } catch {\n const results = hybridResults.slice(0, topK)\n this.semanticCache.set(`${query}::${topK}`, results)\n return results\n }\n }\n\n searchByType(query: string, type: DocumentType, topK = 5): SearchResult[] {\n const results = this.search(query, topK * 2)\n return results.filter(r => r.metadata.type === type).slice(0, topK)\n }\n\n async semanticSearchByType(query: string, type: DocumentType, topK = 5): Promise<SearchResult[]> {\n const results = await this.semanticSearch(query, topK * 2)\n return results.filter(r => r.metadata.type === type).slice(0, topK)\n }\n\n removeDocument(id: string): boolean {\n const entry = this.documents.get(id)\n if (!entry) return false\n for (const t of entry.tfidf.keys()) {\n const prev = this.vocabulary.get(t)\n if (prev !== undefined) {\n if (prev <= 1) this.vocabulary.delete(t)\n else this.vocabulary.set(t, prev - 1)\n }\n }\n this.documents.delete(id)\n this.searchCache.clear()\n this.semanticCache.clear()\n return true\n }\n\n size(): number { return this.documents.size }\n clear(): void { this.documents.clear(); this.vocabulary.clear(); this.searchCache.clear(); this.semanticCache.clear() }\n clearCache(): void { this.searchCache.clear(); this.semanticCache.clear() }\n\n private tokenize(text: string): string[] {\n const stopWords = getStopWordSet(this.stopWordsLanguages)\n // Unicode-aware tokenizer: dukung semua script (Latin, Arab, CJK, dll)\n // \\p{L} = any Unicode letter, \\p{N} = any Unicode number\n return text.toLowerCase()\n .split(/[^\\p{L}\\p{N}_]+/u)\n .filter(t => t.length > 1 && !stopWords.has(t))\n }\n}\n\nfunction tokenFreqToTF(tokens: string[], tf: Map<string, number>): Map<string, number> {\n const len = tokens.length\n const result = new Map<string, number>()\n for (const [t, c] of tf) {\n result.set(t, c / len)\n }\n return result\n}\n", "export interface ModelStats {\n model: string\n totalCalls: number\n successCalls: number\n failedCalls: number\n hallucinationCount: number\n avgLatencyMs: number\n lastUsed: number\n consecutiveFailures: number\n consecutiveSuccesses: number\n quarantineUntil: number\n byTaskType?: Record<string, Omit<ModelStats, 'model' | 'byTaskType'>>\n}\n\nexport interface ModelScore {\n model: string\n reliability: number\n hallucinationRate: number\n totalCalls: number\n status: \"healthy\" | \"degraded\" | \"unstable\"\n}\n\nexport class ModelRegistry {\n private stats = new Map<string, ModelStats>()\n private modelAliases: Map<string, string[]> = new Map()\n\n private readonly maxConsecutiveFailures = 3\n\n constructor() {\n this.modelAliases.set(\"fast\", [])\n this.modelAliases.set(\"capable\", [])\n }\n\n registerAlias(alias: string, models: string[]): void {\n this.modelAliases.set(alias, models)\n }\n\n addModel(name: string): void {\n if (!this.stats.has(name)) {\n this.stats.set(name, {\n model: name,\n totalCalls: 0,\n successCalls: 0,\n failedCalls: 0,\n hallucinationCount: 0,\n avgLatencyMs: 0,\n lastUsed: 0,\n consecutiveFailures: 0,\n consecutiveSuccesses: 0,\n quarantineUntil: 0,\n byTaskType: {},\n })\n }\n }\n\n recordCall(model: string, success: boolean, latencyMs: number, taskType?: string): void {\n this.addModel(model)\n const stat = this.stats.get(model)!\n stat.totalCalls++\n stat.lastUsed = Date.now()\n\n if (success) {\n stat.successCalls++\n stat.consecutiveFailures = 0\n stat.consecutiveSuccesses++\n \n const score = this.getScore(model)\n if (stat.quarantineUntil > 0 && stat.consecutiveSuccesses >= 3 && stat.totalCalls >= 5 && score && score.hallucinationRate < 0.2) {\n stat.quarantineUntil = 0\n }\n } else {\n stat.failedCalls++\n stat.consecutiveFailures++\n stat.consecutiveSuccesses = 0\n \n if (stat.consecutiveFailures >= 5) {\n this.enterQuarantine(model, 30)\n }\n }\n\n stat.avgLatencyMs = stat.avgLatencyMs === 0\n ? latencyMs\n : (stat.avgLatencyMs * (stat.totalCalls - 1) + latencyMs) / stat.totalCalls\n\n // Record per-task-type stats if taskType provided\n if (taskType && stat.byTaskType) {\n if (!stat.byTaskType[taskType]) {\n stat.byTaskType[taskType] = {\n totalCalls: 0,\n successCalls: 0,\n failedCalls: 0,\n hallucinationCount: 0,\n avgLatencyMs: 0,\n lastUsed: 0,\n consecutiveFailures: 0,\n consecutiveSuccesses: 0,\n quarantineUntil: 0,\n }\n }\n const taskStat = stat.byTaskType[taskType]\n taskStat.totalCalls++\n taskStat.lastUsed = Date.now()\n if (success) {\n taskStat.successCalls++\n taskStat.consecutiveFailures = 0\n } else {\n taskStat.failedCalls++\n taskStat.consecutiveFailures++\n }\n taskStat.avgLatencyMs = taskStat.avgLatencyMs === 0\n ? latencyMs\n : (taskStat.avgLatencyMs * (taskStat.totalCalls - 1) + latencyMs) / taskStat.totalCalls\n }\n }\n\n recordHallucination(model: string): void {\n this.addModel(model)\n const stat = this.stats.get(model)!\n stat.hallucinationCount++\n }\n\n getScore(model: string): ModelScore | null {\n const stat = this.stats.get(model)\n if (!stat || stat.totalCalls === 0) {\n return {\n model,\n reliability: 0.5,\n hallucinationRate: 0,\n totalCalls: 0,\n status: \"healthy\",\n }\n }\n\n const successRate = stat.successCalls / stat.totalCalls\n const hallucinationRate = stat.hallucinationCount / stat.totalCalls\n const reliability = Math.max(0, Math.min(1, successRate - hallucinationRate * 2))\n\n let status: ModelScore[\"status\"] = \"healthy\"\n if (stat.consecutiveFailures >= this.maxConsecutiveFailures) status = \"degraded\"\n if (hallucinationRate > 0.3 || successRate < 0.4) status = \"unstable\"\n\n return { model, reliability, hallucinationRate, totalCalls: stat.totalCalls, status }\n }\n\n getScoreByTaskType(model: string, taskType: string): ModelScore | null {\n const stat = this.stats.get(model)\n if (!stat || !stat.byTaskType || !stat.byTaskType[taskType]) {\n return {\n model,\n reliability: 0.5,\n hallucinationRate: 0,\n totalCalls: 0,\n status: \"healthy\",\n }\n }\n\n const taskStat = stat.byTaskType[taskType]\n if (taskStat.totalCalls === 0) {\n return {\n model,\n reliability: 0.5,\n hallucinationRate: 0,\n totalCalls: 0,\n status: \"healthy\",\n }\n }\n\n const successRate = taskStat.successCalls / taskStat.totalCalls\n const hallucinationRate = taskStat.hallucinationCount / taskStat.totalCalls\n const reliability = Math.max(0, Math.min(1, successRate - hallucinationRate * 2))\n\n let status: ModelScore[\"status\"] = \"healthy\"\n if (taskStat.consecutiveFailures >= this.maxConsecutiveFailures) status = \"degraded\"\n if (hallucinationRate > 0.3 || successRate < 0.4) status = \"unstable\"\n\n return { model, reliability, hallucinationRate, totalCalls: taskStat.totalCalls, status }\n }\n\n getAllScores(): ModelScore[] {\n const models = new Set<string>()\n for (const key of this.stats.keys()) models.add(key)\n for (const [, aliases] of this.modelAliases) {\n for (const m of aliases) models.add(m)\n }\n return [...models].map(m => this.getScore(m)!).sort((a, b) => b.reliability - a.reliability)\n }\n\n resolveAlias(alias: string): string[] {\n return this.modelAliases.get(alias) ?? (alias ? [alias] : [])\n }\n\n suggestWithFallback(role: string, preferredModels: string[] = []): string[] {\n const candidates = new Set<string>()\n\n for (const m of preferredModels) {\n const resolved = this.resolveAlias(m)\n for (const r of resolved) if (r) candidates.add(r)\n }\n\n for (const key of this.stats.keys()) candidates.add(key)\n\n if (candidates.size === 0) return [\"default\"]\n\n const scored = [...candidates]\n .map(m => ({ model: m, score: this.getScore(m) }))\n .sort((a, b) => {\n if (!a.score || !b.score) return 0\n if (a.score.status === \"healthy\" && b.score.status !== \"healthy\") return -1\n if (a.score.status !== \"healthy\" && b.score.status === \"healthy\") return 1\n return b.score.reliability - a.score.reliability\n })\n\n return scored.map(s => s.model)\n }\n\n isBlocked(model: string, config: { hardBlockReliability: number; softBlockReliability: number; minSampleSize: number }): { blocked: boolean; reason: string; severity: \"hard\" | \"soft\" | null } {\n const stat = this.stats.get(model)\n if (!stat) return { blocked: false, reason: \"\", severity: null }\n\n if (stat.quarantineUntil > 0 && Date.now() < stat.quarantineUntil) {\n const remainingMinutes = Math.ceil((stat.quarantineUntil - Date.now()) / (60 * 1000))\n return { blocked: true, reason: `In quarantine for ${remainingMinutes} more minutes`, severity: \"hard\" }\n }\n\n if (stat.totalCalls < config.minSampleSize) {\n return { blocked: false, reason: \"\", severity: null }\n }\n\n const score = this.getScore(model)\n if (!score) return { blocked: false, reason: \"\", severity: null }\n\n if (score.reliability < config.hardBlockReliability) {\n return { blocked: true, reason: `Reliability ${(score.reliability * 100).toFixed(0)}% < ${(config.hardBlockReliability * 100).toFixed(0)}%`, severity: \"hard\" }\n }\n if (stat.consecutiveFailures >= 5) {\n return { blocked: true, reason: `${stat.consecutiveFailures} consecutive failures`, severity: \"hard\" }\n }\n if (score.hallucinationRate > 0.5) {\n return { blocked: true, reason: `Hallucination rate ${(score.hallucinationRate * 100).toFixed(0)}% > 50%`, severity: \"hard\" }\n }\n\n if (score.reliability < config.softBlockReliability) {\n return { blocked: true, reason: `Reliability ${(score.reliability * 100).toFixed(0)}% < ${(config.softBlockReliability * 100).toFixed(0)}%`, severity: \"soft\" }\n }\n\n return { blocked: false, reason: \"\", severity: null }\n }\n\n selectBestModel(\n taskType: string, \n availableModels: string[], \n blockingConfig?: { hardBlockReliability: number; softBlockReliability: number; minSampleSize: number }\n ): string {\n if (availableModels.length === 0) return \"default\"\n if (availableModels.length === 1) return availableModels[0]\n\n const scored = availableModels\n .map(model => {\n const resolvedModels = this.resolveAlias(model)\n if (resolvedModels.length === 0) return { model, score: null, blocked: false }\n \n const bestResolved = resolvedModels\n .map(m => {\n const blockStatus = blockingConfig \n ? this.isBlocked(m, blockingConfig)\n : { blocked: false, reason: \"\", severity: null }\n return { \n model: m, \n score: this.getScoreByTaskType(m, taskType),\n blocked: blockStatus.blocked && blockStatus.severity === \"hard\"\n }\n })\n .filter(s => !s.blocked)\n .sort((a, b) => {\n if (!a.score || !b.score) return 0\n if (a.score.status === \"healthy\" && b.score.status !== \"healthy\") return -1\n if (a.score.status !== \"healthy\" && b.score.status === \"healthy\") return 1\n return b.score.reliability - a.score.reliability\n })[0]\n \n return bestResolved\n })\n .filter(s => s && s.score !== null)\n .sort((a, b) => {\n if (!a.score || !b.score) return 0\n if (a.score.status === \"healthy\" && b.score.status !== \"healthy\") return -1\n if (a.score.status !== \"healthy\" && b.score.status === \"healthy\") return 1\n return b.score.reliability - a.score.reliability\n })\n\n return scored.length > 0 ? scored[0].model : availableModels[0]\n }\n\n selectWithFallback(\n taskType: string,\n availableModels: string[],\n blockingConfig: { hardBlockReliability: number; softBlockReliability: number; minSampleSize: number }\n ): { model: string; tier: \"healthy\" | \"degraded\" | \"unstable\" | \"reset\"; warnings: string[] } {\n if (availableModels.length === 0) {\n return { model: \"default\", tier: \"reset\", warnings: [\"No models available, using default\"] }\n }\n\n const warnings: string[] = []\n const categorized: { healthy: string[]; degraded: string[]; unstable: string[]; hardBlocked: string[] } = {\n healthy: [],\n degraded: [],\n unstable: [],\n hardBlocked: []\n }\n\n for (const model of availableModels) {\n const blockStatus = this.isBlocked(model, blockingConfig)\n if (blockStatus.blocked && blockStatus.severity === \"hard\") {\n categorized.hardBlocked.push(model)\n warnings.push(`${model}: HARD BLOCKED - ${blockStatus.reason}`)\n continue\n }\n\n const score = this.getScore(model)\n if (!score || score.totalCalls < blockingConfig.minSampleSize) {\n categorized.healthy.push(model)\n } else if (score.status === \"healthy\") {\n categorized.healthy.push(model)\n } else if (score.status === \"degraded\") {\n categorized.degraded.push(model)\n } else {\n categorized.unstable.push(model)\n }\n }\n\n if (categorized.healthy.length > 0) {\n return { model: categorized.healthy[0], tier: \"healthy\", warnings }\n }\n\n if (categorized.degraded.length > 0) {\n warnings.push(`Using degraded model ${categorized.degraded[0]} - all healthy models unavailable`)\n return { model: categorized.degraded[0], tier: \"degraded\", warnings }\n }\n\n if (categorized.unstable.length > 0) {\n warnings.push(`Using unstable model ${categorized.unstable[0]} - all healthy/degraded models unavailable`)\n return { model: categorized.unstable[0], tier: \"unstable\", warnings }\n }\n\n const leastBadModel = availableModels[0]\n this.resetModel(leastBadModel)\n warnings.push(`All models blocked - reset ${leastBadModel} and retrying`)\n return { model: leastBadModel, tier: \"reset\", warnings }\n }\n\n resetModel(model: string): void {\n const stat = this.stats.get(model)\n if (!stat) return\n \n stat.totalCalls = 0\n stat.successCalls = 0\n stat.failedCalls = 0\n stat.hallucinationCount = 0\n stat.consecutiveFailures = 0\n stat.byTaskType = {}\n }\n\n resetStaleModels(staleDays: number = 7): string[] {\n const now = Date.now()\n const staleThreshold = staleDays * 24 * 60 * 60 * 1000\n const resetModels: string[] = []\n\n for (const [model, stat] of this.stats.entries()) {\n if (stat.lastUsed > 0 && (now - stat.lastUsed) > staleThreshold) {\n this.resetModel(model)\n resetModels.push(model)\n }\n }\n\n return resetModels\n }\n\n enterQuarantine(model: string, durationMinutes: number = 30): void {\n const stat = this.stats.get(model)\n if (!stat) return\n \n stat.quarantineUntil = Date.now() + (durationMinutes * 60 * 1000)\n stat.consecutiveSuccesses = 0\n }\n\n getSummary(): string {\n const scores = this.getAllScores()\n if (scores.length === 0) return \"No model data recorded yet.\"\n\n return scores.map(s => {\n const icon = s.status === \"healthy\" ? \"\u2705\" : s.status === \"degraded\" ? \"\u26A0\uFE0F\" : \"\u274C\"\n return `${icon} **${s.model}** \u2014 reliability: ${(s.reliability * 100).toFixed(0)}%, hallucinations: ${(s.hallucinationRate * 100).toFixed(0)}%, calls: ${s.totalCalls}`\n }).join(\"\\n\")\n }\n\n toJSON(): Record<string, ModelStats> {\n return Object.fromEntries(this.stats)\n }\n\n fromJSON(data: Record<string, ModelStats>): void {\n for (const [key, val] of Object.entries(data)) {\n this.stats.set(key, val)\n }\n }\n}\n", "import { readFileSync, writeFileSync, mkdirSync, existsSync, watch } from \"node:fs\"\nimport { join } from \"node:path\"\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Schema\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport interface EmbeddingConfig {\n /** Model name, e.g. \"text-embedding-3-small\", \"nomic-embed-text\" */\n model: string\n /** Embedding endpoint \u2014 null berarti pakai base URL dari provider utama */\n endpoint: string | null\n /** API key \u2014 null berarti pakai key dari provider utama */\n apiKey: string | null\n}\n\nexport interface MemoryConfig {\n enabled: boolean\n /** \"lightweight\" (TF-IDF, no deps) | \"full\" (vector embedding) */\n mode: \"lightweight\" | \"full\"\n maxEntries: number\n compressThreshold: number\n forgetAfterDays: number\n /** ISO 639-3 language codes for stop word filtering */\n stopWordsLanguages: string[]\n search: {\n keywordWeight: number\n vectorWeight: number\n }\n}\n\nexport interface AgentConfig {\n maxDelegationDepth: number\n autoSkillExtract: boolean\n defaultRole: string\n requireSemanticCheck: boolean\n autoHallucinationCheck: boolean\n blockOnHallucination: boolean\n hallucinationThreshold: number\n hardBlockReliability: number\n softBlockReliability: number\n minSampleSize: number\n}\n\nexport interface StorageConfig {\n traceRetentionDays: number\n skillMaxCount: number\n}\n\nexport interface AgenticConfigSchema {\n $schema: string\n /** Embedding \u2014 null = lightweight mode */\n embedding: EmbeddingConfig | null\n memory: MemoryConfig\n agent: AgentConfig\n storage: StorageConfig\n}\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Defaults\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const DEFAULT_CONFIG: AgenticConfigSchema = {\n $schema: \"v1\",\n embedding: null,\n memory: {\n enabled: true,\n mode: \"lightweight\",\n maxEntries: 1000,\n compressThreshold: 500,\n forgetAfterDays: 30,\n stopWordsLanguages: [\"ind\", \"eng\"],\n search: {\n keywordWeight: 0.3,\n vectorWeight: 0.7,\n },\n },\n agent: {\n maxDelegationDepth: 3,\n autoSkillExtract: true,\n defaultRole: \"developer\",\n requireSemanticCheck: false,\n autoHallucinationCheck: true,\n blockOnHallucination: false,\n hallucinationThreshold: 0.3,\n hardBlockReliability: 0.2,\n softBlockReliability: 0.4,\n minSampleSize: 5,\n },\n storage: {\n traceRetentionDays: 7,\n skillMaxCount: 200,\n },\n}\n\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Loader\n// \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport class ConfigLoader {\n private config: AgenticConfigSchema\n private readonly configPath: string\n private readonly worktree: string\n private watcher: ReturnType<typeof watch> | null = null\n private listeners: Array<(config: AgenticConfigSchema) => void> = []\n\n constructor(worktree: string) {\n this.worktree = worktree\n this.configPath = join(worktree, \".agentic\", \"config.json\")\n this.config = { ...DEFAULT_CONFIG }\n }\n\n /** Load config from file, auto-create default if missing */\n load(): AgenticConfigSchema {\n try {\n if (!existsSync(this.configPath)) {\n this.save(DEFAULT_CONFIG)\n this.config = { ...DEFAULT_CONFIG }\n return this.config\n }\n\n const raw = readFileSync(this.configPath, \"utf-8\")\n const parsed = JSON.parse(raw)\n\n // Merge with defaults (so new fields always have values)\n this.config = this.mergeDeep({ ...DEFAULT_CONFIG }, parsed)\n return this.config\n } catch {\n // Parse error \u2014 fallback ke default\n this.config = { ...DEFAULT_CONFIG }\n return this.config\n }\n }\n\n /** Save config to file */\n save(config: AgenticConfigSchema): void {\n const dir = join(this.worktree, \".agentic\")\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n writeFileSync(this.configPath, JSON.stringify(config, null, 2), \"utf-8\")\n this.config = { ...config }\n }\n\n /** Get current config */\n get(): AgenticConfigSchema {\n return this.config\n }\n\n /** Update specific keys and persist */\n update(partial: Partial<AgenticConfigSchema>): AgenticConfigSchema {\n this.config = this.mergeDeep(this.config, partial)\n this.save(this.config)\n return this.config\n }\n\n /** Watch config file for changes */\n startWatch(): void {\n if (this.watcher) return\n try {\n this.watcher = watch(this.configPath, (eventType) => {\n if (eventType === \"change\") {\n this.load()\n for (const listener of this.listeners) {\n listener(this.config)\n }\n }\n })\n } catch {\n // File not exist yet or permission denied \u2014 skip watching\n }\n }\n\n /** Stop watching and clear all listeners */\n stopWatch(): void {\n if (this.watcher) {\n this.watcher.close()\n this.watcher = null\n }\n this.listeners = []\n }\n\n /** Listen for config changes. Returns an unsubscribe function. */\n onChange(listener: (config: AgenticConfigSchema) => void): () => void {\n this.listeners.push(listener)\n return () => {\n const idx = this.listeners.indexOf(listener)\n if (idx !== -1) this.listeners.splice(idx, 1)\n }\n }\n\n /** Check if full embedding is configured */\n hasEmbedding(): boolean {\n return this.config.embedding != null && !!this.config.embedding.model\n }\n\n /** Get effective memory mode \u2014 auto-switch to \"full\" if embedding configured */\n effectiveMemoryMode(): \"lightweight\" | \"full\" {\n if (this.hasEmbedding()) return \"full\"\n return this.config.memory.mode\n }\n\n /** Deep merge helper (simple version, no array merge) */\n private mergeDeep<T extends Record<string, any>>(target: T, source: Partial<T>): T {\n const result = { ...target }\n for (const key of Object.keys(source) as Array<keyof T>) {\n const val = source[key]\n if (val !== undefined && val !== null && typeof val === \"object\" && !Array.isArray(val)) {\n result[key] = this.mergeDeep(result[key] as Record<string, any>, val as Record<string, any>) as T[keyof T]\n } else if (val !== undefined) {\n result[key] = val as T[keyof T]\n }\n }\n return result\n }\n}\n", "/**\n * PatternDiscovery \u2014 cross-session pattern analysis for self-evolving agents.\n *\n * Analyzes episodic memory, error history, file changes, and skill usage\n * across sessions to identify recurring issues, systemic improvements,\n * and actionable recommendations.\n *\n * Aligns with the paper's vision of agents that learn from collective\n * experience rather than operating in isolation.\n */\n\nimport type { Episode } from \"../memory/episodic-store.js\"\nimport type { StepResult } from \"../evolution/continuous-evolution.js\"\n\n// \u2500\u2500 Interfaces \u2500\u2500\n\nexport interface ErrorPattern {\n /** Error category (compile, type, import, test, runtime) */\n category: string\n /** Number of distinct sessions where this error occurred */\n sessionCount: number\n /** Total occurrences across all sessions */\n totalOccurrences: number\n /** Percentage of sessions that experienced this error */\n sessionAffinity: number\n /** Most recent occurrence timestamp */\n lastOccurrence: string\n /** Actionable suggestion */\n suggestion: string\n /** Example session IDs */\n sampleSessions: string[]\n}\n\nexport interface FilePattern {\n /** File path (relative) */\n filePath: string\n /** Number of sessions where this file was modified */\n sessionCount: number\n /** Total modifications across sessions */\n totalChanges: number\n /** Files frequently changed together with this one (co-change frequency) */\n coChangedFiles: Array<{ filePath: string; coOccurrences: number }>\n /** Whether this file is a \"hot spot\" (frequently changed, high risk) */\n isHotSpot: boolean\n /** Suggestion */\n suggestion: string\n}\n\nexport interface SessionOutcomePattern {\n /** Description of the pattern */\n description: string\n /** Outcome statistics for sessions matching this pattern */\n outcomeStats: { total: number; success: number; partial: number; failed: number }\n /** Number of sessions matching */\n matchingSessions: number\n /** Success rate among matching sessions */\n successRate: number\n /** Tags or characteristics common to these sessions */\n commonTags: string[]\n /** Trend over time */\n trend: \"improving\" | \"degrading\" | \"stable\"\n /** Actionable insight */\n insight: string\n}\n\nexport interface SkillEffectiveness {\n /** Skill name */\n skillName: string\n /** Current success rate (0-1) */\n successRate: number\n /** Usage count */\n usageCount: number\n /** Success rate trend: recent 5 vs overall */\n recentTrend: \"improving\" | \"degrading\" | \"stable\" | \"insufficient_data\"\n /** Whether this skill should be reviewed or promoted */\n status: \"healthy\" | \"needs_review\" | \"underperforming\" | \"highly_effective\"\n /** Suggestion */\n suggestion: string\n}\n\nexport interface Recommendation {\n /** Priority level */\n priority: \"high\" | \"medium\" | \"low\"\n /** Category of recommendation */\n category: \"error_prevention\" | \"architecture\" | \"testing\" | \"process\" | \"skill\" | \"infrastructure\"\n /** Human-readable description */\n description: string\n /** Concrete action to take */\n action: string\n /** Number of sessions affected by this issue */\n affectedSessions: number\n}\n\nexport interface PatternReport {\n /** When the analysis was generated */\n timestamp: string\n /** Number of sessions analyzed */\n totalSessions: number\n /** Error patterns found */\n errorPatterns: ErrorPattern[]\n /** File change patterns found */\n filePatterns: FilePattern[]\n /** Session outcome patterns found */\n sessionPatterns: SessionOutcomePattern[]\n /** Skill effectiveness analysis */\n skillEffectiveness: SkillEffectiveness[]\n /** Actionable recommendations */\n recommendations: Recommendation[]\n}\n\n// \u2500\u2500 PatternDiscovery Class \u2500\u2500\n\nexport class PatternDiscovery {\n /**\n * Generate a comprehensive pattern report from session data.\n *\n * @param episodes All recorded episodes (cross-session memory)\n * @param stepResults Step execution results (from ContinuousEvolution)\n * @param skills Known skills with usage stats\n * @param options Analysis options\n */\n analyze(\n episodes: Episode[],\n stepResults: StepResult[] = [],\n skills: Array<{ name: string; successRate: number; usageCount: number }> = [],\n options: { minSessions?: number; hotSpotThreshold?: number } = {},\n ): PatternReport {\n const minSessions = options.minSessions ?? 2\n const hotSpotThreshold = options.hotSpotThreshold ?? 3\n const sessionIds = [...new Set(episodes.map(e => e.sessionId))]\n\n const errorPatterns = this.analyzeErrors(episodes, stepResults, sessionIds, minSessions)\n const filePatterns = this.analyzeFiles(episodes, sessionIds, hotSpotThreshold)\n const sessionPatterns = this.analyzeSessionOutcomes(episodes, sessionIds)\n const skillEffectiveness = this.analyzeSkills(skills)\n const recommendations = this.generateRecommendations({\n errorPatterns,\n filePatterns,\n sessionPatterns,\n skillEffectiveness,\n episodes,\n sessionIds,\n })\n\n return {\n timestamp: new Date().toISOString(),\n totalSessions: sessionIds.length,\n errorPatterns,\n filePatterns,\n sessionPatterns,\n skillEffectiveness,\n recommendations,\n }\n }\n\n // \u2500\u2500 Error Pattern Analysis \u2500\u2500\n\n private analyzeErrors(\n episodes: Episode[],\n stepResults: StepResult[],\n sessionIds: string[],\n minSessions: number,\n ): ErrorPattern[] {\n // Collect error categories from step results\n const errorByCategory = new Map<string, {\n sessions: Set<string>\n count: number\n lastTimestamp: number\n }>()\n\n for (const r of stepResults) {\n if (r.success) continue\n const cat = r.category ?? \"unknown\"\n let entry = errorByCategory.get(cat)\n if (!entry) {\n entry = { sessions: new Set(), count: 0, lastTimestamp: 0 }\n errorByCategory.set(cat, entry)\n }\n entry.sessions.add(r.sessionId)\n entry.count++\n if (r.timestamp > entry.lastTimestamp) entry.lastTimestamp = r.timestamp\n }\n\n // Also infer errors from failed episodes\n for (const ep of episodes) {\n if (ep.outcome === \"failed\" || ep.outcome === \"partial\") {\n // Try to extract error category from plan goal\n const goal = ep.planGoal.toLowerCase()\n const inferredCat = this.inferCategory(goal)\n if (inferredCat) {\n let entry = errorByCategory.get(inferredCat)\n if (!entry) {\n entry = { sessions: new Set(), count: 0, lastTimestamp: 0 }\n errorByCategory.set(inferredCat, entry)\n }\n entry.sessions.add(ep.sessionId)\n entry.count++\n }\n }\n }\n\n const totalSessions = sessionIds.length\n const patterns: ErrorPattern[] = []\n\n for (const [category, data] of errorByCategory) {\n if (data.sessions.size < minSessions) continue\n\n patterns.push({\n category,\n sessionCount: data.sessions.size,\n totalOccurrences: data.count,\n sessionAffinity: totalSessions > 0 ? data.sessions.size / totalSessions : 0,\n lastOccurrence: new Date(data.lastTimestamp).toISOString(),\n suggestion: this.suggestErrorFix(category),\n sampleSessions: [...data.sessions].slice(0, 3),\n })\n }\n\n // Sort by session count descending\n patterns.sort((a, b) => b.sessionCount - a.sessionCount)\n return patterns\n }\n\n // \u2500\u2500 File Change Pattern Analysis \u2500\u2500\n\n private analyzeFiles(\n episodes: Episode[],\n sessionIds: string[],\n hotSpotThreshold: number,\n ): FilePattern[] {\n // Track file changes per session\n const fileSessions = new Map<string, Set<string>>() // filePath \u2192 Set<sessionId>\n const fileChanges = new Map<string, number>() // filePath \u2192 total changes\n const coChangeMatrix = new Map<string, Map<string, number>>() // filePath \u2192 { coFile \u2192 count }\n\n for (const ep of episodes) {\n const files = ep.filesChanged\n if (files.length === 0) continue\n\n for (const file of files) {\n // Track sessions per file\n let sessions = fileSessions.get(file)\n if (!sessions) {\n sessions = new Set()\n fileSessions.set(file, sessions)\n }\n sessions.add(ep.sessionId)\n\n // Track total changes\n fileChanges.set(file, (fileChanges.get(file) ?? 0) + 1)\n\n // Track co-changes\n for (const other of files) {\n if (other === file) continue\n let matrix = coChangeMatrix.get(file)\n if (!matrix) {\n matrix = new Map()\n coChangeMatrix.set(file, matrix)\n }\n matrix.set(other, (matrix.get(other) ?? 0) + 1)\n }\n }\n }\n\n const totalSessions = sessionIds.length\n const patterns: FilePattern[] = []\n\n for (const [filePath, sessions] of fileSessions) {\n if (sessions.size < 2) continue // skip files changed in only 1 session\n\n const coChanged: Array<{ filePath: string; coOccurrences: number }> = []\n const matrix = coChangeMatrix.get(filePath)\n if (matrix) {\n for (const [coFile, count] of matrix) {\n coChanged.push({ filePath: coFile, coOccurrences: count })\n }\n coChanged.sort((a, b) => b.coOccurrences - a.coOccurrences)\n }\n\n const totalChanges = fileChanges.get(filePath) ?? sessions.size\n\n patterns.push({\n filePath,\n sessionCount: sessions.size,\n totalChanges,\n coChangedFiles: coChanged.slice(0, 5), // top 5 co-changed\n isHotSpot: sessions.size >= hotSpotThreshold,\n suggestion: this.suggestFileAction(filePath, sessions.size, totalSessions, coChanged.length),\n })\n }\n\n // Sort: hot spots first, then by session count\n patterns.sort((a, b) => {\n if (a.isHotSpot && !b.isHotSpot) return -1\n if (!a.isHotSpot && b.isHotSpot) return 1\n return b.sessionCount - a.sessionCount\n })\n\n return patterns\n }\n\n // \u2500\u2500 Session Outcome Pattern Analysis \u2500\u2500\n\n private analyzeSessionOutcomes(\n episodes: Episode[],\n sessionIds: string[],\n ): SessionOutcomePattern[] {\n const patterns: SessionOutcomePattern[] = []\n\n if (sessionIds.length < 3) return patterns\n\n // Pattern 1: Sessions with many file changes tend to fail more\n const highChangeSessions = episodes.filter(e =>\n e.filesChanged.length >= 5 && sessionIds.includes(e.sessionId)\n )\n if (highChangeSessions.length >= 2) {\n const outcomes = this.countOutcomes(highChangeSessions)\n const successRate = outcomes.total > 0 ? outcomes.success / outcomes.total : 0\n patterns.push({\n description: \"High file churn sessions (>5 files changed) have lower success rates\",\n outcomeStats: outcomes,\n matchingSessions: highChangeSessions.length,\n successRate,\n commonTags: [\"high-churn\", \"large-change\"],\n trend: this.computeTrend(highChangeSessions),\n insight: successRate < 0.6\n ? \"Large changes tend to fail. Consider breaking into smaller, independent steps.\"\n : \"Large changes are handled well. Keep current decomposition strategy.\",\n })\n }\n\n // Pattern 2: Sessions with specific tags\n const tagGroups = this.groupByTags(episodes, sessionIds)\n for (const [tag, tagEpisodes] of tagGroups) {\n if (tagEpisodes.length < 2) continue\n const outcomes = this.countOutcomes(tagEpisodes)\n const successRate = outcomes.total > 0 ? outcomes.success / outcomes.total : 0\n patterns.push({\n description: `Sessions tagged \"${tag}\" have ${(successRate * 100).toFixed(0)}% success rate`,\n outcomeStats: outcomes,\n matchingSessions: tagEpisodes.length,\n successRate,\n commonTags: [tag],\n trend: this.computeTrend(tagEpisodes),\n insight: successRate < 0.5\n ? `Tasks involving \"${tag}\" frequently fail. Consider adding targeted verification or pre-checks.`\n : `Tasks involving \"${tag}\" perform well. Consider extracting as a reusable pattern.`,\n })\n }\n\n // Pattern 3: Sessions with \"refactor\" or \"migration\" in goal\n const refactorSessions = episodes.filter(e =>\n (e.planGoal.toLowerCase().includes(\"refactor\") ||\n e.planGoal.toLowerCase().includes(\"migrate\") ||\n e.planGoal.toLowerCase().includes(\"extract\")) &&\n sessionIds.includes(e.sessionId)\n )\n if (refactorSessions.length >= 2) {\n const outcomes = this.countOutcomes(refactorSessions)\n patterns.push({\n description: \"Refactoring/migration sessions have mixed outcomes\",\n outcomeStats: outcomes,\n matchingSessions: refactorSessions.length,\n successRate: outcomes.total > 0 ? outcomes.success / outcomes.total : 0,\n commonTags: [\"refactor\", \"migration\"],\n trend: this.computeTrend(refactorSessions),\n insight: \"Refactoring tasks benefit from pre-change baseline tests and incremental commits.\",\n })\n }\n\n return patterns\n }\n\n // \u2500\u2500 Skill Effectiveness Analysis \u2500\u2500\n\n private analyzeSkills(\n skills: Array<{ name: string; successRate: number; usageCount: number }>,\n ): SkillEffectiveness[] {\n return skills.map(skill => {\n // Determine status based on success rate and usage\n let status: SkillEffectiveness[\"status\"]\n let suggestion: string\n\n if (skill.usageCount === 0) {\n status = \"needs_review\"\n suggestion = \"Skill has not been used yet. Consider testing with a suitable task.\"\n } else if (skill.successRate >= 0.9 && skill.usageCount >= 3) {\n status = \"highly_effective\"\n suggestion = \"Highly reliable skill. Consider marking as a 'trusted' pattern for auto-delegation.\"\n } else if (skill.successRate >= 0.7) {\n status = \"healthy\"\n suggestion = \"Skill performs well. Continue monitoring.\"\n } else if (skill.successRate >= 0.4) {\n status = \"needs_review\"\n suggestion = `Success rate is ${(skill.successRate * 100).toFixed(0)}%. Review the skill steps for edge cases or missing preconditions.`\n } else {\n status = \"underperforming\"\n suggestion = `Success rate is critically low (${(skill.successRate * 100).toFixed(0)}%). Consider retiring and replacing with a more reliable pattern.`\n }\n\n // Determine recent trend based on mock data or mark as insufficient\n const recentTrend: SkillEffectiveness[\"recentTrend\"] =\n skill.usageCount < 3 ? \"insufficient_data\" : skill.successRate >= 0.8 ? \"improving\" : skill.successRate >= 0.5 ? \"stable\" : \"degrading\"\n\n return {\n skillName: skill.name,\n successRate: skill.successRate,\n usageCount: skill.usageCount,\n recentTrend,\n status,\n suggestion,\n }\n })\n }\n\n // \u2500\u2500 Recommendation Engine \u2500\u2500\n\n private generateRecommendations(context: {\n errorPatterns: ErrorPattern[]\n filePatterns: FilePattern[]\n sessionPatterns: SessionOutcomePattern[]\n skillEffectiveness: SkillEffectiveness[]\n episodes: Episode[]\n sessionIds: string[]\n }): Recommendation[] {\n const recs: Recommendation[] = []\n\n // Error-based recommendations\n for (const ep of context.errorPatterns) {\n if (ep.sessionAffinity >= 0.5) {\n recs.push({\n priority: \"high\",\n category: \"error_prevention\",\n description: `\"${ep.category}\" error occurs in ${(ep.sessionAffinity * 100).toFixed(0)}% of sessions (${ep.sessionCount}/${context.sessionIds.length})`,\n action: ep.suggestion,\n affectedSessions: ep.sessionCount,\n })\n } else if (ep.sessionAffinity >= 0.3) {\n recs.push({\n priority: \"medium\",\n category: \"error_prevention\",\n description: `\"${ep.category}\" error is recurring (${ep.sessionCount} sessions)`,\n action: ep.suggestion,\n affectedSessions: ep.sessionCount,\n })\n }\n }\n\n // File hotspot recommendations\n for (const fp of context.filePatterns) {\n if (fp.isHotSpot && fp.coChangedFiles.length >= 3) {\n recs.push({\n priority: \"high\",\n category: \"architecture\",\n description: `Hot spot detected: \"${fp.filePath}\" modified in ${fp.sessionCount} sessions with ${fp.coChangedFiles.length} co-changed files`,\n action: `Consider refactoring \"${fp.filePath}\" into smaller modules to reduce coupling. Co-changed files: ${fp.coChangedFiles.slice(0, 3).map(c => `\"${c.filePath}\"`).join(\", \")}.`,\n affectedSessions: fp.sessionCount,\n })\n }\n }\n\n // Session outcome recommendations\n for (const sp of context.sessionPatterns) {\n if (sp.successRate < 0.5 && sp.matchingSessions >= 2) {\n recs.push({\n priority: \"high\",\n category: \"process\",\n description: sp.description,\n action: sp.insight,\n affectedSessions: sp.matchingSessions,\n })\n }\n }\n\n // Skill recommendations\n for (const sk of context.skillEffectiveness) {\n if (sk.status === \"underperforming\") {\n recs.push({\n priority: \"high\",\n category: \"skill\",\n description: `Skill \"${sk.skillName}\" is underperforming (${(sk.successRate * 100).toFixed(0)}% success)`,\n action: sk.suggestion,\n affectedSessions: sk.usageCount,\n })\n } else if (sk.status === \"highly_effective\" && sk.usageCount >= 3) {\n recs.push({\n priority: \"medium\",\n category: \"skill\",\n description: `Skill \"${sk.skillName}\" is highly effective (${(sk.successRate * 100).toFixed(0)}% success over ${sk.usageCount} uses)`,\n action: sk.suggestion,\n affectedSessions: sk.usageCount,\n })\n }\n }\n\n // Global observations\n if (context.sessionIds.length >= 3) {\n const recentEps = [...context.episodes]\n .sort((a, b) => b.timestamp.localeCompare(a.timestamp))\n .slice(0, Math.min(5, context.episodes.length))\n const recentSuccesses = recentEps.filter(e => e.outcome === \"success\").length\n const recentRate = recentEps.length > 0 ? recentSuccesses / recentEps.length : 0\n\n if (recentRate < 0.4 && recentEps.length >= 3) {\n recs.push({\n priority: \"high\",\n category: \"process\",\n description: \"Recent sessions show declining success rate\",\n action: \"Consider reviewing plan decomposition strategy. Are tasks too large? Are verification criteria clear?\",\n affectedSessions: recentEps.length,\n })\n }\n }\n\n // Sort by priority\n const priorityOrder = { high: 0, medium: 1, low: 2 }\n recs.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority])\n\n return recs\n }\n\n // \u2500\u2500 Helpers \u2500\u2500\n\n private inferCategory(text: string): string | null {\n const lower = text.toLowerCase()\n if (lower.includes(\"import\") || lower.includes(\"module\") || lower.includes(\"require\") || lower.includes(\"not found\")) return \"import\"\n if (lower.includes(\"type\") || lower.includes(\"assignable\") || lower.includes(\"interface\")) return \"type\"\n if (lower.includes(\"compile\") || lower.includes(\"syntax\") || lower.includes(\"build\") || lower.includes(\"tsc\")) return \"compile\"\n if (lower.includes(\"test\") || lower.includes(\"spec\") || lower.includes(\"assert\") || lower.includes(\"expect\")) return \"test\"\n if (lower.includes(\"runtime\") || lower.includes(\"undefined\") || lower.includes(\"null\") || lower.includes(\"error\") || lower.includes(\"exception\")) return \"runtime\"\n return null\n }\n\n private suggestErrorFix(category: string): string {\n const suggestions: Record<string, string> = {\n import: \"Add import path verification before execution. Check module existence and export names.\",\n type: \"Run TypeScript type-checker before implementation. Ensure interfaces match between modules.\",\n compile: \"Add incremental compilation checks. Verify syntax before full build.\",\n test: \"Improve test isolation. Ensure tests don't share mutable state. Add setup/teardown hooks.\",\n runtime: \"Add input validation and defensive checks. Consider adding try-catch at module boundaries.\",\n }\n return suggestions[category] ?? `Review ${category} error patterns and add targeted verification.`\n }\n\n private suggestFileAction(filePath: string, sessionCount: number, totalSessions: number, coChangeCount: number): string {\n const affinity = totalSessions > 0 ? (sessionCount / totalSessions * 100).toFixed(0) : \"?\"\n if (coChangeCount >= 3) {\n return `High coupling detected (${coChangeCount} co-changed files). \"${filePath}\" changes in ${affinity}% of sessions. Consider extracting stable interfaces.`\n }\n if (parseInt(affinity) > 50) {\n return `\"${filePath}\" is modified in ${affinity}% of sessions. High churn may indicate scope creep.`\n }\n return `\"${filePath}\" is a recurring change target (${sessionCount} sessions). Monitor for stability.`\n }\n\n private countOutcomes(episodes: Episode[]): { total: number; success: number; partial: number; failed: number } {\n return {\n total: episodes.length,\n success: episodes.filter(e => e.outcome === \"success\").length,\n partial: episodes.filter(e => e.outcome === \"partial\").length,\n failed: episodes.filter(e => e.outcome === \"failed\").length,\n }\n }\n\n private groupByTags(episodes: Episode[], sessionIds: string[]): Map<string, Episode[]> {\n const groups = new Map<string, Episode[]>()\n for (const ep of episodes) {\n if (!sessionIds.includes(ep.sessionId)) continue\n for (const tag of ep.tags) {\n let group = groups.get(tag)\n if (!group) {\n group = []\n groups.set(tag, group)\n }\n group.push(ep)\n }\n }\n return groups\n }\n\n private computeTrend(episodes: Episode[]): \"improving\" | \"degrading\" | \"stable\" {\n if (episodes.length < 4) return \"stable\"\n\n const sorted = [...episodes].sort((a, b) => a.timestamp.localeCompare(b.timestamp))\n const mid = Math.floor(sorted.length / 2)\n const firstHalf = sorted.slice(0, mid)\n const secondHalf = sorted.slice(mid)\n\n const firstSuccess = firstHalf.filter(e => e.outcome === \"success\").length / firstHalf.length\n const secondSuccess = secondHalf.filter(e => e.outcome === \"success\").length / secondHalf.length\n\n if (secondSuccess > firstSuccess + 0.1) return \"improving\"\n if (secondSuccess < firstSuccess - 0.1) return \"degrading\"\n return \"stable\"\n }\n}\n", "// src/evaluation/live-evaluator.ts \u2014 Real-time evaluation score\n// Mengukur performa agent secara live dari aktivitas sesi nyata,\n// mirip metrik SWE-bench (task success) dan EvoClaw (continuous evolution).\n//\n// Bobot:\n// taskSuccess: 40% \u2014 % step yang sukses\n// errorRecovery: 20% \u2014 % error yang pulih setelah retry\n// contextStability: 15% \u2014 konsistensi navigasi file\n// multiAgent: 15% \u2014 % delegasi sukses\n// skillReuse: 10% \u2014 skill ditemukan & dipakai ulang\n\nexport interface LiveEvalDimension {\n score: number // 0-1\n weight: number // bobot kontribusi ke overall\n target: number // target minimal (0-1)\n detail: string // human-readable\n}\n\nexport interface LiveEvalScore {\n overall: number // 0-100\n dimensions: Record<string, LiveEvalDimension>\n totalSteps: number\n totalErrors: number\n recoveredErrors: number\n totalDelegations: number\n successfulDelegations: number\n /**\n * SWE-bench-style: berapa % task yang success dari total\n * EvoClaw-style: composite weighted score\n */\n sweBenchScore: number // task success rate (0-100)\n evoClawScore: number // composite score (0-100)\n}\n\nexport class LiveEvaluator {\n private stepResults: Array<{ stepId: string; success: boolean; sessionId?: string }> = []\n private errorRecoveries: Array<{ errorId: string; recovered: boolean }> = []\n private navigations: Array<{ query: string; resultsCount: number; focused: boolean }> = []\n private delegations: Array<{ taskId: string; role: string; success: boolean }> = []\n private skillLookups: Array<{ found: boolean }> = []\n\n // \u2500\u2500 Feed methods \u2500\u2500\n\n feedStepResult(step: { stepId: string; success: boolean; sessionId?: string }): void {\n this.stepResults.push(step)\n }\n\n feedErrorRecovery(errorId: string, recovered: boolean): void {\n this.errorRecoveries.push({ errorId, recovered })\n }\n\n feedNavigation(query: string, resultsCount: number): void {\n this.navigations.push({ query, resultsCount, focused: resultsCount > 0 && resultsCount <= 10 })\n }\n\n feedDelegation(taskId: string, role: string, success: boolean): void {\n this.delegations.push({ taskId, role, success })\n }\n\n feedSkillLookup(found: boolean): void {\n this.skillLookups.push({ found })\n }\n\n // \u2500\u2500 Compute methods \u2500\u2500\n\n /**\n * Task success rate (SWE-bench style).\n * Berapa % step yang sukses dari total.\n */\n computeTaskSuccess(): number {\n const total = this.stepResults.length\n if (total === 0) return 0\n const successes = this.stepResults.filter(s => s.success).length\n return successes / total\n }\n\n /**\n * Error recovery rate.\n * Berapa % error yang berhasil pulih (retry sukses setelah error).\n */\n computeErrorRecovery(): number {\n const total = this.errorRecoveries.length\n if (total === 0) return 1 // no errors = perfect recovery\n const recovered = this.errorRecoveries.filter(e => e.recovered).length\n return recovered / total\n }\n\n /**\n * Context stability score.\n * Navigasi yang fokus (\u226410 results) mengindikasikan pemahaman codebase yang baik.\n */\n computeContextStability(): number {\n const total = this.navigations.length\n if (total === 0) return 1 // no nav = stable (nothing drifted)\n const focused = this.navigations.filter(n => n.focused).length\n return focused / total\n }\n\n /**\n * Multi-agent coordination rate.\n * Berapa % delegasi yang sukses.\n */\n computeMultiAgent(): number {\n const total = this.delegations.length\n if (total === 0) return 1 // no delegation = not relevant\n const successes = this.delegations.filter(d => d.success).length\n return successes / total\n }\n\n /**\n * Skill reuse rate.\n * Berapa % lookup skill yang berhasil ditemukan.\n */\n computeSkillReuse(): number {\n const total = this.skillLookups.length\n if (total === 0) return 0.5 // neutral \u2014 no skill usage tracked\n const found = this.skillLookups.filter(s => s.found).length\n return found / total\n }\n\n /**\n * Compute overall live evaluation score.\n */\n computeScore(): LiveEvalScore {\n const taskSuccessScore = this.computeTaskSuccess()\n const errorRecoveryScore = this.computeErrorRecovery()\n const contextStabilityScore = this.computeContextStability()\n const multiAgentScore = this.computeMultiAgent()\n const skillReuseScore = this.computeSkillReuse()\n\n const dimensions: Record<string, LiveEvalDimension> = {\n taskSuccess: {\n score: taskSuccessScore,\n weight: 0.40,\n target: 0.80, // SWE-bench target\n detail: `${(taskSuccessScore * 100).toFixed(0)}% step success (target >80%)`,\n },\n errorRecovery: {\n score: errorRecoveryScore,\n weight: 0.20,\n target: 0.70,\n detail: `${(errorRecoveryScore * 100).toFixed(0)}% error recovery (target >70%)`,\n },\n contextStability: {\n score: contextStabilityScore,\n weight: 0.15,\n target: 0.80,\n detail: `${(contextStabilityScore * 100).toFixed(0)}% focused navigation (target >80%)`,\n },\n multiAgent: {\n score: multiAgentScore,\n weight: 0.15,\n target: 0.90,\n detail: `${(multiAgentScore * 100).toFixed(0)}% delegation success (target >90%)`,\n },\n skillReuse: {\n score: skillReuseScore,\n weight: 0.10,\n target: 0.50,\n detail: `${(skillReuseScore * 100).toFixed(0)}% skill found (target >50%)`,\n },\n }\n\n const overall = Object.values(dimensions).reduce((s, d) => s + d.score * d.weight, 0)\n const sweBenchScore = taskSuccessScore * 100\n const evoClawScore = overall * 100\n\n return {\n overall: Math.round(overall * 100),\n dimensions,\n totalSteps: this.stepResults.length,\n totalErrors: this.errorRecoveries.length,\n recoveredErrors: this.errorRecoveries.filter(e => e.recovered).length,\n totalDelegations: this.delegations.length,\n successfulDelegations: this.delegations.filter(d => d.success).length,\n sweBenchScore: Math.round(sweBenchScore),\n evoClawScore: Math.round(evoClawScore),\n }\n }\n\n /**\n * Generate human-readable report.\n */\n formatReport(includeTips = true): string {\n const score = this.computeScore()\n\n let out = `## \uD83D\uDCCA Live Evaluation Score\\n\\n`\n out += `**Overall:** ${score.overall}/100\\n`\n out += `**SWE-bench Score:** ${score.sweBenchScore}/100 (task success)\\n`\n out += `**EvoClaw Score:** ${score.evoClawScore}/100 (composite)\\n\\n`\n\n out += `### Dimensions\\n`\n for (const [name, dim] of Object.entries(score.dimensions)) {\n const bar = \"\u2588\".repeat(Math.round(dim.score * 20))\n const icon = dim.score >= dim.target ? \"\u2705\" : dim.score >= dim.target * 0.7 ? \"\u26A0\uFE0F\" : \"\u274C\"\n out += `${icon} **${name}:** ${(dim.score * 100).toFixed(0)}% ` +\n `${bar.padEnd(20, \"\u2591\")} ` +\n `(target: ${(dim.target * 100).toFixed(0)}%, weight: ${(dim.weight * 100).toFixed(0)}%)\\n`\n out += ` ${dim.detail}\\n`\n }\n\n out += `\\n### Activity\\n`\n out += `- **Steps:** ${score.totalSteps} | **Errors:** ${score.totalErrors} (${score.recoveredErrors} recovered)\\n`\n out += `- **Delegations:** ${score.totalDelegations} (${score.successfulDelegations} successful)\\n`\n\n if (includeTips && score.overall < 80) {\n out += `\\n### Tips\\n`\n if (score.dimensions.taskSuccess.score < 0.8) {\n out += `- \uD83D\uDD27 Task success rendah. Aktifkan \\`autoVerify\\` di agentic_execute.\\n`\n }\n if (score.dimensions.errorRecovery.score < 0.7) {\n out += `- \uD83D\uDD27 Error recovery rendah. Tambah retry steps atau refine error messages.\\n`\n }\n if (score.dimensions.contextStability.score < 0.8) {\n out += `- \uD83D\uDD27 Navigasi terlalu broad. Pakai \\`agentic_context\\` lebih sering.\\n`\n }\n if (score.dimensions.multiAgent.score < 0.9) {\n out += `- \uD83D\uDD27 Delegasi sering gagal. Cek role availability.\\n`\n }\n if (score.dimensions.skillReuse.score < 0.5) {\n out += `- \uD83D\uDD27 Skill jarang dipakai. Extract skill setelah task sukses via \\`agentic_skill extract\\`.\\n`\n }\n }\n\n return out\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_default", "base64", "base64url", "bigint", "boolean", "_catch", "cidrv4", "cidrv6", "core_exports", "cuid", "cuid2", "date", "decode", "decodeAsync", "e164", "email", "emoji", "encode", "encodeAsync", "_enum", "guid", "hex", "hostname", "ipv4", "ipv6", "ksuid", "nanoid", "_null", "nullish", "number", "parse", "parseAsync", "safeDecode", "safeDecodeAsync", "safeEncode", "safeEncodeAsync", "safeParse", "safeParseAsync", "string", "ulid", "_undefined", "uuid", "_void", "xid", "core_exports", "_emoji", "_null", "_undefined", "initializer", "array", "set", "object", "Class", "config", "base64", "base64url", "hex", "error", "issue", "version", "time", "inst", "result", "checks", "checkResult", "canary", "result", "_", "url", "inst", "base64", "r", "isObject", "allowsEval", "results", "map", "left", "right", "keyResult", "valueResult", "output", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "issue", "parsedType", "error", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "parsedType", "error", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "parsedType", "error", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "parsedType", "number", "error", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "parsedType", "error", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "error", "parsedType", "issue", "Class", "_emoji", "_undefined", "_null", "Class", "issue", "codec", "json", "file", "id", "schema", "params", "gen", "date", "datetime", "duration", "time", "datetime", "date", "time", "duration", "initializer", "issue", "issues", "parse", "parseAsync", "safeParse", "safeParseAsync", "encode", "decode", "encodeAsync", "decodeAsync", "safeEncode", "safeDecode", "safeEncodeAsync", "safeDecodeAsync", "def", "parse", "safeParse", "parseAsync", "safeParseAsync", "encode", "decode", "encodeAsync", "decodeAsync", "safeEncode", "safeDecode", "safeEncodeAsync", "safeDecodeAsync", "check", "_default", "_catch", "_emoji", "datetime", "date", "time", "duration", "string", "email", "guid", "uuid", "emoji", "nanoid", "cuid", "cuid2", "ulid", "xid", "ksuid", "ipv4", "ipv6", "cidrv4", "cidrv6", "base64", "base64url", "e164", "hostname", "hex", "number", "boolean", "bigint", "_undefined", "_null", "_void", "date", "_enum", "issue", "output", "nullish", "_default", "_catch", "string", "number", "boolean", "_null", "map", "ZodFirstPartyTypeKind", "bigint", "boolean", "date", "number", "string", "string", "number", "boolean", "bigint", "date", "readFileSync", "writeFileSync", "mkdirSync", "existsSync", "readdirSync", "execFileSync", "join", "dirname", "success", "file", "config", "basename", "existsSync", "join", "dirname", "file", "error", "execFileSync", "hash", "file", "version", "custom", "execFileSync", "error", "config", "registry", "success", "url", "registry", "issue", "record", "json", "tool", "existsSync", "readFileSync", "resolve", "file", "execFileSync", "existsSync", "join", "dirname", "results", "file", "tool", "file", "readFile", "join", "dirname", "existsSync", "tool", "r", "config", "result", "analysis", "repairResult", "error", "existsSync", "mkdirSync", "readFileSync", "writeFileSync", "resolve", "cached", "success", "stat", "config", "readFileSync", "writeFileSync", "mkdirSync", "existsSync", "join", "config", "partial", "file", "success", "config", "join", "existsSync", "mkdirSync", "writeFileSync", "navigator", "readdirSync", "readFileSync", "llmEngine", "record", "file", "session", "output", "summary", "issue", "pipelineContext", "skills", "check", "c", "custom", "json", "version", "dirname", "execFileSync", "success"]
7
+ }