@starlein/paperclip-plugin-company-wizard 0.4.11 → 0.4.13

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.529.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/define-plugin.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.529.0/node_modules/@paperclipai/shared/src/constants.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/adapter-type.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/network-bind.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/types/instance.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/types/search.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/types/resource-memberships.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/sidebar-preferences.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/resource-memberships.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/execution-workspace.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/types/feedback.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/feedback.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/instance.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/budget.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/company.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/environment.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/company-skill.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/adapter-skills.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/text.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/issue.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/secret.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/routine.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/company-portability.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/agent.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/project.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/document-annotation.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/search.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/issue-tree-control.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/work-product.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/goal.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/approval.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/cost.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/finance.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/asset.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/access.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/validators/plugin.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/api.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/routine-variables.ts", "../node_modules/.pnpm/@paperclipai+shared@2026.529.0/node_modules/@paperclipai/shared/src/config-schema.ts", "../node_modules/.pnpm/@paperclipai+plugin-sdk@2026.529.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/worker-rpc-host.ts", "../node_modules/.pnpm/@paperclipai+plugin-sdk@2026.529.0_react@19.2.4/node_modules/@paperclipai/plugin-sdk/src/protocol.ts", "../src/worker.ts", "../src/logic/assemble.js", "../src/logic/ceo-defaults.js", "../src/logic/version.js", "../src/api/client.js", "../src/logic/load-templates.js"],
4
- "sourcesContent": [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, 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 \u2014 plain JS module, bundled by esbuild\nimport { isNewerVersion } from './logic/version.js';\n// @ts-ignore\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\n buildWorkerAdapterConfig,\n buildCeoAgentRuntimeConfig,\n buildWorkerAgentRuntimeConfig,\n normalizeCeoAdapterType,\n} from './logic/ceo-defaults.js';\n// @ts-ignore\nimport {\n collectGoals,\n collectPresetBootstrapData,\n loadModules,\n loadPresets,\n loadRoles,\n resolveEffectiveModules,\n} 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');\nconst PLUGIN_PACKAGE_NAME = '@starlein/paperclip-plugin-company-wizard';\nconst CURRENT_PLUGIN_VERSION = '0.4.11';\nconst NPM_LATEST_URL =\n 'https://registry.npmjs.org/@starlein%2Fpaperclip-plugin-company-wizard/latest';\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 * Detect whether the current environment is a Docker/Paperclip server setup.\n * In Docker, the home directory is /paperclip and the instance layout uses\n * ~/instances/default/companies and ~/plugin-templates directly (no .paperclip subdir).\n * In NPX/local setups, the layout is ~/.paperclip/instances/default/companies\n * and ~/.paperclip/plugin-templates.\n */\nfunction isDockerLayout(): boolean {\n return fs.existsSync(path.join(os.homedir(), 'instances'));\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. Docker detection: ~/plugin-templates when ~/instances exists.\n * 3. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 4. 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 // Docker detection: prefer ~/plugin-templates when ~/instances exists (Docker layout)\n if (isDockerLayout()) {\n const dockerTemplatesDir = path.join(os.homedir(), 'plugin-templates');\n if (fs.existsSync(dockerTemplatesDir)) return dockerTemplatesDir;\n try {\n downloadTemplatesFromGithub(dockerTemplatesDir, repoUrl);\n return dockerTemplatesDir;\n } catch {\n // Fall through to home-dir default\n }\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\ntype SecretResolverContext = {\n secrets: {\n resolve(secretRef: string): Promise<string>;\n };\n};\n\nfunction isLikelyAnthropicApiKey(value: string): boolean {\n return value.startsWith('sk-ant-');\n}\n\nasync function resolveAnthropicApiKey(\n ctx: SecretResolverContext,\n configuredValue: unknown,\n): Promise<string> {\n if (typeof configuredValue !== 'string') return '';\n const value = configuredValue.trim();\n if (!value) return '';\n\n // The setting now stores the raw Anthropic key directly (plain string field).\n if (isLikelyAnthropicApiKey(value)) return value;\n\n try {\n // Backward compatibility: older installs may still have a Paperclip secret\n // reference stored in config instead of the raw key.\n const resolved = await ctx.secrets.resolve(value);\n return resolved.trim();\n } catch (err) {\n const detail = err instanceof Error ? err.message : String(err);\n throw new Error(\n `Anthropic API key could not be resolved. Re-save the plugin setting with a valid Anthropic API key (sk-ant-...). ${detail}`,\n );\n }\n}\n\n/**\n * Single Anthropic Messages API call. Returns `{ text, error? }` \u2014 never throws,\n * so callers (sync and async job modes) can handle failures uniformly.\n */\nasync function callAnthropic(\n apiKey: string,\n system: unknown,\n messages: unknown,\n): Promise<{ text: string; error?: string }> {\n try {\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-opus-4-8',\n // High ceiling so the wizard's final config \u2014 which reproduces the user's\n // full spec in the first goal \u2014 is never truncated mid-JSON. This is only\n // an upper bound; generation time tracks the tokens actually produced.\n max_tokens: 32768,\n ...(system ? { system } : {}),\n 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/**\n * In-memory store for async ai-chat jobs. The plugin runs one long-lived worker\n * process, so an in-process map is sufficient. Used to decouple long Anthropic\n * generations (e.g. the AI wizard's final config) from the host's 30s\n * `performAction` RPC timeout: the UI starts a job, then polls for the result.\n */\ntype AiChatJob =\n | { status: 'pending'; createdAt: number }\n | { status: 'done'; text: string; createdAt: number }\n | { status: 'error'; error: string; createdAt: number };\n\nconst aiChatJobs = new Map<string, AiChatJob>();\nconst AI_CHAT_JOB_TTL_MS = 10 * 60 * 1000;\n\n/** Drop completed/abandoned jobs so the map doesn't grow unbounded. */\nfunction sweepAiChatJobs(): void {\n const now = Date.now();\n for (const [id, job] of aiChatJobs) {\n if (now - job.createdAt > AI_CHAT_JOB_TTL_MS) aiChatJobs.delete(id);\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\ntype InstanceExperimentalSettings = {\n enableIsolatedWorkspaces?: boolean;\n};\n\nasync function resolveEnableIsolatedWorkspacesFromInstance(\n cfg: Record<string, string>,\n log?: (msg: string) => void,\n): Promise<boolean> {\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 instanceClient = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n\n try {\n await instanceClient.connect();\n const experimentalSettings = (await instanceClient.getInstanceExperimentalSettings()) as\n | InstanceExperimentalSettings\n | undefined;\n return experimentalSettings?.enableIsolatedWorkspaces === true;\n } catch (err) {\n if (log) {\n const detail = err instanceof Error ? err.message : String(err);\n log(`\u26A0 Could not read instance experimental settings: ${detail}. Using fallback false.`);\n }\n return false;\n }\n}\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 mkdirErrorMessage(err: unknown): string {\n if (err instanceof Error) return err.message;\n return String(err);\n}\n\nfunction ensureWritableDir(dir: string): void {\n fs.mkdirSync(dir, { recursive: true });\n fs.accessSync(dir, fs.constants.W_OK);\n}\n\nexport function resolveWritableCompaniesDir(\n cfg: Record<string, string>,\n log?: (msg: string) => void,\n): string {\n const configuredDir = typeof cfg.companiesDir === 'string' ? cfg.companiesDir.trim() : '';\n if (configuredDir) {\n try {\n ensureWritableDir(configuredDir);\n return configuredDir;\n } catch (err) {\n throw new Error(\n `Configured companiesDir is not writable (${configuredDir}): ${mkdirErrorMessage(err)}`,\n );\n }\n }\n\n // Auto-detect: Docker layout uses ~/instances, NPX layout uses ~/.paperclip/instances\n const candidates: string[] = [];\n if (isDockerLayout()) {\n // Docker: home is /paperclip, layout is ~/instances/default/companies\n candidates.push(path.join(os.homedir(), 'instances', 'default', 'companies'));\n }\n // NPX/local: ~/.paperclip/instances/default/companies\n candidates.push(resolveCompaniesDir(cfg));\n // Last resort: OS temp dir\n candidates.push(path.join(os.tmpdir(), 'paperclip-companies'));\n const attempted = new Set<string>();\n let lastError = '';\n\n for (const candidate of candidates) {\n if (attempted.has(candidate)) continue;\n attempted.add(candidate);\n try {\n ensureWritableDir(candidate);\n return candidate;\n } catch (err) {\n const message = mkdirErrorMessage(err);\n lastError = `${candidate}: ${message}`;\n if (log) log(`\u26A0 Companies dir unavailable: ${candidate} (${message})`);\n }\n }\n\n throw new Error(\n `Unable to prepare a writable companies directory. Last attempt failed at ${lastError}`,\n );\n}\n\nfunction isPathInside(parent: string, child: string): boolean {\n const relative = path.relative(parent, child);\n return (\n relative === '' || (!!relative && !relative.startsWith('..') && !path.isAbsolute(relative))\n );\n}\n\nfunction normalizeGitBranch(value: unknown): string {\n const branch = typeof value === 'string' && value.trim() ? value.trim() : 'main';\n return /^[A-Za-z0-9._/-]+$/.test(branch) ? branch.replace(/^origin\\//, '') : 'main';\n}\n\nexport function prepareLocalProjectWorkspace(\n mainProject: { name?: string; workspace?: Record<string, unknown> } | null | undefined,\n companyDir: string,\n log?: (msg: string) => void,\n gitIdentity?: { name?: string | null; email?: string | null } | null,\n): void {\n const workspace = mainProject?.workspace;\n if (!workspace || workspace.sourceType !== 'local_path') return;\n\n const cwd = typeof workspace.cwd === 'string' ? workspace.cwd.trim() : '';\n if (!cwd) return;\n\n const resolvedCompanyDir = path.resolve(companyDir);\n const resolvedCwd = path.resolve(cwd);\n if (!isPathInside(resolvedCompanyDir, resolvedCwd)) {\n log?.(`\u26A0 Skipped project workspace preparation outside company dir: ${resolvedCwd}`);\n return;\n }\n\n fs.mkdirSync(resolvedCwd, { recursive: true });\n\n const gitDir = path.join(resolvedCwd, '.git');\n if (fs.existsSync(gitDir)) {\n log?.(`\u2713 Project workspace ready: ${resolvedCwd}`);\n return;\n }\n\n const branch = normalizeGitBranch(workspace.defaultRef);\n const gitUserName = gitIdentity?.name || 'Paperclip Bootstrap';\n const gitUserEmail = gitIdentity?.email || 'bootstrap@paperclip.local';\n execFileSync('git', ['init', '-b', branch], { cwd: resolvedCwd, stdio: 'pipe' });\n execFileSync(\n 'git',\n [\n '-c',\n `user.email=${gitUserEmail}`,\n '-c',\n `user.name=${gitUserName}`,\n 'commit',\n '--allow-empty',\n '-m',\n 'chore: initialize repository',\n ],\n { cwd: resolvedCwd, stdio: 'pipe' },\n );\n log?.(`\u2713 Project workspace initialized: ${resolvedCwd}`);\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/**\n * Preserve existing `paperclipSkillSync.desiredSkills` from an agent's current\n * `adapterConfig` when updating it. The plugin rebuilds `adapterConfig` from scratch\n * (via `buildWorkerAdapterConfig` / `buildCeoAdapterConfig`), which does NOT include\n * `paperclipSkillSync`. Without this merge, individual runtime skill assignments are\n * lost on every update.\n *\n * Merges the existing `paperclipSkillSync` key into `nextAdapterConfig` so the PATCH\n * preserves the agent's skill sync preferences.\n */\nfunction preserveExistingSkillSync(\n existingAgent: any,\n nextAdapterConfig: Record<string, unknown>,\n): Record<string, unknown> {\n const existingSync =\n existingAgent?.adapterConfig &&\n typeof existingAgent.adapterConfig === 'object' &&\n 'paperclipSkillSync' in (existingAgent.adapterConfig as Record<string, unknown>)\n ? (existingAgent.adapterConfig as Record<string, unknown>).paperclipSkillSync\n : undefined;\n\n if (!existingSync) {\n return nextAdapterConfig;\n }\n\n return {\n ...nextAdapterConfig,\n paperclipSkillSync: existingSync,\n };\n}\n\nfunction routineTemplateTitle(routine: any): string {\n if (typeof routine?.title === 'string' && routine.title.trim()) return routine.title.trim();\n if (typeof routine?.name === 'string' && routine.name.trim()) return routine.name.trim();\n return '';\n}\n\ninterface WizardManifest {\n pluginVersion: string;\n preset: string | null;\n modules: string[];\n roles: string[];\n generatedFilePaths: Record<string, string[]>;\n routineTitles: string[];\n updatedAt: string;\n}\n\nfunction buildWizardManifest(params: {\n presetName: string | null;\n selectedModules: string[];\n selectedRoleNames: string[];\n assembleResult: any;\n initialRoutines: any[];\n}): WizardManifest {\n const routineTitles = params.initialRoutines\n .map((r: any) => routineTemplateTitle(r))\n .filter(Boolean);\n\n const generatedFilePaths: Record<string, string[]> = {};\n if (params.assembleResult?.allFiles && typeof params.assembleResult.allFiles === 'object') {\n for (const relativePath of Object.keys(params.assembleResult.allFiles)) {\n const match = relativePath.match(/^agents\\/([^/]+)\\//);\n if (match) {\n const agentRole = match[1];\n if (!generatedFilePaths[agentRole]) generatedFilePaths[agentRole] = [];\n generatedFilePaths[agentRole].push(relativePath);\n } else if (relativePath.startsWith('docs/')) {\n if (!generatedFilePaths['docs']) generatedFilePaths['docs'] = [];\n generatedFilePaths['docs'].push(relativePath);\n }\n }\n }\n\n return {\n pluginVersion: CURRENT_PLUGIN_VERSION,\n preset: params.presetName,\n modules: params.selectedModules,\n roles: params.selectedRoleNames,\n generatedFilePaths,\n routineTitles,\n updatedAt: new Date().toISOString(),\n };\n}\n\nconst WIZARD_PLUGIN_KEY = 'starlein.paperclip-plugin-company-wizard';\n\nasync function findPluginId(client: PaperclipClient): Promise<string | null> {\n try {\n const plugins: any[] = await client._fetch('/api/plugins');\n const match = Array.isArray(plugins)\n ? plugins.find((p: any) => p.pluginKey === WIZARD_PLUGIN_KEY)\n : null;\n return match?.id ?? null;\n } catch {\n return null;\n }\n}\n\nasync function syncRoutineTrigger({\n client,\n routineId,\n schedule,\n log,\n}: {\n client: any;\n routineId: string;\n schedule?: string;\n log: (m: string) => void;\n}) {\n if (!schedule) return;\n\n try {\n const detail = await client.getRoutine(routineId);\n const triggers = Array.isArray(detail?.triggers) ? detail.triggers : [];\n const scheduleTrigger = triggers.find((trigger: any) => trigger?.kind === 'schedule');\n if (scheduleTrigger?.id) {\n await client.updateRoutineTrigger(scheduleTrigger.id, {\n enabled: true,\n cronExpression: schedule,\n timezone: scheduleTrigger.timezone || 'UTC',\n });\n return;\n }\n\n await client.createRoutineTrigger(routineId, {\n kind: 'schedule',\n cronExpression: schedule,\n timezone: 'UTC',\n });\n } catch (err) {\n log(\n `\u26A0 Could not sync trigger for routine \"${routineId}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\nasync function syncExistingCompanyRoutines({\n client,\n companyId,\n routines,\n ceoAgentId,\n teamAgentIds,\n log,\n}: {\n client: any;\n companyId: string;\n routines: any[];\n ceoAgentId: string;\n teamAgentIds: Record<string, string>;\n log: (m: string) => void;\n}) {\n if (!Array.isArray(routines) || routines.length === 0) return;\n\n let existingRoutines: any[] = [];\n try {\n existingRoutines = await client.listRoutines(companyId);\n } catch (err) {\n log(\n `\u26A0 Could not list existing routines for template sync: ${err instanceof Error ? err.message : String(err)}`,\n );\n return;\n }\n\n const byTitle = new Map<string, any>();\n for (const existing of existingRoutines) {\n if (typeof existing?.title === 'string' && existing.title.trim()) {\n byTitle.set(existing.title.trim().toLowerCase(), existing);\n }\n }\n\n for (const routine of routines) {\n const title = routineTemplateTitle(routine);\n if (!title) continue;\n\n const role = routine.assignTo;\n const assigneeAgentId =\n !role || role === 'ceo' ? ceoAgentId : (teamAgentIds[role] ?? ceoAgentId);\n const payload = {\n title,\n description: routine.description || null,\n assigneeAgentId,\n priority: routine.priority || 'medium',\n status: routine.status || 'active',\n concurrencyPolicy: routine.concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: routine.catchUpPolicy || 'skip_missed',\n };\n\n const existing = byTitle.get(title.toLowerCase());\n try {\n if (existing?.id) {\n await client.updateRoutine(existing.id, payload);\n await syncRoutineTrigger({\n client,\n routineId: existing.id,\n schedule: routine.schedule,\n log,\n });\n log(`\u2713 Synced existing routine \"${title}\"`);\n } else {\n const created = await client.createRoutine(companyId, payload);\n if (routine.schedule && created?.id) {\n await client.createRoutineTrigger(created.id, {\n kind: 'schedule',\n cronExpression: routine.schedule,\n timezone: 'UTC',\n });\n }\n log(\n `\u2713 Created missing routine \"${title}\"${routine.schedule ? ` (${routine.schedule})` : ''}`,\n );\n }\n } catch (err) {\n log(\n `\u26A0 Could not sync routine \"${title}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n}\n\nfunction buildDecisionLogBody({\n companyName,\n companyDescription,\n preset,\n moduleNames,\n roles,\n repositoryMode,\n approvalMode,\n}: {\n companyName: string;\n companyDescription?: string;\n preset?: string;\n moduleNames: string[];\n roles: string[];\n repositoryMode: string;\n approvalMode: string;\n}) {\n const today = new Date().toISOString().slice(0, 10);\n return `# Decision Log \u2014 ${companyName}\n\n## ${today}\n- Created or selected company \"${companyName}\"${companyDescription ? ` with mission: ${companyDescription}` : ''}.\n- Selected preset: ${preset || 'custom/manual'}.\n- Selected modules: ${moduleNames.length > 0 ? moduleNames.join(', ') : 'none'}.\n- Initial roles: ${roles.join(', ')}.\n- Repository setup: ${repositoryMode}.\n- Hiring governance: ${approvalMode}.\n- Company Wizard generated the initial bootstrap package, agent instruction bundles, routines, and backlog seed from templates.\n`;\n}\n\nfunction buildHiringPlanBody({\n companyName,\n roles,\n moduleNames,\n}: {\n companyName: string;\n roles: string[];\n moduleNames: string[];\n}) {\n const today = new Date().toISOString().slice(0, 10);\n return `# Hiring Plan \u2014 ${companyName}\n\nGenerated by Company Wizard on ${today}.\n\n## Status: initial team already provisioned\n\nCompany Wizard has already submitted the initial team below as **governed hires**\nvia \\`/agent-hires\\` (each with a full instruction bundle assembled from curated role\ntemplates). Where the board requires approval, those hires are pending your approval \u2014\nthey were **not** auto-approved.\n\n**This issue is your review checkpoint \u2014 not a re-hiring task.** Do not create the\nroles below again.\n\n## Your tasks\n\n1. **Review each provisioned agent against the draft-review checklist** (Paperclip\n \\`paperclip-create-agent\\` \u2192 \\`references/draft-review-checklist.md\\`): instruction\n quality, correct adapter/model/thinking level, escalation/reportsTo path, and\n desiredSkills justification. Note any corrections in the decision log.\n2. **Approve or reject** the pending hires accordingly.\n3. **Only hire for genuine gaps.** If a capability is missing after the first\n roadmap/backlog pass, follow the \\`paperclip-create-agent\\` workflow: pick an exact,\n adjacent, or generic template, run the draft-review checklist, submit via\n \\`/agent-hires\\` with a concrete AGENTS.md draft + adapter config + desiredSkills\n justification, and set \\`sourceIssueId\\` to this issue.\n\n## Initial Roles (already provisioned)\n\n${roles.map((role) => `- ${formatRoleName(role)}`).join('\\n')}\n\n## Selected Modules\n\n${moduleNames.length > 0 ? moduleNames.map((mod) => `- ${mod}`).join('\\n') : '- none'}\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 ctx.actions.register('check-update', async () => {\n try {\n const response = await fetch(NPM_LATEST_URL, {\n headers: { accept: 'application/json' },\n });\n if (!response.ok) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: `npm registry returned ${response.status}`,\n };\n }\n\n const data = (await response.json()) as { version?: unknown };\n const latestVersion = typeof data.version === 'string' ? data.version.trim() : '';\n if (!latestVersion) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: 'npm registry response did not include a version',\n };\n }\n\n return {\n ok: true,\n packageName: PLUGIN_PACKAGE_NAME,\n currentVersion: CURRENT_PLUGIN_VERSION,\n latestVersion,\n updateAvailable: isNewerVersion(latestVersion, CURRENT_PLUGIN_VERSION),\n url: 'https://www.npmjs.com/package/@starlein/paperclip-plugin-company-wizard',\n };\n } catch (err) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: err instanceof Error ? err.message : String(err),\n };\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(), `company-wizard-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveWritableCompaniesDir(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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\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 const previewIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const result = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues: previewIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees: await resolveEnableIsolatedWorkspacesFromInstance(cfg),\n enableEnrichedPersonas: true,\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 // Preview company update \u2014 dry-run diff of what would change for an existing company.\n // READ-ONLY: no writes to Paperclip. Returns agents/routines diff and preserved skills.\n ctx.actions.register('preview-company-update', async (params) => {\n let tmpDir: string | undefined;\n try {\n const existingCompanyId =\n typeof params.existingCompanyId === 'string' && params.existingCompanyId.trim()\n ? params.existingCompanyId.trim()\n : '';\n if (!existingCompanyId) {\n return { error: 'existingCompanyId is required for preview.' };\n }\n\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\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(), `company-wizard-preview-update-${Date.now()}`);\n\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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\n\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 const previewIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues: previewIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees: await resolveEnableIsolatedWorkspacesFromInstance(cfg),\n enableEnrichedPersonas: true,\n outputDir: tmpDir,\n templatesDir,\n });\n\n const allRoles = Array.isArray(params.allRoles)\n ? (params.allRoles as string[])\n : [...(assembleResult.allRoles ?? [])].filter(Boolean);\n const teamRoles = allRoles.filter((r: string) => r && r !== 'ceo');\n\n // Count planned files (assemble created them in tmpDir)\n let plannedFiles = 0;\n function countFiles(dir: string): void {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) countFiles(full);\n else if (entry.isFile()) plannedFiles++;\n }\n }\n countFiles(assembleResult.companyDir);\n\n // Connect to Paperclip API to read existing data\n const client = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n await client.connect();\n\n const company = await client.getCompany(existingCompanyId);\n const existingAgents = await client.listAgents(existingCompanyId);\n const existingRoutines = await client.listRoutines(existingCompanyId);\n\n // Read the wizard manifest (best-effort) for better retired-role detection\n let existingManifest: WizardManifest | null = null;\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const settings = await client._fetch(\n `/api/plugins/${pluginId}/company-settings/${existingCompanyId}`,\n );\n const manifestData =\n settings?.settingsJson?.wizardManifest ?? settings?.settings_json?.wizardManifest;\n if (manifestData && typeof manifestData === 'object') {\n existingManifest = manifestData as WizardManifest;\n }\n }\n } catch {\n // Manifest read failure is non-fatal \u2014 preview still works without it\n }\n\n // Build agent diff\n const existingCeo = Array.isArray(existingAgents)\n ? existingAgents.find((a: any) => a?.role === 'ceo' && a?.status !== 'terminated')\n : null;\n\n const existingByTemplateRole = new Map<string, any>();\n if (Array.isArray(existingAgents)) {\n for (const a of existingAgents) {\n const tr = a?.metadata?.templateRole;\n if (tr && a?.status !== 'terminated' && a?.role !== 'ceo') {\n existingByTemplateRole.set(tr, a);\n }\n }\n }\n\n const agents: { role: string; title: string; action: string }[] = [];\n\n // CEO always present \u2014 update if exists, hire if not\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n agents.push({\n role: 'ceo',\n title: existingCeo?.title || ceoTitle,\n action: existingCeo ? 'update' : 'hire',\n });\n\n // Team roles: hire or update\n for (const roleName of teamRoles) {\n const roleTemplate = roleTemplateByName.get(roleName) || {};\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(roleName);\n const existing = existingByTemplateRole.get(roleName);\n agents.push({\n role: roleName,\n title: roleTitle,\n action: existing ? 'update' : 'hire',\n });\n }\n\n // Retire: existing templateRole agents not in the new selection.\n // Use the manifest roles list when available \u2014 it records which roles\n // the wizard originally provisioned, so we can distinguish \"was in the\n // wizard's last run\" from \"manually added by a human\" (which we should\n // never retire without explicit user consent).\n const selectedRoleSet = new Set(allRoles);\n const manifestRoleSet = existingManifest?.roles ? new Set(existingManifest.roles) : null;\n for (const [tr, agent] of existingByTemplateRole.entries()) {\n if (!selectedRoleSet.has(tr)) {\n // If we have a manifest and this role was NOT in it, skip retirement \u2014\n // it was added outside the wizard and shouldn't be auto-retired.\n if (manifestRoleSet && !manifestRoleSet.has(tr)) {\n continue;\n }\n const roleTemplate = roleTemplateByName.get(tr) || {};\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(tr);\n agents.push({\n role: tr,\n title: agent?.title || roleTitle,\n action: 'retire',\n });\n }\n }\n\n // Build routine diff \u2014 match by title (same as syncExistingCompanyRoutines)\n const existingRoutineByTitle = new Map<string, any>();\n if (Array.isArray(existingRoutines)) {\n for (const r of existingRoutines) {\n const title = routineTemplateTitle(r);\n if (title) existingRoutineByTitle.set(title.toLowerCase(), r);\n }\n }\n\n const plannedRoutines = [\n ...(assembleResult.initialRoutines ?? []),\n ...(presetBootstrapData.routines ?? []),\n ];\n // Deduplicate routines by title\n const seenRoutineTitles = new Set<string>();\n const routines: { title: string; action: string; assignTo?: string }[] = [];\n for (const routine of plannedRoutines) {\n const title = routineTemplateTitle(routine);\n if (!title) continue;\n const key = title.toLowerCase();\n if (seenRoutineTitles.has(key)) continue;\n seenRoutineTitles.add(key);\n const existing = existingRoutineByTitle.get(key);\n routines.push({\n title,\n action: existing ? 'update' : 'create',\n assignTo: routine.assignTo || undefined,\n });\n }\n\n // Collect desiredSkillsPreserved from existing agents\n const desiredSkillsPreserved: { agentId: string; agentName: string; skills: string[] }[] =\n [];\n if (Array.isArray(existingAgents)) {\n for (const a of existingAgents) {\n if (\n a?.adapterConfig &&\n typeof a.adapterConfig === 'object' &&\n 'paperclipSkillSync' in (a.adapterConfig as Record<string, unknown>)\n ) {\n const sync = (a.adapterConfig as Record<string, unknown>).paperclipSkillSync;\n if (\n sync &&\n typeof sync === 'object' &&\n 'desiredSkills' in (sync as Record<string, unknown>)\n ) {\n const skills = (sync as Record<string, unknown>).desiredSkills;\n if (Array.isArray(skills) && skills.length > 0) {\n desiredSkillsPreserved.push({\n agentId: a.id,\n agentName: a.title || a.name || a.id,\n skills: skills as string[],\n });\n }\n }\n }\n }\n }\n\n // Clean up temp dir\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n tmpDir = undefined;\n\n return {\n diff: {\n companyId: existingCompanyId,\n companyName: company?.name || companyName,\n agents,\n routines,\n desiredSkillsPreserved,\n plannedFiles,\n existingManifest,\n },\n };\n } catch (err) {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n return { error: err instanceof Error ? err.message : String(err) };\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 // Poll mode: return the status of a previously started async job.\n // Each poll returns immediately, so it never approaches the 30s RPC timeout.\n if (params.mode === 'poll') {\n const jobId = typeof params.jobId === 'string' ? params.jobId : '';\n const job = jobId ? aiChatJobs.get(jobId) : undefined;\n if (!job) {\n return {\n text: '',\n status: 'error',\n error: 'Unknown or expired generation job. Please retry.',\n };\n }\n if (job.status === 'pending') return { status: 'pending' };\n // Terminal state \u2014 hand it back and free the slot.\n aiChatJobs.delete(jobId);\n if (job.status === 'error') return { text: '', status: 'error', error: job.error };\n return { text: job.text, status: 'done' };\n }\n\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const apiKey = await resolveAnthropicApiKey(ctx, 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 // Start mode: kick off generation in the background and return a job id.\n // The UI polls with { mode: 'poll', jobId }, so a slow generation (e.g. the\n // wizard's final config, which can take well over 30s) never trips the host's\n // 30s performAction RPC timeout.\n if (params.mode === 'start') {\n sweepAiChatJobs();\n const jobId = `aichat-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n aiChatJobs.set(jobId, { status: 'pending', createdAt: Date.now() });\n void callAnthropic(apiKey, params.system, params.messages).then((result) => {\n aiChatJobs.set(\n jobId,\n result.error\n ? { status: 'error', error: result.error, createdAt: Date.now() }\n : { status: 'done', text: result.text, createdAt: Date.now() },\n );\n });\n return { jobId, status: 'pending' };\n }\n\n // Synchronous mode (default): short interview turns that finish well within 30s.\n return await callAnthropic(apiKey, params.system, params.messages);\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 const apiKey = await resolveAnthropicApiKey(ctx, cfg.anthropicApiKey);\n if (!apiKey) {\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 enableIsolatedWorktrees = await resolveEnableIsolatedWorkspacesFromInstance(cfg, log);\n const enableEnrichedPersonas = 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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\n\n // Step 2: Connect to Paperclip API early to resolve user identity for git commits\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\n // Resolve git identity from board session (fall back to Paperclip Bootstrap)\n const gitIdentity = {\n name: client.boardUserName || null,\n email: client.boardUserEmail || paperclipEmail || null,\n };\n\n // Step 3: Assemble files on disk\n const outputDir = resolveWritableCompaniesDir(cfg, log);\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 const userIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n companyDescription,\n userGoals,\n userProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees,\n enableEnrichedPersonas,\n gitUserName: gitIdentity.name || undefined,\n gitUserEmail: gitIdentity.email || undefined,\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 prepareLocalProjectWorkspace(assembleResult.mainProject, companyDir, log, gitIdentity);\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 4: 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 log('Keeping company hire policy as configured (board approvals may be required).');\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n const teamAgentIds: Record<string, string> = {};\n let boardOperationsIssue: { id: string; identifier?: string } | null = null;\n let hiringPlanIssue: { id: string; identifier?: string } | null = null;\n let bootstrapIssue: { id: string; identifier?: string };\n // Hoisted so the post-provisioning manifest-save and governance-cleanup\n // blocks (which run after this try/catch on the success path) can read\n // them. The catch block re-throws on failure, so these only need to be\n // valid on the success path.\n let allRoleNames: string[] = [];\n let existingManifest: WizardManifest | null = null;\n let existingByTemplateRole = new Map<string, any>();\n let routines: any[] = [];\n try {\n allRoleNames = [...(assembleResult.allRoles ?? [])].filter(Boolean).sort();\n\n // Read the wizard manifest (best-effort) for retired-role detection\n if (existingCompanyId) {\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const settings = await client._fetch(\n `/api/plugins/${pluginId}/company-settings/${companyId}`,\n );\n const manifestData =\n settings?.settingsJson?.wizardManifest ?? settings?.settings_json?.wizardManifest;\n if (manifestData && typeof manifestData === 'object') {\n existingManifest = manifestData as WizardManifest;\n }\n }\n } catch {\n // Manifest read failure is non-fatal \u2014 provisioning still proceeds\n }\n }\n\n const repositoryMode = userProjects.some(\n (project) => project?.repoUrl || project?.workspace?.sourceType === 'git_repo',\n )\n ? 'existing git repository'\n : 'fresh local repository';\n const approvalMode =\n 'board approval preserved; /agent-hires may create pending approvals';\n\n log('Creating board operations and hiring plan records...');\n const createdBoardOperationsIssue = await client.createIssue(companyId, {\n title: 'Board Operations',\n description: 'Standing issue for board decision log and operations tracking.',\n // These governance records are created before the CEO is guaranteed to exist.\n // Paperclip requires an assignee for in_progress issues, so keep them unassigned\n // and actionable later rather than failing existing-company provisioning.\n status: 'todo',\n priority: 'medium',\n });\n boardOperationsIssue = createdBoardOperationsIssue;\n await client.putIssueDocument(createdBoardOperationsIssue.id, 'decision-log', {\n title: 'Decision Log',\n format: 'markdown',\n body: buildDecisionLogBody({\n companyName,\n companyDescription,\n preset: selectedPreset?.name,\n moduleNames: effectiveModules,\n roles: allRoleNames,\n repositoryMode,\n approvalMode,\n }),\n });\n log(\n `\u2713 Board Operations issue created${createdBoardOperationsIssue.identifier ? `: ${createdBoardOperationsIssue.identifier}` : ''}`,\n );\n\n const createdHiringPlanIssue = await client.createIssue(companyId, {\n title: 'Hiring Plan',\n description: 'Develop and execute the governed team hiring plan.',\n status: 'todo',\n priority: 'high',\n });\n hiringPlanIssue = createdHiringPlanIssue;\n await client.putIssueDocument(createdHiringPlanIssue.id, 'hiring-plan', {\n title: 'Hiring Plan',\n format: 'markdown',\n body: buildHiringPlanBody({\n companyName,\n roles: allRoleNames,\n moduleNames: effectiveModules,\n }),\n });\n log(\n `\u2713 Hiring Plan issue created${createdHiringPlanIssue.identifier ? `: ${createdHiringPlanIssue.identifier}` : ''}`,\n );\n\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 =\n 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 };\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: preserveExistingSkillSync(existingCeo, 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 ...(boardOperationsIssue?.id ? { sourceIssueId: boardOperationsIssue.id } : {}),\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 ...(boardOperationsIssue?.id ? { sourceIssueId: boardOperationsIssue.id } : {}),\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 // The Board Operations (#1) and Hiring Plan (#2) governance issues are created\n // before the CEO exists (so they can't be assigned at creation time). Now that\n // the CEO is available, assign both to it so they are actionable rather than\n // orphaned \u2014 the CEO owns the decision log and reviews the provisioned team\n // against the hiring plan. Best-effort: don't fail provisioning over this.\n for (const govIssue of [\n { issue: boardOperationsIssue, label: 'Board Operations' },\n { issue: hiringPlanIssue, label: 'Hiring Plan' },\n ]) {\n if (!govIssue.issue?.id) continue;\n try {\n await client.updateIssue(govIssue.issue.id, { assigneeAgentId: ceoAgentId });\n log(`\u2713 Assigned ${govIssue.label} issue to CEO`);\n } catch (assignErr) {\n log(\n `\u26A0 Could not assign ${govIssue.label} issue to CEO: ${assignErr instanceof Error ? assignErr.message : String(assignErr)}`,\n );\n }\n }\n\n // Step 6b: Create (or reuse) the rest of the team, each with its FULL\n // instructions bundle. The wizard assembles a complete per-role workspace\n // (AGENTS.md + HEARTBEAT/SOUL/TOOLS + skills), and passing it as\n // `instructionsBundle` makes the host materialize a self-contained managed\n // bundle in a single createAgent call \u2014 because buildCeoAdapterConfig sets no\n // instructionsFilePath, the host materializes the passed files instead of\n // skipping them. Previously these agents were created by the CEO during\n // bootstrap with only an instructionsFilePath, leaving each non-CEO agent with\n // a bare AGENTS.md that referenced external, fragile absolute paths.\n const teamRoles = [...(assembleResult.allRoles ?? [])].filter(\n (r: string) => r && r !== 'ceo',\n );\n\n existingByTemplateRole = new Map<string, any>();\n if (existingCompanyId && teamRoles.length > 0) {\n const agents = await client.listAgents(companyId);\n if (Array.isArray(agents)) {\n for (const a of agents) {\n const tr = a?.metadata?.templateRole;\n if (tr && a?.status !== 'terminated' && a?.role !== 'ceo') {\n existingByTemplateRole.set(tr, a);\n }\n }\n }\n }\n\n for (const roleName of teamRoles) {\n const roleTemplate = roleTemplateByName.get(roleName) || {};\n const paperclipRole =\n typeof roleTemplate.paperclipRole === 'string' && roleTemplate.paperclipRole.trim()\n ? roleTemplate.paperclipRole.trim()\n : 'general';\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(roleName);\n const roleDescription =\n typeof roleTemplate.description === 'string' && roleTemplate.description.trim()\n ? roleTemplate.description.trim()\n : undefined;\n const roleMetadata = {\n templateRole: roleName,\n ...(roleDescription ? { description: roleDescription } : {}),\n };\n // Worker agents have heartbeat DISABLED \u2014 Paperclip wakes them on\n // assignment and their routines drive scheduled work. Enabling always-on\n // heartbeats for the whole team at once overloaded the server with\n // concurrent/queued runs.\n const roleRuntimeConfig = buildWorkerAgentRuntimeConfig();\n const roleAdapterConfig: Record<string, unknown> = buildWorkerAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get(roleName) ?? {},\n });\n const roleInstructionsDir = path.join(companyDir, 'agents', roleName);\n const roleInstructionFiles = collectInstructionFiles(roleInstructionsDir);\n const roleInstructionsBundle =\n Object.keys(roleInstructionFiles).length > 0\n ? { entryFile: 'AGENTS.md', files: roleInstructionFiles }\n : undefined;\n\n const existingAgent = existingByTemplateRole.get(roleName);\n if (existingAgent?.id) {\n try {\n await client.updateAgent(existingAgent.id, {\n adapterType,\n adapterConfig: preserveExistingSkillSync(existingAgent, roleAdapterConfig),\n runtimeConfig: roleRuntimeConfig,\n metadata: { ...(existingAgent.metadata ?? {}), ...roleMetadata },\n ...(!existingAgent.title && roleTitle ? { title: roleTitle } : {}),\n ...(!existingAgent.capabilities && roleDescription\n ? { capabilities: roleDescription }\n : {}),\n });\n log(`\u2713 Reusing ${roleTitle} (${existingAgent.id})`);\n } catch (err) {\n log(\n `\u26A0 Could not update ${roleTitle}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n teamAgentIds[roleName] = existingAgent.id;\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: existingAgent.id,\n sourceDir: roleInstructionsDir,\n entryFile: 'AGENTS.md',\n log,\n });\n log(`\u2713 Synced ${roleTitle} instructions from latest templates`);\n continue;\n }\n\n const roleAgent = await client.createAgent(companyId, {\n name: roleTitle,\n role: paperclipRole,\n title: roleTitle,\n ...(roleDescription ? { capabilities: roleDescription } : {}),\n metadata: roleMetadata,\n reportsTo: ceoAgentId,\n adapterType,\n adapterConfig: roleAdapterConfig,\n instructionsBundle: roleInstructionsBundle,\n runtimeConfig: roleRuntimeConfig,\n ...(hiringPlanIssue?.id ? { sourceIssueId: hiringPlanIssue.id } : {}),\n });\n teamAgentIds[roleName] = roleAgent.id;\n log(`\u2713 ${roleTitle} created (${roleAgent.id})`);\n if (roleAgent?._pendingApprovalId) {\n log(\n `\u26A0 ${roleTitle} hire pending approval: ${roleAgent._pendingApprovalId}. Approve it in the board.`,\n );\n }\n }\n\n // Step 6c: Create or sync the scheduled routines directly. Paperclip only lets an\n // agent create routines assigned to ITSELF, so a CEO following the bootstrap\n // cannot create routines owned by other agents (backlog grooming, auto-assign,\n // \u2026) \u2014 that previously blocked the bootstrap issue. The wizard connects with\n // board authority, so it can create or update routines for any agent. Existing\n // company runs match by title and patch routines/triggers instead of creating\n // duplicates; this is the lightweight \"apply latest templates\" path.\n routines = Array.isArray(assembleResult.initialRoutines)\n ? assembleResult.initialRoutines\n : [];\n\n if (!existingCompanyId) {\n // Pre-create the main project so every routine can be linked to it.\n // The CEO creates projects during bootstrap, but it can only edit\n // routines assigned to ITSELF \u2014 routines owned by other agents (PM,\n // etc.) would otherwise stay project-less forever. The wizard runs\n // with board authority, so it can create the project up front and\n // attach all routines to it. Best-effort: if it fails, routines are\n // still created (project-less) rather than blocking provisioning.\n let mainProjectId: string | undefined;\n const mainProject = assembleResult.mainProject;\n if (routines.length > 0 && mainProject?.name) {\n try {\n const createdProject = await client.createProject(companyId, {\n name: mainProject.name,\n description: mainProject.description,\n workspace: mainProject.workspace,\n executionWorkspacePolicy: mainProject.executionWorkspacePolicy,\n });\n mainProjectId = createdProject?.id;\n log(\n `\u2713 Main project \"${mainProject.name}\" created${mainProjectId ? ` (${mainProjectId})` : ' (no id returned)'}`,\n );\n } catch (err) {\n log(\n `\u26A0 Could not create main project \"${mainProject.name}\": ${err instanceof Error ? err.message : String(err)}. Routines will be created without a project.`,\n );\n }\n }\n\n for (const routine of routines) {\n const title =\n typeof routine.title === 'string' && routine.title.trim()\n ? routine.title.trim()\n : typeof routine.name === 'string'\n ? routine.name.trim()\n : '';\n if (!title) continue;\n const role = routine.assignTo;\n const assigneeAgentId =\n !role || role === 'ceo' ? ceoAgentId : (teamAgentIds[role] ?? ceoAgentId);\n try {\n const createdRoutine = await client.createRoutine(companyId, {\n title,\n description: routine.description,\n assigneeAgentId,\n projectId: mainProjectId,\n priority: routine.priority || 'medium',\n concurrencyPolicy: routine.concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: routine.catchUpPolicy || 'skip_missed',\n });\n if (routine.schedule && createdRoutine?.id) {\n await client.createRoutineTrigger(createdRoutine.id, {\n kind: 'schedule',\n cronExpression: routine.schedule,\n timezone: 'UTC',\n });\n }\n log(\n `\u2713 Routine \"${title}\" created${routine.schedule ? ` (${routine.schedule})` : ''}`,\n );\n } catch (err) {\n log(\n `\u26A0 Could not create routine \"${title}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n } else {\n await syncExistingCompanyRoutines({\n client,\n companyId,\n routines,\n ceoAgentId,\n teamAgentIds,\n log,\n });\n }\n\n // Step 7: Create bootstrap issue.\n // Use the HTTP client instead of ctx.issues here because the wizard may be\n // launched from company A while provisioning a newly-created/reused company B.\n // Paperclip master correctly scopes SDK host calls to the launching company,\n // so ctx.issues.create({ companyId: B }) is denied when A !== B.\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 client.createIssue(companyId, {\n title: `Bootstrap ${company.name || companyName}`,\n description: bootstrapDescription,\n assigneeAgentId: ceoAgentId,\n status: 'todo',\n });\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 and initial team hire requests are ready. Approve any pending hires, then trigger the CEO heartbeat to continue setup.',\n );\n\n const issueIds = [boardOperationsIssue?.id, hiringPlanIssue?.id, bootstrapIssue!.id].filter(\n Boolean,\n );\n\n // Persist wizard manifest so future updates can diff against it\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const wizardManifest = buildWizardManifest({\n presetName: selectedPreset?.name ?? null,\n selectedModules: effectiveModules,\n selectedRoleNames: allRoleNames,\n assembleResult,\n initialRoutines: routines,\n });\n await client._fetch(`/api/plugins/${pluginId}/company-settings/${companyId}`, {\n method: 'PUT',\n body: JSON.stringify({ settingsJson: { wizardManifest } }),\n });\n log('\u2713 Wizard manifest saved');\n } else {\n log('\u26A0 Could not find plugin ID \u2014 manifest not saved');\n }\n } catch (manifestErr) {\n log(\n `\u26A0 Could not save wizard manifest: ${manifestErr instanceof Error ? manifestErr.message : String(manifestErr)}`,\n );\n }\n\n // Governance cleanup: create review issues for retired template roles\n if (existingCompanyId && existingManifest && Array.isArray(existingManifest.roles)) {\n const newRoleSet = new Set(allRoleNames);\n const retiredRoles = existingManifest.roles.filter(\n (role: string) => !newRoleSet.has(role),\n );\n for (const role of retiredRoles) {\n try {\n const agentData = existingByTemplateRole.get(role);\n const agentInfo = agentData\n ? `**Agent ID:** ${agentData.id}\\n**Agent name:** ${agentData.title || agentData.name || agentData.id}`\n : '_No active agent found for this role._';\n const issueTitle = `Review retired template role: ${role}`;\n const issueDescription = [\n `## Retired Role: \\`${role}\\``,\n '',\n 'This template role was removed from the company configuration during an update.',\n 'The agent is still active but no longer managed by the wizard.',\n '',\n '### Cleanup Checklist',\n '',\n \"- [ ] Review the agent's current work and open issues\",\n '- [ ] Reassign any in-progress issues to other team members',\n \"- [ ] Consider pausing the agent's heartbeat\",\n '- [ ] Remove module-specific skill files if applicable',\n '- [ ] Consider terminating the agent if no longer needed',\n '',\n agentInfo,\n ].join('\\n');\n const createdIssue = await client.createIssue(companyId, {\n title: issueTitle,\n description: issueDescription,\n priority: 'low',\n status: 'todo',\n ...(boardOperationsIssue?.id\n ? { projectId: boardOperationsIssue.id, goalId: boardOperationsIssue.id }\n : {}),\n });\n log(\n `\u2713 Retired-role review issue created for \"${role}\": ${createdIssue.identifier || createdIssue.id}`,\n );\n } catch (retiredRoleErr) {\n log(\n `\u26A0 Could not create retired-role review issue for \"${role}\": ${retiredRoleErr instanceof Error ? retiredRoleErr.message : String(retiredRoleErr)}`,\n );\n }\n }\n }\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl,\n agentIds: { ceo: ceoAgentId!, ...teamAgentIds },\n issueIds,\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\n// Enrichment fragments are persona additions (domain lenses, done-criteria,\n// output bars). They are never emitted as standalone files \u2014 assembly appends them\n// into SOUL.md / HEARTBEAT.md / skill files for roles/modules that provide them.\nfunction isEnrichmentFragment(name) {\n return name === 'LENSES.md' || name === 'DONE.md' || name.endsWith('.bar.md');\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\nfunction normalizeExecutionBaseRef(ref, fallbackRef) {\n const candidates = [ref, fallbackRef].filter(\n (value) => typeof value === 'string' && value.trim(),\n );\n const selected = candidates.length > 0 ? String(candidates[0]).trim() : '';\n return selected || null;\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 {Array} [opts.presetIssues] - Initial issues from the selected preset\n * @param {Array} [opts.presetRoutines] - Initial routines from the selected preset\n * @param {Array} [opts.presetLabels] - Explicit labels from the selected preset\n * @param {boolean} [opts.enableIsolatedWorktrees] - Admin setting: when true, external-repo projects keep their isolated git_worktree executionWorkspacePolicy; when false (default), agents share the project workspace. Fresh local repos never use isolated worktrees regardless.\n * @param {boolean} [opts.enableEnrichedPersonas] - Internal escape hatch. Defaults true: append role LENSES.md to SOUL.md, role DONE.md to HEARTBEAT.md, and primary-skill <skill>.bar.md output bars when fragments exist.\n * @param {string} [opts.gitUserName] - Git user name for initial commit (falls back to \"Paperclip Bootstrap\")\n * @param {string} [opts.gitUserEmail] - Git user email for initial commit (falls back to \"bootstrap@paperclip.local\")\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>, mainProject: {name: string, description: string, workspace: object}|null}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n userIssues = [],\n presetIssues = [],\n presetRoutines = [],\n presetLabels = [],\n enableIsolatedWorktrees = false,\n enableEnrichedPersonas = true,\n gitUserName,\n gitUserEmail,\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 // Role roots are flat \u2014 enrichment fragments (LENSES.md/DONE.md/*.bar.md)\n // live at the role root, not in subdirs, so copyDir need only skip metadata.\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json') && !isEnrichmentFragment(entry.name)) {\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 if (isEnrichmentFragment(entry.name)) 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 = Array.isArray(presetIssues)\n ? presetIssues.map((issue) => ({ ...issue, source: issue.source || 'preset' }))\n : [];\n const initialRoutines = Array.isArray(presetRoutines)\n ? presetRoutines.map((routine) => ({ ...routine, source: routine.source || 'preset' }))\n : [];\n const explicitBootstrapLabels = Array.isArray(presetLabels) ? [...presetLabels] : [];\n const roleAdapterOverrides = new Map(); // role name \u2192 merged adapter overrides from modules\n // doc filename \u2192 Set of roles it is relevant to. A doc whose owning module has no\n // role association (company-wide) is marked with the '*' sentinel and goes to all\n // agents. Used so each agent only references the docs that matter to its role.\n const docRoleMap = new Map();\n const addDocRoles = (docName, roles) => {\n const set = docRoleMap.get(docName) ?? new Set();\n for (const r of roles) set.add(r);\n docRoleMap.set(docName, set);\n };\n\n // Track issue titles already queued so module issues don't duplicate a curated\n // preset issue (or an earlier module's issue). Preset issues are seeded first, so\n // the richer preset version always wins over a generic module issue of the same name.\n const normalizeIssueTitle = (title) =>\n String(title || '')\n .trim()\n .toLowerCase();\n const seenIssueTitles = new Set(\n initialIssues.map((issue) => normalizeIssueTitle(issue.title)).filter(Boolean),\n );\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 // Helper: resolve a declared reviewGate to roles present in the team. Reviewers\n // become ordered `review` stages; the approver becomes the final `approval`\n // stage. Roles not present in the team are dropped (no CEO fallback) \u2014 a review\n // gate references concrete reviewer roles, and a missing one means that gate\n // simply has one fewer stage.\n const resolveReviewGate = (reviewGate, assignTo) => {\n if (!reviewGate || typeof reviewGate !== 'object') return null;\n\n const reviewersRaw = Array.isArray(reviewGate.reviewers) ? reviewGate.reviewers : [];\n const reviewers = [];\n const seen = new Set();\n for (const role of reviewersRaw) {\n if (typeof role !== 'string') continue;\n if (!allRoles.has(role)) continue;\n if (seen.has(role)) continue;\n seen.add(role);\n reviewers.push(role);\n }\n\n const approver =\n typeof reviewGate.approver === 'string' && allRoles.has(reviewGate.approver)\n ? reviewGate.approver\n : undefined;\n\n // The merge gate is the non-author agent who lands the PR. It renders as a\n // final `approval` stage so the merge owner is woken *last* \u2014 after the\n // approver \u2014 to perform the merge. Without it, the approver's verdict\n // auto-closes the issue and the PR is never merged.\n //\n // It must NOT be the issue's executor (assignTo): Paperclip excludes the\n // original executor from every review/approval stage to prevent self-review,\n // so a stage whose only participant is the author has no eligible participant\n // and the issue stalls in `in_review` (422 No eligible approval participant).\n // The engineer therefore can never be their own merge gate.\n //\n // We resolve the merge gate ONLY from the explicitly configured\n // reviewGate.mergeGate role. If that role is absent from the team, or is the\n // issue's executor, there is no eligible non-author merge gate \u2014 return null\n // so the engineer takes the self-merge path (no executionPolicy stages). We\n // deliberately do NOT fall back to another role: the documented contract is\n // \"no Code Reviewer \u2192 PR-Self-Merge\", not \"substitute another role as a\n // staged gate\". A substituted gate would render an executionPolicy sketch the\n // engineer is explicitly told never to set, and a reviewer-doubling-as-gate\n // minimal team still stalls whenever the only candidate is the author.\n let mergeGate =\n typeof reviewGate.mergeGate === 'string' && allRoles.has(reviewGate.mergeGate)\n ? reviewGate.mergeGate\n : undefined;\n if (mergeGate === assignTo) mergeGate = undefined;\n\n // Avoid accidentally requiring the same role twice (e.g. reviewer + approver).\n if (approver) {\n const idx = reviewers.indexOf(approver);\n if (idx !== -1) reviewers.splice(idx, 1);\n }\n\n // Without a resolvable non-author merge gate, render no executionPolicy at\n // all \u2014 the self-merge path applies. Rendering a gate with reviewers/approver\n // but no merge gate would let the last approval stage auto-close the issue\n // with the PR still open on GitHub.\n if (!mergeGate) return null;\n return { reviewers, approver, mergeGate };\n };\n\n // Render a resolved reviewGate as an executionPolicy sketch for BOOTSTRAP.md.\n // The CEO/Engineer resolves each role name to its agentId when setting the\n // policy on the issue (same role\u2192agentId resolution as `assigneeAgentId`).\n // The merge-gate stage carries the hard precondition: CI-green when the ci-cd\n // module is selected, otherwise running the tests/build and pasting the output.\n const hasCi = moduleNames.includes('ci-cd');\n const renderReviewGate = (gate) => {\n const stages = [];\n for (const role of gate.reviewers) {\n stages.push(` - stage ${stages.length + 1} (review) \u2192 assign ${JSON.stringify(role)}`);\n }\n if (gate.approver) {\n stages.push(\n ` - stage ${stages.length + 1} (approval) \u2192 assign ${JSON.stringify(gate.approver)}`,\n );\n }\n if (gate.mergeGate) {\n const gatePrecondition = hasCi\n ? 'CI must be green before merge'\n : 'no CI configured \u2014 run the test suite/build and paste the output before merge';\n stages.push(\n ` - stage ${stages.length + 1} (approval) \u2192 assign ${JSON.stringify(gate.mergeGate)} \u2014 merge gate (non-author): ${gatePrecondition}; merge the PR, then record approved to close`,\n );\n }\n return (\n `- **executionPolicy** (set when creating this issue; resolve each role to its agentId):\\n` +\n `${stages.join('\\n')}\\n` +\n ` - never assign the issue's executor/author to any stage \u2014 Paperclip excludes the original executor, so a self-stage has no eligible participant and the issue stalls (422); the merge gate must be a non-author\\n` +\n ` - every verdict must cite executed verification (commands + results); \"looks good\" without evidence is not a valid verdict\\n\\n`\n );\n };\n\n // Foundation issues are explicit setup gates (repository/bootstrap scaffolding)\n // that must be created before domain implementation starts. Ordinary module and\n // preset issues are generic project scaffolding (\"Define company vision\", \"Add\n // linter\"), so user/AI-specified domain issues still lead those generic items.\n const isFoundationIssue = (issue) =>\n issue?.bootstrapPhase === 'foundation' ||\n issue?.phase === 'foundation' ||\n issue?.bootstrapOrder === 'foundation' ||\n issue?.foundation === true;\n\n // Seed user/AI-specified domain issues near the front of the backlog. Explicit\n // foundation issues are allowed to stay ahead of them; generic module/preset\n // issues remain behind them.\n const resolvedUserIssues = [];\n for (const issue of Array.isArray(userIssues) ? userIssues : []) {\n if (!issue || !issue.title) continue;\n const titleKey = normalizeIssueTitle(issue.title);\n if (titleKey && seenIssueTitles.has(titleKey)) continue;\n if (titleKey) seenIssueTitles.add(titleKey);\n resolvedUserIssues.push({\n ...issue,\n assignTo: resolveAssignee(issue.assignTo, null),\n source: 'user',\n });\n }\n initialIssues.unshift(...resolvedUserIssues);\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 if (Array.isArray(moduleJson?.labels)) {\n explicitBootstrapLabels.push(...moduleJson.labels);\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 const titleKey = normalizeIssueTitle(issue.title);\n if (titleKey && seenIssueTitles.has(titleKey)) {\n onProgress(`\u25CB issue \"${issue.title}\" (already provided by preset or earlier module)`);\n continue;\n }\n if (titleKey) seenIssueTitles.add(titleKey);\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. Track which roles each doc is relevant to (the roles this\n // module touches) so agents only reference the docs that matter to them.\n const docsDir = join(moduleDir, 'docs');\n if (await exists(docsDir)) {\n await copyDir(docsDir, join(companyDir, 'docs'));\n const moduleRoles = new Set();\n for (const cap of moduleJson?.capabilities ?? []) {\n for (const owner of cap.owners ?? []) if (allRoles.has(owner)) moduleRoles.add(owner);\n }\n for (const issue of moduleIssues) {\n if (issue.assignTo && allRoles.has(issue.assignTo)) moduleRoles.add(issue.assignTo);\n }\n for (const routine of moduleJson?.routines ?? []) {\n if (routine.assignTo && allRoles.has(routine.assignTo)) moduleRoles.add(routine.assignTo);\n }\n for (const r of moduleJson?.activatesWithRoles ?? []) if (allRoles.has(r)) moduleRoles.add(r);\n // No specific role association \u2192 treat as company-wide (visible to everyone).\n const rolesForDocs = moduleRoles.size > 0 ? moduleRoles : new Set(['*']);\n const docs = await readdir(docsDir);\n for (const doc of docs) {\n addDocRoles(doc, rolesForDocs);\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 const destFile = join(destSkillsDir, fileName);\n await copyFile(resolved.path, destFile);\n // Append a primary skill's output/review bar when present.\n let barApplied = false;\n if (enableEnrichedPersonas && label === 'primary') {\n const barFileName = fileName.replace(/\\.md$/, '.bar.md');\n const bar = await resolveSkillFile(roleName, barFileName);\n if (bar) {\n const barContent = await readFile(bar.path, 'utf-8');\n await appendToFile(destFile, '\\n' + barContent.trim() + '\\n');\n barApplied = true;\n }\n }\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 const barTag = barApplied ? ', output bar' : '';\n onProgress(\n `+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag}${barTag})`,\n );\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 if (skillFile.endsWith('.bar.md')) continue;\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 // 4b. Inject persona enrichments. Domain lenses \u2192 SOUL.md, done-criteria \u2192\n // HEARTBEAT.md. Fragments live at roles/<role>/LENSES.md and roles/<role>/DONE.md\n // and apply when enableEnrichedPersonas is on. Same gracefully-optimistic\n // pattern as skills: a missing fragment simply means no enrichment for that role.\n if (enableEnrichedPersonas) {\n for (const roleName of allRoles) {\n const lensesSrc = join(rolesDir, roleName, 'LENSES.md');\n const soulPath = join(companyDir, 'agents', roleName, 'SOUL.md');\n if ((await exists(lensesSrc)) && (await exists(soulPath))) {\n const lenses = await readFile(lensesSrc, 'utf-8');\n await appendToFile(soulPath, '\\n' + lenses.trim() + '\\n');\n onProgress(`+ agents/${roleName}/SOUL.md (domain lenses)`);\n }\n\n const doneSrc = join(rolesDir, roleName, 'DONE.md');\n const heartbeatPath = join(companyDir, 'agents', roleName, 'HEARTBEAT.md');\n if ((await exists(doneSrc)) && (await exists(heartbeatPath))) {\n const done = await readFile(doneSrc, 'utf-8');\n await appendToFile(heartbeatPath, '\\n' + done.trim() + '\\n');\n onProgress(`+ agents/${roleName}/HEARTBEAT.md (done criteria)`);\n }\n }\n }\n\n // 5. Add ROLE-RELEVANT shared doc references to each agent's AGENTS.md.\n // Each agent only references docs from modules that touch its role \u2014 a code\n // reviewer no longer gets the marketing/vision templates, etc. The CEO is the\n // coordinator, so it still sees every doc. Paths are RELATIVE to the agent's\n // home (its adapterConfig.cwd is the company dir), which keeps them valid even\n // if the company directory is renamed (e.g. collision-suffixed).\n const finalDocsDir = join(companyDir, 'docs');\n if (await exists(finalDocsDir)) {\n const docs = (await readdir(finalDocsDir)).sort();\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))) continue;\n\n const relevantDocs = docs.filter((doc) => {\n if (role.name === 'ceo') return true; // coordinator sees everything\n const roles = docRoleMap.get(doc);\n return !roles || roles.has('*') || roles.has(role.name);\n });\n if (relevantDocs.length === 0) continue;\n\n let docRefs =\n '\\n## Shared Documentation\\n\\nReference docs relevant to your role (paths are relative to your workspace home):\\n';\n for (const doc of relevantDocs) {\n docRefs += `\\nRead: \\`docs/${doc}\\`\\n`;\n }\n await appendToFile(agentsMd, docRefs);\n }\n }\n }\n\n // 5b. Resolve `$AGENT_HOME` references to absolute paths.\n //\n // Role templates and the generated skill references use `$AGENT_HOME/...` to\n // point at the agent's own files (HEARTBEAT.md, SOUL.md, TOOLS.md, skills/,\n // memory/, life/). At runtime Paperclip sets AGENT_HOME to a separate per-agent\n // workspace dir (<instanceRoot>/workspaces/<agentId>) that does NOT contain\n // these provisioned files, so the references would not resolve. The agent's\n // instructionsFilePath is the absolute companyDir/agents/<role>/AGENTS.md, and\n // its sibling files live alongside it \u2014 so we rewrite `$AGENT_HOME` to that\n // absolute directory, which resolves regardless of the agent's runtime cwd.\n const agentsBaseDirForSubst = join(companyDir, 'agents');\n if (await exists(agentsBaseDirForSubst)) {\n const agentRoleDirs = await readdir(agentsBaseDirForSubst, { withFileTypes: true });\n for (const roleDir of agentRoleDirs) {\n if (!roleDir.isDirectory()) continue;\n const absoluteAgentHome = join(agentsBaseDirForSubst, roleDir.name);\n const subst = async (dir) => {\n const entries = await readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n await subst(full);\n } else if (entry.name.endsWith('.md')) {\n const content = await readFile(full, 'utf-8');\n if (content.includes('$AGENT_HOME')) {\n await writeFile(full, content.split('$AGENT_HOME').join(absoluteAgentHome));\n }\n }\n }\n };\n await subst(join(agentsBaseDirForSubst, roleDir.name));\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, explicitLabels = []) => {\n if (issues.length === 0 && explicitLabels.length === 0) return [];\n\n const labelsByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n for (const label of explicitLabels) {\n for (const parsedLabel of parseIssueLabels({ labels: [label] })) {\n labelsByName.set(parsedLabel.name, parsedLabel);\n }\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 if (!labelsByName.has(label.name)) {\n labelsByName.set(label.name, label);\n }\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 orderInitialIssuesForBootstrap = () => {\n const originalOrder = new Map(initialIssues.map((issue, index) => [issue, index]));\n const rank = (issue) => {\n if (isFoundationIssue(issue)) return 0;\n if (issue?.source === 'user') return 1;\n return 2;\n };\n initialIssues.sort((a, b) => rank(a) - rank(b) || originalOrder.get(a) - originalOrder.get(b));\n };\n\n orderInitialIssuesForBootstrap();\n\n const bootstrapLabels = buildBootstrapLabels(initialIssues, explicitBootstrapLabels);\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: redact obvious secrets before writing durable bootstrap/issue text ---\n const redactSecrets = (text) =>\n String(text || '')\n .replace(\n /\\b(GH_TOKEN|GITHUB_TOKEN|API_KEY|SECRET|TOKEN|PASSWORD|PASS|PRIVATE_KEY)\\s*=\\s*[^\\s`'\"<>]+/gi,\n '$1=[REDACTED]',\n )\n .replace(/\\bgh[pousr]_[A-Za-z0-9_]{20,}\\b/g, '[REDACTED]')\n .replace(/\\b(sk-[A-Za-z0-9_-]{20,}|xox[baprs]-[A-Za-z0-9-]{20,})\\b/g, '[REDACTED]');\n\n // --- Helper: escape # in description body ---\n const escapeBody = (text) =>\n redactSecrets(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 += `${escapeBody(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 bootstrap += `> **Goal focus:** keep the top-level goal outcome-first and product-first. Secondary constraints (compliance, security, accessibility, performance, tech stack) are quality bars unless the user explicitly made one of them the primary project. Seed issues should lead with core product capabilities and include constraints as acceptance criteria/risk notes, not let one side constraint dominate the backlog.\\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 normalizeProjectWorkspace = (proj) => {\n const explicitWorkspace =\n proj && typeof proj.workspace === 'object' && proj.workspace !== null ? proj.workspace : {};\n const sourceType =\n typeof explicitWorkspace.sourceType === 'string' && explicitWorkspace.sourceType.trim()\n ? explicitWorkspace.sourceType.trim()\n : typeof proj?.workspaceSourceType === 'string' && proj.workspaceSourceType.trim()\n ? proj.workspaceSourceType.trim()\n : typeof proj?.repoUrl === 'string' && proj.repoUrl.trim()\n ? 'git_repo'\n : 'local_path';\n const localCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n const workspace = {\n sourceType,\n ...explicitWorkspace,\n isPrimary: explicitWorkspace.isPrimary ?? proj?.isPrimary ?? true,\n };\n\n if (sourceType === 'git_repo') {\n const repoUrl = explicitWorkspace.repoUrl || proj?.repoUrl;\n const repoRef = explicitWorkspace.repoRef || proj?.repoRef || proj?.defaultRef;\n const defaultRef = explicitWorkspace.defaultRef || proj?.defaultRef || repoRef;\n if (repoUrl) workspace.repoUrl = repoUrl;\n if (repoRef) workspace.repoRef = repoRef;\n if (defaultRef) workspace.defaultRef = defaultRef;\n delete workspace.cwd;\n } else {\n if (!workspace.cwd) workspace.cwd = localCwd;\n // A bare `git init -b main` leaves an UNBORN main branch (no commits). The\n // isolated execution policy creates a worktree with `git worktree add \u2026 main`,\n // which fails until something makes the first commit \u2014 so the earliest issues\n // start as \"failed\" with a workspace error. Seed an initial empty commit so\n // `main` is a valid base ref immediately. Only the known-fragile default is\n // upgraded; a real custom setupCommand is left untouched.\n const trimmedSetup =\n typeof workspace.setupCommand === 'string' ? workspace.setupCommand.trim() : '';\n if (!trimmedSetup || trimmedSetup === 'git init -b main' || trimmedSetup === 'git init') {\n const gitName = gitUserName || 'Paperclip Bootstrap';\n const gitEmail = gitUserEmail || 'bootstrap@paperclip.local';\n workspace.setupCommand = `git init -b main && git -c user.email=${gitEmail} -c user.name='${gitName.replace(/'/g, \"'\\\\''\")}' commit --allow-empty -m 'chore: initialize repository'`;\n }\n }\n\n return workspace;\n };\n\n const renderWorkspaceMetaFields = (workspace) => {\n const orderedKeys = ['sourceType', 'cwd', 'repoUrl', 'repoRef', 'defaultRef', 'isPrimary'];\n const keys = [\n ...orderedKeys.filter((key) => workspace[key] !== undefined),\n ...Object.keys(workspace).filter((key) => !orderedKeys.includes(key)),\n ];\n return keys.map((key) => [`workspace.${key}`, String(workspace[key])]);\n };\n\n const formatWorkspaceObject = (workspace) => {\n const orderedKeys = ['sourceType', 'cwd', 'repoUrl', 'repoRef', 'defaultRef', 'isPrimary'];\n const entries = [\n ...orderedKeys\n .filter((key) => workspace[key] !== undefined)\n .map((key) => [key, workspace[key]]),\n ...Object.entries(workspace).filter(([key]) => !orderedKeys.includes(key)),\n ];\n const fields = entries\n .filter(([, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => {\n if (typeof value === 'boolean') return `${key}: ${value}`;\n return `${key}: \"${String(value)}\"`;\n });\n return `{ ${fields.join(', ')} }`;\n };\n\n // Isolated git worktrees are gated by the Paperclip instance experimental\n // setting. Repository selection alone must not enable isolation. When the\n // setting is on, project/worktree settings supply the base ref; we preserve it\n // verbatim instead of forcing main/master or origin/*.\n //\n // Freshly-created local repositories still never use them during bootstrap:\n // the repo and its base ref do not exist yet when the first agents wake, so\n // worktree creation fails and every early run errors out. Isolated worktrees\n // only make sense for existing external repos (sourceType \"git_repo\"), where\n // a real base ref already exists.\n const isFreshLocalRepo = (workspace) => workspace?.sourceType !== 'git_repo';\n\n const effectiveExecutionPolicy = (proj, workspace) => {\n const policy = proj?.executionWorkspacePolicy;\n const canUseIsolatedWorktrees = enableIsolatedWorktrees && !isFreshLocalRepo(workspace);\n if (!policy || typeof policy !== 'object') {\n if (!canUseIsolatedWorktrees) return null;\n const baseRef = normalizeExecutionBaseRef(null, workspace?.defaultRef || workspace?.repoRef);\n return {\n enabled: true,\n defaultMode: 'isolated_workspace',\n workspaceStrategy: {\n type: 'git_worktree',\n ...(baseRef ? { baseRef } : {}),\n },\n };\n }\n if (policy.defaultMode === 'isolated_workspace') {\n if (!canUseIsolatedWorktrees) return null;\n\n const strategy = policy.workspaceStrategy;\n if (!strategy || typeof strategy !== 'object')\n return { ...policy, enabled: policy.enabled ?? true };\n if (strategy.type !== 'git_worktree') return { ...policy, enabled: policy.enabled ?? true };\n\n const workspaceStrategy = { ...strategy };\n const resolvedBaseRef = normalizeExecutionBaseRef(\n workspaceStrategy.baseRef,\n workspace?.defaultRef || workspace?.repoRef,\n );\n if (resolvedBaseRef) {\n workspaceStrategy.baseRef = resolvedBaseRef;\n }\n return { ...policy, enabled: policy.enabled ?? true, workspaceStrategy };\n }\n return policy;\n };\n\n const renderExecutionPolicyMetaFields = (proj, workspace) => {\n const policy = effectiveExecutionPolicy(proj, workspace);\n if (!policy) return [];\n const rows = [];\n if (policy.defaultMode) rows.push(['executionWorkspacePolicy.defaultMode', policy.defaultMode]);\n const strategy = policy.workspaceStrategy;\n if (strategy && typeof strategy === 'object') {\n if (strategy.type)\n rows.push(['executionWorkspacePolicy.workspaceStrategy.type', strategy.type]);\n if (strategy.baseRef)\n rows.push(['executionWorkspacePolicy.workspaceStrategy.baseRef', strategy.baseRef]);\n }\n return rows;\n };\n\n // When the instance has isolated worktrees enabled but this project starts as\n // a fresh local repo, the isolated policy is intentionally deferred (worktrees\n // need an existing base ref and would fail on the first run). Without a hint,\n // the operator is left thinking the setting did nothing and flips it by hand\n // mid-run \u2014 which strands early work in the shared workspace. Emit a note so\n // the repo-setup owner enables isolation as soon as the first commit lands.\n const renderDeferredIsolationNote = (workspace) => {\n if (!enableIsolatedWorktrees || !isFreshLocalRepo(workspace)) return '';\n const configuredRef = normalizeExecutionBaseRef(\n null,\n workspace?.defaultRef || workspace?.repoRef,\n );\n const refHint = configuredRef\n ? `When you later enable the project policy, use that configured ref (currently \\`${configuredRef}\\`) as the worktree \\`baseRef\\`.`\n : `When you later enable the project policy, first set the project/worktree base ref to the branch Paperclip should branch from.`;\n return (\n `> **Enable isolated worktrees once the repo exists.** This instance has isolated ` +\n `worktrees enabled, but this project starts as a fresh local repository, so the ` +\n `\\`executionWorkspacePolicy\\` is intentionally omitted now \u2014 worktrees need an existing ` +\n `base ref and would fail on the first run. After the initial commit exists on the configured ` +\n `base branch, switch this project to isolated worktrees in Project settings. ${refHint} ` +\n `Until then agents share the project workspace; do not flip it before the repo has its first commit.\\n\\n`\n );\n };\n\n const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n // When there are scheduled routines, the worker pre-creates the main project\n // (with board authority) so every routine \u2014 including those owned by non-CEO\n // agents \u2014 can be linked to it at creation time. The CEO, which otherwise\n // creates projects during bootstrap, can only edit routines assigned to\n // itself, so routines owned by other agents would stay project-less. Expose\n // the resolved main project (with its normalized workspace) so the worker can\n // create it.\n const mainProjectInfo = mainProject\n ? (() => {\n const workspace = normalizeProjectWorkspace(mainProject);\n const executionWorkspacePolicy = effectiveExecutionPolicy(mainProject, workspace);\n return {\n name: mainProjectName,\n description: mainProject.description || '',\n workspace,\n ...(executionWorkspacePolicy ? { executionWorkspacePolicy } : {}),\n };\n })()\n : null;\n // Mirror the worker's gate: the main project is only pre-created when there\n // are routines to attach. Otherwise the CEO still creates it during bootstrap.\n const mainProjectPreCreated = initialRoutines.length > 0 && mainProjectInfo !== null;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n if (mainProjectPreCreated) {\n bootstrap += `> **The Company Wizard has already created the main project \"${mainProjectName}\"** (with board authority) so the scheduled routines could be linked to it. Do NOT recreate it \u2014 create issues against it. After creating the goals above, resolve their real ids and link them with \\`PATCH /api/projects/{projectId}\\` using \\`{ \"goalIds\": [...] }\\`.\\n\\n`;\n }\n for (const proj of resolvedProjects) {\n const workspace = normalizeProjectWorkspace(proj);\n bootstrap += `### ${proj.name}\\n\\n`;\n bootstrap += renderMeta([\n ...renderWorkspaceMetaFields(workspace),\n ...renderExecutionPolicyMetaFields(proj, workspace),\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 bootstrap += renderDeferredIsolationNote(workspace);\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 bootstrap += `> **The Company Wizard has already created all agents listed below**, each with its full instructions bundle. Do NOT create new agents. Match them by \\`metadata.templateRole\\` when assigning issues; only re-create one if it is genuinely missing.\\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 const goalRefRaw = issue.goalId || issue.goalIdRef || issue.goal || issue.goalTitle;\n const goalRef =\n typeof goalRefRaw === 'string' && goalRefRaw.trim().length > 0\n ? goalRefRaw.trim()\n : undefined;\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 ['goalId', goalRef ? `\u2192 \"${goalRef}\"` : undefined],\n ['labelIds', `\u2192 [${issueLabelNames.map((name) => `\"${name}\"`).join(', ')}]`],\n ]);\n const issueReviewGate = resolveReviewGate(issue.reviewGate, issue.assignTo);\n if (issueReviewGate) {\n bootstrap += renderReviewGate(issueReviewGate);\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 if (moduleNames.includes('pr-review')) {\n const ciClause = hasCi\n ? 'CI (lint/test/build) must be green before the merge gate merges \u2014 this is the hard gate and cannot be skipped'\n : 'no CI is configured, so the merge-gate agent must run the test suite/build and paste the real output into the merge-gate verdict before merging \u2014 this is the hard gate';\n bootstrap += `- Required PR reviews use the issue's \\`executionPolicy\\`. The substantive gate is execution, not opinion: ${ciClause}. Stages, in order: a \\`review\\` stage for QA when present (test adequacy / running the tests), a \\`review\\` stage for the Security Engineer **only when the change is security-relevant** (auth, secrets, input boundaries, crypto, dependencies, infra exposure), an \\`approval\\` stage for the Product Owner when present (intent/scope), then a final \\`approval\\` merge-gate stage for the **Code Reviewer** (a non-author who satisfies the hard gate above, merges the PR, then records approval to close the issue). **Never list the issue's executor/author as a participant in any stage** \u2014 Paperclip excludes the original executor from review/approval, so a stage whose only participant is the author has no eligible participant and the issue stalls in \\`in_review\\` (422 No eligible approval participant); this is why the merge gate is the Code Reviewer (a non-author), not the engineer who wrote the code. The merge gate must be last so the Product Owner's approval does not auto-close the issue with the PR still open. When no Code Reviewer is on the team, do not set executionPolicy stages at all \u2014 use the PR-Self-Merge path (the engineer opens the PR and merges via \\`gh pr merge <N> --merge\\`); other review roles may leave advisory comments but do not block. Other domain reviewers may add advisory, non-blocking comments but do not gate the merge. Every verdict must cite executed verification. Resolve each role to its agentId. Model review stages in executionPolicy rather than child issues or @-mentions.\\n`;\n }\n bootstrap += `\\n`;\n }\n\n // --- Routines ---\n if (initialRoutines.length > 0) {\n bootstrap += `## Routines\\n\\n`;\n bootstrap += `> **The Company Wizard has already created the routines listed below** (with board authority, so each could be assigned to its owning agent). Do NOT recreate them. Note: an agent may only create routines assigned to itself, so never try to create another agent's routine.\\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, board-operations issue, hiring-plan issue, agent hire requests, routines, and this bootstrap issue. Approve any pending hires before running dependent team workflows. The CEO heartbeat completes the remaining setup 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 resolvedProjects.forEach((proj, idx) => {\n const workspace = normalizeProjectWorkspace(proj);\n const goalLinks =\n proj.goals?.length > 0 ? `, goalIds \u2192 [${proj.goals.map((g) => `\"${g}\"`).join(', ')}]` : '';\n const activePolicy = effectiveExecutionPolicy(proj, workspace);\n const policy = activePolicy?.defaultMode\n ? `, executionWorkspacePolicy.defaultMode: \"${activePolicy.defaultMode}\"`\n : '';\n if (idx === 0 && mainProjectPreCreated) {\n const goalLinkInstruction = goalLinks\n ? ` After creating the goals above, resolve their real ids and link them with PATCH /api/projects/{projectId} (${goalLinks.replace(/^, /, '')}).`\n : '';\n bootstrap += `${stepN++}. **Main project already created** \u2014 the Company Wizard provisioned project \"${proj.name}\" (with board authority) so the scheduled routines could be linked to it. Do NOT recreate it.${goalLinkInstruction}\\n`;\n } else {\n bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: ${formatWorkspaceObject(workspace)}${policy}${goalLinks})\\n`;\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++}. **Agents already created** \u2014 the Company Wizard provisioned every agent above with its full instructions bundle. Match them by metadata.templateRole when assigning issues; only hire via governance if one is genuinely missing\\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++}. **Routines already created** \u2014 the Company Wizard provisioned the routines above (with their cron triggers) using board authority. Do not recreate them; an agent can only create routines assigned to itself\\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 {\n companyDir,\n allRoles,\n initialIssues,\n initialRoutines,\n roleAdapterOverrides,\n mainProject: mainProjectInfo,\n };\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';\n// Worker (non-CEO) agents default to a more modest reasoning effort. High thinking\n// for the whole team is expensive and slow, and most worker tasks don't need it.\n// A role can still raise this via its role.meta.json adapter override.\nexport const DEFAULT_WORKER_THINKING_LEVEL = 'medium';\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\nfunction buildAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n defaultThinkingLevel = DEFAULT_CEO_THINKING_LEVEL,\n inheritUserThinking = true,\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 // The CEO inherits the user-configured thinking level; worker agents do NOT \u2014 a\n // user picking xhigh for the CEO shouldn't silently turn the whole team xhigh. A\n // role can still set its own level via role.meta.json (roleAdapterOverrides).\n const userThinking = inheritUserThinking\n ? asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort)\n : '';\n const thinkingLevel =\n userThinking ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n defaultThinkingLevel;\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 buildCeoAdapterConfig(opts = {}) {\n return buildAdapterConfig({\n ...opts,\n defaultThinkingLevel: DEFAULT_CEO_THINKING_LEVEL,\n inheritUserThinking: true,\n });\n}\n\n/**\n * Adapter config for non-CEO (\"worker\") agents. Same adapter type/model as the CEO\n * (companies pick codex vs claude once), but defaults to a modest reasoning effort\n * (DEFAULT_WORKER_THINKING_LEVEL) and does not inherit the CEO's thinking level.\n */\nexport function buildWorkerAdapterConfig(opts = {}) {\n return buildAdapterConfig({\n ...opts,\n defaultThinkingLevel: DEFAULT_WORKER_THINKING_LEVEL,\n inheritUserThinking: false,\n });\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\n/**\n * Runtime config for non-CEO (\"worker\") agents. Heartbeat is DISABLED: Paperclip\n * wakes an agent when work is assigned to it (and routines drive scheduled work),\n * so always-on heartbeats for every agent are unnecessary. Enabling them for the\n * whole team at once produced a burst of concurrent/queued runs that overloaded the\n * server. The interval/concurrency are kept for when a heartbeat is later enabled.\n */\nexport function buildWorkerAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: false,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n", "export function compareSemver(a, b) {\n const parse = (value) =>\n String(value || '')\n .trim()\n .replace(/^v/i, '')\n .split('-', 1)[0]\n .split('.')\n .map((part) => Number.parseInt(part, 10) || 0);\n const left = parse(a);\n const right = parse(b);\n const max = Math.max(left.length, right.length, 3);\n for (let i = 0; i < max; i += 1) {\n const diff = (left[i] || 0) - (right[i] || 0);\n if (diff !== 0) return diff > 0 ? 1 : -1;\n }\n return 0;\n}\n\nexport function isNewerVersion(candidate, current) {\n return compareSemver(candidate, current) > 0;\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 this.boardUserName = null; // resolved during connect()\n this.boardUserEmail = 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 this.boardUserName = null;\n this.boardUserEmail = null;\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 profile for assigneeUserId and git identity support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n this.boardUserName = session?.user?.name || null;\n this.boardUserEmail = session?.user?.email || 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 /**\n * Read instance-wide experimental settings (including enableIsolatedWorkspaces).\n */\n async getInstanceExperimentalSettings() {\n return this._fetch('/api/instance/settings/experimental');\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 getInstructionsBundle(agentId) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle`, {\n method: 'GET',\n });\n }\n\n async deleteInstructionsBundleFile(agentId, { path }) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle/file`, {\n method: 'DELETE',\n body: JSON.stringify({ path }),\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 sourceIssueId,\n sourceIssueIds,\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 ...(sourceIssueId !== undefined ? { sourceIssueId } : {}),\n ...(sourceIssueIds !== undefined ? { sourceIssueIds } : {}),\n };\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 return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n };\n }\n\n return hiredAgent;\n }\n\n async createProject(\n companyId,\n { name, description, goalIds, workspace, executionWorkspacePolicy },\n ) {\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 ...(executionWorkspacePolicy ? { executionWorkspacePolicy } : {}),\n }),\n });\n }\n\n async updateProject(projectId, updates = {}) {\n return this._fetch(`/api/projects/${projectId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 updateIssue(issueId, updates = {}) {\n return this._fetch(`/api/issues/${issueId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async putIssueDocument(issueId, key, { title, format, body, baseRevisionId }) {\n return this._fetch(`/api/issues/${issueId}/documents/${encodeURIComponent(key)}`, {\n method: 'PUT',\n body: JSON.stringify({\n title,\n format: format || 'markdown',\n body: body || '',\n ...(baseRevisionId !== undefined ? { baseRevisionId } : {}),\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 listRoutines(companyId, filters = {}) {\n const params = new URLSearchParams();\n if (filters.projectId) params.set('projectId', filters.projectId);\n const query = params.toString();\n return this._fetch(`/api/companies/${companyId}/routines${query ? `?${query}` : ''}`, {\n method: 'GET',\n });\n }\n\n async getRoutine(routineId) {\n return this._fetch(`/api/routines/${routineId}`, { method: 'GET' });\n }\n\n async updateRoutine(routineId, updates = {}) {\n return this._fetch(`/api/routines/${routineId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 updateRoutineTrigger(triggerId, updates = {}) {\n return this._fetch(`/api/routine-triggers/${triggerId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(roleName, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[roleName]) return BASE_ROLE_MAP[roleName];\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 mod = { name: dir.name, ...(moduleJson || {}) };\n // Description precedence: module.meta.json wins. Only fall back to the first\n // content line of README.md when the manifest has no description \u2014 otherwise\n // the README read would be wasted work (its value is immediately discarded).\n if (!mod.description) {\n const readmePath = join(modulesDir, dir.name, 'README.md');\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 mod.description = descLine?.trim() || '';\n }\n }\n if (mod.description === undefined) mod.description = '';\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\n/**\n * Return the effective module selection for a provisioning/preview run.\n *\n * The UI normally sends preset modules already expanded, but worker actions can\n * be called directly and AI configs can be sparse. Treat `presetName` as a\n * first-class source of modules so choosing build-api also activates the rest\n * of the build-api preset (e.g. ci-cd goals), then add transitive `requires`.\n * Unknown module names are ignored.\n *\n * @param {object|null} preset\n * @param {object[]} modules\n * @param {string[]|Set<string>} selectedModules\n * @returns {string[]}\n */\nexport function resolveEffectiveModules(preset, modules, selectedModules) {\n const known = new Set(modules.map((m) => m.name));\n const requiresByName = new Map(\n modules.map((m) => [m.name, Array.isArray(m.requires) ? m.requires : []]),\n );\n const effective = new Set();\n const queue = [];\n\n const add = (name) => {\n if (typeof name !== 'string' || !known.has(name) || effective.has(name)) return;\n effective.add(name);\n queue.push(name);\n };\n\n for (const moduleName of Array.isArray(preset?.modules) ? preset.modules : []) {\n add(moduleName);\n }\n for (const moduleName of selectedModules ?? []) {\n add(moduleName);\n }\n\n while (queue.length > 0) {\n const moduleName = queue.shift();\n for (const dep of requiresByName.get(moduleName) ?? []) {\n add(dep);\n }\n }\n\n return [...effective];\n}\n\nexport function collectPresetBootstrapData(preset) {\n return {\n labels: Array.isArray(preset?.labels) ? preset.labels.map((label) => ({ ...label })) : [],\n issues: Array.isArray(preset?.issues) ? preset.issues.map((issue) => ({ ...issue })) : [],\n routines: Array.isArray(preset?.routines)\n ? preset.routines.map((routine) => ({ ...routine }))\n : [],\n };\n}\n\nexport { validateGoal, validateGoal as validateGoalTemplate };\n"],
5
- "mappings": "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A;EACA;EACA;EACA;;AA4BK,IAAM,kBAAkB;EAC7B;EACA;EACA;EACA;EACA;EACA;;AAUK,IAAM,oBAAoB;EAC/B;EACA;EACA;EACA;;AAcK,IAAM,sBAAsB;;EAEjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAmBK,IAAM,mCAAmC;EAC9C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIK,IAAM,2BAA2B,CAAC,OAAO,QAAQ,SAAS,QAAQ;AAGlE,IAAM,8BAA8B,CAAC,SAAS,SAAS,kBAAkB,SAAS;AAGlF,IAAM,qCAAqC;EAChD;EACA;EACA;;AAUK,IAAM,uBAAuB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASK,IAAM,yCAAyC;EACpD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASK,IAAM,kDAAkD;EAC7D;EACA;EACA;EACA;EACA;EACA;;AAWK,IAAM,kCAAkC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOK,IAAM,0BAA0B;EACrC;EACA;EACA;EACA;EACA;EACA;;AAQK,IAAM,yBAAyB;EACpC;EACA;EACA;EACA;EACA;;AAQK,IAAM,sCAAsC;EACjD;EACA;EACA;EACA;EACA;;AAUK,IAAM,8BAA8B;EACzC;EACA;EACA;EACA;EACA;EACA;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",
4
+ "sourcesContent": [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, 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 \u2014 plain JS module, bundled by esbuild\nimport { isNewerVersion } from './logic/version.js';\n// @ts-ignore\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\n buildWorkerAdapterConfig,\n buildCeoAgentRuntimeConfig,\n buildWorkerAgentRuntimeConfig,\n normalizeCeoAdapterType,\n} from './logic/ceo-defaults.js';\n// @ts-ignore\nimport {\n collectGoals,\n collectPresetBootstrapData,\n loadModules,\n loadPresets,\n loadRoles,\n resolveEffectiveModules,\n} 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');\nconst PLUGIN_PACKAGE_NAME = '@starlein/paperclip-plugin-company-wizard';\nconst CURRENT_PLUGIN_VERSION = '0.4.13';\nconst NPM_LATEST_URL =\n 'https://registry.npmjs.org/@starlein%2Fpaperclip-plugin-company-wizard/latest';\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 * Detect whether the current environment is a Docker/Paperclip server setup.\n * In Docker, the home directory is /paperclip and the instance layout uses\n * ~/instances/default/companies and ~/plugin-templates directly (no .paperclip subdir).\n * In NPX/local setups, the layout is ~/.paperclip/instances/default/companies\n * and ~/.paperclip/plugin-templates.\n */\nfunction isDockerLayout(): boolean {\n return fs.existsSync(path.join(os.homedir(), 'instances'));\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. Docker detection: ~/plugin-templates when ~/instances exists.\n * 3. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 4. 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 // Docker detection: prefer ~/plugin-templates when ~/instances exists (Docker layout)\n if (isDockerLayout()) {\n const dockerTemplatesDir = path.join(os.homedir(), 'plugin-templates');\n if (fs.existsSync(dockerTemplatesDir)) return dockerTemplatesDir;\n try {\n downloadTemplatesFromGithub(dockerTemplatesDir, repoUrl);\n return dockerTemplatesDir;\n } catch {\n // Fall through to home-dir default\n }\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\ntype SecretResolverContext = {\n secrets: {\n resolve(secretRef: string): Promise<string>;\n };\n};\n\nfunction isLikelyAnthropicApiKey(value: string): boolean {\n return value.startsWith('sk-ant-');\n}\n\nasync function resolveAnthropicApiKey(\n ctx: SecretResolverContext,\n configuredValue: unknown,\n): Promise<string> {\n if (typeof configuredValue !== 'string') return '';\n const value = configuredValue.trim();\n if (!value) return '';\n\n // The setting now stores the raw Anthropic key directly (plain string field).\n if (isLikelyAnthropicApiKey(value)) return value;\n\n try {\n // Backward compatibility: older installs may still have a Paperclip secret\n // reference stored in config instead of the raw key.\n const resolved = await ctx.secrets.resolve(value);\n return resolved.trim();\n } catch (err) {\n const detail = err instanceof Error ? err.message : String(err);\n throw new Error(\n `Anthropic API key could not be resolved. Re-save the plugin setting with a valid Anthropic API key (sk-ant-...). ${detail}`,\n );\n }\n}\n\n/**\n * Single Anthropic Messages API call. Returns `{ text, error? }` \u2014 never throws,\n * so callers (sync and async job modes) can handle failures uniformly.\n */\nasync function callAnthropic(\n apiKey: string,\n system: unknown,\n messages: unknown,\n): Promise<{ text: string; error?: string }> {\n try {\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-opus-4-8',\n // High ceiling so the wizard's final config \u2014 which reproduces the user's\n // full spec in the first goal \u2014 is never truncated mid-JSON. This is only\n // an upper bound; generation time tracks the tokens actually produced.\n max_tokens: 32768,\n ...(system ? { system } : {}),\n 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/**\n * In-memory store for async ai-chat jobs. The plugin runs one long-lived worker\n * process, so an in-process map is sufficient. Used to decouple long Anthropic\n * generations (e.g. the AI wizard's final config) from the host's 30s\n * `performAction` RPC timeout: the UI starts a job, then polls for the result.\n */\ntype AiChatJob =\n | { status: 'pending'; createdAt: number }\n | { status: 'done'; text: string; createdAt: number }\n | { status: 'error'; error: string; createdAt: number };\n\nconst aiChatJobs = new Map<string, AiChatJob>();\nconst AI_CHAT_JOB_TTL_MS = 10 * 60 * 1000;\n\n/** Drop completed/abandoned jobs so the map doesn't grow unbounded. */\nfunction sweepAiChatJobs(): void {\n const now = Date.now();\n for (const [id, job] of aiChatJobs) {\n if (now - job.createdAt > AI_CHAT_JOB_TTL_MS) aiChatJobs.delete(id);\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\ntype InstanceExperimentalSettings = {\n enableIsolatedWorkspaces?: boolean;\n};\n\n/**\n * Resolve the Paperclip connection parameters from plugin config.\n */\nfunction resolvePaperclipCredentials(cfg: Record<string, string>): {\n url: string;\n email: string;\n password: string;\n} {\n return {\n url: cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100',\n email: cfg.paperclipEmail || '',\n password: cfg.paperclipPassword || '',\n };\n}\n\n/**\n * Cross-action session cache. The plugin runs one long-lived worker process, and a\n * single wizard run fires several actions back-to-back (check-auth, preview-files,\n * preview-company-update, start-provision) \u2014 each of which previously created its own\n * client and performed a fresh Better Auth sign-in. On authenticated instances the\n * sign-in endpoint is rate-limited, so the burst tripped `429 Too many requests`.\n *\n * We cache the resolved session cookie (+ board identity) keyed by URL+email and reuse\n * it across actions for a short TTL, validating with a cheap GET (`ping`) rather than\n * another sign-in. Sign-ins only happen on first connect or after the cookie expires.\n */\ntype SharedAuthCache = {\n key: string;\n ts: number;\n sessionCookie: string | null;\n boardUserId: string | null;\n boardUserName: string | null;\n boardUserEmail: string | null;\n};\n\nlet sharedAuthCache: SharedAuthCache | null = null;\nconst SHARED_AUTH_TTL_MS = 5 * 60 * 1000;\n\n/**\n * Connect to Paperclip, reusing a cached session when one is still valid. Returns a\n * ready-to-use client. On a cache hit the session cookie is validated with a single\n * GET; on a miss (or stale/invalid session) it performs a normal `connect()` and\n * refreshes the cache.\n */\nasync function connectSharedClient(cfg: Record<string, string>): Promise<PaperclipClient> {\n const { url, email, password } = resolvePaperclipCredentials(cfg);\n const key = `${url}|${email}`;\n const client = new PaperclipClient(url, { email, password });\n\n if (\n sharedAuthCache &&\n sharedAuthCache.key === key &&\n Date.now() - sharedAuthCache.ts < SHARED_AUTH_TTL_MS\n ) {\n client.sessionCookie = sharedAuthCache.sessionCookie;\n client.boardUserId = sharedAuthCache.boardUserId;\n client.boardUserName = sharedAuthCache.boardUserName;\n client.boardUserEmail = sharedAuthCache.boardUserEmail;\n // Validate cheaply (a GET, not the rate-limited sign-in). If the session is still\n // good, reuse it; otherwise fall through to a fresh connect below.\n if (await client.ping()) {\n return client;\n }\n }\n\n await client.connect();\n sharedAuthCache = {\n key,\n ts: Date.now(),\n sessionCookie: client.sessionCookie,\n boardUserId: client.boardUserId,\n boardUserName: client.boardUserName,\n boardUserEmail: client.boardUserEmail,\n };\n return client;\n}\n\nasync function resolveEnableIsolatedWorkspacesFromInstance(\n cfg: Record<string, string>,\n log?: (msg: string) => void,\n): Promise<boolean> {\n try {\n const instanceClient = await connectSharedClient(cfg);\n const experimentalSettings = (await instanceClient.getInstanceExperimentalSettings()) as\n | InstanceExperimentalSettings\n | undefined;\n return experimentalSettings?.enableIsolatedWorkspaces === true;\n } catch (err) {\n if (log) {\n const detail = err instanceof Error ? err.message : String(err);\n log(`\u26A0 Could not read instance experimental settings: ${detail}. Using fallback false.`);\n }\n return false;\n }\n}\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 mkdirErrorMessage(err: unknown): string {\n if (err instanceof Error) return err.message;\n return String(err);\n}\n\nfunction ensureWritableDir(dir: string): void {\n fs.mkdirSync(dir, { recursive: true });\n fs.accessSync(dir, fs.constants.W_OK);\n}\n\nexport function resolveWritableCompaniesDir(\n cfg: Record<string, string>,\n log?: (msg: string) => void,\n): string {\n const configuredDir = typeof cfg.companiesDir === 'string' ? cfg.companiesDir.trim() : '';\n if (configuredDir) {\n try {\n ensureWritableDir(configuredDir);\n return configuredDir;\n } catch (err) {\n throw new Error(\n `Configured companiesDir is not writable (${configuredDir}): ${mkdirErrorMessage(err)}`,\n );\n }\n }\n\n // Auto-detect: Docker layout uses ~/instances, NPX layout uses ~/.paperclip/instances\n const candidates: string[] = [];\n if (isDockerLayout()) {\n // Docker: home is /paperclip, layout is ~/instances/default/companies\n candidates.push(path.join(os.homedir(), 'instances', 'default', 'companies'));\n }\n // NPX/local: ~/.paperclip/instances/default/companies\n candidates.push(resolveCompaniesDir(cfg));\n // Last resort: OS temp dir\n candidates.push(path.join(os.tmpdir(), 'paperclip-companies'));\n const attempted = new Set<string>();\n let lastError = '';\n\n for (const candidate of candidates) {\n if (attempted.has(candidate)) continue;\n attempted.add(candidate);\n try {\n ensureWritableDir(candidate);\n return candidate;\n } catch (err) {\n const message = mkdirErrorMessage(err);\n lastError = `${candidate}: ${message}`;\n if (log) log(`\u26A0 Companies dir unavailable: ${candidate} (${message})`);\n }\n }\n\n throw new Error(\n `Unable to prepare a writable companies directory. Last attempt failed at ${lastError}`,\n );\n}\n\nfunction isPathInside(parent: string, child: string): boolean {\n const relative = path.relative(parent, child);\n return (\n relative === '' || (!!relative && !relative.startsWith('..') && !path.isAbsolute(relative))\n );\n}\n\nfunction normalizeGitBranch(value: unknown): string {\n const branch = typeof value === 'string' && value.trim() ? value.trim() : 'main';\n return /^[A-Za-z0-9._/-]+$/.test(branch) ? branch.replace(/^origin\\//, '') : 'main';\n}\n\nexport function prepareLocalProjectWorkspace(\n mainProject: { name?: string; workspace?: Record<string, unknown> } | null | undefined,\n companyDir: string,\n log?: (msg: string) => void,\n gitIdentity?: { name?: string | null; email?: string | null } | null,\n): void {\n const workspace = mainProject?.workspace;\n if (!workspace || workspace.sourceType !== 'local_path') return;\n\n const cwd = typeof workspace.cwd === 'string' ? workspace.cwd.trim() : '';\n if (!cwd) return;\n\n const resolvedCompanyDir = path.resolve(companyDir);\n const resolvedCwd = path.resolve(cwd);\n if (!isPathInside(resolvedCompanyDir, resolvedCwd)) {\n log?.(`\u26A0 Skipped project workspace preparation outside company dir: ${resolvedCwd}`);\n return;\n }\n\n fs.mkdirSync(resolvedCwd, { recursive: true });\n\n const gitDir = path.join(resolvedCwd, '.git');\n if (fs.existsSync(gitDir)) {\n log?.(`\u2713 Project workspace ready: ${resolvedCwd}`);\n return;\n }\n\n const branch = normalizeGitBranch(workspace.defaultRef);\n const gitUserName = gitIdentity?.name || 'Paperclip Bootstrap';\n const gitUserEmail = gitIdentity?.email || 'bootstrap@paperclip.local';\n execFileSync('git', ['init', '-b', branch], { cwd: resolvedCwd, stdio: 'pipe' });\n execFileSync(\n 'git',\n [\n '-c',\n `user.email=${gitUserEmail}`,\n '-c',\n `user.name=${gitUserName}`,\n 'commit',\n '--allow-empty',\n '-m',\n 'chore: initialize repository',\n ],\n { cwd: resolvedCwd, stdio: 'pipe' },\n );\n log?.(`\u2713 Project workspace initialized: ${resolvedCwd}`);\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/**\n * Preserve existing `paperclipSkillSync.desiredSkills` from an agent's current\n * `adapterConfig` when updating it. The plugin rebuilds `adapterConfig` from scratch\n * (via `buildWorkerAdapterConfig` / `buildCeoAdapterConfig`), which does NOT include\n * `paperclipSkillSync`. Without this merge, individual runtime skill assignments are\n * lost on every update.\n *\n * Merges the existing `paperclipSkillSync` key into `nextAdapterConfig` so the PATCH\n * preserves the agent's skill sync preferences.\n */\nfunction preserveExistingSkillSync(\n existingAgent: any,\n nextAdapterConfig: Record<string, unknown>,\n): Record<string, unknown> {\n const existingSync =\n existingAgent?.adapterConfig &&\n typeof existingAgent.adapterConfig === 'object' &&\n 'paperclipSkillSync' in (existingAgent.adapterConfig as Record<string, unknown>)\n ? (existingAgent.adapterConfig as Record<string, unknown>).paperclipSkillSync\n : undefined;\n\n if (!existingSync) {\n return nextAdapterConfig;\n }\n\n return {\n ...nextAdapterConfig,\n paperclipSkillSync: existingSync,\n };\n}\n\nfunction routineTemplateTitle(routine: any): string {\n if (typeof routine?.title === 'string' && routine.title.trim()) return routine.title.trim();\n if (typeof routine?.name === 'string' && routine.name.trim()) return routine.name.trim();\n return '';\n}\n\ninterface WizardManifest {\n pluginVersion: string;\n preset: string | null;\n modules: string[];\n roles: string[];\n generatedFilePaths: Record<string, string[]>;\n routineTitles: string[];\n updatedAt: string;\n}\n\nfunction buildWizardManifest(params: {\n presetName: string | null;\n selectedModules: string[];\n selectedRoleNames: string[];\n assembleResult: any;\n initialRoutines: any[];\n}): WizardManifest {\n const routineTitles = params.initialRoutines\n .map((r: any) => routineTemplateTitle(r))\n .filter(Boolean);\n\n const generatedFilePaths: Record<string, string[]> = {};\n if (params.assembleResult?.allFiles && typeof params.assembleResult.allFiles === 'object') {\n for (const relativePath of Object.keys(params.assembleResult.allFiles)) {\n const match = relativePath.match(/^agents\\/([^/]+)\\//);\n if (match) {\n const agentRole = match[1];\n if (!generatedFilePaths[agentRole]) generatedFilePaths[agentRole] = [];\n generatedFilePaths[agentRole].push(relativePath);\n } else if (relativePath.startsWith('docs/')) {\n if (!generatedFilePaths['docs']) generatedFilePaths['docs'] = [];\n generatedFilePaths['docs'].push(relativePath);\n }\n }\n }\n\n return {\n pluginVersion: CURRENT_PLUGIN_VERSION,\n preset: params.presetName,\n modules: params.selectedModules,\n roles: params.selectedRoleNames,\n generatedFilePaths,\n routineTitles,\n updatedAt: new Date().toISOString(),\n };\n}\n\nconst WIZARD_PLUGIN_KEY = 'starlein.paperclip-plugin-company-wizard';\n\nasync function findPluginId(client: PaperclipClient): Promise<string | null> {\n try {\n const plugins: any[] = await client._fetch('/api/plugins');\n const match = Array.isArray(plugins)\n ? plugins.find((p: any) => p.pluginKey === WIZARD_PLUGIN_KEY)\n : null;\n return match?.id ?? null;\n } catch {\n return null;\n }\n}\n\nasync function syncRoutineTrigger({\n client,\n routineId,\n schedule,\n log,\n}: {\n client: any;\n routineId: string;\n schedule?: string;\n log: (m: string) => void;\n}) {\n if (!schedule) return;\n\n try {\n const detail = await client.getRoutine(routineId);\n const triggers = Array.isArray(detail?.triggers) ? detail.triggers : [];\n const scheduleTrigger = triggers.find((trigger: any) => trigger?.kind === 'schedule');\n if (scheduleTrigger?.id) {\n await client.updateRoutineTrigger(scheduleTrigger.id, {\n enabled: true,\n cronExpression: schedule,\n timezone: scheduleTrigger.timezone || 'UTC',\n });\n return;\n }\n\n await client.createRoutineTrigger(routineId, {\n kind: 'schedule',\n cronExpression: schedule,\n timezone: 'UTC',\n });\n } catch (err) {\n log(\n `\u26A0 Could not sync trigger for routine \"${routineId}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\nasync function syncExistingCompanyRoutines({\n client,\n companyId,\n routines,\n ceoAgentId,\n teamAgentIds,\n log,\n}: {\n client: any;\n companyId: string;\n routines: any[];\n ceoAgentId: string;\n teamAgentIds: Record<string, string>;\n log: (m: string) => void;\n}) {\n if (!Array.isArray(routines) || routines.length === 0) return;\n\n let existingRoutines: any[] = [];\n try {\n existingRoutines = await client.listRoutines(companyId);\n } catch (err) {\n log(\n `\u26A0 Could not list existing routines for template sync: ${err instanceof Error ? err.message : String(err)}`,\n );\n return;\n }\n\n const byTitle = new Map<string, any>();\n for (const existing of existingRoutines) {\n if (typeof existing?.title === 'string' && existing.title.trim()) {\n byTitle.set(existing.title.trim().toLowerCase(), existing);\n }\n }\n\n for (const routine of routines) {\n const title = routineTemplateTitle(routine);\n if (!title) continue;\n\n const role = routine.assignTo;\n const assigneeAgentId =\n !role || role === 'ceo' ? ceoAgentId : (teamAgentIds[role] ?? ceoAgentId);\n const payload = {\n title,\n description: routine.description || null,\n assigneeAgentId,\n priority: routine.priority || 'medium',\n status: routine.status || 'active',\n concurrencyPolicy: routine.concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: routine.catchUpPolicy || 'skip_missed',\n };\n\n const existing = byTitle.get(title.toLowerCase());\n try {\n if (existing?.id) {\n await client.updateRoutine(existing.id, payload);\n await syncRoutineTrigger({\n client,\n routineId: existing.id,\n schedule: routine.schedule,\n log,\n });\n log(`\u2713 Synced existing routine \"${title}\"`);\n } else {\n const created = await client.createRoutine(companyId, payload);\n if (routine.schedule && created?.id) {\n await client.createRoutineTrigger(created.id, {\n kind: 'schedule',\n cronExpression: routine.schedule,\n timezone: 'UTC',\n });\n }\n log(\n `\u2713 Created missing routine \"${title}\"${routine.schedule ? ` (${routine.schedule})` : ''}`,\n );\n }\n } catch (err) {\n log(\n `\u26A0 Could not sync routine \"${title}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n}\n\nfunction buildDecisionLogBody({\n companyName,\n companyDescription,\n preset,\n moduleNames,\n roles,\n repositoryMode,\n approvalMode,\n}: {\n companyName: string;\n companyDescription?: string;\n preset?: string;\n moduleNames: string[];\n roles: string[];\n repositoryMode: string;\n approvalMode: string;\n}) {\n const today = new Date().toISOString().slice(0, 10);\n return `# Decision Log \u2014 ${companyName}\n\n## ${today}\n- Created or selected company \"${companyName}\"${companyDescription ? ` with mission: ${companyDescription}` : ''}.\n- Selected preset: ${preset || 'custom/manual'}.\n- Selected modules: ${moduleNames.length > 0 ? moduleNames.join(', ') : 'none'}.\n- Initial roles: ${roles.join(', ')}.\n- Repository setup: ${repositoryMode}.\n- Hiring governance: ${approvalMode}.\n- Company Wizard generated the initial bootstrap package, agent instruction bundles, routines, and backlog seed from templates.\n`;\n}\n\nfunction buildHiringPlanBody({\n companyName,\n roles,\n moduleNames,\n}: {\n companyName: string;\n roles: string[];\n moduleNames: string[];\n}) {\n const today = new Date().toISOString().slice(0, 10);\n return `# Hiring Plan \u2014 ${companyName}\n\nGenerated by Company Wizard on ${today}.\n\n## Status: initial team already provisioned\n\nCompany Wizard has already submitted the initial team below as **governed hires**\nvia \\`/agent-hires\\` (each with a full instruction bundle assembled from curated role\ntemplates). Where the board requires approval, those hires are pending your approval \u2014\nthey were **not** auto-approved.\n\n**This issue is your review checkpoint \u2014 not a re-hiring task.** Do not create the\nroles below again.\n\n## Your tasks\n\n1. **Review each provisioned agent against the draft-review checklist** (Paperclip\n \\`paperclip-create-agent\\` \u2192 \\`references/draft-review-checklist.md\\`): instruction\n quality, correct adapter/model/thinking level, escalation/reportsTo path, and\n desiredSkills justification. Note any corrections in the decision log.\n2. **Approve or reject** the pending hires accordingly.\n3. **Only hire for genuine gaps.** If a capability is missing after the first\n roadmap/backlog pass, follow the \\`paperclip-create-agent\\` workflow: pick an exact,\n adjacent, or generic template, run the draft-review checklist, submit via\n \\`/agent-hires\\` with a concrete AGENTS.md draft + adapter config + desiredSkills\n justification, and set \\`sourceIssueId\\` to this issue.\n\n## Initial Roles (already provisioned)\n\n${roles.map((role) => `- ${formatRoleName(role)}`).join('\\n')}\n\n## Selected Modules\n\n${moduleNames.length > 0 ? moduleNames.map((mod) => `- ${mod}`).join('\\n') : '- none'}\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 ctx.actions.register('check-update', async () => {\n try {\n const response = await fetch(NPM_LATEST_URL, {\n headers: { accept: 'application/json' },\n });\n if (!response.ok) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: `npm registry returned ${response.status}`,\n };\n }\n\n const data = (await response.json()) as { version?: unknown };\n const latestVersion = typeof data.version === 'string' ? data.version.trim() : '';\n if (!latestVersion) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: 'npm registry response did not include a version',\n };\n }\n\n return {\n ok: true,\n packageName: PLUGIN_PACKAGE_NAME,\n currentVersion: CURRENT_PLUGIN_VERSION,\n latestVersion,\n updateAvailable: isNewerVersion(latestVersion, CURRENT_PLUGIN_VERSION),\n url: 'https://www.npmjs.com/package/@starlein/paperclip-plugin-company-wizard',\n };\n } catch (err) {\n return {\n ok: false,\n currentVersion: CURRENT_PLUGIN_VERSION,\n packageName: PLUGIN_PACKAGE_NAME,\n error: err instanceof Error ? err.message : String(err),\n };\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(), `company-wizard-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveWritableCompaniesDir(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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\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 const previewIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const result = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues: previewIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees: await resolveEnableIsolatedWorkspacesFromInstance(cfg),\n enableEnrichedPersonas: true,\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 // Preview company update \u2014 dry-run diff of what would change for an existing company.\n // READ-ONLY: no writes to Paperclip. Returns agents/routines diff and preserved skills.\n ctx.actions.register('preview-company-update', async (params) => {\n let tmpDir: string | undefined;\n try {\n const existingCompanyId =\n typeof params.existingCompanyId === 'string' && params.existingCompanyId.trim()\n ? params.existingCompanyId.trim()\n : '';\n if (!existingCompanyId) {\n return { error: 'existingCompanyId is required for preview.' };\n }\n\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(), `company-wizard-preview-update-${Date.now()}`);\n\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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\n\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 const previewIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues: previewIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees: await resolveEnableIsolatedWorkspacesFromInstance(cfg),\n enableEnrichedPersonas: true,\n outputDir: tmpDir,\n templatesDir,\n });\n\n const allRoles = Array.isArray(params.allRoles)\n ? (params.allRoles as string[])\n : [...(assembleResult.allRoles ?? [])].filter(Boolean);\n const teamRoles = allRoles.filter((r: string) => r && r !== 'ceo');\n\n // Count planned files (assemble created them in tmpDir)\n let plannedFiles = 0;\n function countFiles(dir: string): void {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) countFiles(full);\n else if (entry.isFile()) plannedFiles++;\n }\n }\n countFiles(assembleResult.companyDir);\n\n // Connect to Paperclip API to read existing data\n const client = await connectSharedClient(cfg);\n\n const company = await client.getCompany(existingCompanyId);\n const existingAgents = await client.listAgents(existingCompanyId);\n const existingRoutines = await client.listRoutines(existingCompanyId);\n\n // Read the wizard manifest (best-effort) for better retired-role detection\n let existingManifest: WizardManifest | null = null;\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const settings = await client._fetch(\n `/api/plugins/${pluginId}/company-settings/${existingCompanyId}`,\n );\n const manifestData =\n settings?.settingsJson?.wizardManifest ?? settings?.settings_json?.wizardManifest;\n if (manifestData && typeof manifestData === 'object') {\n existingManifest = manifestData as WizardManifest;\n }\n }\n } catch {\n // Manifest read failure is non-fatal \u2014 preview still works without it\n }\n\n // Build agent diff\n const existingCeo = Array.isArray(existingAgents)\n ? existingAgents.find((a: any) => a?.role === 'ceo' && a?.status !== 'terminated')\n : null;\n\n const existingByTemplateRole = new Map<string, any>();\n if (Array.isArray(existingAgents)) {\n for (const a of existingAgents) {\n const tr = a?.metadata?.templateRole;\n if (tr && a?.status !== 'terminated' && a?.role !== 'ceo') {\n existingByTemplateRole.set(tr, a);\n }\n }\n }\n\n const agents: { role: string; title: string; action: string }[] = [];\n\n // CEO always present \u2014 update if exists, hire if not\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n agents.push({\n role: 'ceo',\n title: existingCeo?.title || ceoTitle,\n action: existingCeo ? 'update' : 'hire',\n });\n\n // Team roles: hire or update\n for (const roleName of teamRoles) {\n const roleTemplate = roleTemplateByName.get(roleName) || {};\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(roleName);\n const existing = existingByTemplateRole.get(roleName);\n agents.push({\n role: roleName,\n title: roleTitle,\n action: existing ? 'update' : 'hire',\n });\n }\n\n // Retire: existing templateRole agents not in the new selection.\n // Use the manifest roles list when available \u2014 it records which roles\n // the wizard originally provisioned, so we can distinguish \"was in the\n // wizard's last run\" from \"manually added by a human\" (which we should\n // never retire without explicit user consent).\n const selectedRoleSet = new Set(allRoles);\n const manifestRoleSet = existingManifest?.roles ? new Set(existingManifest.roles) : null;\n for (const [tr, agent] of existingByTemplateRole.entries()) {\n if (!selectedRoleSet.has(tr)) {\n // If we have a manifest and this role was NOT in it, skip retirement \u2014\n // it was added outside the wizard and shouldn't be auto-retired.\n if (manifestRoleSet && !manifestRoleSet.has(tr)) {\n continue;\n }\n const roleTemplate = roleTemplateByName.get(tr) || {};\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(tr);\n agents.push({\n role: tr,\n title: agent?.title || roleTitle,\n action: 'retire',\n });\n }\n }\n\n // Build routine diff \u2014 match by title (same as syncExistingCompanyRoutines)\n const existingRoutineByTitle = new Map<string, any>();\n if (Array.isArray(existingRoutines)) {\n for (const r of existingRoutines) {\n const title = routineTemplateTitle(r);\n if (title) existingRoutineByTitle.set(title.toLowerCase(), r);\n }\n }\n\n const plannedRoutines = [\n ...(assembleResult.initialRoutines ?? []),\n ...(presetBootstrapData.routines ?? []),\n ];\n // Deduplicate routines by title\n const seenRoutineTitles = new Set<string>();\n const routines: { title: string; action: string; assignTo?: string }[] = [];\n for (const routine of plannedRoutines) {\n const title = routineTemplateTitle(routine);\n if (!title) continue;\n const key = title.toLowerCase();\n if (seenRoutineTitles.has(key)) continue;\n seenRoutineTitles.add(key);\n const existing = existingRoutineByTitle.get(key);\n routines.push({\n title,\n action: existing ? 'update' : 'create',\n assignTo: routine.assignTo || undefined,\n });\n }\n\n // Collect desiredSkillsPreserved from existing agents\n const desiredSkillsPreserved: { agentId: string; agentName: string; skills: string[] }[] =\n [];\n if (Array.isArray(existingAgents)) {\n for (const a of existingAgents) {\n if (\n a?.adapterConfig &&\n typeof a.adapterConfig === 'object' &&\n 'paperclipSkillSync' in (a.adapterConfig as Record<string, unknown>)\n ) {\n const sync = (a.adapterConfig as Record<string, unknown>).paperclipSkillSync;\n if (\n sync &&\n typeof sync === 'object' &&\n 'desiredSkills' in (sync as Record<string, unknown>)\n ) {\n const skills = (sync as Record<string, unknown>).desiredSkills;\n if (Array.isArray(skills) && skills.length > 0) {\n desiredSkillsPreserved.push({\n agentId: a.id,\n agentName: a.title || a.name || a.id,\n skills: skills as string[],\n });\n }\n }\n }\n }\n }\n\n // Clean up temp dir\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n tmpDir = undefined;\n\n return {\n diff: {\n companyId: existingCompanyId,\n companyName: company?.name || companyName,\n agents,\n routines,\n desiredSkillsPreserved,\n plannedFiles,\n existingManifest,\n },\n };\n } catch (err) {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n return { error: err instanceof Error ? err.message : String(err) };\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 try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n await connectSharedClient(cfg);\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // List companies \u2014 populates the \"Update existing company\" dropdown so the user\n // picks from a list instead of pasting a UUID. Returns { companies } or { error }.\n ctx.actions.register('list-companies', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const client = await connectSharedClient(cfg);\n const companies = await client.listCompanies();\n const normalized = (Array.isArray(companies) ? companies : [])\n .filter((c: any) => c && typeof c.id === 'string')\n .map((c: any) => ({\n id: c.id as string,\n name: typeof c.name === 'string' ? c.name : '',\n description: typeof c.description === 'string' ? c.description : '',\n }));\n return { companies: normalized };\n } catch (err) {\n return { 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 // Poll mode: return the status of a previously started async job.\n // Each poll returns immediately, so it never approaches the 30s RPC timeout.\n if (params.mode === 'poll') {\n const jobId = typeof params.jobId === 'string' ? params.jobId : '';\n const job = jobId ? aiChatJobs.get(jobId) : undefined;\n if (!job) {\n return {\n text: '',\n status: 'error',\n error: 'Unknown or expired generation job. Please retry.',\n };\n }\n if (job.status === 'pending') return { status: 'pending' };\n // Terminal state \u2014 hand it back and free the slot.\n aiChatJobs.delete(jobId);\n if (job.status === 'error') return { text: '', status: 'error', error: job.error };\n return { text: job.text, status: 'done' };\n }\n\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const apiKey = await resolveAnthropicApiKey(ctx, 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 // Start mode: kick off generation in the background and return a job id.\n // The UI polls with { mode: 'poll', jobId }, so a slow generation (e.g. the\n // wizard's final config, which can take well over 30s) never trips the host's\n // 30s performAction RPC timeout.\n if (params.mode === 'start') {\n sweepAiChatJobs();\n const jobId = `aichat-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n aiChatJobs.set(jobId, { status: 'pending', createdAt: Date.now() });\n void callAnthropic(apiKey, params.system, params.messages).then((result) => {\n aiChatJobs.set(\n jobId,\n result.error\n ? { status: 'error', error: result.error, createdAt: Date.now() }\n : { status: 'done', text: result.text, createdAt: Date.now() },\n );\n });\n return { jobId, status: 'pending' };\n }\n\n // Synchronous mode (default): short interview turns that finish well within 30s.\n return await callAnthropic(apiKey, params.system, params.messages);\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 const apiKey = await resolveAnthropicApiKey(ctx, cfg.anthropicApiKey);\n if (!apiKey) {\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 paperclipEmail = cfg.paperclipEmail || '';\n const enableIsolatedWorktrees = await resolveEnableIsolatedWorkspacesFromInstance(cfg, log);\n const enableEnrichedPersonas = 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 effectiveModules = resolveEffectiveModules(\n selectedPreset,\n allModules,\n (params.selectedModules as string[]) ?? [],\n );\n const goals = collectGoals(selectedPreset, allModules, new Set(effectiveModules));\n const presetBootstrapData = collectPresetBootstrapData(selectedPreset);\n\n // Step 2: Connect to Paperclip API early to resolve user identity for git commits.\n // Reuses the session established by the preceding check-auth / preview actions\n // (cached in-process), so an authenticated instance isn't hit with repeated\n // sign-ins that trip its rate limiter (429).\n log('Connecting to Paperclip API...');\n const client = await connectSharedClient(cfg);\n log('Connected.');\n\n // Resolve git identity from board session (fall back to Paperclip Bootstrap)\n const gitIdentity = {\n name: client.boardUserName || null,\n email: client.boardUserEmail || paperclipEmail || null,\n };\n\n // Step 3: Assemble files on disk\n const outputDir = resolveWritableCompaniesDir(cfg, log);\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 const userIssues: any[] = Array.isArray(params.issues) ? (params.issues as any[]) : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n companyDescription,\n userGoals,\n userProjects,\n moduleNames: effectiveModules,\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n userIssues,\n presetIssues: presetBootstrapData.issues,\n presetRoutines: presetBootstrapData.routines,\n presetLabels: presetBootstrapData.labels,\n enableIsolatedWorktrees,\n enableEnrichedPersonas,\n gitUserName: gitIdentity.name || undefined,\n gitUserEmail: gitIdentity.email || undefined,\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 prepareLocalProjectWorkspace(assembleResult.mainProject, companyDir, log, gitIdentity);\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 4: 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 log('Keeping company hire policy as configured (board approvals may be required).');\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n const teamAgentIds: Record<string, string> = {};\n let boardOperationsIssue: { id: string; identifier?: string } | null = null;\n let hiringPlanIssue: { id: string; identifier?: string } | null = null;\n let bootstrapIssue: { id: string; identifier?: string };\n // Hoisted so the post-provisioning manifest-save and governance-cleanup\n // blocks (which run after this try/catch on the success path) can read\n // them. The catch block re-throws on failure, so these only need to be\n // valid on the success path.\n let allRoleNames: string[] = [];\n let existingManifest: WizardManifest | null = null;\n let existingByTemplateRole = new Map<string, any>();\n let routines: any[] = [];\n try {\n allRoleNames = [...(assembleResult.allRoles ?? [])].filter(Boolean).sort();\n\n // Read the wizard manifest (best-effort) for retired-role detection\n if (existingCompanyId) {\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const settings = await client._fetch(\n `/api/plugins/${pluginId}/company-settings/${companyId}`,\n );\n const manifestData =\n settings?.settingsJson?.wizardManifest ?? settings?.settings_json?.wizardManifest;\n if (manifestData && typeof manifestData === 'object') {\n existingManifest = manifestData as WizardManifest;\n }\n }\n } catch {\n // Manifest read failure is non-fatal \u2014 provisioning still proceeds\n }\n }\n\n const repositoryMode = userProjects.some(\n (project) => project?.repoUrl || project?.workspace?.sourceType === 'git_repo',\n )\n ? 'existing git repository'\n : 'fresh local repository';\n const approvalMode =\n 'board approval preserved; /agent-hires may create pending approvals';\n\n log('Creating board operations and hiring plan records...');\n const createdBoardOperationsIssue = await client.createIssue(companyId, {\n title: 'Board Operations',\n description: 'Standing issue for board decision log and operations tracking.',\n // These governance records are created before the CEO is guaranteed to exist.\n // Paperclip requires an assignee for in_progress issues, so keep them unassigned\n // and actionable later rather than failing existing-company provisioning.\n status: 'todo',\n priority: 'medium',\n });\n boardOperationsIssue = createdBoardOperationsIssue;\n await client.putIssueDocument(createdBoardOperationsIssue.id, 'decision-log', {\n title: 'Decision Log',\n format: 'markdown',\n body: buildDecisionLogBody({\n companyName,\n companyDescription,\n preset: selectedPreset?.name,\n moduleNames: effectiveModules,\n roles: allRoleNames,\n repositoryMode,\n approvalMode,\n }),\n });\n log(\n `\u2713 Board Operations issue created${createdBoardOperationsIssue.identifier ? `: ${createdBoardOperationsIssue.identifier}` : ''}`,\n );\n\n const createdHiringPlanIssue = await client.createIssue(companyId, {\n title: 'Hiring Plan',\n description: 'Develop and execute the governed team hiring plan.',\n status: 'todo',\n priority: 'high',\n });\n hiringPlanIssue = createdHiringPlanIssue;\n await client.putIssueDocument(createdHiringPlanIssue.id, 'hiring-plan', {\n title: 'Hiring Plan',\n format: 'markdown',\n body: buildHiringPlanBody({\n companyName,\n roles: allRoleNames,\n moduleNames: effectiveModules,\n }),\n });\n log(\n `\u2713 Hiring Plan issue created${createdHiringPlanIssue.identifier ? `: ${createdHiringPlanIssue.identifier}` : ''}`,\n );\n\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 =\n 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 };\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: preserveExistingSkillSync(existingCeo, 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 ...(boardOperationsIssue?.id ? { sourceIssueId: boardOperationsIssue.id } : {}),\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 ...(boardOperationsIssue?.id ? { sourceIssueId: boardOperationsIssue.id } : {}),\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 // The Board Operations (#1) and Hiring Plan (#2) governance issues are created\n // before the CEO exists (so they can't be assigned at creation time). Now that\n // the CEO is available, assign both to it so they are actionable rather than\n // orphaned \u2014 the CEO owns the decision log and reviews the provisioned team\n // against the hiring plan. Best-effort: don't fail provisioning over this.\n for (const govIssue of [\n { issue: boardOperationsIssue, label: 'Board Operations' },\n { issue: hiringPlanIssue, label: 'Hiring Plan' },\n ]) {\n if (!govIssue.issue?.id) continue;\n try {\n await client.updateIssue(govIssue.issue.id, { assigneeAgentId: ceoAgentId });\n log(`\u2713 Assigned ${govIssue.label} issue to CEO`);\n } catch (assignErr) {\n log(\n `\u26A0 Could not assign ${govIssue.label} issue to CEO: ${assignErr instanceof Error ? assignErr.message : String(assignErr)}`,\n );\n }\n }\n\n // Step 6b: Create (or reuse) the rest of the team, each with its FULL\n // instructions bundle. The wizard assembles a complete per-role workspace\n // (AGENTS.md + HEARTBEAT/SOUL/TOOLS + skills), and passing it as\n // `instructionsBundle` makes the host materialize a self-contained managed\n // bundle in a single createAgent call \u2014 because buildCeoAdapterConfig sets no\n // instructionsFilePath, the host materializes the passed files instead of\n // skipping them. Previously these agents were created by the CEO during\n // bootstrap with only an instructionsFilePath, leaving each non-CEO agent with\n // a bare AGENTS.md that referenced external, fragile absolute paths.\n const teamRoles = [...(assembleResult.allRoles ?? [])].filter(\n (r: string) => r && r !== 'ceo',\n );\n\n existingByTemplateRole = new Map<string, any>();\n if (existingCompanyId && teamRoles.length > 0) {\n const agents = await client.listAgents(companyId);\n if (Array.isArray(agents)) {\n for (const a of agents) {\n const tr = a?.metadata?.templateRole;\n if (tr && a?.status !== 'terminated' && a?.role !== 'ceo') {\n existingByTemplateRole.set(tr, a);\n }\n }\n }\n }\n\n for (const roleName of teamRoles) {\n const roleTemplate = roleTemplateByName.get(roleName) || {};\n const paperclipRole =\n typeof roleTemplate.paperclipRole === 'string' && roleTemplate.paperclipRole.trim()\n ? roleTemplate.paperclipRole.trim()\n : 'general';\n const roleTitle =\n typeof roleTemplate.title === 'string' && roleTemplate.title.trim()\n ? roleTemplate.title.trim()\n : formatRoleName(roleName);\n const roleDescription =\n typeof roleTemplate.description === 'string' && roleTemplate.description.trim()\n ? roleTemplate.description.trim()\n : undefined;\n const roleMetadata = {\n templateRole: roleName,\n ...(roleDescription ? { description: roleDescription } : {}),\n };\n // Worker agents have heartbeat DISABLED \u2014 Paperclip wakes them on\n // assignment and their routines drive scheduled work. Enabling always-on\n // heartbeats for the whole team at once overloaded the server with\n // concurrent/queued runs.\n const roleRuntimeConfig = buildWorkerAgentRuntimeConfig();\n const roleAdapterConfig: Record<string, unknown> = buildWorkerAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get(roleName) ?? {},\n });\n const roleInstructionsDir = path.join(companyDir, 'agents', roleName);\n const roleInstructionFiles = collectInstructionFiles(roleInstructionsDir);\n const roleInstructionsBundle =\n Object.keys(roleInstructionFiles).length > 0\n ? { entryFile: 'AGENTS.md', files: roleInstructionFiles }\n : undefined;\n\n const existingAgent = existingByTemplateRole.get(roleName);\n if (existingAgent?.id) {\n try {\n await client.updateAgent(existingAgent.id, {\n adapterType,\n adapterConfig: preserveExistingSkillSync(existingAgent, roleAdapterConfig),\n runtimeConfig: roleRuntimeConfig,\n metadata: { ...(existingAgent.metadata ?? {}), ...roleMetadata },\n ...(!existingAgent.title && roleTitle ? { title: roleTitle } : {}),\n ...(!existingAgent.capabilities && roleDescription\n ? { capabilities: roleDescription }\n : {}),\n });\n log(`\u2713 Reusing ${roleTitle} (${existingAgent.id})`);\n } catch (err) {\n log(\n `\u26A0 Could not update ${roleTitle}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n teamAgentIds[roleName] = existingAgent.id;\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: existingAgent.id,\n sourceDir: roleInstructionsDir,\n entryFile: 'AGENTS.md',\n log,\n });\n log(`\u2713 Synced ${roleTitle} instructions from latest templates`);\n continue;\n }\n\n const roleAgent = await client.createAgent(companyId, {\n name: roleTitle,\n role: paperclipRole,\n title: roleTitle,\n ...(roleDescription ? { capabilities: roleDescription } : {}),\n metadata: roleMetadata,\n reportsTo: ceoAgentId,\n adapterType,\n adapterConfig: roleAdapterConfig,\n instructionsBundle: roleInstructionsBundle,\n runtimeConfig: roleRuntimeConfig,\n ...(hiringPlanIssue?.id ? { sourceIssueId: hiringPlanIssue.id } : {}),\n });\n teamAgentIds[roleName] = roleAgent.id;\n log(`\u2713 ${roleTitle} created (${roleAgent.id})`);\n if (roleAgent?._pendingApprovalId) {\n log(\n `\u26A0 ${roleTitle} hire pending approval: ${roleAgent._pendingApprovalId}. Approve it in the board.`,\n );\n }\n }\n\n // Step 6c: Create or sync the scheduled routines directly. Paperclip only lets an\n // agent create routines assigned to ITSELF, so a CEO following the bootstrap\n // cannot create routines owned by other agents (backlog grooming, auto-assign,\n // \u2026) \u2014 that previously blocked the bootstrap issue. The wizard connects with\n // board authority, so it can create or update routines for any agent. Existing\n // company runs match by title and patch routines/triggers instead of creating\n // duplicates; this is the lightweight \"apply latest templates\" path.\n routines = Array.isArray(assembleResult.initialRoutines)\n ? assembleResult.initialRoutines\n : [];\n\n if (!existingCompanyId) {\n // Pre-create the main project so every routine can be linked to it.\n // The CEO creates projects during bootstrap, but it can only edit\n // routines assigned to ITSELF \u2014 routines owned by other agents (PM,\n // etc.) would otherwise stay project-less forever. The wizard runs\n // with board authority, so it can create the project up front and\n // attach all routines to it. Best-effort: if it fails, routines are\n // still created (project-less) rather than blocking provisioning.\n let mainProjectId: string | undefined;\n const mainProject = assembleResult.mainProject;\n if (routines.length > 0 && mainProject?.name) {\n try {\n const createdProject = await client.createProject(companyId, {\n name: mainProject.name,\n description: mainProject.description,\n workspace: mainProject.workspace,\n executionWorkspacePolicy: mainProject.executionWorkspacePolicy,\n });\n mainProjectId = createdProject?.id;\n log(\n `\u2713 Main project \"${mainProject.name}\" created${mainProjectId ? ` (${mainProjectId})` : ' (no id returned)'}`,\n );\n } catch (err) {\n log(\n `\u26A0 Could not create main project \"${mainProject.name}\": ${err instanceof Error ? err.message : String(err)}. Routines will be created without a project.`,\n );\n }\n }\n\n for (const routine of routines) {\n const title =\n typeof routine.title === 'string' && routine.title.trim()\n ? routine.title.trim()\n : typeof routine.name === 'string'\n ? routine.name.trim()\n : '';\n if (!title) continue;\n const role = routine.assignTo;\n const assigneeAgentId =\n !role || role === 'ceo' ? ceoAgentId : (teamAgentIds[role] ?? ceoAgentId);\n try {\n const createdRoutine = await client.createRoutine(companyId, {\n title,\n description: routine.description,\n assigneeAgentId,\n projectId: mainProjectId,\n priority: routine.priority || 'medium',\n concurrencyPolicy: routine.concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: routine.catchUpPolicy || 'skip_missed',\n });\n if (routine.schedule && createdRoutine?.id) {\n await client.createRoutineTrigger(createdRoutine.id, {\n kind: 'schedule',\n cronExpression: routine.schedule,\n timezone: 'UTC',\n });\n }\n log(\n `\u2713 Routine \"${title}\" created${routine.schedule ? ` (${routine.schedule})` : ''}`,\n );\n } catch (err) {\n log(\n `\u26A0 Could not create routine \"${title}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n } else {\n await syncExistingCompanyRoutines({\n client,\n companyId,\n routines,\n ceoAgentId,\n teamAgentIds,\n log,\n });\n }\n\n // Step 7: Create bootstrap issue.\n // Use the HTTP client instead of ctx.issues here because the wizard may be\n // launched from company A while provisioning a newly-created/reused company B.\n // Paperclip master correctly scopes SDK host calls to the launching company,\n // so ctx.issues.create({ companyId: B }) is denied when A !== B.\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 client.createIssue(companyId, {\n title: `Bootstrap ${company.name || companyName}`,\n description: bootstrapDescription,\n assigneeAgentId: ceoAgentId,\n status: 'todo',\n });\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 and initial team hire requests are ready. Approve any pending hires, then trigger the CEO heartbeat to continue setup.',\n );\n\n const issueIds = [boardOperationsIssue?.id, hiringPlanIssue?.id, bootstrapIssue!.id].filter(\n Boolean,\n );\n\n // Persist wizard manifest so future updates can diff against it\n try {\n const pluginId = await findPluginId(client);\n if (pluginId) {\n const wizardManifest = buildWizardManifest({\n presetName: selectedPreset?.name ?? null,\n selectedModules: effectiveModules,\n selectedRoleNames: allRoleNames,\n assembleResult,\n initialRoutines: routines,\n });\n await client._fetch(`/api/plugins/${pluginId}/company-settings/${companyId}`, {\n method: 'PUT',\n body: JSON.stringify({ settingsJson: { wizardManifest } }),\n });\n log('\u2713 Wizard manifest saved');\n } else {\n log('\u26A0 Could not find plugin ID \u2014 manifest not saved');\n }\n } catch (manifestErr) {\n log(\n `\u26A0 Could not save wizard manifest: ${manifestErr instanceof Error ? manifestErr.message : String(manifestErr)}`,\n );\n }\n\n // Governance cleanup: create review issues for retired template roles\n if (existingCompanyId && existingManifest && Array.isArray(existingManifest.roles)) {\n const newRoleSet = new Set(allRoleNames);\n const retiredRoles = existingManifest.roles.filter(\n (role: string) => !newRoleSet.has(role),\n );\n for (const role of retiredRoles) {\n try {\n const agentData = existingByTemplateRole.get(role);\n const agentInfo = agentData\n ? `**Agent ID:** ${agentData.id}\\n**Agent name:** ${agentData.title || agentData.name || agentData.id}`\n : '_No active agent found for this role._';\n const issueTitle = `Review retired template role: ${role}`;\n const issueDescription = [\n `## Retired Role: \\`${role}\\``,\n '',\n 'This template role was removed from the company configuration during an update.',\n 'The agent is still active but no longer managed by the wizard.',\n '',\n '### Cleanup Checklist',\n '',\n \"- [ ] Review the agent's current work and open issues\",\n '- [ ] Reassign any in-progress issues to other team members',\n \"- [ ] Consider pausing the agent's heartbeat\",\n '- [ ] Remove module-specific skill files if applicable',\n '- [ ] Consider terminating the agent if no longer needed',\n '',\n agentInfo,\n ].join('\\n');\n const createdIssue = await client.createIssue(companyId, {\n title: issueTitle,\n description: issueDescription,\n priority: 'low',\n status: 'todo',\n ...(boardOperationsIssue?.id\n ? { projectId: boardOperationsIssue.id, goalId: boardOperationsIssue.id }\n : {}),\n });\n log(\n `\u2713 Retired-role review issue created for \"${role}\": ${createdIssue.identifier || createdIssue.id}`,\n );\n } catch (retiredRoleErr) {\n log(\n `\u26A0 Could not create retired-role review issue for \"${role}\": ${retiredRoleErr instanceof Error ? retiredRoleErr.message : String(retiredRoleErr)}`,\n );\n }\n }\n }\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl: client.baseUrl,\n agentIds: { ceo: ceoAgentId!, ...teamAgentIds },\n issueIds,\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\n// Enrichment fragments are persona additions (domain lenses, done-criteria,\n// output bars). They are never emitted as standalone files \u2014 assembly appends them\n// into SOUL.md / HEARTBEAT.md / skill files for roles/modules that provide them.\nfunction isEnrichmentFragment(name) {\n return name === 'LENSES.md' || name === 'DONE.md' || name.endsWith('.bar.md');\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\nfunction normalizeExecutionBaseRef(ref, fallbackRef) {\n const candidates = [ref, fallbackRef].filter(\n (value) => typeof value === 'string' && value.trim(),\n );\n const selected = candidates.length > 0 ? String(candidates[0]).trim() : '';\n return selected || null;\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 {Array} [opts.presetIssues] - Initial issues from the selected preset\n * @param {Array} [opts.presetRoutines] - Initial routines from the selected preset\n * @param {Array} [opts.presetLabels] - Explicit labels from the selected preset\n * @param {boolean} [opts.enableIsolatedWorktrees] - Admin setting: when true, external-repo projects keep their isolated git_worktree executionWorkspacePolicy; when false (default), agents share the project workspace. Fresh local repos never use isolated worktrees regardless.\n * @param {boolean} [opts.enableEnrichedPersonas] - Internal escape hatch. Defaults true: append role LENSES.md to SOUL.md, role DONE.md to HEARTBEAT.md, and primary-skill <skill>.bar.md output bars when fragments exist.\n * @param {string} [opts.gitUserName] - Git user name for initial commit (falls back to \"Paperclip Bootstrap\")\n * @param {string} [opts.gitUserEmail] - Git user email for initial commit (falls back to \"bootstrap@paperclip.local\")\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>, mainProject: {name: string, description: string, workspace: object}|null}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n userIssues = [],\n presetIssues = [],\n presetRoutines = [],\n presetLabels = [],\n enableIsolatedWorktrees = false,\n enableEnrichedPersonas = true,\n gitUserName,\n gitUserEmail,\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 // Role roots are flat \u2014 enrichment fragments (LENSES.md/DONE.md/*.bar.md)\n // live at the role root, not in subdirs, so copyDir need only skip metadata.\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json') && !isEnrichmentFragment(entry.name)) {\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 if (isEnrichmentFragment(entry.name)) 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 = Array.isArray(presetIssues)\n ? presetIssues.map((issue) => ({ ...issue, source: issue.source || 'preset' }))\n : [];\n const initialRoutines = Array.isArray(presetRoutines)\n ? presetRoutines.map((routine) => ({ ...routine, source: routine.source || 'preset' }))\n : [];\n const explicitBootstrapLabels = Array.isArray(presetLabels) ? [...presetLabels] : [];\n const roleAdapterOverrides = new Map(); // role name \u2192 merged adapter overrides (role.meta.json baseline + modules)\n // Seed each role's adapter baseline from its role.meta.json so the per-role thinking\n // level (e.g. \"auto\") reaches provisioning \u2014 module adapterOverrides merge on top\n // below (module wins). Without this seed, only module overrides were propagated and\n // every worker fell back to the flat DEFAULT_WORKER_THINKING_LEVEL.\n for (const role of allRoles) {\n const roleMeta = roleMetaByName.get(role) || {};\n const adapter = roleMeta && typeof roleMeta.adapter === 'object' ? roleMeta.adapter : {};\n const thinkingLevel =\n (typeof adapter.thinkingLevel === 'string' && adapter.thinkingLevel.trim()) ||\n (typeof adapter.modelReasoningEffort === 'string' && adapter.modelReasoningEffort.trim()) ||\n (typeof adapter.reasoningEffort === 'string' && adapter.reasoningEffort.trim()) ||\n (typeof adapter.effort === 'string' && adapter.effort.trim()) ||\n '';\n if (thinkingLevel) {\n roleAdapterOverrides.set(role, { thinkingLevel });\n }\n }\n // doc filename \u2192 Set of roles it is relevant to. A doc whose owning module has no\n // role association (company-wide) is marked with the '*' sentinel and goes to all\n // agents. Used so each agent only references the docs that matter to its role.\n const docRoleMap = new Map();\n const addDocRoles = (docName, roles) => {\n const set = docRoleMap.get(docName) ?? new Set();\n for (const r of roles) set.add(r);\n docRoleMap.set(docName, set);\n };\n\n // Track issue titles already queued so module issues don't duplicate a curated\n // preset issue (or an earlier module's issue). Preset issues are seeded first, so\n // the richer preset version always wins over a generic module issue of the same name.\n const normalizeIssueTitle = (title) =>\n String(title || '')\n .trim()\n .toLowerCase();\n const seenIssueTitles = new Set(\n initialIssues.map((issue) => normalizeIssueTitle(issue.title)).filter(Boolean),\n );\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 // Helper: resolve a declared reviewGate to roles present in the team. Reviewers\n // become ordered `review` stages; the approver becomes the final `approval`\n // stage. Roles not present in the team are dropped (no CEO fallback) \u2014 a review\n // gate references concrete reviewer roles, and a missing one means that gate\n // simply has one fewer stage.\n const resolveReviewGate = (reviewGate, assignTo) => {\n if (!reviewGate || typeof reviewGate !== 'object') return null;\n\n const reviewersRaw = Array.isArray(reviewGate.reviewers) ? reviewGate.reviewers : [];\n const reviewers = [];\n const seen = new Set();\n for (const role of reviewersRaw) {\n if (typeof role !== 'string') continue;\n if (!allRoles.has(role)) continue;\n if (seen.has(role)) continue;\n seen.add(role);\n reviewers.push(role);\n }\n\n const approver =\n typeof reviewGate.approver === 'string' && allRoles.has(reviewGate.approver)\n ? reviewGate.approver\n : undefined;\n\n // The merge gate is the non-author agent who lands the PR. It renders as a\n // final `approval` stage so the merge owner is woken *last* \u2014 after the\n // approver \u2014 to perform the merge. Without it, the approver's verdict\n // auto-closes the issue and the PR is never merged.\n //\n // It must NOT be the issue's executor (assignTo): Paperclip excludes the\n // original executor from every review/approval stage to prevent self-review,\n // so a stage whose only participant is the author has no eligible participant\n // and the issue stalls in `in_review` (422 No eligible approval participant).\n // The engineer therefore can never be their own merge gate.\n //\n // We resolve the merge gate ONLY from the explicitly configured\n // reviewGate.mergeGate role. If that role is absent from the team, or is the\n // issue's executor, there is no eligible non-author merge gate \u2014 return null\n // so the engineer takes the self-merge path (no executionPolicy stages). We\n // deliberately do NOT fall back to another role: the documented contract is\n // \"no Code Reviewer \u2192 PR-Self-Merge\", not \"substitute another role as a\n // staged gate\". A substituted gate would render an executionPolicy sketch the\n // engineer is explicitly told never to set, and a reviewer-doubling-as-gate\n // minimal team still stalls whenever the only candidate is the author.\n let mergeGate =\n typeof reviewGate.mergeGate === 'string' && allRoles.has(reviewGate.mergeGate)\n ? reviewGate.mergeGate\n : undefined;\n if (mergeGate === assignTo) mergeGate = undefined;\n\n // Avoid accidentally requiring the same role twice (e.g. reviewer + approver).\n if (approver) {\n const idx = reviewers.indexOf(approver);\n if (idx !== -1) reviewers.splice(idx, 1);\n }\n\n // Without a resolvable non-author merge gate, render no executionPolicy at\n // all \u2014 the self-merge path applies. Rendering a gate with reviewers/approver\n // but no merge gate would let the last approval stage auto-close the issue\n // with the PR still open on GitHub.\n if (!mergeGate) return null;\n return { reviewers, approver, mergeGate };\n };\n\n // Render a resolved reviewGate as an executionPolicy sketch for BOOTSTRAP.md.\n // The CEO/Engineer resolves each role name to its agentId when setting the\n // policy on the issue (same role\u2192agentId resolution as `assigneeAgentId`).\n // The merge-gate stage carries the hard precondition: CI-green when the ci-cd\n // module is selected, otherwise running the tests/build and pasting the output.\n const hasCi = moduleNames.includes('ci-cd');\n const renderReviewGate = (gate) => {\n const stages = [];\n for (const role of gate.reviewers) {\n stages.push(` - stage ${stages.length + 1} (review) \u2192 assign ${JSON.stringify(role)}`);\n }\n if (gate.approver) {\n stages.push(\n ` - stage ${stages.length + 1} (approval) \u2192 assign ${JSON.stringify(gate.approver)}`,\n );\n }\n if (gate.mergeGate) {\n const gatePrecondition = hasCi\n ? 'CI must be green before merge'\n : 'no CI configured \u2014 run the test suite/build and paste the output before merge';\n stages.push(\n ` - stage ${stages.length + 1} (approval) \u2192 assign ${JSON.stringify(gate.mergeGate)} \u2014 merge gate (non-author): ${gatePrecondition}; merge the PR, then record approved to close`,\n );\n }\n return (\n `- **executionPolicy** (set when creating this issue; resolve each role to its agentId):\\n` +\n `${stages.join('\\n')}\\n` +\n ` - never assign the issue's executor/author to any stage \u2014 Paperclip excludes the original executor, so a self-stage has no eligible participant and the issue stalls (422); the merge gate must be a non-author\\n` +\n ` - every verdict must cite executed verification (commands + results); \"looks good\" without evidence is not a valid verdict\\n\\n`\n );\n };\n\n // Foundation issues are explicit setup gates (repository/bootstrap scaffolding)\n // that must be created before domain implementation starts. Ordinary module and\n // preset issues are generic project scaffolding (\"Define company vision\", \"Add\n // linter\"), so user/AI-specified domain issues still lead those generic items.\n const isFoundationIssue = (issue) =>\n issue?.bootstrapPhase === 'foundation' ||\n issue?.phase === 'foundation' ||\n issue?.bootstrapOrder === 'foundation' ||\n issue?.foundation === true;\n\n // Seed user/AI-specified domain issues near the front of the backlog. Explicit\n // foundation issues are allowed to stay ahead of them; generic module/preset\n // issues remain behind them.\n const resolvedUserIssues = [];\n for (const issue of Array.isArray(userIssues) ? userIssues : []) {\n if (!issue || !issue.title) continue;\n const titleKey = normalizeIssueTitle(issue.title);\n if (titleKey && seenIssueTitles.has(titleKey)) continue;\n if (titleKey) seenIssueTitles.add(titleKey);\n resolvedUserIssues.push({\n ...issue,\n assignTo: resolveAssignee(issue.assignTo, null),\n source: 'user',\n });\n }\n initialIssues.unshift(...resolvedUserIssues);\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 if (Array.isArray(moduleJson?.labels)) {\n explicitBootstrapLabels.push(...moduleJson.labels);\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 const titleKey = normalizeIssueTitle(issue.title);\n if (titleKey && seenIssueTitles.has(titleKey)) {\n onProgress(`\u25CB issue \"${issue.title}\" (already provided by preset or earlier module)`);\n continue;\n }\n if (titleKey) seenIssueTitles.add(titleKey);\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. Track which roles each doc is relevant to (the roles this\n // module touches) so agents only reference the docs that matter to them.\n const docsDir = join(moduleDir, 'docs');\n if (await exists(docsDir)) {\n await copyDir(docsDir, join(companyDir, 'docs'));\n const moduleRoles = new Set();\n for (const cap of moduleJson?.capabilities ?? []) {\n for (const owner of cap.owners ?? []) if (allRoles.has(owner)) moduleRoles.add(owner);\n }\n for (const issue of moduleIssues) {\n if (issue.assignTo && allRoles.has(issue.assignTo)) moduleRoles.add(issue.assignTo);\n }\n for (const routine of moduleJson?.routines ?? []) {\n if (routine.assignTo && allRoles.has(routine.assignTo)) moduleRoles.add(routine.assignTo);\n }\n for (const r of moduleJson?.activatesWithRoles ?? []) if (allRoles.has(r)) moduleRoles.add(r);\n // No specific role association \u2192 treat as company-wide (visible to everyone).\n const rolesForDocs = moduleRoles.size > 0 ? moduleRoles : new Set(['*']);\n const docs = await readdir(docsDir);\n for (const doc of docs) {\n addDocRoles(doc, rolesForDocs);\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 const destFile = join(destSkillsDir, fileName);\n await copyFile(resolved.path, destFile);\n // Append a primary skill's output/review bar when present.\n let barApplied = false;\n if (enableEnrichedPersonas && label === 'primary') {\n const barFileName = fileName.replace(/\\.md$/, '.bar.md');\n const bar = await resolveSkillFile(roleName, barFileName);\n if (bar) {\n const barContent = await readFile(bar.path, 'utf-8');\n await appendToFile(destFile, '\\n' + barContent.trim() + '\\n');\n barApplied = true;\n }\n }\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 const barTag = barApplied ? ', output bar' : '';\n onProgress(\n `+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag}${barTag})`,\n );\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 if (skillFile.endsWith('.bar.md')) continue;\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 // 4b. Inject persona enrichments. Domain lenses \u2192 SOUL.md, done-criteria \u2192\n // HEARTBEAT.md. Fragments live at roles/<role>/LENSES.md and roles/<role>/DONE.md\n // and apply when enableEnrichedPersonas is on. Same gracefully-optimistic\n // pattern as skills: a missing fragment simply means no enrichment for that role.\n if (enableEnrichedPersonas) {\n for (const roleName of allRoles) {\n const lensesSrc = join(rolesDir, roleName, 'LENSES.md');\n const soulPath = join(companyDir, 'agents', roleName, 'SOUL.md');\n if ((await exists(lensesSrc)) && (await exists(soulPath))) {\n const lenses = await readFile(lensesSrc, 'utf-8');\n await appendToFile(soulPath, '\\n' + lenses.trim() + '\\n');\n onProgress(`+ agents/${roleName}/SOUL.md (domain lenses)`);\n }\n\n const doneSrc = join(rolesDir, roleName, 'DONE.md');\n const heartbeatPath = join(companyDir, 'agents', roleName, 'HEARTBEAT.md');\n if ((await exists(doneSrc)) && (await exists(heartbeatPath))) {\n const done = await readFile(doneSrc, 'utf-8');\n await appendToFile(heartbeatPath, '\\n' + done.trim() + '\\n');\n onProgress(`+ agents/${roleName}/HEARTBEAT.md (done criteria)`);\n }\n }\n }\n\n // 5. Add ROLE-RELEVANT shared doc references to each agent's AGENTS.md.\n // Each agent only references docs from modules that touch its role \u2014 a code\n // reviewer no longer gets the marketing/vision templates, etc. The CEO is the\n // coordinator, so it still sees every doc. Paths are RELATIVE to the agent's\n // home (its adapterConfig.cwd is the company dir), which keeps them valid even\n // if the company directory is renamed (e.g. collision-suffixed).\n const finalDocsDir = join(companyDir, 'docs');\n if (await exists(finalDocsDir)) {\n const docs = (await readdir(finalDocsDir)).sort();\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))) continue;\n\n const relevantDocs = docs.filter((doc) => {\n if (role.name === 'ceo') return true; // coordinator sees everything\n const roles = docRoleMap.get(doc);\n return !roles || roles.has('*') || roles.has(role.name);\n });\n if (relevantDocs.length === 0) continue;\n\n let docRefs =\n '\\n## Shared Documentation\\n\\nReference docs relevant to your role (paths are relative to your workspace home):\\n';\n for (const doc of relevantDocs) {\n docRefs += `\\nRead: \\`docs/${doc}\\`\\n`;\n }\n await appendToFile(agentsMd, docRefs);\n }\n }\n }\n\n // 5b. Resolve `$AGENT_HOME` references to absolute paths.\n //\n // Role templates and the generated skill references use `$AGENT_HOME/...` to\n // point at the agent's own files (HEARTBEAT.md, SOUL.md, TOOLS.md, skills/,\n // memory/, life/). At runtime Paperclip sets AGENT_HOME to a separate per-agent\n // workspace dir (<instanceRoot>/workspaces/<agentId>) that does NOT contain\n // these provisioned files, so the references would not resolve. The agent's\n // instructionsFilePath is the absolute companyDir/agents/<role>/AGENTS.md, and\n // its sibling files live alongside it \u2014 so we rewrite `$AGENT_HOME` to that\n // absolute directory, which resolves regardless of the agent's runtime cwd.\n const agentsBaseDirForSubst = join(companyDir, 'agents');\n if (await exists(agentsBaseDirForSubst)) {\n const agentRoleDirs = await readdir(agentsBaseDirForSubst, { withFileTypes: true });\n for (const roleDir of agentRoleDirs) {\n if (!roleDir.isDirectory()) continue;\n const absoluteAgentHome = join(agentsBaseDirForSubst, roleDir.name);\n const subst = async (dir) => {\n const entries = await readdir(dir, { withFileTypes: true });\n for (const entry of entries) {\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n await subst(full);\n } else if (entry.name.endsWith('.md')) {\n const content = await readFile(full, 'utf-8');\n if (content.includes('$AGENT_HOME')) {\n await writeFile(full, content.split('$AGENT_HOME').join(absoluteAgentHome));\n }\n }\n }\n };\n await subst(join(agentsBaseDirForSubst, roleDir.name));\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, explicitLabels = []) => {\n if (issues.length === 0 && explicitLabels.length === 0) return [];\n\n const labelsByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n for (const label of explicitLabels) {\n for (const parsedLabel of parseIssueLabels({ labels: [label] })) {\n labelsByName.set(parsedLabel.name, parsedLabel);\n }\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 if (!labelsByName.has(label.name)) {\n labelsByName.set(label.name, label);\n }\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 orderInitialIssuesForBootstrap = () => {\n const originalOrder = new Map(initialIssues.map((issue, index) => [issue, index]));\n const rank = (issue) => {\n if (isFoundationIssue(issue)) return 0;\n if (issue?.source === 'user') return 1;\n return 2;\n };\n initialIssues.sort((a, b) => rank(a) - rank(b) || originalOrder.get(a) - originalOrder.get(b));\n };\n\n orderInitialIssuesForBootstrap();\n\n const bootstrapLabels = buildBootstrapLabels(initialIssues, explicitBootstrapLabels);\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: redact obvious secrets before writing durable bootstrap/issue text ---\n const redactSecrets = (text) =>\n String(text || '')\n .replace(\n /\\b(GH_TOKEN|GITHUB_TOKEN|API_KEY|SECRET|TOKEN|PASSWORD|PASS|PRIVATE_KEY)\\s*=\\s*[^\\s`'\"<>]+/gi,\n '$1=[REDACTED]',\n )\n .replace(/\\bgh[pousr]_[A-Za-z0-9_]{20,}\\b/g, '[REDACTED]')\n .replace(/\\b(sk-[A-Za-z0-9_-]{20,}|xox[baprs]-[A-Za-z0-9-]{20,})\\b/g, '[REDACTED]');\n\n // --- Helper: escape # in description body ---\n const escapeBody = (text) =>\n redactSecrets(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 += `${escapeBody(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 bootstrap += `> **Goal focus:** keep the top-level goal outcome-first and product-first. Secondary constraints (compliance, security, accessibility, performance, tech stack) are quality bars unless the user explicitly made one of them the primary project. Seed issues should lead with core product capabilities and include constraints as acceptance criteria/risk notes, not let one side constraint dominate the backlog.\\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 normalizeProjectWorkspace = (proj) => {\n const explicitWorkspace =\n proj && typeof proj.workspace === 'object' && proj.workspace !== null ? proj.workspace : {};\n const sourceType =\n typeof explicitWorkspace.sourceType === 'string' && explicitWorkspace.sourceType.trim()\n ? explicitWorkspace.sourceType.trim()\n : typeof proj?.workspaceSourceType === 'string' && proj.workspaceSourceType.trim()\n ? proj.workspaceSourceType.trim()\n : typeof proj?.repoUrl === 'string' && proj.repoUrl.trim()\n ? 'git_repo'\n : 'local_path';\n const localCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n const workspace = {\n sourceType,\n ...explicitWorkspace,\n isPrimary: explicitWorkspace.isPrimary ?? proj?.isPrimary ?? true,\n };\n\n if (sourceType === 'git_repo') {\n const repoUrl = explicitWorkspace.repoUrl || proj?.repoUrl;\n const repoRef = explicitWorkspace.repoRef || proj?.repoRef || proj?.defaultRef;\n const defaultRef = explicitWorkspace.defaultRef || proj?.defaultRef || repoRef;\n if (repoUrl) workspace.repoUrl = repoUrl;\n if (repoRef) workspace.repoRef = repoRef;\n if (defaultRef) workspace.defaultRef = defaultRef;\n delete workspace.cwd;\n } else {\n if (!workspace.cwd) workspace.cwd = localCwd;\n // A bare `git init -b main` leaves an UNBORN main branch (no commits). The\n // isolated execution policy creates a worktree with `git worktree add \u2026 main`,\n // which fails until something makes the first commit \u2014 so the earliest issues\n // start as \"failed\" with a workspace error. Seed an initial empty commit so\n // `main` is a valid base ref immediately. Only the known-fragile default is\n // upgraded; a real custom setupCommand is left untouched.\n const trimmedSetup =\n typeof workspace.setupCommand === 'string' ? workspace.setupCommand.trim() : '';\n if (!trimmedSetup || trimmedSetup === 'git init -b main' || trimmedSetup === 'git init') {\n const gitName = gitUserName || 'Paperclip Bootstrap';\n const gitEmail = gitUserEmail || 'bootstrap@paperclip.local';\n workspace.setupCommand = `git init -b main && git -c user.email=${gitEmail} -c user.name='${gitName.replace(/'/g, \"'\\\\''\")}' commit --allow-empty -m 'chore: initialize repository'`;\n }\n }\n\n return workspace;\n };\n\n const renderWorkspaceMetaFields = (workspace) => {\n const orderedKeys = ['sourceType', 'cwd', 'repoUrl', 'repoRef', 'defaultRef', 'isPrimary'];\n const keys = [\n ...orderedKeys.filter((key) => workspace[key] !== undefined),\n ...Object.keys(workspace).filter((key) => !orderedKeys.includes(key)),\n ];\n return keys.map((key) => [`workspace.${key}`, String(workspace[key])]);\n };\n\n const formatWorkspaceObject = (workspace) => {\n const orderedKeys = ['sourceType', 'cwd', 'repoUrl', 'repoRef', 'defaultRef', 'isPrimary'];\n const entries = [\n ...orderedKeys\n .filter((key) => workspace[key] !== undefined)\n .map((key) => [key, workspace[key]]),\n ...Object.entries(workspace).filter(([key]) => !orderedKeys.includes(key)),\n ];\n const fields = entries\n .filter(([, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => {\n if (typeof value === 'boolean') return `${key}: ${value}`;\n return `${key}: \"${String(value)}\"`;\n });\n return `{ ${fields.join(', ')} }`;\n };\n\n // Isolated git worktrees are gated by the Paperclip instance experimental\n // setting. Repository selection alone must not enable isolation. When the\n // setting is on, project/worktree settings supply the base ref; we preserve it\n // verbatim instead of forcing main/master or origin/*.\n //\n // Freshly-created local repositories still never use them during bootstrap:\n // the repo and its base ref do not exist yet when the first agents wake, so\n // worktree creation fails and every early run errors out. Isolated worktrees\n // only make sense for existing external repos (sourceType \"git_repo\"), where\n // a real base ref already exists.\n const isFreshLocalRepo = (workspace) => workspace?.sourceType !== 'git_repo';\n\n const effectiveExecutionPolicy = (proj, workspace) => {\n const policy = proj?.executionWorkspacePolicy;\n const canUseIsolatedWorktrees = enableIsolatedWorktrees && !isFreshLocalRepo(workspace);\n if (!policy || typeof policy !== 'object') {\n if (!canUseIsolatedWorktrees) return null;\n const baseRef = normalizeExecutionBaseRef(null, workspace?.defaultRef || workspace?.repoRef);\n return {\n enabled: true,\n defaultMode: 'isolated_workspace',\n workspaceStrategy: {\n type: 'git_worktree',\n ...(baseRef ? { baseRef } : {}),\n },\n };\n }\n if (policy.defaultMode === 'isolated_workspace') {\n if (!canUseIsolatedWorktrees) return null;\n\n const strategy = policy.workspaceStrategy;\n if (!strategy || typeof strategy !== 'object')\n return { ...policy, enabled: policy.enabled ?? true };\n if (strategy.type !== 'git_worktree') return { ...policy, enabled: policy.enabled ?? true };\n\n const workspaceStrategy = { ...strategy };\n const resolvedBaseRef = normalizeExecutionBaseRef(\n workspaceStrategy.baseRef,\n workspace?.defaultRef || workspace?.repoRef,\n );\n if (resolvedBaseRef) {\n workspaceStrategy.baseRef = resolvedBaseRef;\n }\n return { ...policy, enabled: policy.enabled ?? true, workspaceStrategy };\n }\n return policy;\n };\n\n const renderExecutionPolicyMetaFields = (proj, workspace) => {\n const policy = effectiveExecutionPolicy(proj, workspace);\n if (!policy) return [];\n const rows = [];\n if (policy.defaultMode) rows.push(['executionWorkspacePolicy.defaultMode', policy.defaultMode]);\n const strategy = policy.workspaceStrategy;\n if (strategy && typeof strategy === 'object') {\n if (strategy.type)\n rows.push(['executionWorkspacePolicy.workspaceStrategy.type', strategy.type]);\n if (strategy.baseRef)\n rows.push(['executionWorkspacePolicy.workspaceStrategy.baseRef', strategy.baseRef]);\n }\n return rows;\n };\n\n // When the instance has isolated worktrees enabled but this project starts as\n // a fresh local repo, the isolated policy is intentionally deferred (worktrees\n // need an existing base ref and would fail on the first run). Without a hint,\n // the operator is left thinking the setting did nothing and flips it by hand\n // mid-run \u2014 which strands early work in the shared workspace. Emit a note so\n // the repo-setup owner enables isolation as soon as the first commit lands.\n const renderDeferredIsolationNote = (workspace) => {\n if (!enableIsolatedWorktrees || !isFreshLocalRepo(workspace)) return '';\n const configuredRef = normalizeExecutionBaseRef(\n null,\n workspace?.defaultRef || workspace?.repoRef,\n );\n const refHint = configuredRef\n ? `When you later enable the project policy, use that configured ref (currently \\`${configuredRef}\\`) as the worktree \\`baseRef\\`.`\n : `When you later enable the project policy, first set the project/worktree base ref to the branch Paperclip should branch from.`;\n return (\n `> **Enable isolated worktrees once the repo exists.** This instance has isolated ` +\n `worktrees enabled, but this project starts as a fresh local repository, so the ` +\n `\\`executionWorkspacePolicy\\` is intentionally omitted now \u2014 worktrees need an existing ` +\n `base ref and would fail on the first run. After the initial commit exists on the configured ` +\n `base branch, switch this project to isolated worktrees in Project settings. ${refHint} ` +\n `Until then agents share the project workspace; do not flip it before the repo has its first commit.\\n\\n`\n );\n };\n\n const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n // When there are scheduled routines, the worker pre-creates the main project\n // (with board authority) so every routine \u2014 including those owned by non-CEO\n // agents \u2014 can be linked to it at creation time. The CEO, which otherwise\n // creates projects during bootstrap, can only edit routines assigned to\n // itself, so routines owned by other agents would stay project-less. Expose\n // the resolved main project (with its normalized workspace) so the worker can\n // create it.\n const mainProjectInfo = mainProject\n ? (() => {\n const workspace = normalizeProjectWorkspace(mainProject);\n const executionWorkspacePolicy = effectiveExecutionPolicy(mainProject, workspace);\n return {\n name: mainProjectName,\n description: mainProject.description || '',\n workspace,\n ...(executionWorkspacePolicy ? { executionWorkspacePolicy } : {}),\n };\n })()\n : null;\n // Mirror the worker's gate: the main project is only pre-created when there\n // are routines to attach. Otherwise the CEO still creates it during bootstrap.\n const mainProjectPreCreated = initialRoutines.length > 0 && mainProjectInfo !== null;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n if (mainProjectPreCreated) {\n bootstrap += `> **The Company Wizard has already created the main project \"${mainProjectName}\"** (with board authority) so the scheduled routines could be linked to it. Do NOT recreate it \u2014 create issues against it. After creating the goals above, resolve their real ids and link them with \\`PATCH /api/projects/{projectId}\\` using \\`{ \"goalIds\": [...] }\\`.\\n\\n`;\n }\n for (const proj of resolvedProjects) {\n const workspace = normalizeProjectWorkspace(proj);\n bootstrap += `### ${proj.name}\\n\\n`;\n bootstrap += renderMeta([\n ...renderWorkspaceMetaFields(workspace),\n ...renderExecutionPolicyMetaFields(proj, workspace),\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 bootstrap += renderDeferredIsolationNote(workspace);\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 bootstrap += `> **The Company Wizard has already created all agents listed below**, each with its full instructions bundle. Do NOT create new agents. Match them by \\`metadata.templateRole\\` when assigning issues; only re-create one if it is genuinely missing.\\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 const goalRefRaw = issue.goalId || issue.goalIdRef || issue.goal || issue.goalTitle;\n const goalRef =\n typeof goalRefRaw === 'string' && goalRefRaw.trim().length > 0\n ? goalRefRaw.trim()\n : undefined;\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 ['goalId', goalRef ? `\u2192 \"${goalRef}\"` : undefined],\n ['labelIds', `\u2192 [${issueLabelNames.map((name) => `\"${name}\"`).join(', ')}]`],\n ]);\n const issueReviewGate = resolveReviewGate(issue.reviewGate, issue.assignTo);\n if (issueReviewGate) {\n bootstrap += renderReviewGate(issueReviewGate);\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 if (moduleNames.includes('pr-review')) {\n const ciClause = hasCi\n ? 'CI (lint/test/build) must be green before the merge gate merges \u2014 this is the hard gate and cannot be skipped'\n : 'no CI is configured, so the merge-gate agent must run the test suite/build and paste the real output into the merge-gate verdict before merging \u2014 this is the hard gate';\n bootstrap += `- Required PR reviews use the issue's \\`executionPolicy\\`. The substantive gate is execution, not opinion: ${ciClause}. Stages, in order: a \\`review\\` stage for QA when present (test adequacy / running the tests), a \\`review\\` stage for the Security Engineer **only when the change is security-relevant** (auth, secrets, input boundaries, crypto, dependencies, infra exposure), an \\`approval\\` stage for the Product Owner when present (intent/scope), then a final \\`approval\\` merge-gate stage for the **Code Reviewer** (a non-author who satisfies the hard gate above, merges the PR, then records approval to close the issue). **Never list the issue's executor/author as a participant in any stage** \u2014 Paperclip excludes the original executor from review/approval, so a stage whose only participant is the author has no eligible participant and the issue stalls in \\`in_review\\` (422 No eligible approval participant); this is why the merge gate is the Code Reviewer (a non-author), not the engineer who wrote the code. The merge gate must be last so the Product Owner's approval does not auto-close the issue with the PR still open. When no Code Reviewer is on the team, do not set executionPolicy stages at all \u2014 use the PR-Self-Merge path (the engineer opens the PR and merges via \\`gh pr merge <N> --merge\\`); other review roles may leave advisory comments but do not block. Other domain reviewers may add advisory, non-blocking comments but do not gate the merge. Every verdict must cite executed verification. Resolve each role to its agentId. Model review stages in executionPolicy rather than child issues or @-mentions.\\n`;\n }\n bootstrap += `\\n`;\n }\n\n // --- Routines ---\n if (initialRoutines.length > 0) {\n bootstrap += `## Routines\\n\\n`;\n bootstrap += `> **The Company Wizard has already created the routines listed below** (with board authority, so each could be assigned to its owning agent). Do NOT recreate them. Note: an agent may only create routines assigned to itself, so never try to create another agent's routine.\\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, board-operations issue, hiring-plan issue, agent hire requests, routines, and this bootstrap issue. Approve any pending hires before running dependent team workflows. The CEO heartbeat completes the remaining setup 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 resolvedProjects.forEach((proj, idx) => {\n const workspace = normalizeProjectWorkspace(proj);\n const goalLinks =\n proj.goals?.length > 0 ? `, goalIds \u2192 [${proj.goals.map((g) => `\"${g}\"`).join(', ')}]` : '';\n const activePolicy = effectiveExecutionPolicy(proj, workspace);\n const policy = activePolicy?.defaultMode\n ? `, executionWorkspacePolicy.defaultMode: \"${activePolicy.defaultMode}\"`\n : '';\n if (idx === 0 && mainProjectPreCreated) {\n const goalLinkInstruction = goalLinks\n ? ` After creating the goals above, resolve their real ids and link them with PATCH /api/projects/{projectId} (${goalLinks.replace(/^, /, '')}).`\n : '';\n bootstrap += `${stepN++}. **Main project already created** \u2014 the Company Wizard provisioned project \"${proj.name}\" (with board authority) so the scheduled routines could be linked to it. Do NOT recreate it.${goalLinkInstruction}\\n`;\n } else {\n bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: ${formatWorkspaceObject(workspace)}${policy}${goalLinks})\\n`;\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++}. **Agents already created** \u2014 the Company Wizard provisioned every agent above with its full instructions bundle. Match them by metadata.templateRole when assigning issues; only hire via governance if one is genuinely missing\\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++}. **Routines already created** \u2014 the Company Wizard provisioned the routines above (with their cron triggers) using board authority. Do not recreate them; an agent can only create routines assigned to itself\\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 {\n companyDir,\n allRoles,\n initialIssues,\n initialRoutines,\n roleAdapterOverrides,\n mainProject: mainProjectInfo,\n };\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';\n// Worker (non-CEO) agents default to 'auto' reasoning effort \u2014 let the model decide\n// per task instead of pinning a flat level. A role can still set an explicit level\n// via its role.meta.json adapter override (now propagated to provisioning).\nexport const DEFAULT_WORKER_THINKING_LEVEL = 'auto';\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\nfunction buildAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n defaultThinkingLevel = DEFAULT_CEO_THINKING_LEVEL,\n inheritUserThinking = true,\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 // The CEO inherits the user-configured thinking level; worker agents do NOT \u2014 a\n // user picking xhigh for the CEO shouldn't silently turn the whole team xhigh. A\n // role can still set its own level via role.meta.json (roleAdapterOverrides).\n const userThinking = inheritUserThinking\n ? asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort)\n : '';\n const thinkingLevel =\n userThinking ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.effort) ||\n defaultThinkingLevel;\n\n const adapterConfig = {\n ...roleAdapterOverrides,\n cwd: userCwd || companyDir,\n ...(model ? { model } : {}),\n };\n delete adapterConfig.promptTemplate;\n delete adapterConfig.bootstrapPromptTemplate;\n // Thinking effort is applied per-adapter below from the resolved `thinkingLevel`.\n // Strip the raw override keys so they don't leak into the config (and so a\n // non-codex adapter doesn't carry a stray thinkingLevel).\n delete adapterConfig.thinkingLevel;\n delete adapterConfig.modelReasoningEffort;\n delete adapterConfig.reasoningEffort;\n delete adapterConfig.effort;\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 buildCeoAdapterConfig(opts = {}) {\n return buildAdapterConfig({\n ...opts,\n defaultThinkingLevel: DEFAULT_CEO_THINKING_LEVEL,\n inheritUserThinking: true,\n });\n}\n\n/**\n * Adapter config for non-CEO (\"worker\") agents. Same adapter type/model as the CEO\n * (companies pick codex vs claude once), but defaults to a modest reasoning effort\n * (DEFAULT_WORKER_THINKING_LEVEL) and does not inherit the CEO's thinking level.\n */\nexport function buildWorkerAdapterConfig(opts = {}) {\n return buildAdapterConfig({\n ...opts,\n defaultThinkingLevel: DEFAULT_WORKER_THINKING_LEVEL,\n inheritUserThinking: false,\n });\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\n/**\n * Runtime config for non-CEO (\"worker\") agents. Heartbeat is DISABLED: Paperclip\n * wakes an agent when work is assigned to it (and routines drive scheduled work),\n * so always-on heartbeats for every agent are unnecessary. Enabling them for the\n * whole team at once produced a burst of concurrent/queued runs that overloaded the\n * server. The interval/concurrency are kept for when a heartbeat is later enabled.\n */\nexport function buildWorkerAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: false,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n", "export function compareSemver(a, b) {\n const parse = (value) =>\n String(value || '')\n .trim()\n .replace(/^v/i, '')\n .split('-', 1)[0]\n .split('.')\n .map((part) => Number.parseInt(part, 10) || 0);\n const left = parse(a);\n const right = parse(b);\n const max = Math.max(left.length, right.length, 3);\n for (let i = 0; i < max; i += 1) {\n const diff = (left[i] || 0) - (right[i] || 0);\n if (diff !== 0) return diff > 0 ? 1 : -1;\n }\n return 0;\n}\n\nexport function isNewerVersion(candidate, current) {\n return compareSemver(candidate, current) > 0;\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 this.boardUserName = null; // resolved during connect()\n this.boardUserEmail = 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 this.boardUserName = null;\n this.boardUserEmail = null;\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 profile for assigneeUserId and git identity support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n this.boardUserName = session?.user?.name || null;\n this.boardUserEmail = session?.user?.email || 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 /**\n * Read instance-wide experimental settings (including enableIsolatedWorkspaces).\n */\n async getInstanceExperimentalSettings() {\n return this._fetch('/api/instance/settings/experimental');\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 /**\n * List all companies the connected identity can see.\n * Returns the raw array from `GET /api/companies`.\n */\n async listCompanies() {\n const result = await this._fetch('/api/companies', { method: 'GET' });\n return Array.isArray(result) ? result : (result?.companies ?? []);\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 getInstructionsBundle(agentId) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle`, {\n method: 'GET',\n });\n }\n\n async deleteInstructionsBundleFile(agentId, { path }) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle/file`, {\n method: 'DELETE',\n body: JSON.stringify({ path }),\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 sourceIssueId,\n sourceIssueIds,\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 ...(sourceIssueId !== undefined ? { sourceIssueId } : {}),\n ...(sourceIssueIds !== undefined ? { sourceIssueIds } : {}),\n };\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 return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n };\n }\n\n return hiredAgent;\n }\n\n async createProject(\n companyId,\n { name, description, goalIds, workspace, executionWorkspacePolicy },\n ) {\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 ...(executionWorkspacePolicy ? { executionWorkspacePolicy } : {}),\n }),\n });\n }\n\n async updateProject(projectId, updates = {}) {\n return this._fetch(`/api/projects/${projectId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 updateIssue(issueId, updates = {}) {\n return this._fetch(`/api/issues/${issueId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async putIssueDocument(issueId, key, { title, format, body, baseRevisionId }) {\n return this._fetch(`/api/issues/${issueId}/documents/${encodeURIComponent(key)}`, {\n method: 'PUT',\n body: JSON.stringify({\n title,\n format: format || 'markdown',\n body: body || '',\n ...(baseRevisionId !== undefined ? { baseRevisionId } : {}),\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 listRoutines(companyId, filters = {}) {\n const params = new URLSearchParams();\n if (filters.projectId) params.set('projectId', filters.projectId);\n const query = params.toString();\n return this._fetch(`/api/companies/${companyId}/routines${query ? `?${query}` : ''}`, {\n method: 'GET',\n });\n }\n\n async getRoutine(routineId) {\n return this._fetch(`/api/routines/${routineId}`, { method: 'GET' });\n }\n\n async updateRoutine(routineId, updates = {}) {\n return this._fetch(`/api/routines/${routineId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 updateRoutineTrigger(triggerId, updates = {}) {\n return this._fetch(`/api/routine-triggers/${triggerId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\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 role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(roleName, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[roleName]) return BASE_ROLE_MAP[roleName];\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 mod = { name: dir.name, ...(moduleJson || {}) };\n // Description precedence: module.meta.json wins. Only fall back to the first\n // content line of README.md when the manifest has no description \u2014 otherwise\n // the README read would be wasted work (its value is immediately discarded).\n if (!mod.description) {\n const readmePath = join(modulesDir, dir.name, 'README.md');\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 mod.description = descLine?.trim() || '';\n }\n }\n if (mod.description === undefined) mod.description = '';\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\n/**\n * Return the effective module selection for a provisioning/preview run.\n *\n * The UI normally sends preset modules already expanded, but worker actions can\n * be called directly and AI configs can be sparse. Treat `presetName` as a\n * first-class source of modules so choosing build-api also activates the rest\n * of the build-api preset (e.g. ci-cd goals), then add transitive `requires`.\n * Unknown module names are ignored.\n *\n * @param {object|null} preset\n * @param {object[]} modules\n * @param {string[]|Set<string>} selectedModules\n * @returns {string[]}\n */\nexport function resolveEffectiveModules(preset, modules, selectedModules) {\n const known = new Set(modules.map((m) => m.name));\n const requiresByName = new Map(\n modules.map((m) => [m.name, Array.isArray(m.requires) ? m.requires : []]),\n );\n const effective = new Set();\n const queue = [];\n\n const add = (name) => {\n if (typeof name !== 'string' || !known.has(name) || effective.has(name)) return;\n effective.add(name);\n queue.push(name);\n };\n\n for (const moduleName of Array.isArray(preset?.modules) ? preset.modules : []) {\n add(moduleName);\n }\n for (const moduleName of selectedModules ?? []) {\n add(moduleName);\n }\n\n while (queue.length > 0) {\n const moduleName = queue.shift();\n for (const dep of requiresByName.get(moduleName) ?? []) {\n add(dep);\n }\n }\n\n return [...effective];\n}\n\nexport function collectPresetBootstrapData(preset) {\n return {\n labels: Array.isArray(preset?.labels) ? preset.labels.map((label) => ({ ...label })) : [],\n issues: Array.isArray(preset?.issues) ? preset.issues.map((issue) => ({ ...issue })) : [],\n routines: Array.isArray(preset?.routines)\n ? preset.routines.map((routine) => ({ ...routine }))\n : [],\n };\n}\n\nexport { validateGoal, validateGoal as validateGoalTemplate };\n"],
5
+ "mappings": "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A;EACA;EACA;EACA;;AA4BK,IAAM,kBAAkB;EAC7B;EACA;EACA;EACA;EACA;EACA;;AAUK,IAAM,oBAAoB;EAC/B;EACA;EACA;EACA;;AAcK,IAAM,sBAAsB;;EAEjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAmBK,IAAM,mCAAmC;EAC9C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIK,IAAM,2BAA2B,CAAC,OAAO,QAAQ,SAAS,QAAQ;AAGlE,IAAM,8BAA8B,CAAC,SAAS,SAAS,kBAAkB,SAAS;AAGlF,IAAM,qCAAqC;EAChD;EACA;EACA;;AAUK,IAAM,uBAAuB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASK,IAAM,yCAAyC;EACpD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASK,IAAM,kDAAkD;EAC7D;EACA;EACA;EACA;EACA;EACA;;AAWK,IAAM,kCAAkC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOK,IAAM,0BAA0B;EACrC;EACA;EACA;EACA;EACA;EACA;;AAQK,IAAM,yBAAyB;EACpC;EACA;EACA;EACA;EACA;;AAQK,IAAM,sCAAsC;EACjD;EACA;EACA;EACA;EACA;;AAUK,IAAM,8BAA8B;EACzC;EACA;EACA;EACA;EACA;EACA;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",
6
6
  "names": ["util", "objectUtil", "path", "errorUtil", "path", "errorMap", "ctx", "result", "issues", "elements", "processed", "result", "r", "ZodFirstPartyTypeKind", "executionWorkspaceStrategySchema", "path", "plugin", "options", "fs", "path", "fileURLToPath", "labelsByName", "explicitLabels", "path", "access", "readdir", "readFile", "join", "exists", "readJson", "path", "fileURLToPath", "fs", "collectMdFiles", "countFiles"]
7
7
  }