@starlein/paperclip-plugin-company-wizard 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../node_modules/.pnpm/@paperclipai+plugin-sdk@2026.318.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/define-plugin.ts", "../node_modules/.pnpm/@paperclipai+plugin-sdk@2026.318.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/worker-rpc-host.ts", "../node_modules/.pnpm/@paperclipai+plugin-sdk@2026.318.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/protocol.ts", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/constants.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/instance.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/budget.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/company.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/company-portability.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/secret.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/agent.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/project.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/issue.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/work-product.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/execution-workspace.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/goal.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/approval.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/cost.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/finance.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/asset.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/access.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/validators/plugin.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/api.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.318.0/node_modules/@paperclipai/shared/src/config-schema.ts", "../src/worker.ts", "../src/logic/assemble.js", "../src/logic/ceo-defaults.js", "../src/api/client.js", "../src/logic/load-templates.js"],
4
- "sourcesContent": [null, null, null, "export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n", "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n", "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_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\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\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 // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\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(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n", "import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n", "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n", "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n", "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?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// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[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// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?: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])$/;\nconst ipv4CidrRegex = /^(?:(?: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])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(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\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\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 dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\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}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(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 { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\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 { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import { definePlugin, runWorker } from '@paperclipai/plugin-sdk';\nimport { execFileSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n// @ts-ignore \u2014 plain JS modules, bundled by esbuild\nimport { assembleCompany, toPascalCase } from './logic/assemble.js';\n// @ts-ignore\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\n buildCeoAgentRuntimeConfig,\n normalizeCeoAdapterType,\n} from './logic/ceo-defaults.js';\n// @ts-ignore\nimport { collectGoals, loadModules, loadPresets, loadRoles } from './logic/load-templates.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\n// --- Template loader ---\n\nconst DEFAULT_TEMPLATES_REPO_URL =\n 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates';\nconst BUNDLED_TEMPLATES_DIR = path.resolve(__dirname, '..', 'templates');\n\n/** Recursively copy a directory (sync). */\nfunction copyDirSync(src: string, dest: string): void {\n fs.mkdirSync(dest, { recursive: true });\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n const s = path.join(src, entry.name);\n const d = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirSync(s, d);\n else fs.copyFileSync(s, d);\n }\n}\n\n/**\n * Download a GitHub subdirectory into destDir using git sparse-checkout.\n * Expects a URL in the form: https://github.com/{owner}/{repo}/tree/{branch}/{subpath}\n */\nfunction downloadTemplatesFromGithub(destDir: string, githubUrl: string): void {\n // Branch is captured as the first path segment after /tree/; subpath takes the rest.\n // Branch names with slashes (e.g. feature/my-branch) are not supported in tree URLs \u2014\n // use a tag or a branch without slashes, or pin to a commit SHA instead.\n const match = githubUrl.match(/github\\.com\\/([^/]+)\\/([^/]+)\\/tree\\/([^/]+)\\/(.+)/);\n if (!match) {\n throw new Error(\n `Unsupported templates URL: ${githubUrl}. Expected https://github.com/{owner}/{repo}/tree/{branch}/{path}`,\n );\n }\n const [, owner, repo, branch, subpath] = match;\n const cloneUrl = `https://github.com/${owner}/${repo}.git`;\n const tmpDir = path.join(os.tmpdir(), `plugin-templates-dl-${Date.now()}`);\n try {\n execFileSync(\n 'git',\n [\n 'clone',\n '--depth',\n '1',\n '--filter=blob:none',\n '--sparse',\n '--branch',\n branch,\n cloneUrl,\n tmpDir,\n ],\n { stdio: 'pipe' },\n );\n execFileSync('git', ['sparse-checkout', 'set', subpath], { cwd: tmpDir, stdio: 'pipe' });\n const srcDir = path.join(tmpDir, subpath);\n if (!fs.existsSync(srcDir)) throw new Error(`Path '${subpath}' not found in ${cloneUrl}`);\n copyDirSync(srcDir, destDir);\n } finally {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n}\n\n/**\n * Resolve (and if needed, create) the templates directory.\n * Resolution order:\n * 1. cfg.templatesPath if set \u2192 use it; auto-download if missing.\n * 2. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 3. Bundled templates (dist/../templates) as last resort.\n */\nasync function ensureTemplatesDir(cfg: Record<string, string>): Promise<string> {\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n\n if (cfg.templatesPath) {\n if (fs.existsSync(cfg.templatesPath)) return cfg.templatesPath;\n downloadTemplatesFromGithub(cfg.templatesPath, repoUrl);\n return cfg.templatesPath;\n }\n\n const defaultDir = path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(defaultDir)) return defaultDir;\n\n try {\n downloadTemplatesFromGithub(defaultDir, repoUrl);\n return defaultDir;\n } catch {\n if (fs.existsSync(BUNDLED_TEMPLATES_DIR)) return BUNDLED_TEMPLATES_DIR;\n throw new Error(\n 'Templates not found and download failed. Configure templatesPath or templatesRepoUrl in plugin settings.',\n );\n }\n}\n\nfunction loadJsonFiles(dir: string, filename: string): { items: any[]; errors: string[] } {\n const items: any[] = [];\n const errors: string[] = [];\n\n if (!fs.existsSync(dir)) return { items, errors };\n\n for (const d of fs.readdirSync(dir)) {\n const fullDir = path.join(dir, d);\n try {\n if (!fs.statSync(fullDir).isDirectory()) continue;\n } catch {\n continue;\n }\n\n const fp = path.join(fullDir, filename);\n if (!fs.existsSync(fp)) continue;\n\n try {\n items.push(JSON.parse(fs.readFileSync(fp, 'utf-8')));\n } catch (err) {\n errors.push(`Failed to parse ${fp}: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n\n return { items, errors };\n}\n\nfunction loadTemplates(templatesDir: string) {\n const presetLoad = loadJsonFiles(path.join(templatesDir, 'presets'), 'preset.meta.json');\n const moduleLoad = loadJsonFiles(path.join(templatesDir, 'modules'), 'module.meta.json');\n const roleLoad = loadJsonFiles(path.join(templatesDir, 'roles'), 'role.meta.json');\n\n const modules = moduleLoad.items.map((mod: Record<string, unknown>) => {\n const issues = Array.isArray(mod.issues)\n ? mod.issues\n : Array.isArray(mod.tasks)\n ? mod.tasks\n : [];\n\n return {\n ...mod,\n // Keep both keys so old UI callers (tasks) and new callers (issues) stay consistent.\n issues,\n tasks: Array.isArray(mod.tasks) ? mod.tasks : issues,\n };\n });\n\n const roles = roleLoad.items.map((r: Record<string, unknown>) => {\n if (r.base) return { ...r, _base: true };\n return r;\n });\n\n return {\n presets: presetLoad.items,\n modules,\n roles,\n loadErrors: [...presetLoad.errors, ...moduleLoad.errors, ...roleLoad.errors],\n };\n}\n\n// --- Helpers ---\n\nfunction resolveCompaniesDir(cfg: Record<string, string>): string {\n if (cfg.companiesDir) return cfg.companiesDir;\n return path.join(os.homedir(), '.paperclip', 'instances', 'default', 'companies');\n}\n\nfunction formatRoleName(role: string): string {\n return role\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\nfunction collectInstructionFiles(rootDir: string): Record<string, string> {\n const out: Record<string, string> = {};\n if (!fs.existsSync(rootDir)) return out;\n\n const walk = (dir: string) => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(abs);\n continue;\n }\n if (!entry.isFile()) continue;\n const rel = path.relative(rootDir, abs).split(path.sep).join('/');\n out[rel] = fs.readFileSync(abs, 'utf-8');\n }\n };\n\n walk(rootDir);\n return out;\n}\n\nasync function syncAgentInstructionsIntoManagedBundle({\n client,\n agentId,\n sourceDir,\n entryFile,\n fallbackEntryContent,\n log,\n}: {\n client: any;\n agentId: string;\n sourceDir: string;\n entryFile: string;\n fallbackEntryContent?: string;\n log: (m: string) => void;\n}) {\n try {\n await client.updateInstructionsBundle(agentId, {\n mode: 'managed',\n entryFile,\n clearLegacyPromptTemplate: true,\n });\n\n const files = collectInstructionFiles(sourceDir);\n if (\n !files[entryFile] &&\n typeof fallbackEntryContent === 'string' &&\n fallbackEntryContent.trim()\n ) {\n files[entryFile] = fallbackEntryContent;\n }\n\n const entries = Object.entries(files).sort(([a], [b]) => a.localeCompare(b));\n if (entries.length === 0) {\n log('\u26A0 No instruction files found to sync into managed bundle.');\n return;\n }\n\n for (const [relativePath, content] of entries) {\n await client.upsertInstructionsBundleFile(agentId, {\n path: relativePath,\n content,\n });\n }\n\n log(`\u2713 Synced ${entries.length} instruction file(s) into managed bundle`);\n } catch (err) {\n log(\n `\u26A0 Could not sync managed instructions bundle: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n// --- Plugin definition ---\n\nconst plugin = definePlugin({\n async setup(ctx) {\n ctx.data.register('templates', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const templates = loadTemplates(await ensureTemplatesDir(cfg));\n if (templates.loadErrors.length > 0) {\n for (const err of templates.loadErrors) {\n ctx.logger.info(`\u26A0 Template load warning: ${err}`);\n }\n }\n return templates;\n });\n\n // Refresh templates \u2014 delete cached dir so next load re-downloads from GitHub.\n ctx.actions.register('refresh-templates', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n const targetDir =\n cfg.templatesPath || path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(targetDir)) {\n fs.rmSync(targetDir, { recursive: true, force: true });\n }\n downloadTemplatesFromGithub(targetDir, repoUrl);\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Preview action \u2014 assembles files to a temp dir and returns their contents.\n // Used by the UI review step to show/edit generated MD files before provisioning.\n ctx.actions.register('preview-files', async (params) => {\n let tmpDir: string | undefined;\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n\n const companyName =\n typeof params.companyName === 'string' && params.companyName.trim()\n ? params.companyName.trim()\n : 'Preview';\n\n const templatesDir = await ensureTemplatesDir(cfg);\n tmpDir = path.join(os.tmpdir(), `clipper-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveCompaniesDir(cfg);\n\n const [presets, allModules] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n ]);\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Normalize goals/projects for preview (same logic as start-provision)\n const previewGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const previewProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const result = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir: tmpDir,\n templatesDir,\n });\n\n // Collect all .md files from the assembled company dir.\n // For BOOTSTRAP.md, replace the tmp path with the realistic host workspace path\n // so the preview shows where files will actually live after provisioning.\n const previewCompanyDir = path.join(companiesDir, toPascalCase(companyName));\n const files: Record<string, string> = {};\n\n function collectMdFiles(dir: string, base: string) {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const rel = base ? `${base}/${entry.name}` : entry.name;\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n collectMdFiles(full, rel);\n } else if (entry.name.endsWith('.md')) {\n let content = fs.readFileSync(full, 'utf-8');\n if (entry.name === 'BOOTSTRAP.md') {\n content = content.replaceAll(result.companyDir, previewCompanyDir);\n }\n files[rel] = content;\n }\n }\n }\n\n collectMdFiles(result.companyDir, '');\n return { files };\n } catch (err) {\n return { files: {}, error: err instanceof Error ? err.message : String(err) };\n } finally {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n }\n });\n\n // Auth check action \u2014 called by the summary step to surface credential issues early.\n ctx.actions.register('check-auth', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: cfg.paperclipEmail || '',\n password: cfg.paperclipPassword || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // AI chat action \u2014 proxies messages to the Anthropic API using the configured key.\n // Keeps the API key server-side; the UI never touches it directly.\n // Returns { text, error? } \u2014 never throws, so the plugin host doesn't swallow the message in a 502.\n ctx.actions.register('ai-chat', async (params) => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const apiKey = cfg.anthropicApiKey || '';\n if (!apiKey) {\n return {\n text: '',\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n\n const response = await fetch('https://api.anthropic.com/v1/messages', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'anthropic-version': '2023-06-01',\n },\n body: JSON.stringify({\n model: 'claude-sonnet-4-20250514',\n max_tokens: 8192,\n ...(params.system ? { system: params.system } : {}),\n messages: params.messages,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n return { text: '', error: `Anthropic API error (${response.status}): ${body}` };\n }\n\n const data = (await response.json()) as { content?: { text: string }[] };\n return { text: data.content?.[0]?.text || '' };\n } catch (err) {\n return { text: '', error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Lightweight config check \u2014 UI calls this on mount to show a warning before the user types.\n ctx.actions.register('check-ai-config', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n if (!cfg.anthropicApiKey) {\n return {\n ok: false,\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Provisioning action \u2014 assembles files, then creates company/agent/issue.\n // Uses the plugin SDK host services where available (issues, goals),\n // falls back to PaperclipClient HTTP for operations the SDK doesn't support\n // yet (company creation, agent creation).\n // Returns { ..., logs } on success or { error, logs } on failure \u2014 never throws.\n ctx.actions.register('start-provision', async (params) => {\n const logs: string[] = [];\n const log = (msg: string) => {\n logs.push(msg);\n ctx.logger.info(msg);\n };\n\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n const paperclipEmail = cfg.paperclipEmail || '';\n const paperclipPassword = cfg.paperclipPassword || '';\n const rawDisableBoardApproval = (cfg as Record<string, unknown>)\n .disableBoardApprovalOnNewCompanies;\n const disableBoardApprovalOnNewCompanies =\n rawDisableBoardApproval === true ||\n (typeof rawDisableBoardApproval === 'string' &&\n rawDisableBoardApproval.toLowerCase() === 'true');\n\n const companyName = typeof params.companyName === 'string' ? params.companyName.trim() : '';\n const existingCompanyId =\n typeof params.existingCompanyId === 'string' && params.existingCompanyId.trim()\n ? params.existingCompanyId.trim()\n : '';\n if (!companyName) return { error: 'companyName is required', logs };\n\n const templatesDir = await ensureTemplatesDir(cfg);\n\n // Step 1: Collect inline goals and role metadata\n const [presets, allModules, roleTemplates] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n loadRoles(templatesDir),\n ]);\n const roleTemplateByName = new Map(\n (Array.isArray(roleTemplates) ? roleTemplates : [])\n .filter((role: any) => role && typeof role.name === 'string')\n .map((role: any) => [role.name, role]),\n );\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Step 2: Assemble files on disk\n const outputDir = resolveCompaniesDir(cfg);\n\n fs.mkdirSync(outputDir, { recursive: true });\n log('Assembling company workspace...');\n\n const companyDescription =\n typeof params.companyDescription === 'string' ? params.companyDescription.trim() : '';\n\n // Normalize goals: support both old single-goal and new array format\n const userGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const userProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n companyDescription,\n userGoals,\n userProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir,\n templatesDir,\n onProgress: log,\n });\n\n const { companyDir } = assembleResult;\n\n // Apply file overrides from UI edits\n const fileOverrides = (params.fileOverrides as Record<string, string>) ?? {};\n for (const [relPath, content] of Object.entries(fileOverrides)) {\n const absPath = path.resolve(companyDir, relPath);\n if (!absPath.startsWith(companyDir + path.sep) && absPath !== companyDir) {\n log(`\u26A0 Skipped override outside company dir: ${relPath}`);\n continue;\n }\n if (fs.existsSync(absPath)) {\n fs.writeFileSync(absPath, content, 'utf-8');\n log(`\u270E Override: ${relPath}`);\n }\n }\n\n const ceoInstructionsDir = path.join(companyDir, 'agents', 'ceo');\n const ceoEntryFile = 'AGENTS.md';\n const ceoEntryPath = path.join(ceoInstructionsDir, ceoEntryFile);\n const ceoPromptTemplate = fs.existsSync(ceoEntryPath)\n ? fs.readFileSync(ceoEntryPath, 'utf-8')\n : '';\n\n log('');\n log(`\u2713 Generated files: ${companyDir}`);\n\n // Step 3: Connect to Paperclip API\n // The SDK doesn't support company/agent creation yet, so we use PaperclipClient\n // for those. It auto-detects auth mode (no-op for local_trusted).\n log('Connecting to Paperclip API...');\n const client = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n await client.connect();\n log('Connected.');\n log('');\n\n // Step 5: Resolve target company (create new, or reuse existing)\n let company: any;\n let companyId: string;\n let createdCompany = false;\n\n if (existingCompanyId) {\n log(`Using existing company: ${existingCompanyId}`);\n company = await client.getCompany(existingCompanyId);\n companyId = company.id;\n log(`\u2713 Target company \"${company.name}\" selected`);\n log('Keeping company hire policy as configured (board approvals may be required).');\n } else {\n log('Creating company...');\n company = await client.createCompany({\n name: companyName,\n description: companyDescription || undefined,\n });\n companyId = company.id;\n createdCompany = true;\n log(`\u2713 Company \"${companyName}\" created`);\n\n if (disableBoardApprovalOnNewCompanies) {\n // Optional compatibility mode: disable mandatory board-approval hiring on new companies.\n // Useful when users want legacy fully-autonomous bootstrap behavior.\n try {\n await client.updateCompany(companyId, { requireBoardApprovalForNewAgents: false });\n log('\u2713 Disabled board-approval hiring policy for this new company');\n } catch (err) {\n log(\n `\u26A0 Could not disable board-approval hiring for new agents: ${err instanceof Error ? err.message : String(err)}`,\n );\n log(' Continuing \u2014 agent creation will use an approval-aware fallback if required.');\n }\n } else {\n log('Keeping company hire policy as configured (board approvals may be required).');\n }\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n let bootstrapIssue: { id: string; identifier?: string };\n try {\n // Step 6: Resolve or create CEO agent\n const userCeoAdapter = (params.ceoAdapter as any) || {};\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n const ceoDescription =\n typeof ceoTemplate.description === 'string' && ceoTemplate.description.trim()\n ? ceoTemplate.description.trim()\n : undefined;\n const ceoMetadata = {\n templateRole: 'ceo',\n ...(ceoDescription ? { description: ceoDescription } : {}),\n };\n const ceoRuntimeConfig = buildCeoAgentRuntimeConfig();\n\n const adapterConfig: Record<string, unknown> = buildCeoAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get('ceo') ?? {},\n promptTemplate: ceoPromptTemplate,\n });\n\n const logPendingApproval = (agent: any) => {\n if (!agent?._pendingApprovalId) return;\n log(\n `\u26A0 CEO hire is pending approval: ${agent._pendingApprovalId}. Approve it in the board before the bootstrap heartbeat can run.`,\n );\n if (agent._approvalAutoApproveError) {\n log(` Auto-approve failed: ${agent._approvalAutoApproveError}`);\n }\n };\n\n if (existingCompanyId) {\n log('Looking for an existing CEO agent...');\n const agents = await client.listAgents(companyId);\n const existingCeo = Array.isArray(agents)\n ? agents.find((agent: any) => agent?.role === 'ceo' && agent?.status !== 'terminated')\n : null;\n\n if (existingCeo?.id) {\n ceoAgentId = existingCeo.id;\n log(`\u2713 Reusing existing CEO agent (${ceoAgentId})`);\n\n // Keep the reused CEO aligned with the newly generated workspace/instructions.\n try {\n const ceoPatch: Record<string, unknown> = {\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n ...(ceoMetadata\n ? { metadata: { ...(existingCeo.metadata ?? {}), ...ceoMetadata } }\n : {}),\n };\n if (!existingCeo?.title && ceoTitle) {\n ceoPatch.title = ceoTitle;\n }\n if (!existingCeo?.capabilities && ceoDescription) {\n ceoPatch.capabilities = ceoDescription;\n }\n await client.updateAgent(ceoAgentId, ceoPatch);\n log('\u2713 Updated existing CEO adapter config (cwd + Codex defaults)');\n } catch (updateErr) {\n log(\n `\u26A0 Could not update existing CEO adapter config: ${updateErr instanceof Error ? updateErr.message : String(updateErr)}`,\n );\n log(\n ' Continuing with existing CEO configuration; bootstrap paths may be out of sync.',\n );\n }\n } else {\n log('No active CEO found \u2014 creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n } else {\n log('Creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: ceoAgentId,\n sourceDir: ceoInstructionsDir,\n entryFile: ceoEntryFile,\n fallbackEntryContent: ceoPromptTemplate,\n log,\n });\n\n // Step 7: Create bootstrap issue (SDK: ctx.issues.create \u2713)\n // BOOTSTRAP.md IS the bootstrap issue \u2014 read it directly.\n const bootstrapDescription = fs.readFileSync(\n path.join(companyDir, 'BOOTSTRAP.md'),\n 'utf-8',\n );\n\n log('Creating bootstrap task for CEO...');\n const issue = await ctx.issues.create({\n companyId,\n title: `Bootstrap ${company.name || companyName}`,\n description: bootstrapDescription,\n assigneeAgentId: ceoAgentId,\n });\n await ctx.issues.update(issue.id, { status: 'todo' }, companyId);\n bootstrapIssue = issue as { id: string; identifier?: string };\n log(`\u2713 Bootstrap task created: ${bootstrapIssue.identifier || bootstrapIssue.id}`);\n } catch (err) {\n log(`\u2717 Provisioning failed: ${err instanceof Error ? err.message : String(err)}`);\n if (createdCompany) {\n log(`Cleaning up \u2014 deleting partially created company (${companyId})...`);\n try {\n await client.deleteCompany(companyId);\n log('\u2713 Company deleted.');\n } catch (cleanupErr) {\n log(\n `\u26A0 Could not delete company ${companyId}: ${cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr)}`,\n );\n log(` Delete it manually in the Paperclip UI to clean up.`);\n }\n } else {\n log('Skipping cleanup because provisioning targeted an existing company.');\n }\n throw err;\n }\n\n log('');\n log('Provisioning complete!');\n log(\n existingCompanyId\n ? 'Bootstrap task created in existing company. Trigger the CEO heartbeat to continue setup.'\n : 'The CEO agent is ready. Trigger its first heartbeat to hire the rest of the team and create the initial backlog.',\n );\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl,\n agentIds: { ceo: ceoAgentId! },\n issueIds: [bootstrapIssue!.id],\n logs,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n // Only log if it wasn't already logged by the inner compensation catch\n if (!logs.some((l) => l.includes('Provisioning failed'))) {\n log(`\u2717 ${message}`);\n }\n return { error: message, logs };\n }\n });\n },\n\n async onHealth() {\n return { status: 'ok', message: 'Company Wizard plugin is running' };\n },\n\n // Called by the \"Test Configuration\" button in the plugin settings UI.\n async onValidateConfig(config: Record<string, unknown>) {\n const paperclipUrl =\n (config.paperclipUrl as string) ||\n process.env.PAPERCLIP_PUBLIC_URL ||\n 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: (config.paperclipEmail as string) || '',\n password: (config.paperclipPassword as string) || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return {\n ok: false,\n errors: [err instanceof Error ? err.message : String(err)],\n };\n }\n },\n});\n\nexport default plugin;\nrunWorker(plugin, import.meta.url);\n", "import {\n access,\n appendFile,\n copyFile,\n mkdir,\n readdir,\n readFile,\n writeFile,\n} from 'node:fs/promises';\nimport { join } from 'node:path';\nimport {\n DEFAULT_CEO_ADAPTER_TYPE,\n DEFAULT_CEO_MODEL,\n DEFAULT_CEO_THINKING_LEVEL,\n DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n} from './ceo-defaults.js';\n// modulesWithActiveGoals removed \u2014 goals no longer contain issues\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function copyDir(src, dest, { skipExt } = {}) {\n await mkdir(dest, { recursive: true });\n const entries = await readdir(src, { withFileTypes: true });\n for (const entry of entries) {\n if (skipExt && entry.name.endsWith(skipExt)) continue;\n const srcPath = join(src, entry.name);\n const destPath = join(dest, entry.name);\n if (entry.isDirectory()) {\n await copyDir(srcPath, destPath, { skipExt });\n } else {\n await copyFile(srcPath, destPath);\n }\n }\n}\n\nasync function appendToFile(filePath, content) {\n if (await exists(filePath)) {\n await appendFile(filePath, content);\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\n/**\n * Convert a company name to PascalCase for the directory name.\n * \"Black Mesa\" \u2192 \"BlackMesa\", \"my-company\" \u2192 \"MyCompany\"\n */\nexport function toPascalCase(name) {\n return name\n .replace(/[^a-zA-Z0-9\\s\\-_]/g, '')\n .split(/[\\s\\-_]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n}\n\n/**\n * Assemble a company workspace from templates.\n *\n * @param {object} opts\n * @param {string} opts.companyName\n * @param {string} [opts.companyDescription] - Comprehensive company description\n * @param {Array} [opts.userGoals] - User/AI-specified goals: [{ title, description, parentGoal? }]\n * @param {Array} [opts.userProjects] - User/AI-specified projects: [{ name, description, goals[] }]\n * @param {string[]} opts.moduleNames\n * @param {string[]} opts.extraRoleNames\n * @param {Array} opts.inlineGoals - Inline goals from preset/modules (from collectGoals)\n * @param {string} opts.outputDir\n * @param {string} opts.templatesDir\n * @param {(line: string) => void} opts.onProgress\n * @returns {Promise<{companyDir: string, allRoles: Set<string>, initialIssues: Array, initialRoutines: Array, roleAdapterOverrides: Map<string, object>}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n outputDir,\n templatesDir,\n onProgress = () => {},\n}) {\n // --- Merge goals ---\n // The first user goal is the \"main\" company goal.\n // Module inline goals become sub-goals of the main goal.\n // Subgoals (formerly milestones) are expanded into allGoals with parentGoal + level.\n const mainGoal = userGoals[0] || null;\n const mergedInlineGoals = inlineGoals.map((g) => ({\n ...g,\n parentGoal: g.parentGoal || mainGoal?.title || undefined,\n }));\n\n const allGoals = [];\n for (const g of [...userGoals, ...mergedInlineGoals]) {\n allGoals.push(g);\n // Expand subgoals as nested goals\n if (g.subgoals?.length) {\n for (const sg of g.subgoals) {\n allGoals.push({\n title: sg.title,\n description: sg.description || '',\n level: sg.level || 'team',\n parentGoal: g.title,\n });\n }\n }\n }\n\n // If user specified projects, use them. Otherwise, create a default project linked to all goals.\n const resolvedProjects =\n userProjects.length > 0\n ? userProjects\n : [\n {\n name: companyName,\n description: mainGoal?.description || '',\n goals: allGoals.map((g) => g.title),\n },\n ];\n\n const baseDirName = toPascalCase(companyName);\n let dirName = baseDirName;\n let companyDir = join(outputDir, dirName);\n\n if (await exists(companyDir)) {\n let idx = 2;\n while (await exists(join(outputDir, `${baseDirName}${idx}`))) idx++;\n dirName = `${baseDirName}${idx}`;\n companyDir = join(outputDir, dirName);\n }\n\n // Discover base roles from roles/ directory (those with base: true in role.meta.json)\n const rolesDir = join(templatesDir, 'roles');\n const baseRoleNames = [];\n const roleMetaByName = new Map();\n if (await exists(rolesDir)) {\n const roleDirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of roleDirs) {\n if (!dir.isDirectory()) continue;\n const roleMeta = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleMeta && typeof roleMeta === 'object') {\n roleMetaByName.set(dir.name, roleMeta);\n }\n if (roleMeta?.base) {\n baseRoleNames.push(dir.name);\n }\n }\n }\n\n // Determine all roles present\n const allRoles = new Set([...baseRoleNames, ...extraRoleNames]);\n\n // Validate module dependencies before starting assembly.\n // Skip modules that won't activate (missing directory or gated by activatesWithRoles).\n const selectedSet = new Set(moduleNames);\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n const deps = moduleJson?.requires || [];\n for (const dep of deps) {\n if (!selectedSet.has(dep)) {\n throw new Error(`Module \"${moduleName}\" requires module \"${dep}\", which is not selected`);\n }\n }\n }\n\n // 1. Copy base roles (exclude .meta.json metadata)\n for (const roleName of baseRoleNames) {\n const roleSrc = join(rolesDir, roleName);\n const roleDest = join(companyDir, 'agents', roleName);\n await mkdir(roleDest, { recursive: true });\n const entries = await readdir(roleSrc, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json')) {\n await copyFile(join(roleSrc, entry.name), join(roleDest, entry.name));\n }\n }\n onProgress(`+ agents/${roleName}/ (base)`);\n }\n\n // 2. Copy extra roles from roles/\n for (const roleName of extraRoleNames) {\n const roleDir = join(rolesDir, roleName);\n if (!(await exists(roleDir))) {\n onProgress(`! role ${roleName} not found, skipping`);\n continue;\n }\n const destDir = join(companyDir, 'agents', roleName);\n await mkdir(destDir, { recursive: true });\n const entries = await readdir(roleDir, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory() || !entry.name.endsWith('.md')) continue;\n await copyFile(join(roleDir, entry.name), join(destDir, entry.name));\n }\n onProgress(`+ agents/${roleName}/ (role)`);\n }\n\n // 3. Apply modules with capability-aware skill assignment\n const initialIssues = [];\n const initialRoutines = [];\n const roleAdapterOverrides = new Map(); // role name \u2192 merged adapter overrides from modules\n\n // Helper: resolve assignee for a role name or capability reference\n const resolveAssignee = (assignee, moduleJson) => {\n if (assignee?.startsWith('capability:')) {\n const capName = assignee.slice('capability:'.length);\n const cap = moduleJson?.capabilities?.find((c) => c.skill === capName);\n if (cap) return cap.owners.find((r) => allRoles.has(r)) || assignee;\n } else if (assignee && assignee !== 'ceo' && assignee !== 'user' && !allRoles.has(assignee)) {\n return 'ceo'; // Named role not in this team \u2014 fall back to CEO\n }\n return assignee;\n };\n\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) {\n onProgress(`! module ${moduleName} not found, skipping`);\n continue;\n }\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n\n // Check activatesWithRoles\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) {\n onProgress(`\u25CB ${moduleName} (needs ${moduleJson.activatesWithRoles.join(' or ')})`);\n continue;\n }\n }\n\n // Collect issues (backward compat: read tasks[] if issues[] not present)\n const moduleIssues = moduleJson?.issues || moduleJson?.tasks || [];\n for (const issue of moduleIssues) {\n initialIssues.push({\n ...issue,\n assignTo: resolveAssignee(issue.assignTo, moduleJson),\n module: moduleName,\n });\n }\n\n // Collect routines\n if (moduleJson?.routines?.length) {\n for (const routine of moduleJson.routines) {\n initialRoutines.push({\n ...routine,\n assignTo: resolveAssignee(routine.assignTo, moduleJson),\n module: moduleName,\n });\n }\n }\n\n // Copy shared docs\n const docsDir = join(moduleDir, 'docs');\n if (await exists(docsDir)) {\n await copyDir(docsDir, join(companyDir, 'docs'));\n const docs = await readdir(docsDir);\n for (const doc of docs) {\n onProgress(`+ docs/${doc} (${moduleName})`);\n }\n }\n\n // Resolve capabilities\n const capabilityOwners = new Map();\n if (moduleJson?.capabilities) {\n for (const cap of moduleJson.capabilities) {\n const primaryOwner = cap.owners.find((r) => allRoles.has(r));\n if (primaryOwner) {\n capabilityOwners.set(cap.skill, { primary: primaryOwner, cap });\n }\n }\n }\n\n // Collect adapter overrides for capability owners\n if (moduleJson?.adapterOverrides && capabilityOwners.size > 0) {\n const ownerRoles = new Set();\n for (const { primary, cap } of capabilityOwners.values()) {\n ownerRoles.add(primary);\n for (const r of cap.owners) {\n if (allRoles.has(r)) ownerRoles.add(r);\n }\n }\n for (const role of ownerRoles) {\n const existing = roleAdapterOverrides.get(role) || {};\n roleAdapterOverrides.set(role, { ...existing, ...moduleJson.adapterOverrides });\n }\n }\n\n // Copy agent skills.\n //\n // Skill resolution order (per role + skill name):\n // 1. Role-specific override: agents/<role>/skills/<skill>.md\n // 2. Shared skill: skills/<skill>.md\n //\n // For capabilities, the assembly logic decides what to copy:\n // - Primary owner gets <skill>.md (role-specific or shared)\n // - Fallback owners get <skill>.fallback.md (role-specific or shared)\n // - Other combinations are skipped\n //\n // Non-capability skills (no matching capabilityOwners entry) are copied\n // as-is to the role that defines them.\n\n const sharedSkillsDir = join(moduleDir, 'skills');\n const agentsDir = join(moduleDir, 'agents');\n\n // Helper: resolve a skill file from role-specific first, then shared\n async function resolveSkillFile(roleName, fileName) {\n const roleSpecific = join(agentsDir, roleName, 'skills', fileName);\n if (await exists(roleSpecific)) return { path: roleSpecific, source: 'role' };\n const shared = join(sharedSkillsDir, fileName);\n if (await exists(shared)) return { path: shared, source: 'shared' };\n return null;\n }\n\n // Helper: copy a resolved skill into the agent's skills/ dir\n async function installSkill(roleName, fileName, label) {\n const resolved = await resolveSkillFile(roleName, fileName);\n if (!resolved) return false;\n const destSkillsDir = join(companyDir, 'agents', roleName, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(resolved.path, join(destSkillsDir, fileName));\n await appendToFile(\n join(companyDir, 'agents', roleName, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${fileName}\\`\\n`,\n );\n const sourceTag = resolved.source === 'shared' ? ', shared' : '';\n onProgress(`+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag})`);\n return true;\n }\n\n // Install capability-based skills for each present role\n for (const [skillName, { primary, cap }] of capabilityOwners) {\n // Primary owner gets the primary skill\n await installSkill(primary, `${skillName}.md`, 'primary');\n\n // Fallback owners get the fallback skill\n if (cap.fallbackSkill) {\n for (const fallbackRole of cap.owners) {\n if (fallbackRole === primary) continue;\n if (!allRoles.has(fallbackRole)) continue;\n await installSkill(fallbackRole, `${cap.fallbackSkill}.md`, 'fallback');\n }\n }\n }\n\n // Install non-capability skills (role-specific only, no shared lookup)\n if (await exists(agentsDir)) {\n const roles = await readdir(agentsDir, { withFileTypes: true });\n for (const role of roles) {\n if (!role.isDirectory()) continue;\n if (!allRoles.has(role.name)) continue;\n\n const skillsDir = join(agentsDir, role.name, 'skills');\n if (!(await exists(skillsDir))) continue;\n\n const skills = await readdir(skillsDir);\n for (const skillFile of skills) {\n const skillName = skillFile.replace(/\\.md$/, '');\n const skillBaseName = skillName.replace(/\\.fallback$/, '');\n\n // Skip if this skill belongs to a capability (already handled above)\n if (capabilityOwners.has(skillBaseName)) continue;\n\n const destSkillsDir = join(companyDir, 'agents', role.name, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(join(skillsDir, skillFile), join(destSkillsDir, skillFile));\n await appendToFile(\n join(companyDir, 'agents', role.name, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${skillFile}\\`\\n`,\n );\n onProgress(`+ agents/${role.name}/skills/${skillFile} (${moduleName})`);\n }\n }\n }\n }\n\n // 4. Inject module heartbeat sections into HEARTBEAT.md files\n //\n // Convention-based: if a module provides agents/<role>/heartbeat-section.md,\n // it gets appended to that role's HEARTBEAT.md (before the placeholder comment).\n // This follows the same gracefully-optimistic pattern as skills \u2014 if the file\n // exists the heartbeat extends, if not nothing breaks.\n const HEARTBEAT_MARKER =\n '<!-- Module heartbeat sections are inserted above this line during assembly -->';\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n // Skip gated modules that didn't activate\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n\n const modAgentsDir = join(moduleDir, 'agents');\n if (!(await exists(modAgentsDir))) continue;\n\n const modRoles = await readdir(modAgentsDir, { withFileTypes: true });\n for (const modRole of modRoles) {\n if (!modRole.isDirectory()) continue;\n if (!allRoles.has(modRole.name)) continue;\n\n const sectionFile = join(modAgentsDir, modRole.name, 'heartbeat-section.md');\n if (!(await exists(sectionFile))) continue;\n\n const heartbeatPath = join(companyDir, 'agents', modRole.name, 'HEARTBEAT.md');\n if (!(await exists(heartbeatPath))) continue;\n\n const section = await readFile(sectionFile, 'utf-8');\n const heartbeat = await readFile(heartbeatPath, 'utf-8');\n\n // Insert before the marker comment, or append at end if marker not found\n const updated = heartbeat.includes(HEARTBEAT_MARKER)\n ? heartbeat.replace(HEARTBEAT_MARKER, section.trim() + '\\n\\n' + HEARTBEAT_MARKER)\n : heartbeat.trimEnd() + '\\n\\n' + section.trim() + '\\n';\n\n await writeFile(heartbeatPath, updated);\n onProgress(`+ agents/${modRole.name}/HEARTBEAT.md (${moduleName}, heartbeat section)`);\n }\n }\n\n // 5. Add shared doc references to all AGENTS.md files\n const finalDocsDir = join(companyDir, 'docs');\n if (await exists(finalDocsDir)) {\n const docs = await readdir(finalDocsDir);\n if (docs.length > 0) {\n const agentsBaseDir = join(companyDir, 'agents');\n const agentRoles = await readdir(agentsBaseDir, { withFileTypes: true });\n for (const role of agentRoles) {\n if (!role.isDirectory()) continue;\n const agentsMd = join(agentsBaseDir, role.name, 'AGENTS.md');\n if (await exists(agentsMd)) {\n let docRefs = '\\n## Shared Documentation\\n';\n for (const doc of docs) {\n docRefs += `\\nRead: \\`docs/${doc}\\`\\n`;\n }\n await appendToFile(agentsMd, docRefs);\n }\n }\n }\n }\n\n // 6. Generate BOOTSTRAP.md\n const rolesList = [...allRoles];\n const DEFAULT_BOOTSTRAP_LABELS = [\n { name: 'feature', color: '#0075ca', useFor: 'New user-facing capability' },\n { name: 'bug', color: '#d73a4a', useFor: 'Defect or regression' },\n { name: 'chore', color: '#7057ff', useFor: 'Refactoring, cleanup, dependency updates' },\n { name: 'spike', color: '#006b75', useFor: 'Research or investigation' },\n { name: 'blocked', color: '#e4e669', useFor: 'Cannot proceed, needs unblocking' },\n ];\n const DEFAULT_BOOTSTRAP_LABEL_COLOR = '#6f42c1';\n\n const formatRole = (r) =>\n r\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n\n const normalizeLabelName = (name) =>\n String(name || '')\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, '-');\n\n const normalizeHexColor = (color) => {\n const value = String(color || '').trim();\n if (!value) return DEFAULT_BOOTSTRAP_LABEL_COLOR;\n return value.startsWith('#') ? value : `#${value}`;\n };\n\n const normalizePaperclipRole = (role, roleMeta) => {\n const apiRole = typeof roleMeta.paperclipRole === 'string' ? roleMeta.paperclipRole.trim() : '';\n return apiRole || role;\n };\n\n const resolveRoleAdapterConfig = (role, roleMeta, instructionsFilePath) => {\n const adapter = roleMeta && typeof roleMeta.adapter === 'object' ? roleMeta.adapter : {};\n const adapterType =\n typeof adapter.type === 'string' && adapter.type.trim()\n ? adapter.type.trim()\n : DEFAULT_CEO_ADAPTER_TYPE;\n const model =\n adapterType === DEFAULT_CEO_ADAPTER_TYPE\n ? DEFAULT_CEO_MODEL\n : typeof adapter.model === 'string' && adapter.model.trim()\n ? adapter.model.trim()\n : DEFAULT_CEO_MODEL;\n const thinkingLevel =\n typeof adapter.thinkingLevel === 'string' && adapter.thinkingLevel.trim()\n ? adapter.thinkingLevel.trim()\n : typeof adapter.modelReasoningEffort === 'string' && adapter.modelReasoningEffort.trim()\n ? adapter.modelReasoningEffort.trim()\n : typeof adapter.effort === 'string' && adapter.effort.trim()\n ? adapter.effort.trim()\n : DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n cwd: companyDir,\n model,\n instructionsFilePath,\n };\n\n if (adapter && typeof adapter === 'object') {\n for (const [key, value] of Object.entries(adapter)) {\n if (['type', 'model', 'effort', 'thinkingLevel', 'modelReasoningEffort'].includes(key)) {\n continue;\n }\n adapterConfig[key] = value;\n }\n }\n\n if (adapterType === DEFAULT_CEO_ADAPTER_TYPE) {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n }\n\n return { adapterType, adapterConfig };\n };\n\n const defaultLabelByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n const parseIssueLabels = (issue) => {\n const raw = [];\n if (Array.isArray(issue?.labelNames)) raw.push(...issue.labelNames);\n if (Array.isArray(issue?.labels)) raw.push(...issue.labels);\n\n const parsed = [];\n for (const item of raw) {\n if (typeof item === 'string') {\n const name = normalizeLabelName(item);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n parsed.push({\n name,\n color: known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: known?.useFor || 'Module-defined issue category',\n });\n } else if (item && typeof item === 'object' && typeof item.name === 'string') {\n const name = normalizeLabelName(item.name);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n const color = normalizeHexColor(\n typeof item.color === 'string' && item.color.trim().length > 0\n ? item.color.trim()\n : known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n );\n parsed.push({\n name,\n color,\n useFor:\n typeof item.useFor === 'string' && item.useFor.trim().length > 0\n ? item.useFor.trim()\n : known?.useFor || 'Module-defined issue category',\n });\n }\n }\n\n const seen = new Set();\n return parsed.filter((label) => {\n if (seen.has(label.name)) return false;\n seen.add(label.name);\n return true;\n });\n };\n\n const inferIssueLabelName = (issue) => {\n const text = `${issue?.title || ''} ${issue?.description || ''}`.toLowerCase();\n if (/\\bblocked\\b|\\bunblock\\b/.test(text)) return 'blocked';\n if (/\\bbug\\b|\\bfix\\b|regression|crash|error|broken/.test(text)) return 'bug';\n if (/\\bspike\\b|research|investigat|analysis|audit|explor/.test(text)) return 'spike';\n if (/\\bchore\\b|cleanup|refactor|dependency|maintenance|configure|setup|set up/.test(text)) {\n return 'chore';\n }\n return 'feature';\n };\n\n const buildBootstrapLabels = (issues) => {\n if (issues.length === 0) return [];\n\n const labelsByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n for (const issue of issues) {\n const explicitLabels = parseIssueLabels(issue);\n if (explicitLabels.length > 0) {\n for (const label of explicitLabels) {\n labelsByName.set(label.name, label);\n }\n continue;\n }\n\n const inferred = inferIssueLabelName(issue);\n if (!labelsByName.has(inferred)) {\n labelsByName.set(inferred, {\n name: inferred,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Auto-inferred issue category',\n });\n }\n }\n\n return [...labelsByName.values()];\n };\n\n const bootstrapLabels = buildBootstrapLabels(initialIssues);\n const labelsByName = new Map(bootstrapLabels.map((label) => [label.name, label]));\n\n const getIssueLabelNames = (issue) => {\n const explicit = parseIssueLabels(issue).map((label) => label.name);\n if (explicit.length > 0) return explicit;\n return [inferIssueLabelName(issue)];\n };\n\n // --- Helper: render metadata as visible bullet list ---\n const renderMeta = (fields) => {\n const lines = fields.filter(([, v]) => v !== undefined && v !== null && v !== '');\n if (lines.length === 0) return '';\n return lines.map(([k, v]) => `- **${k}**: ${v}`).join('\\n') + '\\n\\n';\n };\n\n // --- Helper: escape # in description body ---\n const escapeBody = (text) =>\n text\n .split('\\n')\n .map((l) => l.replace(/^(#+)/, '\\\\$1'))\n .join('\\n');\n\n let bootstrap = `# Bootstrap: ${companyName}\\n\\n`;\n\n // Instructions from template\n const instructionsPath = join(templatesDir, 'bootstrap-instructions.md');\n if (await exists(instructionsPath)) {\n const instructions = await readFile(instructionsPath, 'utf-8');\n bootstrap += `${instructions.trim()}\\n\\n`;\n }\n\n // Company description\n if (companyDescription) {\n bootstrap += `## Company\\n\\n`;\n bootstrap += `${companyDescription}\\n\\n`;\n }\n\n // --- Goals ---\n // All goals (user goals + inline goals + expanded subgoals) rendered uniformly.\n if (allGoals.length > 0) {\n bootstrap += `## Goals\\n\\n`;\n for (const g of allGoals) {\n bootstrap += `### ${g.title}\\n\\n`;\n bootstrap += renderMeta([\n ['level', g.level || 'company'],\n ['status', 'active'],\n ['parentId', g.parentGoal ? `\u2192 \"${g.parentGoal}\"` : undefined],\n ]);\n if (g.description) {\n bootstrap += `${escapeBody(g.description)}\\n\\n`;\n }\n }\n }\n\n // --- Projects ---\n const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n bootstrap += `### ${proj.name}\\n\\n`;\n bootstrap += renderMeta([\n ['workspace.sourceType', 'local_path'],\n ['workspace.cwd', projCwd],\n ['workspace.isPrimary', 'true'],\n [\n 'goalIds',\n proj.goals?.length > 0 ? proj.goals.map((g) => `\"${g}\"`).join(', ') : undefined,\n ],\n ]);\n if (proj.description) {\n bootstrap += `${escapeBody(proj.description)}\\n\\n`;\n }\n }\n }\n\n // --- Labels ---\n if (bootstrapLabels.length > 0) {\n bootstrap += `## Labels\\n\\n`;\n for (const label of bootstrapLabels) {\n bootstrap += `### ${label.name}\\n\\n`;\n bootstrap += renderMeta([\n ['name', label.name],\n ['color', label.color],\n ]);\n if (label.useFor) {\n bootstrap += `${escapeBody(label.useFor)}\\n\\n`;\n }\n }\n }\n\n // --- Agents ---\n bootstrap += `## Agents\\n\\n`;\n for (const role of rolesList) {\n const roleMeta = roleMetaByName.get(role) || {};\n const roleTitle = typeof roleMeta.title === 'string' ? roleMeta.title : undefined;\n const roleCapabilities =\n typeof roleMeta.description === 'string' ? roleMeta.description : undefined;\n const instructionsFilePath = `${companyDir}/agents/${role}/AGENTS.md`;\n const apiRole = normalizePaperclipRole(role, roleMeta);\n const { adapterType, adapterConfig } = resolveRoleAdapterConfig(\n role,\n roleMeta,\n instructionsFilePath,\n );\n\n bootstrap += `### ${formatRole(role)}\\n\\n`;\n bootstrap += renderMeta([\n ['role', apiRole],\n ['metadata.templateRole', role],\n ['title', roleTitle],\n ['capabilities', roleCapabilities],\n ['metadata.description', roleCapabilities],\n ['adapterType', adapterType],\n ['adapterConfig.cwd', adapterConfig.cwd],\n ['adapterConfig.model', adapterConfig.model],\n ['adapterConfig.modelReasoningEffort', adapterConfig.modelReasoningEffort],\n ['adapterConfig.thinkingLevel', adapterConfig.thinkingLevel],\n [\n 'adapterConfig.dangerouslyBypassApprovalsAndSandbox',\n adapterConfig.dangerouslyBypassApprovalsAndSandbox,\n ],\n ['adapterConfig.instructionsFilePath', adapterConfig.instructionsFilePath],\n ['instructionsFilePath', instructionsFilePath],\n ['runtimeConfig.heartbeat.enabled', 'true'],\n ['runtimeConfig.heartbeat.intervalSec', String(DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC)],\n ['runtimeConfig.heartbeat.maxConcurrentRuns', String(DEFAULT_CEO_MAX_CONCURRENT_RUNS)],\n ]);\n }\n\n // --- Issues ---\n // All issues come from module.issues[] (project-scoped), not from goals.\n if (initialIssues.length > 0) {\n bootstrap += `## Issues\\n\\n`;\n for (const issue of initialIssues) {\n bootstrap += `### ${issue.title}\\n\\n`;\n const isUserAssignment = issue.assignTo === 'user';\n const parentRefRaw =\n issue.parentId || issue.parentIssue || issue.parentIssueTitle || issue.parentTitle;\n const parentRef =\n typeof parentRefRaw === 'string' && parentRefRaw.trim().length > 0\n ? parentRefRaw.trim()\n : undefined;\n const explicitProjectRef =\n typeof issue.projectIdRef === 'string'\n ? issue.projectIdRef\n : typeof issue.projectName === 'string'\n ? issue.projectName\n : typeof issue.project === 'string'\n ? issue.project\n : undefined;\n const resolvedProjectRef = explicitProjectRef || mainProjectName;\n const issueLabelNames = getIssueLabelNames(issue);\n for (const labelName of issueLabelNames) {\n if (!labelsByName.has(labelName)) {\n labelsByName.set(labelName, {\n name: labelName,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Module-defined issue category',\n });\n }\n }\n\n bootstrap += renderMeta([\n [\n 'assigneeAgentId',\n !isUserAssignment && issue.assignTo ? `\u2192 \"${issue.assignTo}\"` : undefined,\n ],\n ['assigneeUserId', isUserAssignment ? '\u2192 board user' : undefined],\n ['priority', issue.priority || 'medium'],\n ['parentId', parentRef ? `\u2192 \"${parentRef}\"` : undefined],\n ['projectId', `\u2192 \"${resolvedProjectRef}\"`],\n ['labelIds', `\u2192 [${issueLabelNames.map((name) => `\"${name}\"`).join(', ')}]`],\n ]);\n if (issue.description) {\n bootstrap += `${escapeBody(issue.description)}\\n\\n`;\n }\n }\n\n bootstrap += `#### Issue Guardrails\\n\\n`;\n bootstrap += `- Top-level issues must include explicit \\`projectId\\`.\\n`;\n bootstrap += `- Subtasks must include explicit \\`parentId\\` and explicit \\`projectId\\` matching the parent project unless an explicit override is required.\\n`;\n bootstrap += `- Parent/subissue status is not implicitly coupled (no automatic status bounce).\\n`;\n bootstrap += `- Do not reopen \\`done\\` parent/subissues without an explicit reason in a comment.\\n`;\n bootstrap += `- Do not reuse parent workspaces for subissues unless explicitly requested.\\n\\n`;\n }\n\n // --- Routines ---\n if (initialRoutines.length > 0) {\n bootstrap += `## Routines\\n\\n`;\n for (const routine of initialRoutines) {\n bootstrap += `### ${routine.title}\\n\\n`;\n bootstrap += renderMeta([\n ['assigneeAgentId', routine.assignTo ? `\u2192 \"${routine.assignTo}\"` : undefined],\n ['schedule', routine.schedule],\n ['priority', routine.priority || 'medium'],\n ['concurrencyPolicy', routine.concurrencyPolicy || 'skip_if_active'],\n ['projectId', `\u2192 \"${mainProjectName}\"`],\n ]);\n if (routine.description) {\n bootstrap += `${escapeBody(routine.description)}\\n\\n`;\n }\n }\n }\n\n // --- Provisioning steps ---\n bootstrap += `## Provisioning Steps\\n\\n`;\n bootstrap += `The Company Wizard \"Provision\" step creates the company, the CEO, and this bootstrap issue. The CEO heartbeat creates the remaining Paperclip objects below by following this task.\\n\\n`;\n bootstrap += `Manual setup order (respects Paperclip object dependencies):\\n\\n`;\n let stepN = 1;\n bootstrap += `${stepN++}. **Create company** \"${companyName}\"${companyDescription ? ' (with description above)' : ''}\\n`;\n for (const g of allGoals) {\n const parentNote = g.parentGoal ? `, parentId \u2192 \"${g.parentGoal}\"` : '';\n const level = g.level || 'company';\n bootstrap += `${stepN++}. **Create goal** \"${g.title}\" (level: ${level}${parentNote})\\n`;\n }\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n const goalLinks =\n proj.goals?.length > 0 ? `, goalIds \u2192 [${proj.goals.map((g) => `\"${g}\"`).join(', ')}]` : '';\n bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: { sourceType: \"local_path\", cwd: \\`${projCwd}\\`, isPrimary: true }${goalLinks})\\n`;\n }\n if (bootstrapLabels.length > 0) {\n bootstrap += `${stepN++}. **Create labels** \u2014 create each label exactly as listed in the Labels section before creating issues\\n`;\n }\n bootstrap += `${stepN++}. **Create agents** \u2014 hire missing agents via governance using the adapter/runtime fields listed above; reuse/update an existing agent with the same metadata.templateRole instead of duplicating it\\n`;\n if (initialIssues.length > 0) {\n bootstrap += `${stepN++}. **Create issues** \u2014 every issue, including subtasks, must carry explicit projectId; subtasks also require parentId\\n`;\n }\n if (initialRoutines.length > 0) {\n bootstrap += `${stepN++}. **Create routines** with cron triggers as listed above\\n`;\n }\n bootstrap += `${stepN}. **Start CEO heartbeat** (one-time initial wakeup)\\n`;\n\n await writeFile(join(companyDir, 'BOOTSTRAP.md'), bootstrap);\n onProgress('+ BOOTSTRAP.md');\n\n return { companyDir, allRoles, initialIssues, initialRoutines, roleAdapterOverrides };\n}\n", "export const DEFAULT_CEO_ADAPTER_TYPE = 'codex_local';\nexport const DEFAULT_CEO_MODEL = 'gpt-5.5';\nexport const DEFAULT_CEO_THINKING_LEVEL = 'high';\nexport const DEFAULT_CEO_MAX_CONCURRENT_RUNS = 1;\nexport const DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC = 3600;\n\nconst DEFAULT_CLAUDE_CEO_MODEL = 'claude-opus-4-6';\n\nfunction asTrimmedString(value) {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nexport function normalizeCeoAdapterType(userCeoAdapter = {}) {\n return asTrimmedString(userCeoAdapter.type) || DEFAULT_CEO_ADAPTER_TYPE;\n}\n\nexport function buildCeoAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n promptTemplate = '',\n} = {}) {\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n const userCwd = asTrimmedString(userCeoAdapter.cwd);\n const userModel = asTrimmedString(userCeoAdapter.model);\n const overrideModel = asTrimmedString(roleAdapterOverrides.model);\n const defaultModel =\n adapterType === 'claude_local' ? DEFAULT_CLAUDE_CEO_MODEL : DEFAULT_CEO_MODEL;\n const model = userModel || overrideModel || defaultModel;\n const thinkingLevel =\n asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n ...roleAdapterOverrides,\n cwd: userCwd || companyDir,\n ...(asTrimmedString(promptTemplate) ? { promptTemplate } : {}),\n ...(model ? { model } : {}),\n };\n\n if (adapterType === 'codex_local') {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n } else if (adapterType === 'claude_local') {\n adapterConfig.dangerouslySkipPermissions = true;\n }\n\n return adapterConfig;\n}\n\nexport function buildCeoAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: true,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n", "const BASE_ROLE_MAP = {\n ceo: 'ceo',\n engineer: 'engineer',\n};\n\n/**\n * Minimal Paperclip API client using native fetch.\n * Supports both local_trusted (no auth) and authenticated instances.\n *\n * Usage:\n * const client = new PaperclipClient('http://localhost:3100', { email, password });\n * await client.connect(); // auto-detects auth requirement, signs in if needed\n */\nexport class PaperclipClient {\n constructor(baseUrl = 'http://localhost:3100', credentials = {}) {\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n this.origin = new URL(this.baseUrl).origin;\n this.credentials = credentials; // { email, password } \u2014 optional\n this.sessionCookie = null;\n this.boardUserId = null; // resolved during connect()\n }\n\n async _fetch(path, opts = {}) {\n const url = `${this.baseUrl}${path}`;\n const headers = { 'Content-Type': 'application/json', Origin: this.origin, ...opts.headers };\n if (this.sessionCookie) {\n headers['Cookie'] = this.sessionCookie;\n }\n let res;\n try {\n res = await fetch(url, { ...opts, headers });\n } catch (err) {\n throw new Error(\n `${opts.method || 'GET'} ${path} \u2014 network error: ${err.message}. Is Paperclip running at ${this.baseUrl}?`,\n );\n }\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`${opts.method || 'GET'} ${path} \u2192 ${res.status}: ${body}`);\n }\n return res.json();\n }\n\n /**\n * Connect to the Paperclip instance.\n * Pings the API \u2014 if auth is required and credentials are available, signs in.\n * For local_trusted instances this is a no-op beyond the connectivity check.\n */\n async connect() {\n let res;\n try {\n res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers: { Origin: this.origin },\n });\n } catch (err) {\n // Network error (connection refused, DNS failure, wrong port, etc.)\n throw new Error(\n `Could not reach Paperclip at ${this.baseUrl} (${err.message}).\\n` +\n ` If your instance runs on a different port, set paperclipUrl in plugin settings.`,\n );\n }\n\n // local_trusted \u2014 no auth needed\n if (res.ok) {\n this.boardUserId = 'local-board';\n return;\n }\n\n // Auth required\n if (res.status === 401 || res.status === 403) {\n const { email, password } = this.credentials;\n if (!email || !password) {\n throw new Error(\n `Paperclip instance requires authentication.\\n` +\n ` Configure paperclipEmail and paperclipPassword in plugin settings.`,\n );\n }\n await this._signIn(email, password);\n // Fetch the authenticated user's ID for assigneeUserId support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n } catch {\n // Non-critical \u2014 user assignment will fall back to unassigned\n }\n return;\n }\n\n throw new Error(\n `Paperclip API at ${this.baseUrl} returned unexpected status ${res.status}.\\n` +\n ` Check that paperclipUrl in plugin settings points to the correct instance.`,\n );\n }\n\n /**\n * Authenticate via Better Auth email/password sign-in.\n * Captures the session cookie for subsequent requests.\n */\n async _signIn(email, password) {\n const res = await fetch(`${this.baseUrl}/api/auth/sign-in/email`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', Origin: this.origin },\n body: JSON.stringify({ email, password }),\n redirect: 'manual',\n });\n\n if (!res.ok && res.status !== 302) {\n const body = await res.text().catch(() => '');\n throw new Error(`Authentication failed (${res.status}): ${body}`);\n }\n\n // Capture set-cookie header(s)\n const setCookie = res.headers.getSetCookie?.() || [];\n if (setCookie.length === 0) {\n // Fallback: some runtimes use get('set-cookie')\n const raw = res.headers.get('set-cookie');\n if (raw) setCookie.push(...raw.split(/,(?=\\s*\\w+=)/));\n }\n\n this.sessionCookie = setCookie\n .map((c) => c.split(';')[0].trim())\n .filter(Boolean)\n .join('; ');\n\n if (!this.sessionCookie) {\n throw new Error('Authentication succeeded but no session cookie received.');\n }\n }\n\n async ping() {\n try {\n const headers = { Origin: this.origin };\n if (this.sessionCookie) headers['Cookie'] = this.sessionCookie;\n const res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers,\n });\n return res.ok;\n } catch {\n return false;\n }\n }\n\n async createCompany({ name, description }) {\n return this._fetch('/api/companies', {\n method: 'POST',\n body: JSON.stringify({ name, description: description || null }),\n });\n }\n\n async updateCompany(companyId, updates) {\n return this._fetch(`/api/companies/${companyId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'DELETE' });\n }\n\n async getCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'GET' });\n }\n\n async listAgents(companyId) {\n return this._fetch(`/api/companies/${companyId}/agents`, { method: 'GET' });\n }\n\n async getAgent(agentId) {\n return this._fetch(`/api/agents/${agentId}`, { method: 'GET' });\n }\n\n async updateAgent(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async updateInstructionsBundle(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async upsertInstructionsBundleFile(\n agentId,\n { path: filePath, content, clearLegacyPromptTemplate },\n ) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle/file`, {\n method: 'PUT',\n body: JSON.stringify({\n path: filePath,\n content,\n ...(clearLegacyPromptTemplate !== undefined\n ? { clearLegacyPromptTemplate: !!clearLegacyPromptTemplate }\n : {}),\n }),\n });\n }\n\n async createAgent(companyId, agent) {\n const {\n name,\n role,\n title,\n icon,\n reportsTo,\n capabilities,\n tags,\n desiredSkills,\n adapterType,\n adapterConfig,\n runtimeConfig,\n budgetMonthlyCents,\n permissions,\n metadata,\n } = agent || {};\n const payload = {\n name,\n role,\n title: title || null,\n ...(icon !== undefined ? { icon: icon || null } : {}),\n reportsTo: reportsTo || null,\n ...(capabilities !== undefined ? { capabilities: capabilities || null } : {}),\n ...(tags !== undefined ? { tags } : {}),\n ...(desiredSkills !== undefined ? { desiredSkills } : {}),\n adapterType: adapterType || 'codex_local',\n adapterConfig: adapterConfig || {},\n ...(runtimeConfig ? { runtimeConfig } : {}),\n ...(budgetMonthlyCents !== undefined ? { budgetMonthlyCents } : {}),\n ...(permissions ? { permissions } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n\n try {\n return await this._fetch(`/api/companies/${companyId}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const requiresApproval =\n message.includes('Direct agent creation requires board approval') ||\n message.includes('/agent-hires');\n if (!requiresApproval) throw err;\n\n const hireResult = await this._fetch(`/api/companies/${companyId}/agent-hires`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n\n const hiredAgent = hireResult?.agent || null;\n const approvalId = hireResult?.approval?.id || null;\n if (!hiredAgent) {\n throw new Error('Agent hire endpoint returned no agent.');\n }\n\n if (approvalId) {\n try {\n await this._fetch(`/api/approvals/${approvalId}/approve`, {\n method: 'POST',\n body: JSON.stringify({ decisionNote: 'Auto-approved by Company Wizard provisioning' }),\n });\n try {\n return await this._fetch(`/api/agents/${hiredAgent.id}`, { method: 'GET' });\n } catch {\n return hiredAgent;\n }\n } catch (approveErr) {\n return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n _approvalAutoApproveError:\n approveErr instanceof Error ? approveErr.message : String(approveErr),\n };\n }\n }\n\n return hiredAgent;\n }\n }\n\n async createProject(companyId, { name, description, goalIds, workspace }) {\n const workspacePayload =\n typeof workspace === 'string'\n ? { sourceType: 'local_path', cwd: workspace, isPrimary: true }\n : workspace || undefined;\n return this._fetch(`/api/companies/${companyId}/projects`, {\n method: 'POST',\n body: JSON.stringify({\n name,\n description: description || null,\n ...(goalIds?.length ? { goalIds } : {}),\n workspace: workspacePayload,\n }),\n });\n }\n\n async createGoal(companyId, { title, description, level, parentId, status, ownerAgentId }) {\n return this._fetch(`/api/companies/${companyId}/goals`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n level: level || 'company',\n status: status || 'active',\n ...(parentId ? { parentId } : {}),\n ...(ownerAgentId ? { ownerAgentId } : {}),\n }),\n });\n }\n\n async createIssue(\n companyId,\n {\n title,\n description,\n status,\n priority,\n parentId,\n projectId,\n projectWorkspaceId,\n goalId,\n labelIds,\n assigneeAgentId,\n assigneeUserId,\n executionWorkspacePreference,\n executionWorkspaceSettings,\n executionPolicy,\n blockedByIssueIds,\n blockParentUntilDone,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/issues`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n status: status || undefined,\n priority: priority || 'medium',\n parentId: parentId || undefined,\n projectId: projectId || undefined,\n projectWorkspaceId: projectWorkspaceId || undefined,\n goalId: goalId || undefined,\n labelIds: labelIds || undefined,\n assigneeAgentId: assigneeAgentId || undefined,\n assigneeUserId: assigneeUserId || undefined,\n executionWorkspacePreference: executionWorkspacePreference || undefined,\n executionWorkspaceSettings: executionWorkspaceSettings || undefined,\n executionPolicy: executionPolicy || undefined,\n blockedByIssueIds: blockedByIssueIds || undefined,\n blockParentUntilDone: blockParentUntilDone || undefined,\n }),\n });\n }\n\n async createRoutine(\n companyId,\n {\n title,\n description,\n assigneeAgentId,\n projectId,\n priority,\n status,\n concurrencyPolicy,\n catchUpPolicy,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/routines`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n assigneeAgentId: assigneeAgentId || undefined,\n projectId: projectId || undefined,\n priority: priority || 'medium',\n status: status || 'active',\n concurrencyPolicy: concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: catchUpPolicy || 'skip_missed',\n }),\n });\n }\n\n async createRoutineTrigger(routineId, { kind, cronExpression, timezone }) {\n return this._fetch(`/api/routines/${routineId}/triggers`, {\n method: 'POST',\n body: JSON.stringify({\n kind: kind || 'schedule',\n ...(cronExpression ? { cronExpression } : {}),\n ...(timezone ? { timezone } : {}),\n }),\n });\n }\n\n async triggerHeartbeat(agentId, { issueId } = {}) {\n return this._fetch(`/api/agents/${agentId}/wakeup`, {\n method: 'POST',\n body: JSON.stringify({\n source: 'on_demand',\n triggerDetail: 'manual',\n ...(issueId ? { payload: { issueId } } : {}),\n }),\n });\n }\n\n /**\n * Resolve a clipper role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(clipperRole, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[clipperRole]) return BASE_ROLE_MAP[clipperRole];\n // Check role.json data\n if (roleData?.paperclipRole) return roleData.paperclipRole;\n return 'general';\n }\n}\n", "import { access, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * @typedef {Object} SubGoal\n * @property {string} id - Unique identifier (kebab-case).\n * @property {string} title\n * @property {'company'|'team'|'agent'|'task'} [level] - Goal level. Default: 'team'.\n * @property {string} [description]\n */\n\n/**\n * @typedef {Object} InlineGoal\n * @property {string} title\n * @property {string} description\n * @property {SubGoal[]} [subgoals]\n */\n\n/**\n * @typedef {Object} TemplateIssue\n * @property {string} title\n * @property {string} [description]\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [assignTo] - Role name, 'capability:<skill>', or 'user'.\n */\n\n/**\n * @typedef {Object} TemplateRoutine\n * @property {string} title\n * @property {string} [description]\n * @property {string} assignTo - Role name or 'capability:<skill>'.\n * @property {string} schedule - Cron expression.\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [concurrencyPolicy] - 'skip_if_active' | 'coalesce_if_active' | 'always_enqueue'\n */\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\nexport async function loadPresets(templatesDir) {\n const presetsDir = join(templatesDir, 'presets');\n const presets = [];\n if (!(await exists(presetsDir))) return presets;\n const dirs = await readdir(presetsDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const presetFile = join(presetsDir, dir.name, 'preset.meta.json');\n if (await exists(presetFile)) {\n const preset = JSON.parse(await readFile(presetFile, 'utf-8'));\n // Validate inline goals if present\n if (preset.goals) {\n for (const goal of preset.goals) {\n validateGoal(goal, `preset \"${preset.name}\"`);\n }\n }\n presets.push(preset);\n }\n }\n return presets;\n}\n\nexport async function loadModules(templatesDir) {\n const modulesDir = join(templatesDir, 'modules');\n const modules = [];\n if (!(await exists(modulesDir))) return modules;\n const dirs = await readdir(modulesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const moduleJson = await readJson(join(modulesDir, dir.name, 'module.meta.json'));\n const readmePath = join(modulesDir, dir.name, 'README.md');\n let description = '';\n if (await exists(readmePath)) {\n const content = await readFile(readmePath, 'utf-8');\n const descLine = content.split('\\n').find((l) => l.length > 0 && !l.startsWith('#'));\n description = descLine?.trim() || '';\n }\n const mod = { name: dir.name, description, ...(moduleJson || {}) };\n // Backward compat: rename tasks \u2192 issues if old format\n if (mod.tasks && !mod.issues) {\n mod.issues = mod.tasks;\n delete mod.tasks;\n }\n // Validate inline goal if present\n if (mod.goal) {\n validateGoal(mod.goal, `module \"${mod.name}\"`);\n }\n modules.push(mod);\n }\n return modules;\n}\n\nexport async function loadRoles(templatesDir) {\n const rolesDir = join(templatesDir, 'roles');\n const roles = [];\n if (!(await exists(rolesDir))) return roles;\n\n const dirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const roleJson = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleJson) {\n roles.push(roleJson);\n }\n }\n\n return roles;\n}\n\nconst VALID_PRIORITIES = new Set(['critical', 'high', 'medium', 'low']);\nconst SUBGOAL_ID_RE = /^[a-z][a-z0-9-]*$/;\n\n/**\n * Validate an inline goal object (from module or preset).\n * Throws on invalid data.\n * @param {InlineGoal} goal\n * @param {string} sourceName - context for error messages\n */\nfunction validateGoal(goal, sourceName) {\n if (!goal.title || typeof goal.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"title\"`);\n }\n if (!goal.description || typeof goal.description !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"description\"`);\n }\n\n if (goal.subgoals) {\n if (!Array.isArray(goal.subgoals)) {\n throw new Error(`Goal in ${sourceName}: \"subgoals\" must be an array`);\n }\n const ids = new Set();\n for (const sg of goal.subgoals) {\n if (!sg.id || typeof sg.id !== 'string' || !SUBGOAL_ID_RE.test(sg.id)) {\n throw new Error(`Goal in ${sourceName}: subgoal \"id\" must be kebab-case (got \"${sg.id}\")`);\n }\n if (ids.has(sg.id)) {\n throw new Error(`Goal in ${sourceName}: duplicate subgoal id \"${sg.id}\"`);\n }\n ids.add(sg.id);\n if (!sg.title || typeof sg.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: subgoal \"${sg.id}\" missing \"title\"`);\n }\n }\n }\n\n // Legacy support: warn if old fields are still present\n if (goal.milestones) {\n throw new Error(`Goal in ${sourceName}: \"milestones\" is deprecated \u2014 use \"subgoals\" instead`);\n }\n if (goal.issues) {\n throw new Error(\n `Goal in ${sourceName}: \"issues\" inside goals is deprecated \u2014 move to module/preset level \"issues[]\"`,\n );\n }\n}\n\n/**\n * Collect all active goals from selected preset and modules.\n *\n * @param {object|null} preset - The selected preset object\n * @param {object[]} modules - All loaded modules\n * @param {Set<string>} selectedModules - Names of selected modules\n * @returns {InlineGoal[]}\n */\nexport function collectGoals(preset, modules, selectedModules) {\n const goals = [];\n\n // 1. Preset goals\n if (preset?.goals) {\n for (const goal of preset.goals) {\n goals.push({ ...goal, _source: `preset:${preset.name}` });\n }\n }\n\n // 2. Module goals (only from selected modules)\n for (const mod of modules) {\n if (!selectedModules.has(mod.name)) continue;\n if (!mod.goal) continue;\n goals.push({ ...mod.goal, _source: `module:${mod.name}`, _module: mod.name });\n }\n\n return goals;\n}\n\nexport { validateGoal, validateGoal as validateGoalTemplate };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": [null, null, null, "export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n", "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n", "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_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\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\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 // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\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(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n", "import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n", "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n", "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n", "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?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// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[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// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?: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])$/;\nconst ipv4CidrRegex = /^(?:(?: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])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(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\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\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 dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\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}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(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 { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\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 { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "import { definePlugin, runWorker } from '@paperclipai/plugin-sdk';\nimport { execFileSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n// @ts-ignore \u2014 plain JS modules, bundled by esbuild\nimport { assembleCompany, toPascalCase } from './logic/assemble.js';\n// @ts-ignore\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\n buildCeoAgentRuntimeConfig,\n normalizeCeoAdapterType,\n} from './logic/ceo-defaults.js';\n// @ts-ignore\nimport { collectGoals, loadModules, loadPresets, loadRoles } from './logic/load-templates.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\n// --- Template loader ---\n\nconst DEFAULT_TEMPLATES_REPO_URL =\n 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates';\nconst BUNDLED_TEMPLATES_DIR = path.resolve(__dirname, '..', 'templates');\n\n/** Recursively copy a directory (sync). */\nfunction copyDirSync(src: string, dest: string): void {\n fs.mkdirSync(dest, { recursive: true });\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n const s = path.join(src, entry.name);\n const d = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirSync(s, d);\n else fs.copyFileSync(s, d);\n }\n}\n\n/**\n * Download a GitHub subdirectory into destDir using git sparse-checkout.\n * Expects a URL in the form: https://github.com/{owner}/{repo}/tree/{branch}/{subpath}\n */\nfunction downloadTemplatesFromGithub(destDir: string, githubUrl: string): void {\n // Branch is captured as the first path segment after /tree/; subpath takes the rest.\n // Branch names with slashes (e.g. feature/my-branch) are not supported in tree URLs \u2014\n // use a tag or a branch without slashes, or pin to a commit SHA instead.\n const match = githubUrl.match(/github\\.com\\/([^/]+)\\/([^/]+)\\/tree\\/([^/]+)\\/(.+)/);\n if (!match) {\n throw new Error(\n `Unsupported templates URL: ${githubUrl}. Expected https://github.com/{owner}/{repo}/tree/{branch}/{path}`,\n );\n }\n const [, owner, repo, branch, subpath] = match;\n const cloneUrl = `https://github.com/${owner}/${repo}.git`;\n const tmpDir = path.join(os.tmpdir(), `plugin-templates-dl-${Date.now()}`);\n try {\n execFileSync(\n 'git',\n [\n 'clone',\n '--depth',\n '1',\n '--filter=blob:none',\n '--sparse',\n '--branch',\n branch,\n cloneUrl,\n tmpDir,\n ],\n { stdio: 'pipe' },\n );\n execFileSync('git', ['sparse-checkout', 'set', subpath], { cwd: tmpDir, stdio: 'pipe' });\n const srcDir = path.join(tmpDir, subpath);\n if (!fs.existsSync(srcDir)) throw new Error(`Path '${subpath}' not found in ${cloneUrl}`);\n copyDirSync(srcDir, destDir);\n } finally {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n}\n\n/**\n * Resolve (and if needed, create) the templates directory.\n * Resolution order:\n * 1. cfg.templatesPath if set \u2192 use it; auto-download if missing.\n * 2. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 3. Bundled templates (dist/../templates) as last resort.\n */\nasync function ensureTemplatesDir(cfg: Record<string, string>): Promise<string> {\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n\n if (cfg.templatesPath) {\n if (fs.existsSync(cfg.templatesPath)) return cfg.templatesPath;\n downloadTemplatesFromGithub(cfg.templatesPath, repoUrl);\n return cfg.templatesPath;\n }\n\n const defaultDir = path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(defaultDir)) return defaultDir;\n\n try {\n downloadTemplatesFromGithub(defaultDir, repoUrl);\n return defaultDir;\n } catch {\n if (fs.existsSync(BUNDLED_TEMPLATES_DIR)) return BUNDLED_TEMPLATES_DIR;\n throw new Error(\n 'Templates not found and download failed. Configure templatesPath or templatesRepoUrl in plugin settings.',\n );\n }\n}\n\nfunction loadJsonFiles(dir: string, filename: string): { items: any[]; errors: string[] } {\n const items: any[] = [];\n const errors: string[] = [];\n\n if (!fs.existsSync(dir)) return { items, errors };\n\n for (const d of fs.readdirSync(dir)) {\n const fullDir = path.join(dir, d);\n try {\n if (!fs.statSync(fullDir).isDirectory()) continue;\n } catch {\n continue;\n }\n\n const fp = path.join(fullDir, filename);\n if (!fs.existsSync(fp)) continue;\n\n try {\n items.push(JSON.parse(fs.readFileSync(fp, 'utf-8')));\n } catch (err) {\n errors.push(`Failed to parse ${fp}: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n\n return { items, errors };\n}\n\nfunction loadTemplates(templatesDir: string) {\n const presetLoad = loadJsonFiles(path.join(templatesDir, 'presets'), 'preset.meta.json');\n const moduleLoad = loadJsonFiles(path.join(templatesDir, 'modules'), 'module.meta.json');\n const roleLoad = loadJsonFiles(path.join(templatesDir, 'roles'), 'role.meta.json');\n\n const modules = moduleLoad.items.map((mod: Record<string, unknown>) => {\n const issues = Array.isArray(mod.issues)\n ? mod.issues\n : Array.isArray(mod.tasks)\n ? mod.tasks\n : [];\n\n return {\n ...mod,\n // Keep both keys so old UI callers (tasks) and new callers (issues) stay consistent.\n issues,\n tasks: Array.isArray(mod.tasks) ? mod.tasks : issues,\n };\n });\n\n const roles = roleLoad.items.map((r: Record<string, unknown>) => {\n if (r.base) return { ...r, _base: true };\n return r;\n });\n\n return {\n presets: presetLoad.items,\n modules,\n roles,\n loadErrors: [...presetLoad.errors, ...moduleLoad.errors, ...roleLoad.errors],\n };\n}\n\n// --- Helpers ---\n\nfunction resolveCompaniesDir(cfg: Record<string, string>): string {\n if (cfg.companiesDir) return cfg.companiesDir;\n return path.join(os.homedir(), '.paperclip', 'instances', 'default', 'companies');\n}\n\nfunction formatRoleName(role: string): string {\n return role\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\nfunction collectInstructionFiles(rootDir: string): Record<string, string> {\n const out: Record<string, string> = {};\n if (!fs.existsSync(rootDir)) return out;\n\n const walk = (dir: string) => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(abs);\n continue;\n }\n if (!entry.isFile()) continue;\n const rel = path.relative(rootDir, abs).split(path.sep).join('/');\n out[rel] = fs.readFileSync(abs, 'utf-8');\n }\n };\n\n walk(rootDir);\n return out;\n}\n\nasync function syncAgentInstructionsIntoManagedBundle({\n client,\n agentId,\n sourceDir,\n entryFile,\n fallbackEntryContent,\n log,\n}: {\n client: any;\n agentId: string;\n sourceDir: string;\n entryFile: string;\n fallbackEntryContent?: string;\n log: (m: string) => void;\n}) {\n try {\n await client.updateInstructionsBundle(agentId, {\n mode: 'managed',\n entryFile,\n clearLegacyPromptTemplate: true,\n });\n\n const files = collectInstructionFiles(sourceDir);\n if (\n !files[entryFile] &&\n typeof fallbackEntryContent === 'string' &&\n fallbackEntryContent.trim()\n ) {\n files[entryFile] = fallbackEntryContent;\n }\n\n const entries = Object.entries(files).sort(([a], [b]) => a.localeCompare(b));\n if (entries.length === 0) {\n log('\u26A0 No instruction files found to sync into managed bundle.');\n return;\n }\n\n for (const [relativePath, content] of entries) {\n await client.upsertInstructionsBundleFile(agentId, {\n path: relativePath,\n content,\n });\n }\n\n log(`\u2713 Synced ${entries.length} instruction file(s) into managed bundle`);\n } catch (err) {\n log(\n `\u26A0 Could not sync managed instructions bundle: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n// --- Plugin definition ---\n\nconst plugin = definePlugin({\n async setup(ctx) {\n ctx.data.register('templates', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const templates = loadTemplates(await ensureTemplatesDir(cfg));\n if (templates.loadErrors.length > 0) {\n for (const err of templates.loadErrors) {\n ctx.logger.info(`\u26A0 Template load warning: ${err}`);\n }\n }\n return templates;\n });\n\n // Refresh templates \u2014 delete cached dir so next load re-downloads from GitHub.\n ctx.actions.register('refresh-templates', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n const targetDir =\n cfg.templatesPath || path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(targetDir)) {\n fs.rmSync(targetDir, { recursive: true, force: true });\n }\n downloadTemplatesFromGithub(targetDir, repoUrl);\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Preview action \u2014 assembles files to a temp dir and returns their contents.\n // Used by the UI review step to show/edit generated MD files before provisioning.\n ctx.actions.register('preview-files', async (params) => {\n let tmpDir: string | undefined;\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n\n const companyName =\n typeof params.companyName === 'string' && params.companyName.trim()\n ? params.companyName.trim()\n : 'Preview';\n\n const templatesDir = await ensureTemplatesDir(cfg);\n tmpDir = path.join(os.tmpdir(), `clipper-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveCompaniesDir(cfg);\n\n const [presets, allModules] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n ]);\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Normalize goals/projects for preview (same logic as start-provision)\n const previewGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const previewProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const result = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir: tmpDir,\n templatesDir,\n });\n\n // Collect all .md files from the assembled company dir.\n // For BOOTSTRAP.md, replace the tmp path with the realistic host workspace path\n // so the preview shows where files will actually live after provisioning.\n const previewCompanyDir = path.join(companiesDir, toPascalCase(companyName));\n const files: Record<string, string> = {};\n\n function collectMdFiles(dir: string, base: string) {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const rel = base ? `${base}/${entry.name}` : entry.name;\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n collectMdFiles(full, rel);\n } else if (entry.name.endsWith('.md')) {\n let content = fs.readFileSync(full, 'utf-8');\n if (entry.name === 'BOOTSTRAP.md') {\n content = content.replaceAll(result.companyDir, previewCompanyDir);\n }\n files[rel] = content;\n }\n }\n }\n\n collectMdFiles(result.companyDir, '');\n return { files };\n } catch (err) {\n return { files: {}, error: err instanceof Error ? err.message : String(err) };\n } finally {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n }\n });\n\n // Auth check action \u2014 called by the summary step to surface credential issues early.\n ctx.actions.register('check-auth', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: cfg.paperclipEmail || '',\n password: cfg.paperclipPassword || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // AI chat action \u2014 proxies messages to the Anthropic API using the configured key.\n // Keeps the API key server-side; the UI never touches it directly.\n // Returns { text, error? } \u2014 never throws, so the plugin host doesn't swallow the message in a 502.\n ctx.actions.register('ai-chat', async (params) => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const apiKey = cfg.anthropicApiKey || '';\n if (!apiKey) {\n return {\n text: '',\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n\n const response = await fetch('https://api.anthropic.com/v1/messages', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'anthropic-version': '2023-06-01',\n },\n body: JSON.stringify({\n model: 'claude-sonnet-4-20250514',\n max_tokens: 8192,\n ...(params.system ? { system: params.system } : {}),\n messages: params.messages,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n return { text: '', error: `Anthropic API error (${response.status}): ${body}` };\n }\n\n const data = (await response.json()) as { content?: { text: string }[] };\n return { text: data.content?.[0]?.text || '' };\n } catch (err) {\n return { text: '', error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Lightweight config check \u2014 UI calls this on mount to show a warning before the user types.\n ctx.actions.register('check-ai-config', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n if (!cfg.anthropicApiKey) {\n return {\n ok: false,\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Provisioning action \u2014 assembles files, then creates company/agent/issue.\n // Uses the plugin SDK host services where available (issues, goals),\n // falls back to PaperclipClient HTTP for operations the SDK doesn't support\n // yet (company creation, agent creation).\n // Returns { ..., logs } on success or { error, logs } on failure \u2014 never throws.\n ctx.actions.register('start-provision', async (params) => {\n const logs: string[] = [];\n const log = (msg: string) => {\n logs.push(msg);\n ctx.logger.info(msg);\n };\n\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n const paperclipEmail = cfg.paperclipEmail || '';\n const paperclipPassword = cfg.paperclipPassword || '';\n const rawDisableBoardApproval = (cfg as Record<string, unknown>)\n .disableBoardApprovalOnNewCompanies;\n const disableBoardApprovalOnNewCompanies =\n rawDisableBoardApproval === true ||\n (typeof rawDisableBoardApproval === 'string' &&\n rawDisableBoardApproval.toLowerCase() === 'true');\n\n const companyName = typeof params.companyName === 'string' ? params.companyName.trim() : '';\n const existingCompanyId =\n typeof params.existingCompanyId === 'string' && params.existingCompanyId.trim()\n ? params.existingCompanyId.trim()\n : '';\n if (!companyName) return { error: 'companyName is required', logs };\n\n const templatesDir = await ensureTemplatesDir(cfg);\n\n // Step 1: Collect inline goals and role metadata\n const [presets, allModules, roleTemplates] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n loadRoles(templatesDir),\n ]);\n const roleTemplateByName = new Map(\n (Array.isArray(roleTemplates) ? roleTemplates : [])\n .filter((role: any) => role && typeof role.name === 'string')\n .map((role: any) => [role.name, role]),\n );\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Step 2: Assemble files on disk\n const outputDir = resolveCompaniesDir(cfg);\n\n fs.mkdirSync(outputDir, { recursive: true });\n log('Assembling company workspace...');\n\n const companyDescription =\n typeof params.companyDescription === 'string' ? params.companyDescription.trim() : '';\n\n // Normalize goals: support both old single-goal and new array format\n const userGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const userProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n companyDescription,\n userGoals,\n userProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir,\n templatesDir,\n onProgress: log,\n });\n\n const { companyDir } = assembleResult;\n\n // Apply file overrides from UI edits\n const fileOverrides = (params.fileOverrides as Record<string, string>) ?? {};\n for (const [relPath, content] of Object.entries(fileOverrides)) {\n const absPath = path.resolve(companyDir, relPath);\n if (!absPath.startsWith(companyDir + path.sep) && absPath !== companyDir) {\n log(`\u26A0 Skipped override outside company dir: ${relPath}`);\n continue;\n }\n if (fs.existsSync(absPath)) {\n fs.writeFileSync(absPath, content, 'utf-8');\n log(`\u270E Override: ${relPath}`);\n }\n }\n\n const ceoInstructionsDir = path.join(companyDir, 'agents', 'ceo');\n const ceoEntryFile = 'AGENTS.md';\n const ceoEntryPath = path.join(ceoInstructionsDir, ceoEntryFile);\n const ceoPromptTemplate = fs.existsSync(ceoEntryPath)\n ? fs.readFileSync(ceoEntryPath, 'utf-8')\n : '';\n\n log('');\n log(`\u2713 Generated files: ${companyDir}`);\n\n // Step 3: Connect to Paperclip API\n // The SDK doesn't support company/agent creation yet, so we use PaperclipClient\n // for those. It auto-detects auth mode (no-op for local_trusted).\n log('Connecting to Paperclip API...');\n const client = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n await client.connect();\n log('Connected.');\n log('');\n\n // Step 5: Resolve target company (create new, or reuse existing)\n let company: any;\n let companyId: string;\n let createdCompany = false;\n\n if (existingCompanyId) {\n log(`Using existing company: ${existingCompanyId}`);\n company = await client.getCompany(existingCompanyId);\n companyId = company.id;\n log(`\u2713 Target company \"${company.name}\" selected`);\n log('Keeping company hire policy as configured (board approvals may be required).');\n } else {\n log('Creating company...');\n company = await client.createCompany({\n name: companyName,\n description: companyDescription || undefined,\n });\n companyId = company.id;\n createdCompany = true;\n log(`\u2713 Company \"${companyName}\" created`);\n\n if (disableBoardApprovalOnNewCompanies) {\n // Optional compatibility mode: disable mandatory board-approval hiring on new companies.\n // Useful when users want legacy fully-autonomous bootstrap behavior.\n try {\n await client.updateCompany(companyId, { requireBoardApprovalForNewAgents: false });\n log('\u2713 Disabled board-approval hiring policy for this new company');\n } catch (err) {\n log(\n `\u26A0 Could not disable board-approval hiring for new agents: ${err instanceof Error ? err.message : String(err)}`,\n );\n log(' Continuing \u2014 agent creation will use an approval-aware fallback if required.');\n }\n } else {\n log('Keeping company hire policy as configured (board approvals may be required).');\n }\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n let bootstrapIssue: { id: string; identifier?: string };\n try {\n // Step 6: Resolve or create CEO agent\n const userCeoAdapter = (params.ceoAdapter as any) || {};\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n const ceoDescription =\n typeof ceoTemplate.description === 'string' && ceoTemplate.description.trim()\n ? ceoTemplate.description.trim()\n : undefined;\n const ceoMetadata = {\n templateRole: 'ceo',\n ...(ceoDescription ? { description: ceoDescription } : {}),\n };\n const ceoRuntimeConfig = buildCeoAgentRuntimeConfig();\n\n const adapterConfig: Record<string, unknown> = buildCeoAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get('ceo') ?? {},\n });\n const ceoInstructionFiles = collectInstructionFiles(ceoInstructionsDir);\n if (\n !ceoInstructionFiles[ceoEntryFile] &&\n typeof ceoPromptTemplate === 'string' &&\n ceoPromptTemplate.trim()\n ) {\n ceoInstructionFiles[ceoEntryFile] = ceoPromptTemplate;\n }\n const ceoInstructionsBundle = Object.keys(ceoInstructionFiles).length > 0\n ? { entryFile: ceoEntryFile, files: ceoInstructionFiles }\n : undefined;\n\n const logPendingApproval = (agent: any) => {\n if (!agent?._pendingApprovalId) return;\n log(\n `\u26A0 CEO hire is pending approval: ${agent._pendingApprovalId}. Approve it in the board before the bootstrap heartbeat can run.`,\n );\n if (agent._approvalAutoApproveError) {\n log(` Auto-approve failed: ${agent._approvalAutoApproveError}`);\n }\n };\n\n if (existingCompanyId) {\n log('Looking for an existing CEO agent...');\n const agents = await client.listAgents(companyId);\n const existingCeo = Array.isArray(agents)\n ? agents.find((agent: any) => agent?.role === 'ceo' && agent?.status !== 'terminated')\n : null;\n\n if (existingCeo?.id) {\n ceoAgentId = existingCeo.id;\n log(`\u2713 Reusing existing CEO agent (${ceoAgentId})`);\n\n // Keep the reused CEO aligned with the newly generated workspace/instructions.\n try {\n const ceoPatch: Record<string, unknown> = {\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n ...(ceoMetadata\n ? { metadata: { ...(existingCeo.metadata ?? {}), ...ceoMetadata } }\n : {}),\n };\n if (!existingCeo?.title && ceoTitle) {\n ceoPatch.title = ceoTitle;\n }\n if (!existingCeo?.capabilities && ceoDescription) {\n ceoPatch.capabilities = ceoDescription;\n }\n await client.updateAgent(ceoAgentId, ceoPatch);\n log('\u2713 Updated existing CEO adapter config (cwd + Codex defaults)');\n } catch (updateErr) {\n log(\n `\u26A0 Could not update existing CEO adapter config: ${updateErr instanceof Error ? updateErr.message : String(updateErr)}`,\n );\n log(\n ' Continuing with existing CEO configuration; bootstrap paths may be out of sync.',\n );\n }\n } else {\n log('No active CEO found \u2014 creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n } else {\n log('Creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: ceoAgentId,\n sourceDir: ceoInstructionsDir,\n entryFile: ceoEntryFile,\n fallbackEntryContent: ceoPromptTemplate,\n log,\n });\n\n // Step 7: Create bootstrap issue (SDK: ctx.issues.create \u2713)\n // BOOTSTRAP.md IS the bootstrap issue \u2014 read it directly.\n const bootstrapDescription = fs.readFileSync(\n path.join(companyDir, 'BOOTSTRAP.md'),\n 'utf-8',\n );\n\n log('Creating bootstrap task for CEO...');\n const issue = await ctx.issues.create({\n companyId,\n title: `Bootstrap ${company.name || companyName}`,\n description: bootstrapDescription,\n assigneeAgentId: ceoAgentId,\n });\n await ctx.issues.update(issue.id, { status: 'todo' }, companyId);\n bootstrapIssue = issue as { id: string; identifier?: string };\n log(`\u2713 Bootstrap task created: ${bootstrapIssue.identifier || bootstrapIssue.id}`);\n } catch (err) {\n log(`\u2717 Provisioning failed: ${err instanceof Error ? err.message : String(err)}`);\n if (createdCompany) {\n log(`Cleaning up \u2014 deleting partially created company (${companyId})...`);\n try {\n await client.deleteCompany(companyId);\n log('\u2713 Company deleted.');\n } catch (cleanupErr) {\n log(\n `\u26A0 Could not delete company ${companyId}: ${cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr)}`,\n );\n log(` Delete it manually in the Paperclip UI to clean up.`);\n }\n } else {\n log('Skipping cleanup because provisioning targeted an existing company.');\n }\n throw err;\n }\n\n log('');\n log('Provisioning complete!');\n log(\n existingCompanyId\n ? 'Bootstrap task created in existing company. Trigger the CEO heartbeat to continue setup.'\n : 'The CEO agent is ready. Trigger its first heartbeat to hire the rest of the team and create the initial backlog.',\n );\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl,\n agentIds: { ceo: ceoAgentId! },\n issueIds: [bootstrapIssue!.id],\n logs,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n // Only log if it wasn't already logged by the inner compensation catch\n if (!logs.some((l) => l.includes('Provisioning failed'))) {\n log(`\u2717 ${message}`);\n }\n return { error: message, logs };\n }\n });\n },\n\n async onHealth() {\n return { status: 'ok', message: 'Company Wizard plugin is running' };\n },\n\n // Called by the \"Test Configuration\" button in the plugin settings UI.\n async onValidateConfig(config: Record<string, unknown>) {\n const paperclipUrl =\n (config.paperclipUrl as string) ||\n process.env.PAPERCLIP_PUBLIC_URL ||\n 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: (config.paperclipEmail as string) || '',\n password: (config.paperclipPassword as string) || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return {\n ok: false,\n errors: [err instanceof Error ? err.message : String(err)],\n };\n }\n },\n});\n\nexport default plugin;\nrunWorker(plugin, import.meta.url);\n", "import {\n access,\n appendFile,\n copyFile,\n mkdir,\n readdir,\n readFile,\n writeFile,\n} from 'node:fs/promises';\nimport { join } from 'node:path';\nimport {\n DEFAULT_CEO_ADAPTER_TYPE,\n DEFAULT_CEO_MODEL,\n DEFAULT_CEO_THINKING_LEVEL,\n DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n} from './ceo-defaults.js';\n// modulesWithActiveGoals removed \u2014 goals no longer contain issues\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function copyDir(src, dest, { skipExt } = {}) {\n await mkdir(dest, { recursive: true });\n const entries = await readdir(src, { withFileTypes: true });\n for (const entry of entries) {\n if (skipExt && entry.name.endsWith(skipExt)) continue;\n const srcPath = join(src, entry.name);\n const destPath = join(dest, entry.name);\n if (entry.isDirectory()) {\n await copyDir(srcPath, destPath, { skipExt });\n } else {\n await copyFile(srcPath, destPath);\n }\n }\n}\n\nasync function appendToFile(filePath, content) {\n if (await exists(filePath)) {\n await appendFile(filePath, content);\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\n/**\n * Convert a company name to PascalCase for the directory name.\n * \"Black Mesa\" \u2192 \"BlackMesa\", \"my-company\" \u2192 \"MyCompany\"\n */\nexport function toPascalCase(name) {\n return name\n .replace(/[^a-zA-Z0-9\\s\\-_]/g, '')\n .split(/[\\s\\-_]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n}\n\n/**\n * Assemble a company workspace from templates.\n *\n * @param {object} opts\n * @param {string} opts.companyName\n * @param {string} [opts.companyDescription] - Comprehensive company description\n * @param {Array} [opts.userGoals] - User/AI-specified goals: [{ title, description, parentGoal? }]\n * @param {Array} [opts.userProjects] - User/AI-specified projects: [{ name, description, goals[] }]\n * @param {string[]} opts.moduleNames\n * @param {string[]} opts.extraRoleNames\n * @param {Array} opts.inlineGoals - Inline goals from preset/modules (from collectGoals)\n * @param {string} opts.outputDir\n * @param {string} opts.templatesDir\n * @param {(line: string) => void} opts.onProgress\n * @returns {Promise<{companyDir: string, allRoles: Set<string>, initialIssues: Array, initialRoutines: Array, roleAdapterOverrides: Map<string, object>}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n outputDir,\n templatesDir,\n onProgress = () => {},\n}) {\n // --- Merge goals ---\n // The first user goal is the \"main\" company goal.\n // Module inline goals become sub-goals of the main goal.\n // Subgoals (formerly milestones) are expanded into allGoals with parentGoal + level.\n const mainGoal = userGoals[0] || null;\n const mergedInlineGoals = inlineGoals.map((g) => ({\n ...g,\n parentGoal: g.parentGoal || mainGoal?.title || undefined,\n }));\n\n const allGoals = [];\n for (const g of [...userGoals, ...mergedInlineGoals]) {\n allGoals.push(g);\n // Expand subgoals as nested goals\n if (g.subgoals?.length) {\n for (const sg of g.subgoals) {\n allGoals.push({\n title: sg.title,\n description: sg.description || '',\n level: sg.level || 'team',\n parentGoal: g.title,\n });\n }\n }\n }\n\n // If user specified projects, use them. Otherwise, create a default project linked to all goals.\n const resolvedProjects =\n userProjects.length > 0\n ? userProjects\n : [\n {\n name: companyName,\n description: mainGoal?.description || '',\n goals: allGoals.map((g) => g.title),\n },\n ];\n\n const baseDirName = toPascalCase(companyName);\n let dirName = baseDirName;\n let companyDir = join(outputDir, dirName);\n\n if (await exists(companyDir)) {\n let idx = 2;\n while (await exists(join(outputDir, `${baseDirName}${idx}`))) idx++;\n dirName = `${baseDirName}${idx}`;\n companyDir = join(outputDir, dirName);\n }\n\n // Discover base roles from roles/ directory (those with base: true in role.meta.json)\n const rolesDir = join(templatesDir, 'roles');\n const baseRoleNames = [];\n const roleMetaByName = new Map();\n if (await exists(rolesDir)) {\n const roleDirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of roleDirs) {\n if (!dir.isDirectory()) continue;\n const roleMeta = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleMeta && typeof roleMeta === 'object') {\n roleMetaByName.set(dir.name, roleMeta);\n }\n if (roleMeta?.base) {\n baseRoleNames.push(dir.name);\n }\n }\n }\n\n // Determine all roles present\n const allRoles = new Set([...baseRoleNames, ...extraRoleNames]);\n\n // Validate module dependencies before starting assembly.\n // Skip modules that won't activate (missing directory or gated by activatesWithRoles).\n const selectedSet = new Set(moduleNames);\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n const deps = moduleJson?.requires || [];\n for (const dep of deps) {\n if (!selectedSet.has(dep)) {\n throw new Error(`Module \"${moduleName}\" requires module \"${dep}\", which is not selected`);\n }\n }\n }\n\n // 1. Copy base roles (exclude .meta.json metadata)\n for (const roleName of baseRoleNames) {\n const roleSrc = join(rolesDir, roleName);\n const roleDest = join(companyDir, 'agents', roleName);\n await mkdir(roleDest, { recursive: true });\n const entries = await readdir(roleSrc, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json')) {\n await copyFile(join(roleSrc, entry.name), join(roleDest, entry.name));\n }\n }\n onProgress(`+ agents/${roleName}/ (base)`);\n }\n\n // 2. Copy extra roles from roles/\n for (const roleName of extraRoleNames) {\n const roleDir = join(rolesDir, roleName);\n if (!(await exists(roleDir))) {\n onProgress(`! role ${roleName} not found, skipping`);\n continue;\n }\n const destDir = join(companyDir, 'agents', roleName);\n await mkdir(destDir, { recursive: true });\n const entries = await readdir(roleDir, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory() || !entry.name.endsWith('.md')) continue;\n await copyFile(join(roleDir, entry.name), join(destDir, entry.name));\n }\n onProgress(`+ agents/${roleName}/ (role)`);\n }\n\n // 3. Apply modules with capability-aware skill assignment\n const initialIssues = [];\n const initialRoutines = [];\n const roleAdapterOverrides = new Map(); // role name \u2192 merged adapter overrides from modules\n\n // Helper: resolve assignee for a role name or capability reference\n const resolveAssignee = (assignee, moduleJson) => {\n if (assignee?.startsWith('capability:')) {\n const capName = assignee.slice('capability:'.length);\n const cap = moduleJson?.capabilities?.find((c) => c.skill === capName);\n if (cap) return cap.owners.find((r) => allRoles.has(r)) || assignee;\n } else if (assignee && assignee !== 'ceo' && assignee !== 'user' && !allRoles.has(assignee)) {\n return 'ceo'; // Named role not in this team \u2014 fall back to CEO\n }\n return assignee;\n };\n\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) {\n onProgress(`! module ${moduleName} not found, skipping`);\n continue;\n }\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n\n // Check activatesWithRoles\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) {\n onProgress(`\u25CB ${moduleName} (needs ${moduleJson.activatesWithRoles.join(' or ')})`);\n continue;\n }\n }\n\n // Collect issues (backward compat: read tasks[] if issues[] not present)\n const moduleIssues = moduleJson?.issues || moduleJson?.tasks || [];\n for (const issue of moduleIssues) {\n initialIssues.push({\n ...issue,\n assignTo: resolveAssignee(issue.assignTo, moduleJson),\n module: moduleName,\n });\n }\n\n // Collect routines\n if (moduleJson?.routines?.length) {\n for (const routine of moduleJson.routines) {\n initialRoutines.push({\n ...routine,\n assignTo: resolveAssignee(routine.assignTo, moduleJson),\n module: moduleName,\n });\n }\n }\n\n // Copy shared docs\n const docsDir = join(moduleDir, 'docs');\n if (await exists(docsDir)) {\n await copyDir(docsDir, join(companyDir, 'docs'));\n const docs = await readdir(docsDir);\n for (const doc of docs) {\n onProgress(`+ docs/${doc} (${moduleName})`);\n }\n }\n\n // Resolve capabilities\n const capabilityOwners = new Map();\n if (moduleJson?.capabilities) {\n for (const cap of moduleJson.capabilities) {\n const primaryOwner = cap.owners.find((r) => allRoles.has(r));\n if (primaryOwner) {\n capabilityOwners.set(cap.skill, { primary: primaryOwner, cap });\n }\n }\n }\n\n // Collect adapter overrides for capability owners\n if (moduleJson?.adapterOverrides && capabilityOwners.size > 0) {\n const ownerRoles = new Set();\n for (const { primary, cap } of capabilityOwners.values()) {\n ownerRoles.add(primary);\n for (const r of cap.owners) {\n if (allRoles.has(r)) ownerRoles.add(r);\n }\n }\n for (const role of ownerRoles) {\n const existing = roleAdapterOverrides.get(role) || {};\n roleAdapterOverrides.set(role, { ...existing, ...moduleJson.adapterOverrides });\n }\n }\n\n // Copy agent skills.\n //\n // Skill resolution order (per role + skill name):\n // 1. Role-specific override: agents/<role>/skills/<skill>.md\n // 2. Shared skill: skills/<skill>.md\n //\n // For capabilities, the assembly logic decides what to copy:\n // - Primary owner gets <skill>.md (role-specific or shared)\n // - Fallback owners get <skill>.fallback.md (role-specific or shared)\n // - Other combinations are skipped\n //\n // Non-capability skills (no matching capabilityOwners entry) are copied\n // as-is to the role that defines them.\n\n const sharedSkillsDir = join(moduleDir, 'skills');\n const agentsDir = join(moduleDir, 'agents');\n\n // Helper: resolve a skill file from role-specific first, then shared\n async function resolveSkillFile(roleName, fileName) {\n const roleSpecific = join(agentsDir, roleName, 'skills', fileName);\n if (await exists(roleSpecific)) return { path: roleSpecific, source: 'role' };\n const shared = join(sharedSkillsDir, fileName);\n if (await exists(shared)) return { path: shared, source: 'shared' };\n return null;\n }\n\n // Helper: copy a resolved skill into the agent's skills/ dir\n async function installSkill(roleName, fileName, label) {\n const resolved = await resolveSkillFile(roleName, fileName);\n if (!resolved) return false;\n const destSkillsDir = join(companyDir, 'agents', roleName, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(resolved.path, join(destSkillsDir, fileName));\n await appendToFile(\n join(companyDir, 'agents', roleName, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${fileName}\\`\\n`,\n );\n const sourceTag = resolved.source === 'shared' ? ', shared' : '';\n onProgress(`+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag})`);\n return true;\n }\n\n // Install capability-based skills for each present role\n for (const [skillName, { primary, cap }] of capabilityOwners) {\n // Primary owner gets the primary skill\n await installSkill(primary, `${skillName}.md`, 'primary');\n\n // Fallback owners get the fallback skill\n if (cap.fallbackSkill) {\n for (const fallbackRole of cap.owners) {\n if (fallbackRole === primary) continue;\n if (!allRoles.has(fallbackRole)) continue;\n await installSkill(fallbackRole, `${cap.fallbackSkill}.md`, 'fallback');\n }\n }\n }\n\n // Install non-capability skills (role-specific only, no shared lookup)\n if (await exists(agentsDir)) {\n const roles = await readdir(agentsDir, { withFileTypes: true });\n for (const role of roles) {\n if (!role.isDirectory()) continue;\n if (!allRoles.has(role.name)) continue;\n\n const skillsDir = join(agentsDir, role.name, 'skills');\n if (!(await exists(skillsDir))) continue;\n\n const skills = await readdir(skillsDir);\n for (const skillFile of skills) {\n const skillName = skillFile.replace(/\\.md$/, '');\n const skillBaseName = skillName.replace(/\\.fallback$/, '');\n\n // Skip if this skill belongs to a capability (already handled above)\n if (capabilityOwners.has(skillBaseName)) continue;\n\n const destSkillsDir = join(companyDir, 'agents', role.name, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(join(skillsDir, skillFile), join(destSkillsDir, skillFile));\n await appendToFile(\n join(companyDir, 'agents', role.name, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${skillFile}\\`\\n`,\n );\n onProgress(`+ agents/${role.name}/skills/${skillFile} (${moduleName})`);\n }\n }\n }\n }\n\n // 4. Inject module heartbeat sections into HEARTBEAT.md files\n //\n // Convention-based: if a module provides agents/<role>/heartbeat-section.md,\n // it gets appended to that role's HEARTBEAT.md (before the placeholder comment).\n // This follows the same gracefully-optimistic pattern as skills \u2014 if the file\n // exists the heartbeat extends, if not nothing breaks.\n const HEARTBEAT_MARKER =\n '<!-- Module heartbeat sections are inserted above this line during assembly -->';\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n // Skip gated modules that didn't activate\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n\n const modAgentsDir = join(moduleDir, 'agents');\n if (!(await exists(modAgentsDir))) continue;\n\n const modRoles = await readdir(modAgentsDir, { withFileTypes: true });\n for (const modRole of modRoles) {\n if (!modRole.isDirectory()) continue;\n if (!allRoles.has(modRole.name)) continue;\n\n const sectionFile = join(modAgentsDir, modRole.name, 'heartbeat-section.md');\n if (!(await exists(sectionFile))) continue;\n\n const heartbeatPath = join(companyDir, 'agents', modRole.name, 'HEARTBEAT.md');\n if (!(await exists(heartbeatPath))) continue;\n\n const section = await readFile(sectionFile, 'utf-8');\n const heartbeat = await readFile(heartbeatPath, 'utf-8');\n\n // Insert before the marker comment, or append at end if marker not found\n const updated = heartbeat.includes(HEARTBEAT_MARKER)\n ? heartbeat.replace(HEARTBEAT_MARKER, section.trim() + '\\n\\n' + HEARTBEAT_MARKER)\n : heartbeat.trimEnd() + '\\n\\n' + section.trim() + '\\n';\n\n await writeFile(heartbeatPath, updated);\n onProgress(`+ agents/${modRole.name}/HEARTBEAT.md (${moduleName}, heartbeat section)`);\n }\n }\n\n // 5. Add shared doc references to all AGENTS.md files\n const finalDocsDir = join(companyDir, 'docs');\n if (await exists(finalDocsDir)) {\n const docs = await readdir(finalDocsDir);\n if (docs.length > 0) {\n const agentsBaseDir = join(companyDir, 'agents');\n const agentRoles = await readdir(agentsBaseDir, { withFileTypes: true });\n for (const role of agentRoles) {\n if (!role.isDirectory()) continue;\n const agentsMd = join(agentsBaseDir, role.name, 'AGENTS.md');\n if (await exists(agentsMd)) {\n let docRefs = '\\n## Shared Documentation\\n';\n for (const doc of docs) {\n docRefs += `\\nRead: \\`docs/${doc}\\`\\n`;\n }\n await appendToFile(agentsMd, docRefs);\n }\n }\n }\n }\n\n // 6. Generate BOOTSTRAP.md\n const rolesList = [...allRoles];\n const DEFAULT_BOOTSTRAP_LABELS = [\n { name: 'feature', color: '#0075ca', useFor: 'New user-facing capability' },\n { name: 'bug', color: '#d73a4a', useFor: 'Defect or regression' },\n { name: 'chore', color: '#7057ff', useFor: 'Refactoring, cleanup, dependency updates' },\n { name: 'spike', color: '#006b75', useFor: 'Research or investigation' },\n { name: 'blocked', color: '#e4e669', useFor: 'Cannot proceed, needs unblocking' },\n ];\n const DEFAULT_BOOTSTRAP_LABEL_COLOR = '#6f42c1';\n\n const formatRole = (r) =>\n r\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n\n const normalizeLabelName = (name) =>\n String(name || '')\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, '-');\n\n const normalizeHexColor = (color) => {\n const value = String(color || '').trim();\n if (!value) return DEFAULT_BOOTSTRAP_LABEL_COLOR;\n return value.startsWith('#') ? value : `#${value}`;\n };\n\n const normalizePaperclipRole = (role, roleMeta) => {\n const apiRole = typeof roleMeta.paperclipRole === 'string' ? roleMeta.paperclipRole.trim() : '';\n return apiRole || role;\n };\n\n const resolveRoleAdapterConfig = (role, roleMeta, instructionsFilePath) => {\n const adapter = roleMeta && typeof roleMeta.adapter === 'object' ? roleMeta.adapter : {};\n const adapterType =\n typeof adapter.type === 'string' && adapter.type.trim()\n ? adapter.type.trim()\n : DEFAULT_CEO_ADAPTER_TYPE;\n const model =\n adapterType === DEFAULT_CEO_ADAPTER_TYPE\n ? DEFAULT_CEO_MODEL\n : typeof adapter.model === 'string' && adapter.model.trim()\n ? adapter.model.trim()\n : DEFAULT_CEO_MODEL;\n const thinkingLevel =\n typeof adapter.thinkingLevel === 'string' && adapter.thinkingLevel.trim()\n ? adapter.thinkingLevel.trim()\n : typeof adapter.modelReasoningEffort === 'string' && adapter.modelReasoningEffort.trim()\n ? adapter.modelReasoningEffort.trim()\n : typeof adapter.effort === 'string' && adapter.effort.trim()\n ? adapter.effort.trim()\n : DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n cwd: companyDir,\n model,\n instructionsFilePath,\n };\n\n if (adapter && typeof adapter === 'object') {\n for (const [key, value] of Object.entries(adapter)) {\n if (['type', 'model', 'effort', 'thinkingLevel', 'modelReasoningEffort'].includes(key)) {\n continue;\n }\n adapterConfig[key] = value;\n }\n }\n\n if (adapterType === DEFAULT_CEO_ADAPTER_TYPE) {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n }\n\n return { adapterType, adapterConfig };\n };\n\n const defaultLabelByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n const parseIssueLabels = (issue) => {\n const raw = [];\n if (Array.isArray(issue?.labelNames)) raw.push(...issue.labelNames);\n if (Array.isArray(issue?.labels)) raw.push(...issue.labels);\n\n const parsed = [];\n for (const item of raw) {\n if (typeof item === 'string') {\n const name = normalizeLabelName(item);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n parsed.push({\n name,\n color: known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: known?.useFor || 'Module-defined issue category',\n });\n } else if (item && typeof item === 'object' && typeof item.name === 'string') {\n const name = normalizeLabelName(item.name);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n const color = normalizeHexColor(\n typeof item.color === 'string' && item.color.trim().length > 0\n ? item.color.trim()\n : known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n );\n parsed.push({\n name,\n color,\n useFor:\n typeof item.useFor === 'string' && item.useFor.trim().length > 0\n ? item.useFor.trim()\n : known?.useFor || 'Module-defined issue category',\n });\n }\n }\n\n const seen = new Set();\n return parsed.filter((label) => {\n if (seen.has(label.name)) return false;\n seen.add(label.name);\n return true;\n });\n };\n\n const inferIssueLabelName = (issue) => {\n const text = `${issue?.title || ''} ${issue?.description || ''}`.toLowerCase();\n if (/\\bblocked\\b|\\bunblock\\b/.test(text)) return 'blocked';\n if (/\\bbug\\b|\\bfix\\b|regression|crash|error|broken/.test(text)) return 'bug';\n if (/\\bspike\\b|research|investigat|analysis|audit|explor/.test(text)) return 'spike';\n if (/\\bchore\\b|cleanup|refactor|dependency|maintenance|configure|setup|set up/.test(text)) {\n return 'chore';\n }\n return 'feature';\n };\n\n const buildBootstrapLabels = (issues) => {\n if (issues.length === 0) return [];\n\n const labelsByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n for (const issue of issues) {\n const explicitLabels = parseIssueLabels(issue);\n if (explicitLabels.length > 0) {\n for (const label of explicitLabels) {\n labelsByName.set(label.name, label);\n }\n continue;\n }\n\n const inferred = inferIssueLabelName(issue);\n if (!labelsByName.has(inferred)) {\n labelsByName.set(inferred, {\n name: inferred,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Auto-inferred issue category',\n });\n }\n }\n\n return [...labelsByName.values()];\n };\n\n const bootstrapLabels = buildBootstrapLabels(initialIssues);\n const labelsByName = new Map(bootstrapLabels.map((label) => [label.name, label]));\n\n const getIssueLabelNames = (issue) => {\n const explicit = parseIssueLabels(issue).map((label) => label.name);\n if (explicit.length > 0) return explicit;\n return [inferIssueLabelName(issue)];\n };\n\n // --- Helper: render metadata as visible bullet list ---\n const renderMeta = (fields) => {\n const lines = fields.filter(([, v]) => v !== undefined && v !== null && v !== '');\n if (lines.length === 0) return '';\n return lines.map(([k, v]) => `- **${k}**: ${v}`).join('\\n') + '\\n\\n';\n };\n\n // --- Helper: escape # in description body ---\n const escapeBody = (text) =>\n text\n .split('\\n')\n .map((l) => l.replace(/^(#+)/, '\\\\$1'))\n .join('\\n');\n\n let bootstrap = `# Bootstrap: ${companyName}\\n\\n`;\n\n // Instructions from template\n const instructionsPath = join(templatesDir, 'bootstrap-instructions.md');\n if (await exists(instructionsPath)) {\n const instructions = await readFile(instructionsPath, 'utf-8');\n bootstrap += `${instructions.trim()}\\n\\n`;\n }\n\n // Company description\n if (companyDescription) {\n bootstrap += `## Company\\n\\n`;\n bootstrap += `${companyDescription}\\n\\n`;\n }\n\n // --- Goals ---\n // All goals (user goals + inline goals + expanded subgoals) rendered uniformly.\n if (allGoals.length > 0) {\n bootstrap += `## Goals\\n\\n`;\n for (const g of allGoals) {\n bootstrap += `### ${g.title}\\n\\n`;\n bootstrap += renderMeta([\n ['level', g.level || 'company'],\n ['status', 'active'],\n ['parentId', g.parentGoal ? `\u2192 \"${g.parentGoal}\"` : undefined],\n ]);\n if (g.description) {\n bootstrap += `${escapeBody(g.description)}\\n\\n`;\n }\n }\n }\n\n // --- Projects ---\n const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n bootstrap += `### ${proj.name}\\n\\n`;\n bootstrap += renderMeta([\n ['workspace.sourceType', 'local_path'],\n ['workspace.cwd', projCwd],\n ['workspace.isPrimary', 'true'],\n [\n 'goalIds',\n proj.goals?.length > 0 ? proj.goals.map((g) => `\"${g}\"`).join(', ') : undefined,\n ],\n ]);\n if (proj.description) {\n bootstrap += `${escapeBody(proj.description)}\\n\\n`;\n }\n }\n }\n\n // --- Labels ---\n if (bootstrapLabels.length > 0) {\n bootstrap += `## Labels\\n\\n`;\n for (const label of bootstrapLabels) {\n bootstrap += `### ${label.name}\\n\\n`;\n bootstrap += renderMeta([\n ['name', label.name],\n ['color', label.color],\n ]);\n if (label.useFor) {\n bootstrap += `${escapeBody(label.useFor)}\\n\\n`;\n }\n }\n }\n\n // --- Agents ---\n bootstrap += `## Agents\\n\\n`;\n for (const role of rolesList) {\n const roleMeta = roleMetaByName.get(role) || {};\n const roleTitle = typeof roleMeta.title === 'string' ? roleMeta.title : undefined;\n const roleCapabilities =\n typeof roleMeta.description === 'string' ? roleMeta.description : undefined;\n const instructionsFilePath = `${companyDir}/agents/${role}/AGENTS.md`;\n const apiRole = normalizePaperclipRole(role, roleMeta);\n const { adapterType, adapterConfig } = resolveRoleAdapterConfig(\n role,\n roleMeta,\n instructionsFilePath,\n );\n\n bootstrap += `### ${formatRole(role)}\\n\\n`;\n bootstrap += renderMeta([\n ['role', apiRole],\n ['metadata.templateRole', role],\n ['title', roleTitle],\n ['capabilities', roleCapabilities],\n ['metadata.description', roleCapabilities],\n ['adapterType', adapterType],\n ['adapterConfig.cwd', adapterConfig.cwd],\n ['adapterConfig.model', adapterConfig.model],\n ['adapterConfig.modelReasoningEffort', adapterConfig.modelReasoningEffort],\n ['adapterConfig.thinkingLevel', adapterConfig.thinkingLevel],\n [\n 'adapterConfig.dangerouslyBypassApprovalsAndSandbox',\n adapterConfig.dangerouslyBypassApprovalsAndSandbox,\n ],\n ['adapterConfig.instructionsFilePath', adapterConfig.instructionsFilePath],\n ['instructionsFilePath', instructionsFilePath],\n ['runtimeConfig.heartbeat.enabled', 'true'],\n ['runtimeConfig.heartbeat.intervalSec', String(DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC)],\n ['runtimeConfig.heartbeat.maxConcurrentRuns', String(DEFAULT_CEO_MAX_CONCURRENT_RUNS)],\n ]);\n }\n\n // --- Issues ---\n // All issues come from module.issues[] (project-scoped), not from goals.\n if (initialIssues.length > 0) {\n bootstrap += `## Issues\\n\\n`;\n for (const issue of initialIssues) {\n bootstrap += `### ${issue.title}\\n\\n`;\n const isUserAssignment = issue.assignTo === 'user';\n const parentRefRaw =\n issue.parentId || issue.parentIssue || issue.parentIssueTitle || issue.parentTitle;\n const parentRef =\n typeof parentRefRaw === 'string' && parentRefRaw.trim().length > 0\n ? parentRefRaw.trim()\n : undefined;\n const explicitProjectRef =\n typeof issue.projectIdRef === 'string'\n ? issue.projectIdRef\n : typeof issue.projectName === 'string'\n ? issue.projectName\n : typeof issue.project === 'string'\n ? issue.project\n : undefined;\n const resolvedProjectRef = explicitProjectRef || mainProjectName;\n const issueLabelNames = getIssueLabelNames(issue);\n for (const labelName of issueLabelNames) {\n if (!labelsByName.has(labelName)) {\n labelsByName.set(labelName, {\n name: labelName,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Module-defined issue category',\n });\n }\n }\n\n bootstrap += renderMeta([\n [\n 'assigneeAgentId',\n !isUserAssignment && issue.assignTo ? `\u2192 \"${issue.assignTo}\"` : undefined,\n ],\n ['assigneeUserId', isUserAssignment ? '\u2192 board user' : undefined],\n ['priority', issue.priority || 'medium'],\n ['parentId', parentRef ? `\u2192 \"${parentRef}\"` : undefined],\n ['projectId', `\u2192 \"${resolvedProjectRef}\"`],\n ['labelIds', `\u2192 [${issueLabelNames.map((name) => `\"${name}\"`).join(', ')}]`],\n ]);\n if (issue.description) {\n bootstrap += `${escapeBody(issue.description)}\\n\\n`;\n }\n }\n\n bootstrap += `#### Issue Guardrails\\n\\n`;\n bootstrap += `- Top-level issues must include explicit \\`projectId\\`.\\n`;\n bootstrap += `- Subtasks must include explicit \\`parentId\\` and explicit \\`projectId\\` matching the parent project unless an explicit override is required.\\n`;\n bootstrap += `- Parent/subissue status is not implicitly coupled (no automatic status bounce).\\n`;\n bootstrap += `- Do not reopen \\`done\\` parent/subissues without an explicit reason in a comment.\\n`;\n bootstrap += `- Do not reuse parent workspaces for subissues unless explicitly requested.\\n\\n`;\n }\n\n // --- Routines ---\n if (initialRoutines.length > 0) {\n bootstrap += `## Routines\\n\\n`;\n for (const routine of initialRoutines) {\n bootstrap += `### ${routine.title}\\n\\n`;\n bootstrap += renderMeta([\n ['assigneeAgentId', routine.assignTo ? `\u2192 \"${routine.assignTo}\"` : undefined],\n ['schedule', routine.schedule],\n ['priority', routine.priority || 'medium'],\n ['concurrencyPolicy', routine.concurrencyPolicy || 'skip_if_active'],\n ['projectId', `\u2192 \"${mainProjectName}\"`],\n ]);\n if (routine.description) {\n bootstrap += `${escapeBody(routine.description)}\\n\\n`;\n }\n }\n }\n\n // --- Provisioning steps ---\n bootstrap += `## Provisioning Steps\\n\\n`;\n bootstrap += `The Company Wizard \"Provision\" step creates the company, the CEO, and this bootstrap issue. The CEO heartbeat creates the remaining Paperclip objects below by following this task.\\n\\n`;\n bootstrap += `Manual setup order (respects Paperclip object dependencies):\\n\\n`;\n let stepN = 1;\n bootstrap += `${stepN++}. **Create company** \"${companyName}\"${companyDescription ? ' (with description above)' : ''}\\n`;\n for (const g of allGoals) {\n const parentNote = g.parentGoal ? `, parentId \u2192 \"${g.parentGoal}\"` : '';\n const level = g.level || 'company';\n bootstrap += `${stepN++}. **Create goal** \"${g.title}\" (level: ${level}${parentNote})\\n`;\n }\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n const goalLinks =\n proj.goals?.length > 0 ? `, goalIds \u2192 [${proj.goals.map((g) => `\"${g}\"`).join(', ')}]` : '';\n bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: { sourceType: \"local_path\", cwd: \\`${projCwd}\\`, isPrimary: true }${goalLinks})\\n`;\n }\n if (bootstrapLabels.length > 0) {\n bootstrap += `${stepN++}. **Create labels** \u2014 create each label exactly as listed in the Labels section before creating issues\\n`;\n }\n bootstrap += `${stepN++}. **Create agents** \u2014 hire missing agents via governance using the adapter/runtime fields listed above; reuse/update an existing agent with the same metadata.templateRole instead of duplicating it\\n`;\n if (initialIssues.length > 0) {\n bootstrap += `${stepN++}. **Create issues** \u2014 every issue, including subtasks, must carry explicit projectId; subtasks also require parentId\\n`;\n }\n if (initialRoutines.length > 0) {\n bootstrap += `${stepN++}. **Create routines** with cron triggers as listed above\\n`;\n }\n bootstrap += `${stepN}. **Start CEO heartbeat** (one-time initial wakeup)\\n`;\n\n await writeFile(join(companyDir, 'BOOTSTRAP.md'), bootstrap);\n onProgress('+ BOOTSTRAP.md');\n\n return { companyDir, allRoles, initialIssues, initialRoutines, roleAdapterOverrides };\n}\n", "export const DEFAULT_CEO_ADAPTER_TYPE = 'codex_local';\nexport const DEFAULT_CEO_MODEL = 'gpt-5.5';\nexport const DEFAULT_CEO_THINKING_LEVEL = 'high';\nexport const DEFAULT_CEO_MAX_CONCURRENT_RUNS = 1;\nexport const DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC = 3600;\n\nconst DEFAULT_CLAUDE_CEO_MODEL = 'claude-opus-4-6';\n\nfunction asTrimmedString(value) {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nexport function normalizeCeoAdapterType(userCeoAdapter = {}) {\n return asTrimmedString(userCeoAdapter.type) || DEFAULT_CEO_ADAPTER_TYPE;\n}\n\nexport function buildCeoAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n} = {}) {\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n const userCwd = asTrimmedString(userCeoAdapter.cwd);\n const userModel = asTrimmedString(userCeoAdapter.model);\n const overrideModel = asTrimmedString(roleAdapterOverrides.model);\n const defaultModel =\n adapterType === 'claude_local' ? DEFAULT_CLAUDE_CEO_MODEL : DEFAULT_CEO_MODEL;\n const model = userModel || overrideModel || defaultModel;\n const thinkingLevel =\n asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n ...roleAdapterOverrides,\n cwd: userCwd || companyDir,\n ...(model ? { model } : {}),\n };\n delete adapterConfig.promptTemplate;\n delete adapterConfig.bootstrapPromptTemplate;\n\n if (adapterType === 'codex_local') {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n } else if (adapterType === 'claude_local') {\n adapterConfig.dangerouslySkipPermissions = true;\n }\n\n return adapterConfig;\n}\n\nexport function buildCeoAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: true,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n", "const BASE_ROLE_MAP = {\n ceo: 'ceo',\n engineer: 'engineer',\n};\n\n/**\n * Minimal Paperclip API client using native fetch.\n * Supports both local_trusted (no auth) and authenticated instances.\n *\n * Usage:\n * const client = new PaperclipClient('http://localhost:3100', { email, password });\n * await client.connect(); // auto-detects auth requirement, signs in if needed\n */\nexport class PaperclipClient {\n constructor(baseUrl = 'http://localhost:3100', credentials = {}) {\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n this.origin = new URL(this.baseUrl).origin;\n this.credentials = credentials; // { email, password } \u2014 optional\n this.sessionCookie = null;\n this.boardUserId = null; // resolved during connect()\n }\n\n async _fetch(path, opts = {}) {\n const url = `${this.baseUrl}${path}`;\n const headers = { 'Content-Type': 'application/json', Origin: this.origin, ...opts.headers };\n if (this.sessionCookie) {\n headers['Cookie'] = this.sessionCookie;\n }\n let res;\n try {\n res = await fetch(url, { ...opts, headers });\n } catch (err) {\n throw new Error(\n `${opts.method || 'GET'} ${path} \u2014 network error: ${err.message}. Is Paperclip running at ${this.baseUrl}?`,\n );\n }\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`${opts.method || 'GET'} ${path} \u2192 ${res.status}: ${body}`);\n }\n return res.json();\n }\n\n /**\n * Connect to the Paperclip instance.\n * Pings the API \u2014 if auth is required and credentials are available, signs in.\n * For local_trusted instances this is a no-op beyond the connectivity check.\n */\n async connect() {\n let res;\n try {\n res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers: { Origin: this.origin },\n });\n } catch (err) {\n // Network error (connection refused, DNS failure, wrong port, etc.)\n throw new Error(\n `Could not reach Paperclip at ${this.baseUrl} (${err.message}).\\n` +\n ` If your instance runs on a different port, set paperclipUrl in plugin settings.`,\n );\n }\n\n // local_trusted \u2014 no auth needed\n if (res.ok) {\n this.boardUserId = 'local-board';\n return;\n }\n\n // Auth required\n if (res.status === 401 || res.status === 403) {\n const { email, password } = this.credentials;\n if (!email || !password) {\n throw new Error(\n `Paperclip instance requires authentication.\\n` +\n ` Configure paperclipEmail and paperclipPassword in plugin settings.`,\n );\n }\n await this._signIn(email, password);\n // Fetch the authenticated user's ID for assigneeUserId support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n } catch {\n // Non-critical \u2014 user assignment will fall back to unassigned\n }\n return;\n }\n\n throw new Error(\n `Paperclip API at ${this.baseUrl} returned unexpected status ${res.status}.\\n` +\n ` Check that paperclipUrl in plugin settings points to the correct instance.`,\n );\n }\n\n /**\n * Authenticate via Better Auth email/password sign-in.\n * Captures the session cookie for subsequent requests.\n */\n async _signIn(email, password) {\n const res = await fetch(`${this.baseUrl}/api/auth/sign-in/email`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', Origin: this.origin },\n body: JSON.stringify({ email, password }),\n redirect: 'manual',\n });\n\n if (!res.ok && res.status !== 302) {\n const body = await res.text().catch(() => '');\n throw new Error(`Authentication failed (${res.status}): ${body}`);\n }\n\n // Capture set-cookie header(s)\n const setCookie = res.headers.getSetCookie?.() || [];\n if (setCookie.length === 0) {\n // Fallback: some runtimes use get('set-cookie')\n const raw = res.headers.get('set-cookie');\n if (raw) setCookie.push(...raw.split(/,(?=\\s*\\w+=)/));\n }\n\n this.sessionCookie = setCookie\n .map((c) => c.split(';')[0].trim())\n .filter(Boolean)\n .join('; ');\n\n if (!this.sessionCookie) {\n throw new Error('Authentication succeeded but no session cookie received.');\n }\n }\n\n async ping() {\n try {\n const headers = { Origin: this.origin };\n if (this.sessionCookie) headers['Cookie'] = this.sessionCookie;\n const res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers,\n });\n return res.ok;\n } catch {\n return false;\n }\n }\n\n async createCompany({ name, description }) {\n return this._fetch('/api/companies', {\n method: 'POST',\n body: JSON.stringify({ name, description: description || null }),\n });\n }\n\n async updateCompany(companyId, updates) {\n return this._fetch(`/api/companies/${companyId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'DELETE' });\n }\n\n async getCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'GET' });\n }\n\n async listAgents(companyId) {\n return this._fetch(`/api/companies/${companyId}/agents`, { method: 'GET' });\n }\n\n async getAgent(agentId) {\n return this._fetch(`/api/agents/${agentId}`, { method: 'GET' });\n }\n\n async updateAgent(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async updateInstructionsBundle(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async upsertInstructionsBundleFile(\n agentId,\n { path: filePath, content, clearLegacyPromptTemplate },\n ) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle/file`, {\n method: 'PUT',\n body: JSON.stringify({\n path: filePath,\n content,\n ...(clearLegacyPromptTemplate !== undefined\n ? { clearLegacyPromptTemplate: !!clearLegacyPromptTemplate }\n : {}),\n }),\n });\n }\n\n async createAgent(companyId, agent) {\n const {\n name,\n role,\n title,\n icon,\n reportsTo,\n capabilities,\n tags,\n desiredSkills,\n adapterType,\n adapterConfig,\n runtimeConfig,\n budgetMonthlyCents,\n permissions,\n metadata,\n instructionsBundle,\n } = agent || {};\n const payload = {\n name,\n role,\n title: title || null,\n ...(icon !== undefined ? { icon: icon || null } : {}),\n reportsTo: reportsTo || null,\n ...(capabilities !== undefined ? { capabilities: capabilities || null } : {}),\n ...(tags !== undefined ? { tags } : {}),\n ...(desiredSkills !== undefined ? { desiredSkills } : {}),\n adapterType: adapterType || 'codex_local',\n adapterConfig: adapterConfig || {},\n ...(runtimeConfig ? { runtimeConfig } : {}),\n ...(budgetMonthlyCents !== undefined ? { budgetMonthlyCents } : {}),\n ...(permissions ? { permissions } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n ...(instructionsBundle !== undefined ? { instructionsBundle } : {}),\n };\n\n try {\n return await this._fetch(`/api/companies/${companyId}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const requiresApproval =\n message.includes('Direct agent creation requires board approval') ||\n message.includes('/agent-hires');\n if (!requiresApproval) throw err;\n\n const hireResult = await this._fetch(`/api/companies/${companyId}/agent-hires`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n\n const hiredAgent = hireResult?.agent || null;\n const approvalId = hireResult?.approval?.id || null;\n if (!hiredAgent) {\n throw new Error('Agent hire endpoint returned no agent.');\n }\n\n if (approvalId) {\n try {\n await this._fetch(`/api/approvals/${approvalId}/approve`, {\n method: 'POST',\n body: JSON.stringify({ decisionNote: 'Auto-approved by Company Wizard provisioning' }),\n });\n try {\n return await this._fetch(`/api/agents/${hiredAgent.id}`, { method: 'GET' });\n } catch {\n return hiredAgent;\n }\n } catch (approveErr) {\n return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n _approvalAutoApproveError:\n approveErr instanceof Error ? approveErr.message : String(approveErr),\n };\n }\n }\n\n return hiredAgent;\n }\n }\n\n async createProject(companyId, { name, description, goalIds, workspace }) {\n const workspacePayload =\n typeof workspace === 'string'\n ? { sourceType: 'local_path', cwd: workspace, isPrimary: true }\n : workspace || undefined;\n return this._fetch(`/api/companies/${companyId}/projects`, {\n method: 'POST',\n body: JSON.stringify({\n name,\n description: description || null,\n ...(goalIds?.length ? { goalIds } : {}),\n workspace: workspacePayload,\n }),\n });\n }\n\n async createGoal(companyId, { title, description, level, parentId, status, ownerAgentId }) {\n return this._fetch(`/api/companies/${companyId}/goals`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n level: level || 'company',\n status: status || 'active',\n ...(parentId ? { parentId } : {}),\n ...(ownerAgentId ? { ownerAgentId } : {}),\n }),\n });\n }\n\n async createIssue(\n companyId,\n {\n title,\n description,\n status,\n priority,\n parentId,\n projectId,\n projectWorkspaceId,\n goalId,\n labelIds,\n assigneeAgentId,\n assigneeUserId,\n executionWorkspacePreference,\n executionWorkspaceSettings,\n executionPolicy,\n blockedByIssueIds,\n blockParentUntilDone,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/issues`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n status: status || undefined,\n priority: priority || 'medium',\n parentId: parentId || undefined,\n projectId: projectId || undefined,\n projectWorkspaceId: projectWorkspaceId || undefined,\n goalId: goalId || undefined,\n labelIds: labelIds || undefined,\n assigneeAgentId: assigneeAgentId || undefined,\n assigneeUserId: assigneeUserId || undefined,\n executionWorkspacePreference: executionWorkspacePreference || undefined,\n executionWorkspaceSettings: executionWorkspaceSettings || undefined,\n executionPolicy: executionPolicy || undefined,\n blockedByIssueIds: blockedByIssueIds || undefined,\n blockParentUntilDone: blockParentUntilDone || undefined,\n }),\n });\n }\n\n async createRoutine(\n companyId,\n {\n title,\n description,\n assigneeAgentId,\n projectId,\n priority,\n status,\n concurrencyPolicy,\n catchUpPolicy,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/routines`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n assigneeAgentId: assigneeAgentId || undefined,\n projectId: projectId || undefined,\n priority: priority || 'medium',\n status: status || 'active',\n concurrencyPolicy: concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: catchUpPolicy || 'skip_missed',\n }),\n });\n }\n\n async createRoutineTrigger(routineId, { kind, cronExpression, timezone }) {\n return this._fetch(`/api/routines/${routineId}/triggers`, {\n method: 'POST',\n body: JSON.stringify({\n kind: kind || 'schedule',\n ...(cronExpression ? { cronExpression } : {}),\n ...(timezone ? { timezone } : {}),\n }),\n });\n }\n\n async triggerHeartbeat(agentId, { issueId } = {}) {\n return this._fetch(`/api/agents/${agentId}/wakeup`, {\n method: 'POST',\n body: JSON.stringify({\n source: 'on_demand',\n triggerDetail: 'manual',\n ...(issueId ? { payload: { issueId } } : {}),\n }),\n });\n }\n\n /**\n * Resolve a clipper role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(clipperRole, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[clipperRole]) return BASE_ROLE_MAP[clipperRole];\n // Check role.json data\n if (roleData?.paperclipRole) return roleData.paperclipRole;\n return 'general';\n }\n}\n", "import { access, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * @typedef {Object} SubGoal\n * @property {string} id - Unique identifier (kebab-case).\n * @property {string} title\n * @property {'company'|'team'|'agent'|'task'} [level] - Goal level. Default: 'team'.\n * @property {string} [description]\n */\n\n/**\n * @typedef {Object} InlineGoal\n * @property {string} title\n * @property {string} description\n * @property {SubGoal[]} [subgoals]\n */\n\n/**\n * @typedef {Object} TemplateIssue\n * @property {string} title\n * @property {string} [description]\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [assignTo] - Role name, 'capability:<skill>', or 'user'.\n */\n\n/**\n * @typedef {Object} TemplateRoutine\n * @property {string} title\n * @property {string} [description]\n * @property {string} assignTo - Role name or 'capability:<skill>'.\n * @property {string} schedule - Cron expression.\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [concurrencyPolicy] - 'skip_if_active' | 'coalesce_if_active' | 'always_enqueue'\n */\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\nexport async function loadPresets(templatesDir) {\n const presetsDir = join(templatesDir, 'presets');\n const presets = [];\n if (!(await exists(presetsDir))) return presets;\n const dirs = await readdir(presetsDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const presetFile = join(presetsDir, dir.name, 'preset.meta.json');\n if (await exists(presetFile)) {\n const preset = JSON.parse(await readFile(presetFile, 'utf-8'));\n // Validate inline goals if present\n if (preset.goals) {\n for (const goal of preset.goals) {\n validateGoal(goal, `preset \"${preset.name}\"`);\n }\n }\n presets.push(preset);\n }\n }\n return presets;\n}\n\nexport async function loadModules(templatesDir) {\n const modulesDir = join(templatesDir, 'modules');\n const modules = [];\n if (!(await exists(modulesDir))) return modules;\n const dirs = await readdir(modulesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const moduleJson = await readJson(join(modulesDir, dir.name, 'module.meta.json'));\n const readmePath = join(modulesDir, dir.name, 'README.md');\n let description = '';\n if (await exists(readmePath)) {\n const content = await readFile(readmePath, 'utf-8');\n const descLine = content.split('\\n').find((l) => l.length > 0 && !l.startsWith('#'));\n description = descLine?.trim() || '';\n }\n const mod = { name: dir.name, description, ...(moduleJson || {}) };\n // Backward compat: rename tasks \u2192 issues if old format\n if (mod.tasks && !mod.issues) {\n mod.issues = mod.tasks;\n delete mod.tasks;\n }\n // Validate inline goal if present\n if (mod.goal) {\n validateGoal(mod.goal, `module \"${mod.name}\"`);\n }\n modules.push(mod);\n }\n return modules;\n}\n\nexport async function loadRoles(templatesDir) {\n const rolesDir = join(templatesDir, 'roles');\n const roles = [];\n if (!(await exists(rolesDir))) return roles;\n\n const dirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const roleJson = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleJson) {\n roles.push(roleJson);\n }\n }\n\n return roles;\n}\n\nconst VALID_PRIORITIES = new Set(['critical', 'high', 'medium', 'low']);\nconst SUBGOAL_ID_RE = /^[a-z][a-z0-9-]*$/;\n\n/**\n * Validate an inline goal object (from module or preset).\n * Throws on invalid data.\n * @param {InlineGoal} goal\n * @param {string} sourceName - context for error messages\n */\nfunction validateGoal(goal, sourceName) {\n if (!goal.title || typeof goal.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"title\"`);\n }\n if (!goal.description || typeof goal.description !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"description\"`);\n }\n\n if (goal.subgoals) {\n if (!Array.isArray(goal.subgoals)) {\n throw new Error(`Goal in ${sourceName}: \"subgoals\" must be an array`);\n }\n const ids = new Set();\n for (const sg of goal.subgoals) {\n if (!sg.id || typeof sg.id !== 'string' || !SUBGOAL_ID_RE.test(sg.id)) {\n throw new Error(`Goal in ${sourceName}: subgoal \"id\" must be kebab-case (got \"${sg.id}\")`);\n }\n if (ids.has(sg.id)) {\n throw new Error(`Goal in ${sourceName}: duplicate subgoal id \"${sg.id}\"`);\n }\n ids.add(sg.id);\n if (!sg.title || typeof sg.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: subgoal \"${sg.id}\" missing \"title\"`);\n }\n }\n }\n\n // Legacy support: warn if old fields are still present\n if (goal.milestones) {\n throw new Error(`Goal in ${sourceName}: \"milestones\" is deprecated \u2014 use \"subgoals\" instead`);\n }\n if (goal.issues) {\n throw new Error(\n `Goal in ${sourceName}: \"issues\" inside goals is deprecated \u2014 move to module/preset level \"issues[]\"`,\n );\n }\n}\n\n/**\n * Collect all active goals from selected preset and modules.\n *\n * @param {object|null} preset - The selected preset object\n * @param {object[]} modules - All loaded modules\n * @param {Set<string>} selectedModules - Names of selected modules\n * @returns {InlineGoal[]}\n */\nexport function collectGoals(preset, modules, selectedModules) {\n const goals = [];\n\n // 1. Preset goals\n if (preset?.goals) {\n for (const goal of preset.goals) {\n goals.push({ ...goal, _source: `preset:${preset.name}` });\n }\n }\n\n // 2. Module goals (only from selected modules)\n for (const mod of modules) {\n if (!selectedModules.has(mod.name)) continue;\n if (!mod.goal) continue;\n goals.push({ ...mod.goal, _source: `module:${mod.name}`, _module: mod.name });\n }\n\n return goals;\n}\n\nexport { validateGoal, validateGoal as validateGoalTemplate };\n"],
5
+ "mappings": "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",
6
6
  "names": ["plugin", "util", "objectUtil", "path", "errorUtil", "path", "errorMap", "ctx", "result", "issues", "elements", "processed", "result", "r", "ZodFirstPartyTypeKind", "executionWorkspaceStrategySchema", "path", "fileURLToPath", "labelsByName", "path", "access", "readdir", "readFile", "join", "exists", "readJson", "path", "fileURLToPath", "path", "collectMdFiles"]
7
7
  }