@starlein/paperclip-plugin-company-wizard 0.2.4 → 0.3.18
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.
- package/README.md +59 -3
- package/dist/manifest.js +4 -5
- package/dist/manifest.js.map +2 -2
- package/dist/ui/index.css +563 -578
- package/dist/ui/index.css.map +2 -2
- package/dist/ui/index.js +1151 -559
- package/dist/ui/index.js.map +4 -4
- package/dist/worker.js +702 -253
- package/dist/worker.js.map +4 -4
- package/package.json +12 -7
- package/templates/ai-wizard/config-format.md +12 -4
- package/templates/ai-wizard/interview-system.md +3 -2
- package/templates/ai-wizard/messages.json +1 -1
- package/templates/ai-wizard/single-shot-system.md +4 -0
- package/templates/bootstrap-instructions.md +12 -2
- package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +1 -1
- package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +1 -1
- package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +1 -1
- package/templates/modules/auto-assign/module.meta.json +1 -1
- package/templates/modules/auto-assign/skills/auto-assign.md +1 -1
- package/templates/modules/backlog/module.meta.json +4 -3
- package/templates/modules/build-api/module.meta.json +1 -0
- package/templates/modules/ci-cd/module.meta.json +2 -1
- package/templates/modules/game-design/module.meta.json +18 -0
- package/templates/modules/game-design/skills/audio-design.fallback.md +16 -0
- package/templates/modules/game-design/skills/audio-design.md +28 -0
- package/templates/modules/game-design/skills/level-design.fallback.md +17 -0
- package/templates/modules/game-design/skills/level-design.md +29 -0
- package/templates/modules/github-repo/README.md +1 -0
- package/templates/modules/github-repo/module.meta.json +5 -2
- package/templates/modules/pr-review/README.md +5 -5
- package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +7 -6
- package/templates/modules/pr-review/agents/devops/skills/infra-review.md +6 -6
- package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +11 -6
- package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +7 -6
- package/templates/modules/pr-review/agents/qa/skills/qa-review.md +6 -6
- package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +6 -6
- package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +6 -6
- package/templates/modules/pr-review/docs/pr-conventions.md +16 -15
- package/templates/modules/pr-review/module.meta.json +8 -3
- package/templates/modules/stall-detection/module.meta.json +1 -1
- package/templates/modules/website-relaunch/module.meta.json +2 -1
- package/templates/presets/build-game/preset.meta.json +2 -1
- package/templates/presets/content/preset.meta.json +3 -1
- package/templates/presets/full/preset.meta.json +1 -0
- package/templates/presets/gtm/preset.meta.json +3 -1
- package/templates/presets/launch-pack/preset.meta.json +1 -0
- package/templates/presets/quality/preset.meta.json +2 -1
- package/templates/presets/repo-maintenance/preset.meta.json +2 -1
- package/templates/presets/secure/preset.meta.json +1 -0
- package/templates/roles/security-engineer/role.meta.json +1 -1
- package/templates/roles/cfo/AGENTS.md +0 -31
- package/templates/roles/cfo/HEARTBEAT.md +0 -37
- package/templates/roles/cfo/SOUL.md +0 -17
- package/templates/roles/cfo/TOOLS.md +0 -3
- package/templates/roles/cfo/role.meta.json +0 -17
package/dist/worker.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/.pnpm/@paperclipai+plugin-sdk@
|
|
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", "export const COMPANY_STATUSES = [\"active\", \"paused\", \"archived\"] as const;\nexport type CompanyStatus = (typeof COMPANY_STATUSES)[number];\n\nexport const DEFAULT_COMPANY_ATTACHMENT_MAX_BYTES = 10 * 1024 * 1024;\nexport const MAX_COMPANY_ATTACHMENT_MAX_BYTES = 1024 * 1024 * 1024;\n\nexport const DEPLOYMENT_MODES = [\"local_trusted\", \"authenticated\"] as const;\nexport type DeploymentMode = (typeof DEPLOYMENT_MODES)[number];\n\nexport const DEPLOYMENT_EXPOSURES = [\"private\", \"public\"] as const;\nexport type DeploymentExposure = (typeof DEPLOYMENT_EXPOSURES)[number];\n\nexport const BIND_MODES = [\"loopback\", \"lan\", \"tailnet\", \"custom\"] as const;\nexport type BindMode = (typeof BIND_MODES)[number];\n\nexport const AUTH_BASE_URL_MODES = [\"auto\", \"explicit\"] as const;\nexport type AuthBaseUrlMode = (typeof AUTH_BASE_URL_MODES)[number];\n\nexport const AGENT_STATUSES = [\n \"active\",\n \"paused\",\n \"idle\",\n \"running\",\n \"error\",\n \"pending_approval\",\n \"terminated\",\n] as const;\nexport type AgentStatus = (typeof AGENT_STATUSES)[number];\n\nexport const AGENT_ADAPTER_TYPES = [\n \"process\",\n \"http\",\n \"acpx_local\",\n \"claude_local\",\n \"codex_local\",\n \"cursor_cloud\",\n \"gemini_local\",\n \"opencode_local\",\n \"pi_local\",\n \"cursor\",\n \"openclaw_gateway\",\n] as const;\nexport type AgentAdapterType = (typeof AGENT_ADAPTER_TYPES)[number] | (string & {});\n\nexport const AGENT_ROLES = [\n \"ceo\",\n \"cto\",\n \"cmo\",\n \"cfo\",\n \"security\",\n \"engineer\",\n \"designer\",\n \"pm\",\n \"qa\",\n \"devops\",\n \"researcher\",\n \"general\",\n] as const;\nexport type AgentRole = (typeof AGENT_ROLES)[number];\n\nexport const AGENT_ROLE_LABELS: Record<AgentRole, string> = {\n ceo: \"CEO\",\n cto: \"CTO\",\n cmo: \"CMO\",\n cfo: \"CFO\",\n security: \"Security\",\n engineer: \"Engineer\",\n designer: \"Designer\",\n pm: \"PM\",\n qa: \"QA\",\n devops: \"DevOps\",\n researcher: \"Researcher\",\n general: \"General\",\n};\n\nexport const AGENT_DEFAULT_MAX_CONCURRENT_RUNS = 20;\nexport const WORKSPACE_BRANCH_ROUTINE_VARIABLE = \"workspaceBranch\";\n\nexport const MODEL_PROFILE_KEYS = [\"cheap\"] as const;\nexport type ModelProfileKey = (typeof MODEL_PROFILE_KEYS)[number];\n\nexport const AGENT_ICON_NAMES = [\n \"bot\",\n \"cpu\",\n \"brain\",\n \"zap\",\n \"rocket\",\n \"code\",\n \"terminal\",\n \"shield\",\n \"eye\",\n \"search\",\n \"wrench\",\n \"hammer\",\n \"lightbulb\",\n \"sparkles\",\n \"star\",\n \"heart\",\n \"flame\",\n \"bug\",\n \"cog\",\n \"database\",\n \"globe\",\n \"lock\",\n \"mail\",\n \"message-square\",\n \"file-code\",\n \"git-branch\",\n \"package\",\n \"puzzle\",\n \"target\",\n \"wand\",\n \"atom\",\n \"circuit-board\",\n \"radar\",\n \"swords\",\n \"telescope\",\n \"microscope\",\n \"crown\",\n \"gem\",\n \"hexagon\",\n \"pentagon\",\n \"fingerprint\",\n] as const;\nexport type AgentIconName = (typeof AGENT_ICON_NAMES)[number];\n\nexport const ISSUE_STATUSES = [\n \"backlog\",\n \"todo\",\n \"in_progress\",\n \"in_review\",\n \"done\",\n \"blocked\",\n \"cancelled\",\n] as const;\nexport type IssueStatus = (typeof ISSUE_STATUSES)[number];\n\nexport const INBOX_MINE_ISSUE_STATUSES = [\n \"backlog\",\n \"todo\",\n \"in_progress\",\n \"in_review\",\n \"blocked\",\n \"done\",\n] as const;\nexport const INBOX_MINE_ISSUE_STATUS_FILTER = INBOX_MINE_ISSUE_STATUSES.join(\",\");\n\nexport const ISSUE_PRIORITIES = [\"critical\", \"high\", \"medium\", \"low\"] as const;\nexport type IssuePriority = (typeof ISSUE_PRIORITIES)[number];\nexport const ISSUE_WORK_MODES = [\"standard\", \"planning\"] as const;\nexport type IssueWorkMode = (typeof ISSUE_WORK_MODES)[number];\nexport const MAX_ISSUE_REQUEST_DEPTH = 1024;\n\nexport const ISSUE_COMMENT_AUTHOR_TYPES = [\"user\", \"agent\", \"system\"] as const;\nexport type IssueCommentAuthorType = (typeof ISSUE_COMMENT_AUTHOR_TYPES)[number];\n\nexport const ISSUE_COMMENT_PRESENTATION_KINDS = [\"message\", \"system_notice\"] as const;\nexport type IssueCommentPresentationKind = (typeof ISSUE_COMMENT_PRESENTATION_KINDS)[number];\n\nexport const ISSUE_COMMENT_PRESENTATION_TONES = [\"neutral\", \"info\", \"success\", \"warning\", \"danger\"] as const;\nexport type IssueCommentPresentationTone = (typeof ISSUE_COMMENT_PRESENTATION_TONES)[number];\n\nexport const ISSUE_COMMENT_METADATA_ROW_TYPES = [\n \"text\",\n \"code\",\n \"key_value\",\n \"issue_link\",\n \"agent_link\",\n \"run_link\",\n] as const;\nexport type IssueCommentMetadataRowType = (typeof ISSUE_COMMENT_METADATA_ROW_TYPES)[number];\n\nexport function clampIssueRequestDepth(value: number | null | undefined): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return 0;\n return Math.min(MAX_ISSUE_REQUEST_DEPTH, Math.max(0, Math.floor(value)));\n}\n\nexport const ISSUE_THREAD_INTERACTION_KINDS = [\n \"suggest_tasks\",\n \"ask_user_questions\",\n \"request_confirmation\",\n] as const;\nexport type IssueThreadInteractionKind = (typeof ISSUE_THREAD_INTERACTION_KINDS)[number];\n\nexport const ISSUE_THREAD_INTERACTION_STATUSES = [\n \"pending\",\n \"accepted\",\n \"rejected\",\n \"answered\",\n \"cancelled\",\n \"expired\",\n \"failed\",\n] as const;\nexport type IssueThreadInteractionStatus = (typeof ISSUE_THREAD_INTERACTION_STATUSES)[number];\n\nexport const ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES = [\n \"none\",\n \"wake_assignee\",\n \"wake_assignee_on_accept\",\n] as const;\nexport type IssueThreadInteractionContinuationPolicy =\n (typeof ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES)[number];\n\nexport const ISSUE_ORIGIN_KINDS = [\n \"manual\",\n \"routine_execution\",\n \"stale_active_run_evaluation\",\n \"harness_liveness_escalation\",\n \"issue_productivity_review\",\n \"stranded_issue_recovery\",\n] as const;\nexport type BuiltInIssueOriginKind = (typeof ISSUE_ORIGIN_KINDS)[number];\nexport type PluginIssueOriginKind = `plugin:${string}`;\nexport type IssueOriginKind = BuiltInIssueOriginKind | PluginIssueOriginKind;\nexport const ISSUE_SURFACE_VISIBILITIES = [\"default\", \"plugin_operation\"] as const;\nexport type IssueSurfaceVisibility = (typeof ISSUE_SURFACE_VISIBILITIES)[number];\n\nexport const ISSUE_RECOVERY_ACTION_KINDS = [\n \"missing_disposition\",\n \"stranded_assigned_issue\",\n \"active_run_watchdog\",\n \"issue_graph_liveness\",\n] as const;\nexport type IssueRecoveryActionKind = (typeof ISSUE_RECOVERY_ACTION_KINDS)[number];\n\nexport const ISSUE_RECOVERY_ACTION_STATUSES = [\n \"active\",\n \"escalated\",\n \"resolved\",\n \"cancelled\",\n] as const;\nexport type IssueRecoveryActionStatus = (typeof ISSUE_RECOVERY_ACTION_STATUSES)[number];\n\nexport const ISSUE_RECOVERY_ACTION_OWNER_TYPES = [\n \"agent\",\n \"user\",\n \"board\",\n \"system\",\n] as const;\nexport type IssueRecoveryActionOwnerType = (typeof ISSUE_RECOVERY_ACTION_OWNER_TYPES)[number];\n\nexport const ISSUE_RECOVERY_ACTION_OUTCOMES = [\n \"restored\",\n \"delegated\",\n \"false_positive\",\n \"blocked\",\n \"escalated\",\n \"cancelled\",\n] as const;\nexport type IssueRecoveryActionOutcome = (typeof ISSUE_RECOVERY_ACTION_OUTCOMES)[number];\n\nexport function pluginOperationIssueOriginKind(pluginKey: string): PluginIssueOriginKind {\n return `plugin:${pluginKey}:operation`;\n}\n\nexport function isPluginOperationIssueOriginKind(originKind: string | null | undefined): boolean {\n return typeof originKind === \"string\" && /^plugin:[^:]+:operation(?::|$)/.test(originKind);\n}\n\nexport const ISSUE_RELATION_TYPES = [\"blocks\"] as const;\nexport type IssueRelationType = (typeof ISSUE_RELATION_TYPES)[number];\n\nexport const ISSUE_TREE_CONTROL_MODES = [\"pause\", \"resume\", \"cancel\", \"restore\"] as const;\nexport type IssueTreeControlMode = (typeof ISSUE_TREE_CONTROL_MODES)[number];\n\nexport const ISSUE_TREE_HOLD_STATUSES = [\"active\", \"released\"] as const;\nexport type IssueTreeHoldStatus = (typeof ISSUE_TREE_HOLD_STATUSES)[number];\n\nexport const ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES = [\"manual\", \"after_active_runs_finish\"] as const;\nexport type IssueTreeHoldReleasePolicyStrategy = (typeof ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES)[number];\n\nexport const ISSUE_CONTINUATION_SUMMARY_DOCUMENT_KEY = \"continuation-summary\" as const;\nexport const SYSTEM_ISSUE_DOCUMENT_KEYS = [ISSUE_CONTINUATION_SUMMARY_DOCUMENT_KEY] as const;\nexport type SystemIssueDocumentKey = (typeof SYSTEM_ISSUE_DOCUMENT_KEYS)[number];\n\nconst SYSTEM_ISSUE_DOCUMENT_KEY_SET = new Set<string>(SYSTEM_ISSUE_DOCUMENT_KEYS);\n\nexport function isSystemIssueDocumentKey(key: string): key is SystemIssueDocumentKey {\n return SYSTEM_ISSUE_DOCUMENT_KEY_SET.has(key);\n}\nexport const ISSUE_REFERENCE_SOURCE_KINDS = [\"title\", \"description\", \"comment\", \"document\"] as const;\nexport type IssueReferenceSourceKind = (typeof ISSUE_REFERENCE_SOURCE_KINDS)[number];\n\nexport const DOCUMENT_ANNOTATION_THREAD_STATUSES = [\"open\", \"resolved\"] as const;\nexport type DocumentAnnotationThreadStatus = (typeof DOCUMENT_ANNOTATION_THREAD_STATUSES)[number];\n\nexport const DOCUMENT_ANNOTATION_ANCHOR_STATES = [\"active\", \"stale\", \"orphaned\"] as const;\nexport type DocumentAnnotationAnchorState = (typeof DOCUMENT_ANNOTATION_ANCHOR_STATES)[number];\n\nexport const DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES = [\n \"exact\",\n \"duplicate\",\n \"fuzzy\",\n \"ambiguous\",\n \"missing\",\n] as const;\nexport type DocumentAnnotationAnchorConfidence =\n (typeof DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES)[number];\n\nexport const ISSUE_EXECUTION_POLICY_MODES = [\"normal\", \"auto\"] as const;\nexport type IssueExecutionPolicyMode = (typeof ISSUE_EXECUTION_POLICY_MODES)[number];\n\nexport const ISSUE_EXECUTION_STAGE_TYPES = [\"review\", \"approval\"] as const;\nexport type IssueExecutionStageType = (typeof ISSUE_EXECUTION_STAGE_TYPES)[number];\n\nexport const ISSUE_MONITOR_SCHEDULED_BY = [\"assignee\", \"board\"] as const;\nexport type IssueMonitorScheduledBy = (typeof ISSUE_MONITOR_SCHEDULED_BY)[number];\n\nexport const ISSUE_EXECUTION_MONITOR_KINDS = [\"external_service\"] as const;\nexport type IssueExecutionMonitorKind = (typeof ISSUE_EXECUTION_MONITOR_KINDS)[number];\n\nexport const ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES = [\n \"wake_owner\",\n \"create_recovery_issue\",\n \"escalate_to_board\",\n] as const;\nexport type IssueExecutionMonitorRecoveryPolicy =\n (typeof ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES)[number];\n\nexport const ISSUE_EXECUTION_STATE_STATUSES = [\"idle\", \"pending\", \"changes_requested\", \"completed\"] as const;\nexport type IssueExecutionStateStatus = (typeof ISSUE_EXECUTION_STATE_STATUSES)[number];\n\nexport const ISSUE_EXECUTION_MONITOR_STATE_STATUSES = [\"scheduled\", \"triggered\", \"cleared\"] as const;\nexport type IssueExecutionMonitorStateStatus = (typeof ISSUE_EXECUTION_MONITOR_STATE_STATUSES)[number];\n\nexport const ISSUE_EXECUTION_MONITOR_CLEAR_REASONS = [\n \"manual\",\n \"triggered\",\n \"done\",\n \"cancelled\",\n \"invalid_status\",\n \"invalid_assignee\",\n \"dispatch_skipped\",\n \"timeout_exceeded\",\n \"max_attempts_exhausted\",\n] as const;\nexport type IssueExecutionMonitorClearReason = (typeof ISSUE_EXECUTION_MONITOR_CLEAR_REASONS)[number];\n\nexport const ISSUE_EXECUTION_DECISION_OUTCOMES = [\"approved\", \"changes_requested\"] as const;\nexport type IssueExecutionDecisionOutcome = (typeof ISSUE_EXECUTION_DECISION_OUTCOMES)[number];\n\nexport const GOAL_LEVELS = [\"company\", \"team\", \"agent\", \"task\"] as const;\nexport type GoalLevel = (typeof GOAL_LEVELS)[number];\n\nexport const GOAL_STATUSES = [\"planned\", \"active\", \"achieved\", \"cancelled\"] as const;\nexport type GoalStatus = (typeof GOAL_STATUSES)[number];\n\nexport const PROJECT_STATUSES = [\n \"backlog\",\n \"planned\",\n \"in_progress\",\n \"completed\",\n \"cancelled\",\n] as const;\nexport type ProjectStatus = (typeof PROJECT_STATUSES)[number];\n\nexport const ENVIRONMENT_DRIVERS = [\"local\", \"ssh\", \"sandbox\", \"plugin\"] as const;\nexport type EnvironmentDriver = (typeof ENVIRONMENT_DRIVERS)[number];\n\nexport const ENVIRONMENT_STATUSES = [\"active\", \"archived\"] as const;\nexport type EnvironmentStatus = (typeof ENVIRONMENT_STATUSES)[number];\n\nexport const ENVIRONMENT_LEASE_STATUSES = [\"active\", \"released\", \"expired\", \"failed\", \"retained\"] as const;\nexport type EnvironmentLeaseStatus = (typeof ENVIRONMENT_LEASE_STATUSES)[number];\n\nexport const ENVIRONMENT_LEASE_POLICIES = [\n \"ephemeral\",\n \"reuse_by_environment\",\n \"reuse_by_execution_workspace\",\n \"retain_on_failure\",\n] as const;\nexport type EnvironmentLeasePolicy = (typeof ENVIRONMENT_LEASE_POLICIES)[number];\n\nexport const ENVIRONMENT_LEASE_CLEANUP_STATUSES = [\"pending\", \"success\", \"failed\"] as const;\nexport type EnvironmentLeaseCleanupStatus = (typeof ENVIRONMENT_LEASE_CLEANUP_STATUSES)[number];\n\nexport const ROUTINE_STATUSES = [\"active\", \"paused\", \"archived\"] as const;\nexport type RoutineStatus = (typeof ROUTINE_STATUSES)[number];\n\nexport const ROUTINE_CONCURRENCY_POLICIES = [\"coalesce_if_active\", \"always_enqueue\", \"skip_if_active\"] as const;\nexport type RoutineConcurrencyPolicy = (typeof ROUTINE_CONCURRENCY_POLICIES)[number];\n\nexport const ROUTINE_CATCH_UP_POLICIES = [\"skip_missed\", \"enqueue_missed_with_cap\"] as const;\nexport type RoutineCatchUpPolicy = (typeof ROUTINE_CATCH_UP_POLICIES)[number];\n\nexport const ROUTINE_TRIGGER_KINDS = [\"schedule\", \"webhook\", \"api\"] as const;\nexport type RoutineTriggerKind = (typeof ROUTINE_TRIGGER_KINDS)[number];\n\nexport const ROUTINE_TRIGGER_SIGNING_MODES = [\"bearer\", \"hmac_sha256\", \"github_hmac\", \"none\"] as const;\nexport type RoutineTriggerSigningMode = (typeof ROUTINE_TRIGGER_SIGNING_MODES)[number];\n\nexport const ROUTINE_VARIABLE_TYPES = [\"text\", \"textarea\", \"number\", \"boolean\", \"select\"] as const;\nexport type RoutineVariableType = (typeof ROUTINE_VARIABLE_TYPES)[number];\n\nexport const ROUTINE_RUN_STATUSES = [\n \"received\",\n \"coalesced\",\n \"skipped\",\n \"issue_created\",\n \"completed\",\n \"failed\",\n ] as const;\nexport type RoutineRunStatus = (typeof ROUTINE_RUN_STATUSES)[number];\n\nexport const ROUTINE_RUN_SOURCES = [\"schedule\", \"manual\", \"api\", \"webhook\"] as const;\nexport type RoutineRunSource = (typeof ROUTINE_RUN_SOURCES)[number];\n\nexport const PAUSE_REASONS = [\"manual\", \"budget\", \"system\"] as const;\nexport type PauseReason = (typeof PAUSE_REASONS)[number];\n\nexport const PROJECT_COLORS = [\n \"#6366f1\", // indigo\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#ef4444\", // red\n \"#f97316\", // orange\n \"#eab308\", // yellow\n \"#22c55e\", // green\n \"#14b8a6\", // teal\n \"#06b6d4\", // cyan\n \"#3b82f6\", // blue\n] as const;\n\nexport const APPROVAL_TYPES = [\n \"hire_agent\",\n \"approve_ceo_strategy\",\n \"budget_override_required\",\n \"request_board_approval\",\n] as const;\nexport type ApprovalType = (typeof APPROVAL_TYPES)[number];\n\nexport const APPROVAL_STATUSES = [\n \"pending\",\n \"revision_requested\",\n \"approved\",\n \"rejected\",\n \"cancelled\",\n] as const;\nexport type ApprovalStatus = (typeof APPROVAL_STATUSES)[number];\n\nexport const SECRET_PROVIDERS = [\n \"local_encrypted\",\n \"aws_secrets_manager\",\n \"gcp_secret_manager\",\n \"vault\",\n] as const;\nexport type SecretProvider = (typeof SECRET_PROVIDERS)[number];\n\nexport const SECRET_PROVIDER_CONFIG_STATUSES = [\n \"ready\",\n \"warning\",\n \"coming_soon\",\n \"disabled\",\n] as const;\nexport type SecretProviderConfigStatus = (typeof SECRET_PROVIDER_CONFIG_STATUSES)[number];\n\nexport const SECRET_PROVIDER_CONFIG_HEALTH_STATUSES = [\n \"ready\",\n \"warning\",\n \"error\",\n \"coming_soon\",\n \"disabled\",\n] as const;\nexport type SecretProviderConfigHealthStatus =\n (typeof SECRET_PROVIDER_CONFIG_HEALTH_STATUSES)[number];\n\nexport const SECRET_STATUSES = [\"active\", \"disabled\", \"archived\", \"deleted\"] as const;\nexport type SecretStatus = (typeof SECRET_STATUSES)[number];\n\nexport const SECRET_MANAGED_MODES = [\"paperclip_managed\", \"external_reference\"] as const;\nexport type SecretManagedMode = (typeof SECRET_MANAGED_MODES)[number];\n\nexport const SECRET_VERSION_STATUSES = [\n \"current\",\n \"previous\",\n \"disabled\",\n \"destroyed\",\n \"failed\",\n] as const;\nexport type SecretVersionStatus = (typeof SECRET_VERSION_STATUSES)[number];\n\nexport const SECRET_BINDING_TARGET_TYPES = [\n \"agent\",\n \"project\",\n \"environment\",\n \"routine\",\n \"plugin\",\n \"issue\",\n \"run\",\n \"system\",\n] as const;\nexport type SecretBindingTargetType = (typeof SECRET_BINDING_TARGET_TYPES)[number];\n\nexport const SECRET_ACCESS_OUTCOMES = [\"success\", \"failure\"] as const;\nexport type SecretAccessOutcome = (typeof SECRET_ACCESS_OUTCOMES)[number];\n\nexport const STORAGE_PROVIDERS = [\"local_disk\", \"s3\"] as const;\nexport type StorageProvider = (typeof STORAGE_PROVIDERS)[number];\n\nexport const BILLING_TYPES = [\n \"metered_api\",\n \"subscription_included\",\n \"subscription_overage\",\n \"credits\",\n \"fixed\",\n \"unknown\",\n] as const;\nexport type BillingType = (typeof BILLING_TYPES)[number];\n\nexport const FINANCE_EVENT_KINDS = [\n \"inference_charge\",\n \"platform_fee\",\n \"credit_purchase\",\n \"credit_refund\",\n \"credit_expiry\",\n \"byok_fee\",\n \"gateway_overhead\",\n \"log_storage_charge\",\n \"logpush_charge\",\n \"provisioned_capacity_charge\",\n \"training_charge\",\n \"custom_model_import_charge\",\n \"custom_model_storage_charge\",\n \"manual_adjustment\",\n] as const;\nexport type FinanceEventKind = (typeof FINANCE_EVENT_KINDS)[number];\n\nexport const FINANCE_DIRECTIONS = [\"debit\", \"credit\"] as const;\nexport type FinanceDirection = (typeof FINANCE_DIRECTIONS)[number];\n\nexport const FINANCE_UNITS = [\n \"input_token\",\n \"output_token\",\n \"cached_input_token\",\n \"request\",\n \"credit_usd\",\n \"credit_unit\",\n \"model_unit_minute\",\n \"model_unit_hour\",\n \"gb_month\",\n \"train_token\",\n \"unknown\",\n] as const;\nexport type FinanceUnit = (typeof FINANCE_UNITS)[number];\n\nexport const BUDGET_SCOPE_TYPES = [\"company\", \"agent\", \"project\"] as const;\nexport type BudgetScopeType = (typeof BUDGET_SCOPE_TYPES)[number];\n\nexport const BUDGET_METRICS = [\"billed_cents\"] as const;\nexport type BudgetMetric = (typeof BUDGET_METRICS)[number];\n\nexport const BUDGET_WINDOW_KINDS = [\"calendar_month_utc\", \"lifetime\"] as const;\nexport type BudgetWindowKind = (typeof BUDGET_WINDOW_KINDS)[number];\n\nexport const BUDGET_THRESHOLD_TYPES = [\"soft\", \"hard\"] as const;\nexport type BudgetThresholdType = (typeof BUDGET_THRESHOLD_TYPES)[number];\n\nexport const BUDGET_INCIDENT_STATUSES = [\"open\", \"resolved\", \"dismissed\"] as const;\nexport type BudgetIncidentStatus = (typeof BUDGET_INCIDENT_STATUSES)[number];\n\nexport const BUDGET_INCIDENT_RESOLUTION_ACTIONS = [\n \"keep_paused\",\n \"raise_budget_and_resume\",\n] as const;\nexport type BudgetIncidentResolutionAction = (typeof BUDGET_INCIDENT_RESOLUTION_ACTIONS)[number];\n\nexport const HEARTBEAT_INVOCATION_SOURCES = [\n \"timer\",\n \"assignment\",\n \"on_demand\",\n \"automation\",\n] as const;\nexport type HeartbeatInvocationSource = (typeof HEARTBEAT_INVOCATION_SOURCES)[number];\n\nexport const WAKEUP_TRIGGER_DETAILS = [\"manual\", \"ping\", \"callback\", \"system\"] as const;\nexport type WakeupTriggerDetail = (typeof WAKEUP_TRIGGER_DETAILS)[number];\n\nexport const WAKEUP_REQUEST_STATUSES = [\n \"queued\",\n \"deferred_issue_execution\",\n \"claimed\",\n \"coalesced\",\n \"skipped\",\n \"completed\",\n \"failed\",\n \"cancelled\",\n] as const;\nexport type WakeupRequestStatus = (typeof WAKEUP_REQUEST_STATUSES)[number];\n\nexport const HEARTBEAT_RUN_STATUSES = [\n \"queued\",\n \"scheduled_retry\",\n \"running\",\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n \"timed_out\",\n] as const;\nexport type HeartbeatRunStatus = (typeof HEARTBEAT_RUN_STATUSES)[number];\n\nexport const RUN_LIVENESS_STATES = [\n \"completed\",\n \"advanced\",\n \"plan_only\",\n \"empty_response\",\n \"blocked\",\n \"failed\",\n \"needs_followup\",\n] as const;\nexport type RunLivenessState = (typeof RUN_LIVENESS_STATES)[number];\n\nexport const LIVE_EVENT_TYPES = [\n \"heartbeat.run.queued\",\n \"heartbeat.run.status\",\n \"heartbeat.run.event\",\n \"heartbeat.run.log\",\n \"agent.status\",\n \"activity.logged\",\n \"plugin.ui.updated\",\n \"plugin.worker.crashed\",\n \"plugin.worker.restarted\",\n] as const;\nexport type LiveEventType = (typeof LIVE_EVENT_TYPES)[number];\n\nexport const PRINCIPAL_TYPES = [\"user\", \"agent\"] as const;\nexport type PrincipalType = (typeof PRINCIPAL_TYPES)[number];\n\nexport const MEMBERSHIP_STATUSES = [\"pending\", \"active\", \"suspended\", \"archived\"] as const;\nexport type MembershipStatus = (typeof MEMBERSHIP_STATUSES)[number];\n\nexport const COMPANY_MEMBERSHIP_ROLES = [\n \"owner\",\n \"admin\",\n \"operator\",\n \"viewer\",\n \"member\",\n] as const;\nexport type CompanyMembershipRole = (typeof COMPANY_MEMBERSHIP_ROLES)[number];\n\nexport const HUMAN_COMPANY_MEMBERSHIP_ROLES = [\n \"owner\",\n \"admin\",\n \"operator\",\n \"viewer\",\n] as const;\nexport type HumanCompanyMembershipRole = (typeof HUMAN_COMPANY_MEMBERSHIP_ROLES)[number];\n\nexport const HUMAN_COMPANY_MEMBERSHIP_ROLE_LABELS: Record<HumanCompanyMembershipRole, string> = {\n owner: \"Owner\",\n admin: \"Admin\",\n operator: \"Operator\",\n viewer: \"Viewer\",\n};\n\nexport const INSTANCE_USER_ROLES = [\"instance_admin\"] as const;\nexport type InstanceUserRole = (typeof INSTANCE_USER_ROLES)[number];\n\nexport const INVITE_TYPES = [\"company_join\", \"bootstrap_ceo\"] as const;\nexport type InviteType = (typeof INVITE_TYPES)[number];\n\nexport const INVITE_JOIN_TYPES = [\"human\", \"agent\", \"both\"] as const;\nexport type InviteJoinType = (typeof INVITE_JOIN_TYPES)[number];\n\nexport const JOIN_REQUEST_TYPES = [\"human\", \"agent\"] as const;\nexport type JoinRequestType = (typeof JOIN_REQUEST_TYPES)[number];\n\nexport const JOIN_REQUEST_STATUSES = [\"pending_approval\", \"approved\", \"rejected\"] as const;\nexport type JoinRequestStatus = (typeof JOIN_REQUEST_STATUSES)[number];\n\nexport const PERMISSION_KEYS = [\n \"agents:create\",\n \"environments:manage\",\n \"users:invite\",\n \"users:manage_permissions\",\n \"tasks:assign\",\n \"tasks:assign_scope\",\n \"tasks:manage_active_checkouts\",\n \"joins:approve\",\n] as const;\nexport type PermissionKey = (typeof PERMISSION_KEYS)[number];\n\n// ---------------------------------------------------------------------------\n// Plugin System \u2014 see doc/plugins/PLUGIN_SPEC.md for the full specification\n// ---------------------------------------------------------------------------\n\n/**\n * The current version of the Plugin API contract.\n *\n * Increment this value whenever a breaking change is made to the plugin API\n * so that the host can reject incompatible plugin manifests.\n *\n * @see PLUGIN_SPEC.md \u00A74 \u2014 Versioning\n */\nexport const PLUGIN_API_VERSION = 1 as const;\n\n/**\n * Lifecycle statuses for an installed plugin.\n *\n * State machine: installed \u2192 ready | error, ready \u2192 disabled | error | upgrade_pending | uninstalled,\n * disabled \u2192 ready | uninstalled, error \u2192 ready | uninstalled,\n * upgrade_pending \u2192 ready | error | uninstalled, uninstalled \u2192 installed (reinstall).\n *\n * @see {@link PluginStatus} \u2014 inferred union type\n * @see PLUGIN_SPEC.md \u00A721.3 `plugins.status`\n */\nexport const PLUGIN_STATUSES = [\n \"installed\",\n \"ready\",\n \"disabled\",\n \"error\",\n \"upgrade_pending\",\n \"uninstalled\",\n] as const;\nexport type PluginStatus = (typeof PLUGIN_STATUSES)[number];\n\n/**\n * Plugin classification categories. A plugin declares one or more categories\n * in its manifest to describe its primary purpose.\n *\n * @see PLUGIN_SPEC.md \u00A76.2\n */\nexport const PLUGIN_CATEGORIES = [\n \"connector\",\n \"workspace\",\n \"automation\",\n \"ui\",\n] as const;\nexport type PluginCategory = (typeof PLUGIN_CATEGORIES)[number];\n\n/**\n * Named permissions the host grants to a plugin. Plugins declare required\n * capabilities in their manifest; the host enforces them at runtime via the\n * plugin capability validator.\n *\n * Grouped into: Data Read, Data Write, Plugin State, Runtime/Integration,\n * Agent Tools, and UI.\n *\n * @see PLUGIN_SPEC.md \u00A715 \u2014 Capability Model\n */\nexport const PLUGIN_CAPABILITIES = [\n // Data Read\n \"companies.read\",\n \"projects.read\",\n \"project.workspaces.read\",\n \"execution.workspaces.read\",\n \"issues.read\",\n \"issue.relations.read\",\n \"issue.subtree.read\",\n \"issue.comments.read\",\n \"issue.documents.read\",\n \"agents.read\",\n \"goals.read\",\n \"goals.create\",\n \"goals.update\",\n \"activity.read\",\n \"costs.read\",\n \"issues.orchestration.read\",\n \"access.members.read\",\n \"access.invites.read\",\n \"authorization.grants.read\",\n \"authorization.policies.read\",\n \"authorization.audit.read\",\n \"database.namespace.read\",\n // Data Write\n \"issues.create\",\n \"issues.update\",\n \"issue.relations.write\",\n \"issues.checkout\",\n \"issues.wakeup\",\n \"issue.comments.create\",\n \"issue.interactions.create\",\n \"issue.documents.write\",\n \"projects.managed\",\n \"routines.managed\",\n \"skills.managed\",\n \"agents.pause\",\n \"agents.resume\",\n \"agents.invoke\",\n \"agents.managed\",\n \"access.members.write\",\n \"access.invites.write\",\n \"authorization.grants.write\",\n \"authorization.policies.write\",\n \"agent.sessions.create\",\n \"agent.sessions.list\",\n \"agent.sessions.send\",\n \"agent.sessions.close\",\n \"activity.log.write\",\n \"metrics.write\",\n \"telemetry.track\",\n \"database.namespace.migrate\",\n \"database.namespace.write\",\n // Plugin State\n \"plugin.state.read\",\n \"plugin.state.write\",\n // Runtime / Integration\n \"events.subscribe\",\n \"events.emit\",\n \"jobs.schedule\",\n \"webhooks.receive\",\n \"api.routes.register\",\n \"http.outbound\",\n \"secrets.read-ref\",\n \"environment.drivers.register\",\n \"local.folders\",\n // Agent Tools\n \"agent.tools.register\",\n // UI\n \"instance.settings.register\",\n \"ui.sidebar.register\",\n \"ui.page.register\",\n \"ui.detailTab.register\",\n \"ui.dashboardWidget.register\",\n \"ui.commentAnnotation.register\",\n \"ui.action.register\",\n] as const;\nexport type PluginCapability = (typeof PLUGIN_CAPABILITIES)[number];\n\nexport const PLUGIN_DATABASE_NAMESPACE_MODES = [\"schema\"] as const;\nexport type PluginDatabaseNamespaceMode = (typeof PLUGIN_DATABASE_NAMESPACE_MODES)[number];\n\nexport const PLUGIN_DATABASE_NAMESPACE_STATUSES = [\n \"active\",\n \"migration_failed\",\n] as const;\nexport type PluginDatabaseNamespaceStatus = (typeof PLUGIN_DATABASE_NAMESPACE_STATUSES)[number];\n\nexport const PLUGIN_DATABASE_MIGRATION_STATUSES = [\n \"applied\",\n \"failed\",\n] as const;\nexport type PluginDatabaseMigrationStatus = (typeof PLUGIN_DATABASE_MIGRATION_STATUSES)[number];\n\nexport const PLUGIN_DATABASE_CORE_READ_TABLES = [\n \"companies\",\n \"projects\",\n \"goals\",\n \"agents\",\n \"issues\",\n \"issue_documents\",\n \"issue_relations\",\n \"issue_comments\",\n \"heartbeat_runs\",\n \"cost_events\",\n \"approvals\",\n \"issue_approvals\",\n \"budget_incidents\",\n] as const;\nexport type PluginDatabaseCoreReadTable = (typeof PLUGIN_DATABASE_CORE_READ_TABLES)[number];\n\nexport const PLUGIN_API_ROUTE_METHODS = [\"GET\", \"POST\", \"PATCH\", \"DELETE\"] as const;\nexport type PluginApiRouteMethod = (typeof PLUGIN_API_ROUTE_METHODS)[number];\n\nexport const PLUGIN_API_ROUTE_AUTH_MODES = [\"board\", \"agent\", \"board-or-agent\", \"webhook\"] as const;\nexport type PluginApiRouteAuthMode = (typeof PLUGIN_API_ROUTE_AUTH_MODES)[number];\n\nexport const PLUGIN_API_ROUTE_CHECKOUT_POLICIES = [\n \"none\",\n \"required-for-agent-in-progress\",\n \"always-for-agent\",\n] as const;\nexport type PluginApiRouteCheckoutPolicy = (typeof PLUGIN_API_ROUTE_CHECKOUT_POLICIES)[number];\n\n/**\n * UI extension slot types. Each slot type corresponds to a mount point in the\n * Paperclip UI where plugin components can be rendered.\n *\n * @see PLUGIN_SPEC.md \u00A719 \u2014 UI Extension Model\n */\nexport const PLUGIN_UI_SLOT_TYPES = [\n \"page\",\n \"detailTab\",\n \"taskDetailView\",\n \"dashboardWidget\",\n \"sidebar\",\n \"routeSidebar\",\n \"sidebarPanel\",\n \"projectSidebarItem\",\n \"globalToolbarButton\",\n \"toolbarButton\",\n \"contextMenuItem\",\n \"commentAnnotation\",\n \"commentContextMenuItem\",\n \"settingsPage\",\n \"companySettingsPage\",\n] as const;\nexport type PluginUiSlotType = (typeof PLUGIN_UI_SLOT_TYPES)[number];\n\n/**\n * Reserved company-scoped route segments that plugin page routes may not claim.\n *\n * These map to first-class host pages under `/:companyPrefix/...`.\n */\nexport const PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS = [\n \"dashboard\",\n \"onboarding\",\n \"companies\",\n \"company\",\n \"settings\",\n \"plugins\",\n \"org\",\n \"agents\",\n \"projects\",\n \"issues\",\n \"goals\",\n \"approvals\",\n \"costs\",\n \"activity\",\n \"inbox\",\n \"design-guide\",\n \"tests\",\n] as const;\nexport type PluginReservedCompanyRouteSegment =\n (typeof PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS)[number];\n\n/**\n * Reserved route segments under `/:companyPrefix/company/settings/...` that\n * plugin company settings pages may not claim.\n */\nexport const PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS = [\n \"general\",\n \"environments\",\n \"access\",\n \"members\",\n \"invites\",\n \"secrets\",\n] as const;\nexport type PluginReservedCompanySettingsRouteSegment =\n (typeof PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS)[number];\n\n/**\n * Launcher placement zones describe where a plugin-owned launcher can appear\n * in the host UI. These are intentionally aligned with current slot surfaces\n * so manifest authors can describe launch intent without coupling to a single\n * component implementation detail.\n */\nexport const PLUGIN_LAUNCHER_PLACEMENT_ZONES = [\n \"page\",\n \"detailTab\",\n \"taskDetailView\",\n \"dashboardWidget\",\n \"sidebar\",\n \"sidebarPanel\",\n \"projectSidebarItem\",\n \"globalToolbarButton\",\n \"toolbarButton\",\n \"contextMenuItem\",\n \"commentAnnotation\",\n \"commentContextMenuItem\",\n \"settingsPage\",\n] as const;\nexport type PluginLauncherPlacementZone = (typeof PLUGIN_LAUNCHER_PLACEMENT_ZONES)[number];\n\n/**\n * Launcher action kinds describe what the launcher does when activated.\n */\nexport const PLUGIN_LAUNCHER_ACTIONS = [\n \"navigate\",\n \"openModal\",\n \"openDrawer\",\n \"openPopover\",\n \"performAction\",\n \"deepLink\",\n] as const;\nexport type PluginLauncherAction = (typeof PLUGIN_LAUNCHER_ACTIONS)[number];\n\n/**\n * Optional size hints the host can use when rendering plugin-owned launcher\n * destinations such as overlays, drawers, or full page handoffs.\n */\nexport const PLUGIN_LAUNCHER_BOUNDS = [\n \"inline\",\n \"compact\",\n \"default\",\n \"wide\",\n \"full\",\n] as const;\nexport type PluginLauncherBounds = (typeof PLUGIN_LAUNCHER_BOUNDS)[number];\n\n/**\n * Render environments describe the container a launcher expects after it is\n * activated. The current host may map these to concrete UI primitives.\n */\nexport const PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS = [\n \"hostInline\",\n \"hostOverlay\",\n \"hostRoute\",\n \"external\",\n \"iframe\",\n] as const;\nexport type PluginLauncherRenderEnvironment =\n (typeof PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS)[number];\n\n/**\n * Entity types that a `detailTab` UI slot can attach to.\n *\n * @see PLUGIN_SPEC.md \u00A719.3 \u2014 Detail Tabs\n */\nexport const PLUGIN_UI_SLOT_ENTITY_TYPES = [\n \"project\",\n \"issue\",\n \"agent\",\n \"goal\",\n \"run\",\n \"comment\",\n \"execution_workspace\",\n \"project_workspace\",\n] as const;\nexport type PluginUiSlotEntityType = (typeof PLUGIN_UI_SLOT_ENTITY_TYPES)[number];\n\n/**\n * Scope kinds for plugin state storage. Determines the granularity at which\n * a plugin stores key-value state data.\n *\n * @see PLUGIN_SPEC.md \u00A721.3 `plugin_state.scope_kind`\n */\nexport const PLUGIN_STATE_SCOPE_KINDS = [\n \"instance\",\n \"company\",\n \"project\",\n \"project_workspace\",\n \"agent\",\n \"issue\",\n \"goal\",\n \"run\",\n] as const;\nexport type PluginStateScopeKind = (typeof PLUGIN_STATE_SCOPE_KINDS)[number];\n\n/** Statuses for a plugin's scheduled job definition. */\nexport const PLUGIN_JOB_STATUSES = [\n \"active\",\n \"paused\",\n \"failed\",\n] as const;\nexport type PluginJobStatus = (typeof PLUGIN_JOB_STATUSES)[number];\n\n/** Statuses for individual job run executions. */\nexport const PLUGIN_JOB_RUN_STATUSES = [\n \"pending\",\n \"queued\",\n \"running\",\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n] as const;\nexport type PluginJobRunStatus = (typeof PLUGIN_JOB_RUN_STATUSES)[number];\n\n/** What triggered a particular job run. */\nexport const PLUGIN_JOB_RUN_TRIGGERS = [\n \"schedule\",\n \"manual\",\n \"retry\",\n] as const;\nexport type PluginJobRunTrigger = (typeof PLUGIN_JOB_RUN_TRIGGERS)[number];\n\n/** Statuses for inbound webhook deliveries. */\nexport const PLUGIN_WEBHOOK_DELIVERY_STATUSES = [\n \"pending\",\n \"success\",\n \"failed\",\n] as const;\nexport type PluginWebhookDeliveryStatus = (typeof PLUGIN_WEBHOOK_DELIVERY_STATUSES)[number];\n\n/**\n * Core domain event types that plugins can subscribe to via the\n * `events.subscribe` capability.\n *\n * @see PLUGIN_SPEC.md \u00A716 \u2014 Event System\n */\nexport const PLUGIN_EVENT_TYPES = [\n \"company.created\",\n \"company.updated\",\n \"project.created\",\n \"project.updated\",\n \"project.workspace_created\",\n \"project.workspace_updated\",\n \"project.workspace_deleted\",\n \"issue.created\",\n \"issue.updated\",\n \"issue.comment.created\",\n \"issue.document.created\",\n \"issue.document.updated\",\n \"issue.document.deleted\",\n \"issue.relations.updated\",\n \"issue.checked_out\",\n \"issue.released\",\n \"issue.assignment_wakeup_requested\",\n \"agent.created\",\n \"agent.updated\",\n \"agent.status_changed\",\n \"agent.run.started\",\n \"agent.run.finished\",\n \"agent.run.failed\",\n \"agent.run.cancelled\",\n \"goal.created\",\n \"goal.updated\",\n \"approval.created\",\n \"approval.decided\",\n \"budget.incident.opened\",\n \"budget.incident.resolved\",\n \"cost_event.created\",\n \"activity.logged\",\n] as const;\nexport type PluginEventType = (typeof PLUGIN_EVENT_TYPES)[number];\n\n/**\n * Error codes returned by the plugin bridge when a UI \u2192 worker call fails.\n *\n * @see PLUGIN_SPEC.md \u00A719.7 \u2014 Error Propagation Through The Bridge\n */\nexport const PLUGIN_BRIDGE_ERROR_CODES = [\n \"WORKER_UNAVAILABLE\",\n \"CAPABILITY_DENIED\",\n \"INVOCATION_SCOPE_DENIED\",\n \"WORKER_ERROR\",\n \"TIMEOUT\",\n \"UNKNOWN\",\n] as const;\nexport type PluginBridgeErrorCode = (typeof PLUGIN_BRIDGE_ERROR_CODES)[number];\n", "import { z } from \"zod\";\nimport { AGENT_ADAPTER_TYPES } from \"./constants.js\";\n\nexport const agentAdapterTypeSchema = z\n .string()\n .trim()\n .min(1)\n .default(\"process\")\n .describe(`Known built-in adapters: ${AGENT_ADAPTER_TYPES.join(\", \")}. External adapters may register additional non-empty string types at runtime.`);\n\nexport const optionalAgentAdapterTypeSchema = z\n .string()\n .trim()\n .min(1)\n .optional();\n", "import type { BindMode, DeploymentExposure, DeploymentMode } from \"./constants.js\";\n\nexport const LOOPBACK_BIND_HOST = \"127.0.0.1\";\nexport const ALL_INTERFACES_BIND_HOST = \"0.0.0.0\";\n\nfunction normalizeHost(host: string | null | undefined): string | undefined {\n const trimmed = host?.trim();\n return trimmed ? trimmed : undefined;\n}\n\nexport function isLoopbackHost(host: string | null | undefined): boolean {\n const normalized = normalizeHost(host)?.toLowerCase();\n return normalized === \"127.0.0.1\" || normalized === \"localhost\" || normalized === \"::1\";\n}\n\nexport function isAllInterfacesHost(host: string | null | undefined): boolean {\n const normalized = normalizeHost(host)?.toLowerCase();\n return normalized === \"0.0.0.0\" || normalized === \"::\";\n}\n\nexport function inferBindModeFromHost(\n host: string | null | undefined,\n opts?: { tailnetBindHost?: string | null | undefined },\n): BindMode {\n const normalized = normalizeHost(host);\n const tailnetBindHost = normalizeHost(opts?.tailnetBindHost);\n\n if (!normalized || isLoopbackHost(normalized)) return \"loopback\";\n if (isAllInterfacesHost(normalized)) return \"lan\";\n if (tailnetBindHost && normalized === tailnetBindHost) return \"tailnet\";\n return \"custom\";\n}\n\nexport function validateConfiguredBindMode(input: {\n deploymentMode: DeploymentMode;\n deploymentExposure: DeploymentExposure;\n bind?: BindMode | null | undefined;\n host?: string | null | undefined;\n customBindHost?: string | null | undefined;\n}): string[] {\n const bind = input.bind ?? inferBindModeFromHost(input.host);\n const customBindHost = normalizeHost(input.customBindHost);\n const errors: string[] = [];\n\n if (input.deploymentMode === \"local_trusted\" && bind !== \"loopback\") {\n errors.push(\"local_trusted requires server.bind=loopback\");\n }\n\n if (bind === \"custom\" && !customBindHost) {\n const legacyHost = normalizeHost(input.host);\n if (!legacyHost || isLoopbackHost(legacyHost) || isAllInterfacesHost(legacyHost)) {\n errors.push(\"server.customBindHost is required when server.bind=custom\");\n }\n }\n\n if (input.deploymentMode === \"authenticated\" && input.deploymentExposure === \"public\" && bind === \"tailnet\") {\n errors.push(\"server.bind=tailnet is only supported for authenticated/private deployments\");\n }\n\n return errors;\n}\n\nexport function resolveRuntimeBind(input: {\n bind?: BindMode | null | undefined;\n host?: string | null | undefined;\n customBindHost?: string | null | undefined;\n tailnetBindHost?: string | null | undefined;\n}): {\n bind: BindMode;\n host: string;\n customBindHost?: string;\n errors: string[];\n} {\n const bind = input.bind ?? inferBindModeFromHost(input.host, { tailnetBindHost: input.tailnetBindHost });\n const legacyHost = normalizeHost(input.host);\n const customBindHost =\n normalizeHost(input.customBindHost) ??\n (bind === \"custom\" && legacyHost && !isLoopbackHost(legacyHost) && !isAllInterfacesHost(legacyHost)\n ? legacyHost\n : undefined);\n\n switch (bind) {\n case \"loopback\":\n return { bind, host: LOOPBACK_BIND_HOST, customBindHost, errors: [] };\n case \"lan\":\n return { bind, host: ALL_INTERFACES_BIND_HOST, customBindHost, errors: [] };\n case \"custom\":\n return customBindHost\n ? { bind, host: customBindHost, customBindHost, errors: [] }\n : { bind, host: legacyHost ?? LOOPBACK_BIND_HOST, errors: [\"server.customBindHost is required when server.bind=custom\"] };\n case \"tailnet\": {\n const tailnetBindHost = normalizeHost(input.tailnetBindHost);\n return tailnetBindHost\n ? { bind, host: tailnetBindHost, customBindHost, errors: [] }\n : {\n bind,\n host: legacyHost ?? LOOPBACK_BIND_HOST,\n customBindHost,\n errors: [\n \"server.bind=tailnet requires a detected Tailscale address or PAPERCLIP_TAILNET_BIND_HOST\",\n ],\n };\n }\n }\n}\n", "import type { FeedbackDataSharingPreference } from \"./feedback.js\";\n\nexport const DAILY_RETENTION_PRESETS = [3, 7, 14] as const;\nexport const WEEKLY_RETENTION_PRESETS = [1, 2, 4] as const;\nexport const MONTHLY_RETENTION_PRESETS = [1, 3, 6] as const;\nexport const DEFAULT_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS = 24;\nexport const MIN_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS = 1;\nexport const MAX_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS = 24 * 30;\n\nexport interface BackupRetentionPolicy {\n dailyDays: (typeof DAILY_RETENTION_PRESETS)[number];\n weeklyWeeks: (typeof WEEKLY_RETENTION_PRESETS)[number];\n monthlyMonths: (typeof MONTHLY_RETENTION_PRESETS)[number];\n}\n\nexport const DEFAULT_BACKUP_RETENTION: BackupRetentionPolicy = {\n dailyDays: 7,\n weeklyWeeks: 4,\n monthlyMonths: 1,\n};\n\nexport interface InstanceGeneralSettings {\n censorUsernameInLogs: boolean;\n keyboardShortcuts: boolean;\n feedbackDataSharingPreference: FeedbackDataSharingPreference;\n backupRetention: BackupRetentionPolicy;\n}\n\nexport interface InstanceExperimentalSettings {\n enableEnvironments: boolean;\n enableIsolatedWorkspaces: boolean;\n enableIssuePlanDecompositions: boolean;\n enableCloudSync: boolean;\n autoRestartDevServerWhenIdle: boolean;\n enableIssueGraphLivenessAutoRecovery: boolean;\n issueGraphLivenessAutoRecoveryLookbackHours: number;\n}\n\nexport interface InstanceSettings {\n id: string;\n general: InstanceGeneralSettings;\n experimental: InstanceExperimentalSettings;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface IssueGraphLivenessAutoRecoveryPreviewItem {\n issueId: string;\n identifier: string | null;\n title: string;\n state: string;\n severity: string;\n reason: string;\n recoveryIssueId: string;\n recoveryIdentifier: string | null;\n recoveryTitle: string | null;\n recommendedOwnerAgentId: string | null;\n incidentKey: string;\n latestDependencyUpdatedAt: string;\n dependencyPath: Array<{\n issueId: string;\n identifier: string | null;\n title: string;\n status: string;\n }>;\n}\n\nexport interface IssueGraphLivenessAutoRecoveryPreview {\n lookbackHours: number;\n cutoff: string;\n generatedAt: string;\n findings: number;\n recoverableFindings: number;\n skippedOutsideLookback: number;\n items: IssueGraphLivenessAutoRecoveryPreviewItem[];\n}\n", "import type { IssuePriority, IssueStatus } from \"../constants.js\";\n\nexport const COMPANY_SEARCH_SCOPES = [\"all\", \"issues\", \"comments\", \"documents\", \"agents\", \"projects\"] as const;\nexport type CompanySearchScope = (typeof COMPANY_SEARCH_SCOPES)[number];\n\nexport type CompanySearchResultType = \"issue\" | \"agent\" | \"project\";\n\nexport interface CompanySearchHighlight {\n start: number;\n end: number;\n}\n\nexport interface CompanySearchSnippet {\n field: string;\n label: string;\n text: string;\n highlights: CompanySearchHighlight[];\n}\n\nexport interface CompanySearchIssueSummary {\n id: string;\n identifier: string | null;\n title: string;\n status: IssueStatus;\n priority: IssuePriority;\n assigneeAgentId: string | null;\n assigneeUserId: string | null;\n projectId: string | null;\n updatedAt: string;\n}\n\nexport interface CompanySearchResult {\n id: string;\n type: CompanySearchResultType;\n score: number;\n title: string;\n href: string;\n matchedFields: string[];\n sourceLabel: string | null;\n snippet: string | null;\n snippets: CompanySearchSnippet[];\n issue?: CompanySearchIssueSummary;\n updatedAt: string | null;\n previewImageUrl: string | null;\n}\n\nexport interface CompanySearchResponse {\n query: string;\n normalizedQuery: string;\n scope: CompanySearchScope;\n limit: number;\n offset: number;\n results: CompanySearchResult[];\n countsByType: Record<CompanySearchResultType, number>;\n hasMore: boolean;\n}\n", "export const RESOURCE_MEMBERSHIP_STATES = [\"joined\", \"left\"] as const;\n\nexport type ResourceMembershipState = (typeof RESOURCE_MEMBERSHIP_STATES)[number];\nexport type ResourceMembershipResourceType = \"project\" | \"agent\";\n\nexport interface ResourceMemberships {\n projectMemberships: Record<string, ResourceMembershipState>;\n agentMemberships: Record<string, ResourceMembershipState>;\n updatedAt: Date | null;\n}\n\nexport interface UpdateResourceMembership {\n state: ResourceMembershipState;\n}\n\nexport interface ResourceMembershipUpdateResult {\n resourceType: ResourceMembershipResourceType;\n resourceId: string;\n state: ResourceMembershipState;\n updatedAt: Date;\n}\n", "import { z } from \"zod\";\n\nconst sidebarOrderedIdSchema = z.string().uuid();\n\nexport const sidebarOrderPreferenceSchema = z.object({\n orderedIds: z.array(sidebarOrderedIdSchema),\n updatedAt: z.coerce.date().nullable(),\n});\n\nexport const upsertSidebarOrderPreferenceSchema = z.object({\n orderedIds: z.array(sidebarOrderedIdSchema),\n});\n\nexport type UpsertSidebarOrderPreference = z.infer<typeof upsertSidebarOrderPreferenceSchema>;\n", "import { z } from \"zod\";\nimport { RESOURCE_MEMBERSHIP_STATES } from \"../types/resource-memberships.js\";\n\nexport const resourceMembershipStateSchema = z.enum(RESOURCE_MEMBERSHIP_STATES);\n\nexport const updateResourceMembershipSchema = z.object({\n state: resourceMembershipStateSchema,\n});\n\nexport type UpdateResourceMembership = z.infer<typeof updateResourceMembershipSchema>;\n", "import { z } from \"zod\";\n\nexport const executionWorkspaceStatusSchema = z.enum([\n \"active\",\n \"idle\",\n \"in_review\",\n \"archived\",\n \"cleanup_failed\",\n]);\n\nexport const executionWorkspaceConfigSchema = z.object({\n environmentId: z.string().uuid().optional().nullable(),\n provisionCommand: z.string().optional().nullable(),\n teardownCommand: z.string().optional().nullable(),\n cleanupCommand: z.string().optional().nullable(),\n workspaceRuntime: z.record(z.string(), z.unknown()).optional().nullable(),\n desiredState: z.enum([\"running\", \"stopped\", \"manual\"]).optional().nullable(),\n serviceStates: z.record(z.enum([\"running\", \"stopped\", \"manual\"])).optional().nullable(),\n}).strict();\n\nexport const workspaceRuntimeControlTargetSchema = z.object({\n workspaceCommandId: z.string().min(1).optional().nullable(),\n runtimeServiceId: z.string().uuid().optional().nullable(),\n serviceIndex: z.number().int().nonnegative().optional().nullable(),\n}).strict();\n\nexport const executionWorkspaceCloseReadinessStateSchema = z.enum([\n \"ready\",\n \"ready_with_warnings\",\n \"blocked\",\n]);\n\nexport const executionWorkspaceCloseActionKindSchema = z.enum([\n \"archive_record\",\n \"stop_runtime_services\",\n \"cleanup_command\",\n \"teardown_command\",\n \"git_worktree_remove\",\n \"git_branch_delete\",\n \"remove_local_directory\",\n]);\n\nexport const executionWorkspaceCloseActionSchema = z.object({\n kind: executionWorkspaceCloseActionKindSchema,\n label: z.string(),\n description: z.string(),\n command: z.string().nullable(),\n}).strict();\n\nexport const executionWorkspaceCloseLinkedIssueSchema = z.object({\n id: z.string().uuid(),\n identifier: z.string().nullable(),\n title: z.string(),\n status: z.string(),\n isTerminal: z.boolean(),\n}).strict();\n\nexport const executionWorkspaceCloseGitReadinessSchema = z.object({\n repoRoot: z.string().nullable(),\n workspacePath: z.string().nullable(),\n branchName: z.string().nullable(),\n baseRef: z.string().nullable(),\n hasDirtyTrackedFiles: z.boolean(),\n hasUntrackedFiles: z.boolean(),\n dirtyEntryCount: z.number().int().nonnegative(),\n untrackedEntryCount: z.number().int().nonnegative(),\n aheadCount: z.number().int().nonnegative().nullable(),\n behindCount: z.number().int().nonnegative().nullable(),\n isMergedIntoBase: z.boolean().nullable(),\n createdByRuntime: z.boolean(),\n}).strict();\n\nexport const workspaceRuntimeServiceSchema = z.object({\n id: z.string(),\n companyId: z.string().uuid(),\n projectId: z.string().uuid().nullable(),\n projectWorkspaceId: z.string().uuid().nullable(),\n executionWorkspaceId: z.string().uuid().nullable(),\n issueId: z.string().uuid().nullable(),\n scopeType: z.enum([\"project_workspace\", \"execution_workspace\", \"run\", \"agent\"]),\n scopeId: z.string().nullable(),\n serviceName: z.string(),\n status: z.enum([\"starting\", \"running\", \"stopped\", \"failed\"]),\n lifecycle: z.enum([\"shared\", \"ephemeral\"]),\n reuseKey: z.string().nullable(),\n command: z.string().nullable(),\n cwd: z.string().nullable(),\n port: z.number().int().nullable(),\n url: z.string().nullable(),\n provider: z.enum([\"local_process\", \"adapter_managed\"]),\n providerRef: z.string().nullable(),\n ownerAgentId: z.string().uuid().nullable(),\n startedByRunId: z.string().uuid().nullable(),\n lastUsedAt: z.coerce.date(),\n startedAt: z.coerce.date(),\n stoppedAt: z.coerce.date().nullable(),\n stopPolicy: z.record(z.string(), z.unknown()).nullable(),\n healthStatus: z.enum([\"unknown\", \"healthy\", \"unhealthy\"]),\n configIndex: z.number().int().nonnegative().nullable().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n}).strict();\nexport const executionWorkspaceCloseReadinessSchema = z.object({\n workspaceId: z.string().uuid(),\n state: executionWorkspaceCloseReadinessStateSchema,\n blockingReasons: z.array(z.string()),\n warnings: z.array(z.string()),\n linkedIssues: z.array(executionWorkspaceCloseLinkedIssueSchema),\n plannedActions: z.array(executionWorkspaceCloseActionSchema),\n isDestructiveCloseAllowed: z.boolean(),\n isSharedWorkspace: z.boolean(),\n isProjectPrimaryWorkspace: z.boolean(),\n git: executionWorkspaceCloseGitReadinessSchema.nullable(),\n runtimeServices: z.array(workspaceRuntimeServiceSchema),\n}).strict();\n\nexport const updateExecutionWorkspaceSchema = z.object({\n name: z.string().min(1).optional(),\n cwd: z.string().optional().nullable(),\n repoUrl: z.string().optional().nullable(),\n baseRef: z.string().optional().nullable(),\n branchName: z.string().optional().nullable(),\n providerRef: z.string().optional().nullable(),\n status: executionWorkspaceStatusSchema.optional(),\n cleanupEligibleAt: z.string().datetime().optional().nullable(),\n cleanupReason: z.string().optional().nullable(),\n config: executionWorkspaceConfigSchema.optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n}).strict();\n\nexport type UpdateExecutionWorkspace = z.infer<typeof updateExecutionWorkspaceSchema>;\n", "export const FEEDBACK_TARGET_TYPES = [\"issue_comment\", \"issue_document_revision\"] as const;\nexport type FeedbackTargetType = (typeof FEEDBACK_TARGET_TYPES)[number];\n\nexport const FEEDBACK_VOTE_VALUES = [\"up\", \"down\"] as const;\nexport type FeedbackVoteValue = (typeof FEEDBACK_VOTE_VALUES)[number];\n\nexport const FEEDBACK_DATA_SHARING_PREFERENCES = [\"allowed\", \"not_allowed\", \"prompt\"] as const;\nexport type FeedbackDataSharingPreference = (typeof FEEDBACK_DATA_SHARING_PREFERENCES)[number];\n\nexport const DEFAULT_FEEDBACK_DATA_SHARING_PREFERENCE: FeedbackDataSharingPreference = \"prompt\";\n\nexport const FEEDBACK_TRACE_STATUSES = [\"local_only\", \"pending\", \"sent\", \"failed\"] as const;\nexport type FeedbackTraceStatus = (typeof FEEDBACK_TRACE_STATUSES)[number];\n\nexport const DEFAULT_FEEDBACK_DATA_SHARING_TERMS_VERSION = \"feedback-data-sharing-v1\";\n\nexport interface FeedbackVote {\n id: string;\n companyId: string;\n issueId: string;\n targetType: FeedbackTargetType;\n targetId: string;\n authorUserId: string;\n vote: FeedbackVoteValue;\n reason: string | null;\n sharedWithLabs: boolean;\n sharedAt: Date | null;\n consentVersion: string | null;\n redactionSummary: Record<string, unknown> | null;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface FeedbackTraceTargetSummary {\n label: string;\n excerpt: string | null;\n authorAgentId: string | null;\n authorUserId: string | null;\n createdAt: Date | null;\n documentKey: string | null;\n documentTitle: string | null;\n revisionNumber: number | null;\n}\n\nexport interface FeedbackTrace {\n id: string;\n companyId: string;\n feedbackVoteId: string;\n issueId: string;\n projectId: string | null;\n issueIdentifier: string | null;\n issueTitle: string;\n authorUserId: string;\n targetType: FeedbackTargetType;\n targetId: string;\n vote: FeedbackVoteValue;\n status: FeedbackTraceStatus;\n destination: string | null;\n exportId: string | null;\n consentVersion: string | null;\n schemaVersion: string;\n bundleVersion: string;\n payloadVersion: string;\n payloadDigest: string | null;\n payloadSnapshot: Record<string, unknown> | null;\n targetSummary: FeedbackTraceTargetSummary;\n redactionSummary: Record<string, unknown> | null;\n attemptCount: number;\n lastAttemptedAt: Date | null;\n exportedAt: Date | null;\n failureReason: string | null;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport type FeedbackTraceBundleCaptureStatus = \"full\" | \"partial\" | \"unavailable\";\n\nexport interface FeedbackTraceBundleFile {\n path: string;\n contentType: string;\n encoding: \"utf8\";\n byteLength: number;\n sha256: string;\n source:\n | \"paperclip_run\"\n | \"paperclip_run_events\"\n | \"paperclip_run_log\"\n | \"codex_session\"\n | \"claude_stream_json\"\n | \"claude_project_session\"\n | \"claude_project_artifact\"\n | \"claude_debug_log\"\n | \"claude_task_metadata\"\n | \"opencode_session\"\n | \"opencode_session_diff\"\n | \"opencode_message\"\n | \"opencode_message_part\"\n | \"opencode_project\"\n | \"opencode_todo\";\n contents: string;\n}\n\nexport interface FeedbackTraceBundle {\n traceId: string;\n exportId: string | null;\n companyId: string;\n issueId: string;\n issueIdentifier: string | null;\n adapterType: string | null;\n captureStatus: FeedbackTraceBundleCaptureStatus;\n notes: string[];\n envelope: Record<string, unknown>;\n surface: Record<string, unknown> | null;\n paperclipRun: Record<string, unknown> | null;\n rawAdapterTrace: Record<string, unknown> | null;\n normalizedAdapterTrace: Record<string, unknown> | null;\n privacy: Record<string, unknown> | null;\n integrity: Record<string, unknown>;\n files: FeedbackTraceBundleFile[];\n}\n", "import { z } from \"zod\";\nimport {\n FEEDBACK_DATA_SHARING_PREFERENCES,\n FEEDBACK_TARGET_TYPES,\n FEEDBACK_TRACE_STATUSES,\n FEEDBACK_VOTE_VALUES,\n} from \"../types/feedback.js\";\n\nexport const feedbackTargetTypeSchema = z.enum(FEEDBACK_TARGET_TYPES);\nexport const feedbackTraceStatusSchema = z.enum(FEEDBACK_TRACE_STATUSES);\nexport const feedbackVoteValueSchema = z.enum(FEEDBACK_VOTE_VALUES);\nexport const feedbackDataSharingPreferenceSchema = z.enum(FEEDBACK_DATA_SHARING_PREFERENCES);\n\nexport const upsertIssueFeedbackVoteSchema = z.object({\n targetType: feedbackTargetTypeSchema,\n targetId: z.string().uuid(),\n vote: feedbackVoteValueSchema,\n reason: z.string().trim().max(1000).optional(),\n allowSharing: z.boolean().optional(),\n});\n\nexport type UpsertIssueFeedbackVote = z.infer<typeof upsertIssueFeedbackVoteSchema>;\n", "import { z } from \"zod\";\nimport { DEFAULT_FEEDBACK_DATA_SHARING_PREFERENCE } from \"../types/feedback.js\";\nimport {\n DAILY_RETENTION_PRESETS,\n WEEKLY_RETENTION_PRESETS,\n MONTHLY_RETENTION_PRESETS,\n DEFAULT_BACKUP_RETENTION,\n DEFAULT_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS,\n MAX_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS,\n MIN_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS,\n} from \"../types/instance.js\";\nimport { feedbackDataSharingPreferenceSchema } from \"./feedback.js\";\n\nfunction presetSchema<T extends readonly number[]>(presets: T, label: string) {\n return z.number().refine(\n (v): v is T[number] => (presets as readonly number[]).includes(v),\n { message: `${label} must be one of: ${presets.join(\", \")}` },\n );\n}\n\nexport const backupRetentionPolicySchema = z.object({\n dailyDays: presetSchema(DAILY_RETENTION_PRESETS, \"dailyDays\").default(DEFAULT_BACKUP_RETENTION.dailyDays),\n weeklyWeeks: presetSchema(WEEKLY_RETENTION_PRESETS, \"weeklyWeeks\").default(DEFAULT_BACKUP_RETENTION.weeklyWeeks),\n monthlyMonths: presetSchema(MONTHLY_RETENTION_PRESETS, \"monthlyMonths\").default(DEFAULT_BACKUP_RETENTION.monthlyMonths),\n});\n\nexport const instanceGeneralSettingsSchema = z.object({\n censorUsernameInLogs: z.boolean().default(false),\n keyboardShortcuts: z.boolean().default(false),\n feedbackDataSharingPreference: feedbackDataSharingPreferenceSchema.default(\n DEFAULT_FEEDBACK_DATA_SHARING_PREFERENCE,\n ),\n backupRetention: backupRetentionPolicySchema.default(DEFAULT_BACKUP_RETENTION),\n}).strict();\n\nexport const patchInstanceGeneralSettingsSchema = instanceGeneralSettingsSchema.partial();\n\nexport const instanceExperimentalSettingsSchema = z.object({\n enableEnvironments: z.boolean().default(false),\n enableIsolatedWorkspaces: z.boolean().default(false),\n enableIssuePlanDecompositions: z.boolean().default(false),\n enableCloudSync: z.boolean().default(false),\n autoRestartDevServerWhenIdle: z.boolean().default(false),\n enableIssueGraphLivenessAutoRecovery: z.boolean().default(false),\n issueGraphLivenessAutoRecoveryLookbackHours: z\n .number()\n .int()\n .min(MIN_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS)\n .max(MAX_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS)\n .default(DEFAULT_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS),\n}).strict();\n\nexport const patchInstanceExperimentalSettingsSchema = instanceExperimentalSettingsSchema.partial();\n\nexport const issueGraphLivenessAutoRecoveryRequestSchema = z.object({\n lookbackHours: z\n .number()\n .int()\n .min(MIN_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS)\n .max(MAX_ISSUE_GRAPH_LIVENESS_AUTO_RECOVERY_LOOKBACK_HOURS)\n .optional(),\n}).strict();\n\nexport type InstanceGeneralSettings = z.infer<typeof instanceGeneralSettingsSchema>;\nexport type PatchInstanceGeneralSettings = z.infer<typeof patchInstanceGeneralSettingsSchema>;\nexport type InstanceExperimentalSettings = z.infer<typeof instanceExperimentalSettingsSchema>;\nexport type PatchInstanceExperimentalSettings = z.infer<typeof patchInstanceExperimentalSettingsSchema>;\nexport type IssueGraphLivenessAutoRecoveryRequest = z.infer<\n typeof issueGraphLivenessAutoRecoveryRequestSchema\n>;\n", "import { z } from \"zod\";\nimport {\n BUDGET_INCIDENT_RESOLUTION_ACTIONS,\n BUDGET_METRICS,\n BUDGET_SCOPE_TYPES,\n BUDGET_WINDOW_KINDS,\n} from \"../constants.js\";\n\nexport const upsertBudgetPolicySchema = z.object({\n scopeType: z.enum(BUDGET_SCOPE_TYPES),\n scopeId: z.string().uuid(),\n metric: z.enum(BUDGET_METRICS).optional().default(\"billed_cents\"),\n windowKind: z.enum(BUDGET_WINDOW_KINDS).optional().default(\"calendar_month_utc\"),\n amount: z.number().int().nonnegative(),\n warnPercent: z.number().int().min(1).max(99).optional().default(80),\n hardStopEnabled: z.boolean().optional().default(true),\n notifyEnabled: z.boolean().optional().default(true),\n isActive: z.boolean().optional().default(true),\n});\n\nexport type UpsertBudgetPolicy = z.infer<typeof upsertBudgetPolicySchema>;\n\nexport const resolveBudgetIncidentSchema = z.object({\n action: z.enum(BUDGET_INCIDENT_RESOLUTION_ACTIONS),\n amount: z.number().int().nonnegative().optional(),\n decisionNote: z.string().optional().nullable(),\n}).superRefine((value, ctx) => {\n if (value.action === \"raise_budget_and_resume\" && typeof value.amount !== \"number\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"amount is required when raising a budget\",\n path: [\"amount\"],\n });\n }\n});\n\nexport type ResolveBudgetIncident = z.infer<typeof resolveBudgetIncidentSchema>;\n", "import { z } from \"zod\";\nimport {\n COMPANY_STATUSES,\n MAX_COMPANY_ATTACHMENT_MAX_BYTES,\n} from \"../constants.js\";\n\nconst logoAssetIdSchema = z.string().uuid().nullable().optional();\nconst brandColorSchema = z.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional();\nconst feedbackDataSharingTermsVersionSchema = z.string().min(1).nullable().optional();\nconst attachmentMaxBytesSchema = z\n .number()\n .int()\n .min(1)\n .max(MAX_COMPANY_ATTACHMENT_MAX_BYTES);\n\nexport const createCompanySchema = z.object({\n name: z.string().min(1),\n description: z.string().optional().nullable(),\n budgetMonthlyCents: z.number().int().nonnegative().optional().default(0),\n attachmentMaxBytes: attachmentMaxBytesSchema.optional(),\n});\n\nexport type CreateCompany = z.infer<typeof createCompanySchema>;\n\nexport const updateCompanySchema = createCompanySchema\n .partial()\n .extend({\n status: z.enum(COMPANY_STATUSES).optional(),\n spentMonthlyCents: z.number().int().nonnegative().optional(),\n requireBoardApprovalForNewAgents: z.boolean().optional(),\n feedbackDataSharingEnabled: z.boolean().optional(),\n feedbackDataSharingConsentAt: z.coerce.date().nullable().optional(),\n feedbackDataSharingConsentByUserId: z.string().min(1).nullable().optional(),\n feedbackDataSharingTermsVersion: feedbackDataSharingTermsVersionSchema,\n brandColor: brandColorSchema,\n logoAssetId: logoAssetIdSchema,\n attachmentMaxBytes: attachmentMaxBytesSchema.optional(),\n });\n\nexport type UpdateCompany = z.infer<typeof updateCompanySchema>;\n\nexport const updateCompanyBrandingSchema = z\n .object({\n name: z.string().min(1).optional(),\n description: z.string().nullable().optional(),\n brandColor: brandColorSchema,\n logoAssetId: logoAssetIdSchema,\n })\n .strict()\n .refine(\n (value) =>\n value.name !== undefined\n || value.description !== undefined\n || value.brandColor !== undefined\n || value.logoAssetId !== undefined,\n \"At least one branding field must be provided\",\n );\n\nexport type UpdateCompanyBranding = z.infer<typeof updateCompanyBrandingSchema>;\n", "import { z } from \"zod\";\nimport {\n ENVIRONMENT_DRIVERS,\n ENVIRONMENT_LEASE_CLEANUP_STATUSES,\n ENVIRONMENT_LEASE_STATUSES,\n ENVIRONMENT_STATUSES,\n} from \"../constants.js\";\n\nexport const environmentDriverSchema = z.enum(ENVIRONMENT_DRIVERS);\nexport const environmentStatusSchema = z.enum(ENVIRONMENT_STATUSES);\nexport const environmentLeaseStatusSchema = z.enum(ENVIRONMENT_LEASE_STATUSES);\nexport const environmentLeaseCleanupStatusSchema = z.enum(ENVIRONMENT_LEASE_CLEANUP_STATUSES);\n\nconst environmentFields = {\n name: z.string().min(1),\n description: z.string().optional().nullable(),\n driver: environmentDriverSchema,\n status: environmentStatusSchema.optional().default(\"active\"),\n config: z.record(z.string(), z.unknown()).optional().default({}),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n};\n\nexport const createEnvironmentSchema = z.object(environmentFields).strict();\nexport type CreateEnvironment = z.infer<typeof createEnvironmentSchema>;\n\nexport const updateEnvironmentSchema = z.object({\n name: z.string().min(1).optional(),\n description: z.string().optional().nullable(),\n driver: environmentDriverSchema.optional(),\n status: environmentStatusSchema.optional(),\n config: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n}).strict();\nexport type UpdateEnvironment = z.infer<typeof updateEnvironmentSchema>;\n\nexport const probeEnvironmentConfigSchema = z.object({\n name: z.string().min(1).optional(),\n description: z.string().optional().nullable(),\n driver: environmentDriverSchema,\n config: z.record(z.string(), z.unknown()).optional().default({}),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n}).strict();\nexport type ProbeEnvironmentConfig = z.infer<typeof probeEnvironmentConfigSchema>;\n", "import { z } from \"zod\";\n\nexport const companySkillSourceTypeSchema = z.enum([\"local_path\", \"github\", \"url\", \"catalog\", \"skills_sh\"]);\nexport const companySkillTrustLevelSchema = z.enum([\"markdown_only\", \"assets\", \"scripts_executables\"]);\nexport const companySkillCompatibilitySchema = z.enum([\"compatible\", \"unknown\", \"invalid\"]);\nexport const companySkillSourceBadgeSchema = z.enum([\"paperclip\", \"github\", \"local\", \"url\", \"catalog\", \"skills_sh\"]);\n\nexport const companySkillFileInventoryEntrySchema = z.object({\n path: z.string().min(1),\n kind: z.enum([\"skill\", \"markdown\", \"reference\", \"script\", \"asset\", \"other\"]),\n});\n\nexport const companySkillSchema = z.object({\n id: z.string().uuid(),\n companyId: z.string().uuid(),\n key: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullable(),\n markdown: z.string(),\n sourceType: companySkillSourceTypeSchema,\n sourceLocator: z.string().nullable(),\n sourceRef: z.string().nullable(),\n trustLevel: companySkillTrustLevelSchema,\n compatibility: companySkillCompatibilitySchema,\n fileInventory: z.array(companySkillFileInventoryEntrySchema).default([]),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const companySkillListItemSchema = companySkillSchema.extend({\n attachedAgentCount: z.number().int().nonnegative(),\n editable: z.boolean(),\n editableReason: z.string().nullable(),\n sourceLabel: z.string().nullable(),\n sourceBadge: companySkillSourceBadgeSchema,\n catalogKind: z.enum([\"bundled\", \"optional\"]).nullable(),\n originHash: z.string().nullable(),\n packageName: z.string().nullable(),\n packageVersion: z.string().nullable(),\n});\n\nexport const companySkillUsageAgentSchema = z.object({\n id: z.string().uuid(),\n name: z.string().min(1),\n urlKey: z.string().min(1),\n adapterType: z.string().min(1),\n desired: z.boolean(),\n actualState: z.string().nullable().describe(\n \"Runtime adapter skill state when explicitly fetched; company skill detail reads return null without probing agent runtimes.\",\n ),\n});\n\nexport const companySkillDetailSchema = companySkillSchema.extend({\n attachedAgentCount: z.number().int().nonnegative(),\n usedByAgents: z.array(companySkillUsageAgentSchema).default([]),\n editable: z.boolean(),\n editableReason: z.string().nullable(),\n sourceLabel: z.string().nullable(),\n sourceBadge: companySkillSourceBadgeSchema,\n});\n\nexport const companySkillUpdateStatusSchema = z.object({\n supported: z.boolean(),\n reason: z.string().nullable(),\n trackingRef: z.string().nullable(),\n currentRef: z.string().nullable(),\n latestRef: z.string().nullable(),\n hasUpdate: z.boolean(),\n installedHash: z.string().nullable(),\n originHash: z.string().nullable(),\n userModifiedAt: z.string().nullable(),\n updateHoldReason: z.enum([\n \"local_modifications\",\n \"audit_hard_stop\",\n \"origin_unavailable\",\n \"compatibility_invalid\",\n \"operator_hold\",\n ]).nullable(),\n auditVerdict: z.enum([\"pass\", \"warning\", \"fail\"]).nullable(),\n auditCodes: z.array(z.string()),\n});\n\nexport const companySkillAuditFindingSchema = z.object({\n code: z.string().min(1),\n severity: z.enum([\"warning\", \"error\"]),\n message: z.string().min(1),\n path: z.string().nullable(),\n});\n\nexport const companySkillAuditResultSchema = z.object({\n skillId: z.string().uuid(),\n installedHash: z.string().nullable(),\n originHash: z.string().nullable(),\n verdict: z.enum([\"pass\", \"warning\", \"fail\"]),\n codes: z.array(z.string()),\n findings: z.array(companySkillAuditFindingSchema),\n scannedAt: z.string().min(1),\n scanVersion: z.string().min(1),\n});\n\nexport const companySkillInstallUpdateSchema = z.object({\n force: z.boolean().optional(),\n}).default({});\n\nexport const companySkillResetSchema = z.object({\n force: z.boolean().optional(),\n}).default({});\n\nexport const companySkillImportSchema = z.object({\n source: z.string().min(1),\n});\n\nexport const companySkillProjectScanRequestSchema = z.object({\n projectIds: z.array(z.string().uuid()).optional(),\n workspaceIds: z.array(z.string().uuid()).optional(),\n});\n\nexport const companySkillProjectScanSkippedSchema = z.object({\n projectId: z.string().uuid(),\n projectName: z.string().min(1),\n workspaceId: z.string().uuid().nullable(),\n workspaceName: z.string().nullable(),\n path: z.string().nullable(),\n reason: z.string().min(1),\n});\n\nexport const companySkillProjectScanConflictSchema = z.object({\n slug: z.string().min(1),\n key: z.string().min(1),\n projectId: z.string().uuid(),\n projectName: z.string().min(1),\n workspaceId: z.string().uuid(),\n workspaceName: z.string().min(1),\n path: z.string().min(1),\n existingSkillId: z.string().uuid(),\n existingSkillKey: z.string().min(1),\n existingSourceLocator: z.string().nullable(),\n reason: z.string().min(1),\n});\n\nexport const companySkillProjectScanResultSchema = z.object({\n scannedProjects: z.number().int().nonnegative(),\n scannedWorkspaces: z.number().int().nonnegative(),\n discovered: z.number().int().nonnegative(),\n imported: z.array(companySkillSchema),\n updated: z.array(companySkillSchema),\n skipped: z.array(companySkillProjectScanSkippedSchema),\n conflicts: z.array(companySkillProjectScanConflictSchema),\n warnings: z.array(z.string()),\n});\n\nexport const companySkillCreateSchema = z.object({\n name: z.string().min(1),\n slug: z.string().min(1).nullable().optional(),\n description: z.string().nullable().optional(),\n markdown: z.string().nullable().optional(),\n});\n\nexport const companySkillFileDetailSchema = z.object({\n skillId: z.string().uuid(),\n path: z.string().min(1),\n kind: z.enum([\"skill\", \"markdown\", \"reference\", \"script\", \"asset\", \"other\"]),\n content: z.string(),\n language: z.string().nullable(),\n markdown: z.boolean(),\n editable: z.boolean(),\n});\n\nexport const companySkillFileUpdateSchema = z.object({\n path: z.string().min(1),\n content: z.string(),\n});\n\nexport const catalogSkillKindSchema = z.enum([\"bundled\", \"optional\"]);\n\nexport const catalogSkillFileSchema = z.object({\n path: z.string().min(1),\n kind: z.enum([\"skill\", \"markdown\", \"reference\", \"script\", \"asset\", \"other\"]),\n sizeBytes: z.number().int().nonnegative(),\n sha256: z.string().min(1),\n});\n\nexport const catalogSkillSchema = z.object({\n id: z.string().min(1),\n key: z.string().min(1),\n kind: catalogSkillKindSchema,\n category: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string(),\n path: z.string().min(1),\n entrypoint: z.literal(\"SKILL.md\"),\n trustLevel: companySkillTrustLevelSchema,\n compatibility: companySkillCompatibilitySchema,\n defaultInstall: z.boolean(),\n recommendedForRoles: z.array(z.string()),\n requires: z.array(z.string()),\n tags: z.array(z.string()),\n files: z.array(catalogSkillFileSchema),\n contentHash: z.string().min(1),\n packageName: z.string().min(1).optional(),\n packageVersion: z.string().min(1).optional(),\n});\n\nexport const catalogSkillListQuerySchema = z.object({\n kind: catalogSkillKindSchema.optional(),\n category: z.string().min(1).optional(),\n q: z.string().min(1).optional(),\n});\n\nexport const catalogSkillFileDetailSchema = z.object({\n catalogSkillId: z.string().min(1),\n path: z.string().min(1),\n kind: z.enum([\"skill\", \"markdown\", \"reference\", \"script\", \"asset\", \"other\"]),\n content: z.string(),\n language: z.string().nullable(),\n markdown: z.boolean(),\n});\n\nexport const companySkillInstallCatalogSchema = z.object({\n catalogSkillId: z.string().min(1),\n slug: z.string().min(1).nullable().optional(),\n force: z.boolean().optional(),\n});\n\nexport const companySkillInstallCatalogResultSchema = z.object({\n action: z.enum([\"created\", \"updated\", \"unchanged\"]),\n skill: companySkillSchema,\n catalogSkill: catalogSkillSchema,\n warnings: z.array(z.string()),\n});\n\nexport type CompanySkillImport = z.infer<typeof companySkillImportSchema>;\nexport type CompanySkillProjectScan = z.infer<typeof companySkillProjectScanRequestSchema>;\nexport type CompanySkillCreate = z.infer<typeof companySkillCreateSchema>;\nexport type CompanySkillFileUpdate = z.infer<typeof companySkillFileUpdateSchema>;\nexport type CatalogSkillListQuery = z.infer<typeof catalogSkillListQuerySchema>;\nexport type CompanySkillInstallCatalog = z.infer<typeof companySkillInstallCatalogSchema>;\nexport type CompanySkillInstallUpdate = z.infer<typeof companySkillInstallUpdateSchema>;\nexport type CompanySkillReset = z.infer<typeof companySkillResetSchema>;\n", "import { z } from \"zod\";\n\nexport const agentSkillStateSchema = z.enum([\n \"available\",\n \"configured\",\n \"installed\",\n \"missing\",\n \"stale\",\n \"external\",\n]);\n\nexport const agentSkillOriginSchema = z.enum([\n \"company_managed\",\n \"paperclip_required\",\n \"user_installed\",\n \"external_unknown\",\n]);\n\nexport const agentSkillSyncModeSchema = z.enum([\n \"unsupported\",\n \"persistent\",\n \"ephemeral\",\n]);\n\nexport const agentSkillEntrySchema = z.object({\n key: z.string().min(1),\n runtimeName: z.string().min(1).nullable(),\n desired: z.boolean(),\n managed: z.boolean(),\n required: z.boolean().optional(),\n requiredReason: z.string().nullable().optional(),\n state: agentSkillStateSchema,\n origin: agentSkillOriginSchema.optional(),\n originLabel: z.string().nullable().optional(),\n locationLabel: z.string().nullable().optional(),\n readOnly: z.boolean().optional(),\n sourcePath: z.string().nullable().optional(),\n targetPath: z.string().nullable().optional(),\n detail: z.string().nullable().optional(),\n});\n\nexport const agentSkillSnapshotSchema = z.object({\n adapterType: z.string().min(1),\n supported: z.boolean(),\n mode: agentSkillSyncModeSchema,\n desiredSkills: z.array(z.string().min(1)),\n entries: z.array(agentSkillEntrySchema),\n warnings: z.array(z.string()),\n});\n\nexport const agentSkillSyncSchema = z.object({\n desiredSkills: z.array(z.string().min(1)),\n});\n\nexport type AgentSkillSync = z.infer<typeof agentSkillSyncSchema>;\n", "import { z } from \"zod\";\n\nexport function normalizeEscapedLineBreaks(value: string): string {\n return value\n .replace(/\\\\r\\\\n/g, \"\\n\")\n .replace(/\\\\n/g, \"\\n\")\n .replace(/\\\\r/g, \"\\n\");\n}\n\nexport const multilineTextSchema = z.string().transform(normalizeEscapedLineBreaks);\n", "import { z } from \"zod\";\nimport {\n ISSUE_EXECUTION_DECISION_OUTCOMES,\n ISSUE_EXECUTION_MONITOR_CLEAR_REASONS,\n ISSUE_EXECUTION_MONITOR_KINDS,\n ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES,\n ISSUE_EXECUTION_MONITOR_STATE_STATUSES,\n ISSUE_EXECUTION_POLICY_MODES,\n ISSUE_EXECUTION_STAGE_TYPES,\n ISSUE_EXECUTION_STATE_STATUSES,\n ISSUE_COMMENT_AUTHOR_TYPES,\n ISSUE_COMMENT_METADATA_ROW_TYPES,\n ISSUE_COMMENT_PRESENTATION_KINDS,\n ISSUE_COMMENT_PRESENTATION_TONES,\n ISSUE_MONITOR_SCHEDULED_BY,\n ISSUE_PRIORITIES,\n ISSUE_RECOVERY_ACTION_KINDS,\n ISSUE_RECOVERY_ACTION_OUTCOMES,\n ISSUE_RECOVERY_ACTION_OWNER_TYPES,\n ISSUE_RECOVERY_ACTION_STATUSES,\n ISSUE_WORK_MODES,\n clampIssueRequestDepth,\n ISSUE_STATUSES,\n ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES,\n ISSUE_THREAD_INTERACTION_KINDS,\n ISSUE_THREAD_INTERACTION_STATUSES,\n MODEL_PROFILE_KEYS,\n} from \"../constants.js\";\nimport { multilineTextSchema } from \"./text.js\";\n\nexport const issueBlockedInboxStateSchema = z.enum([\n \"needs_attention\",\n \"awaiting_decision\",\n \"external_wait\",\n \"recovery_open\",\n \"missing_disposition\",\n]);\n\nexport const issueBlockedInboxSeveritySchema = z.enum([\"critical\", \"high\", \"medium\", \"low\"]);\n\nexport const issueBlockedInboxReasonSchema = z.enum([\n \"blocked_by_unassigned_issue\",\n \"blocked_by_assigned_backlog_issue\",\n \"blocked_by_uninvokable_assignee\",\n \"blocked_by_cancelled_issue\",\n \"blocked_chain_stalled\",\n \"invalid_review_participant\",\n \"in_review_without_action_path\",\n \"missing_successful_run_disposition\",\n \"pending_board_decision\",\n \"pending_user_decision\",\n \"external_owner_action\",\n \"open_recovery_issue\",\n]);\n\nexport const issueBlockedInboxIssueRefSchema = z.object({\n id: z.string().uuid(),\n identifier: z.string().nullable(),\n title: z.string(),\n status: z.enum(ISSUE_STATUSES),\n priority: z.enum(ISSUE_PRIORITIES),\n assigneeAgentId: z.string().uuid().nullable(),\n assigneeUserId: z.string().nullable(),\n}).strict();\n\nexport const issueBlockedInboxAttentionSchema = z.object({\n kind: z.literal(\"blocked\"),\n state: issueBlockedInboxStateSchema,\n reason: issueBlockedInboxReasonSchema,\n severity: issueBlockedInboxSeveritySchema,\n stoppedSinceAt: z.string().datetime().nullable(),\n owner: z.object({\n type: z.enum([\"agent\", \"user\", \"board\", \"external\", \"unknown\"]),\n agentId: z.string().uuid().nullable(),\n userId: z.string().nullable(),\n label: z.string().nullable(),\n }).strict(),\n action: z.object({\n label: z.string().trim().min(1),\n detail: z.string().nullable(),\n }).strict(),\n sourceIssue: issueBlockedInboxIssueRefSchema.nullable(),\n leafIssue: issueBlockedInboxIssueRefSchema.nullable(),\n recoveryIssue: issueBlockedInboxIssueRefSchema.nullable(),\n approvalId: z.string().uuid().nullable(),\n interactionId: z.string().uuid().nullable(),\n sampleIssueIdentifier: z.string().nullable(),\n redaction: z.object({\n externalDetailsRedacted: z.boolean(),\n secretFieldsOmitted: z.literal(true),\n }).strict(),\n}).strict();\n\nexport const ISSUE_EXECUTION_WORKSPACE_PREFERENCES = [\n \"inherit\",\n \"shared_workspace\",\n \"isolated_workspace\",\n \"operator_branch\",\n \"reuse_existing\",\n \"agent_default\",\n] as const;\n\nconst executionWorkspaceStrategySchema = z\n .object({\n type: z.enum([\"project_primary\", \"git_worktree\", \"adapter_managed\", \"cloud_sandbox\"]).optional(),\n baseRef: z.string().optional().nullable(),\n branchTemplate: z.string().optional().nullable(),\n worktreeParentDir: z.string().optional().nullable(),\n provisionCommand: z.string().optional().nullable(),\n teardownCommand: z.string().optional().nullable(),\n })\n .strict();\n\nexport const issueExecutionWorkspaceSettingsSchema = z\n .object({\n mode: z.enum(ISSUE_EXECUTION_WORKSPACE_PREFERENCES).optional(),\n environmentId: z.string().uuid().optional().nullable(),\n workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),\n workspaceRuntime: z.record(z.string(), z.unknown()).optional().nullable(),\n })\n .strict();\n\nexport const issueAssigneeAdapterOverridesSchema = z\n .object({\n modelProfile: z.enum(MODEL_PROFILE_KEYS).optional(),\n adapterConfig: z.record(z.string(), z.unknown()).optional(),\n useProjectWorkspace: z.boolean().optional(),\n })\n .strict();\n\nconst issueExecutionStagePrincipalBaseSchema = z.object({\n type: z.enum([\"agent\", \"user\"]),\n agentId: z.string().uuid().optional().nullable(),\n userId: z.string().optional().nullable(),\n});\n\nexport const issueExecutionStagePrincipalSchema = issueExecutionStagePrincipalBaseSchema\n .superRefine((value, ctx) => {\n if (value.type === \"agent\") {\n if (!value.agentId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"Agent participants require agentId\", path: [\"agentId\"] });\n }\n if (value.userId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"Agent participants cannot set userId\", path: [\"userId\"] });\n }\n return;\n }\n if (!value.userId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"User participants require userId\", path: [\"userId\"] });\n }\n if (value.agentId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"User participants cannot set agentId\", path: [\"agentId\"] });\n }\n });\n\nexport const issueExecutionStageParticipantSchema = issueExecutionStagePrincipalBaseSchema.extend({\n id: z.string().uuid().optional(),\n}).superRefine((value, ctx) => {\n if (value.type === \"agent\") {\n if (!value.agentId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"Agent participants require agentId\", path: [\"agentId\"] });\n }\n if (value.userId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"Agent participants cannot set userId\", path: [\"userId\"] });\n }\n return;\n }\n if (!value.userId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"User participants require userId\", path: [\"userId\"] });\n }\n if (value.agentId) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, message: \"User participants cannot set agentId\", path: [\"agentId\"] });\n }\n});\n\nexport const issueExecutionStageSchema = z.object({\n id: z.string().uuid().optional(),\n type: z.enum(ISSUE_EXECUTION_STAGE_TYPES),\n approvalsNeeded: z.literal(1).optional().default(1),\n participants: z.array(issueExecutionStageParticipantSchema).default([]),\n});\n\nexport const issueExecutionMonitorPolicySchema = z.object({\n nextCheckAt: z.string().datetime(),\n notes: z.string().max(500).optional().nullable().default(null),\n scheduledBy: z.enum(ISSUE_MONITOR_SCHEDULED_BY).optional().default(\"assignee\"),\n kind: z.enum(ISSUE_EXECUTION_MONITOR_KINDS).optional().nullable().default(null),\n serviceName: z.string().trim().min(1).max(120).optional().nullable().default(null),\n externalRef: z.string().trim().min(1).max(500).optional().nullable().default(null),\n timeoutAt: z.string().datetime().optional().nullable().default(null),\n maxAttempts: z.number().int().positive().max(100).optional().nullable().default(null),\n recoveryPolicy: z.enum(ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES).optional().nullable().default(null),\n});\n\nexport const issueExecutionPolicySchema = z.object({\n mode: z.enum(ISSUE_EXECUTION_POLICY_MODES).optional().default(\"normal\"),\n commentRequired: z.boolean().optional().default(true),\n stages: z.array(issueExecutionStageSchema).default([]),\n monitor: issueExecutionMonitorPolicySchema.optional().nullable(),\n});\n\nexport const issueExecutionMonitorStateSchema = z.object({\n status: z.enum(ISSUE_EXECUTION_MONITOR_STATE_STATUSES),\n nextCheckAt: z.string().datetime().nullable(),\n lastTriggeredAt: z.string().datetime().nullable(),\n attemptCount: z.number().int().nonnegative().default(0),\n notes: z.string().max(500).nullable(),\n scheduledBy: z.enum(ISSUE_MONITOR_SCHEDULED_BY).nullable(),\n kind: z.enum(ISSUE_EXECUTION_MONITOR_KINDS).nullable().optional().default(null),\n serviceName: z.string().trim().min(1).max(120).nullable().optional().default(null),\n externalRef: z.string().trim().min(1).max(500).nullable().optional().default(null),\n timeoutAt: z.string().datetime().nullable().optional().default(null),\n maxAttempts: z.number().int().positive().max(100).nullable().optional().default(null),\n recoveryPolicy: z.enum(ISSUE_EXECUTION_MONITOR_RECOVERY_POLICIES).nullable().optional().default(null),\n clearedAt: z.string().datetime().nullable(),\n clearReason: z.enum(ISSUE_EXECUTION_MONITOR_CLEAR_REASONS).nullable(),\n});\n\nexport const issueReviewRequestSchema = z.object({\n instructions: z.string().trim().min(1).max(20000),\n}).strict();\n\nexport const issueExecutionStateSchema = z.object({\n status: z.enum(ISSUE_EXECUTION_STATE_STATUSES),\n currentStageId: z.string().uuid().nullable(),\n currentStageIndex: z.number().int().nonnegative().nullable(),\n currentStageType: z.enum(ISSUE_EXECUTION_STAGE_TYPES).nullable(),\n currentParticipant: issueExecutionStagePrincipalSchema.nullable(),\n returnAssignee: issueExecutionStagePrincipalSchema.nullable(),\n reviewRequest: issueReviewRequestSchema.nullable().optional().default(null),\n completedStageIds: z.array(z.string().uuid()).default([]),\n lastDecisionId: z.string().uuid().nullable(),\n lastDecisionOutcome: z.enum(ISSUE_EXECUTION_DECISION_OUTCOMES).nullable(),\n monitor: issueExecutionMonitorStateSchema.optional().nullable(),\n});\n\nexport const issueRecoveryActionReadModelSchema = z.object({\n id: z.string().uuid(),\n companyId: z.string().uuid(),\n sourceIssueId: z.string().uuid(),\n recoveryIssueId: z.string().uuid().nullable(),\n kind: z.enum(ISSUE_RECOVERY_ACTION_KINDS),\n status: z.enum(ISSUE_RECOVERY_ACTION_STATUSES),\n ownerType: z.enum(ISSUE_RECOVERY_ACTION_OWNER_TYPES),\n ownerAgentId: z.string().uuid().nullable(),\n ownerUserId: z.string().nullable(),\n previousOwnerAgentId: z.string().uuid().nullable(),\n returnOwnerAgentId: z.string().uuid().nullable(),\n cause: z.string().min(1),\n fingerprint: z.string().min(1),\n evidence: z.record(z.string(), z.unknown()),\n nextAction: z.string().min(1),\n wakePolicy: z.record(z.string(), z.unknown()).nullable(),\n monitorPolicy: z.record(z.string(), z.unknown()).nullable(),\n attemptCount: z.number().int().nonnegative(),\n maxAttempts: z.number().int().positive().nullable(),\n timeoutAt: z.union([z.date(), z.string().datetime()]).nullable(),\n lastAttemptAt: z.union([z.date(), z.string().datetime()]).nullable(),\n outcome: z.enum(ISSUE_RECOVERY_ACTION_OUTCOMES).nullable(),\n resolutionNote: z.string().nullable(),\n resolvedAt: z.union([z.date(), z.string().datetime()]).nullable(),\n createdAt: z.union([z.date(), z.string().datetime()]),\n updatedAt: z.union([z.date(), z.string().datetime()]),\n});\n\nexport type IssueRecoveryActionReadModel = z.infer<typeof issueRecoveryActionReadModelSchema>;\n\nconst RESOLVE_ISSUE_RECOVERY_ACTION_OUTCOMES = [\n \"restored\",\n \"false_positive\",\n \"blocked\",\n \"cancelled\",\n] as const;\n\nexport const resolveIssueRecoveryActionSchema = z.object({\n actionId: z.string().uuid().optional(),\n outcome: z.enum(RESOLVE_ISSUE_RECOVERY_ACTION_OUTCOMES),\n sourceIssueStatus: z.enum([\"todo\", \"done\", \"in_review\", \"blocked\"]),\n resolutionNote: multilineTextSchema.optional().nullable(),\n}).strict().superRefine((value, ctx) => {\n if (value.outcome === \"restored\") {\n if (\n value.sourceIssueStatus !== \"todo\" &&\n value.sourceIssueStatus !== \"done\" &&\n value.sourceIssueStatus !== \"in_review\"\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Restored recovery actions must move the source issue to todo, done, or in_review\",\n path: [\"sourceIssueStatus\"],\n });\n }\n return;\n }\n\n if (value.outcome === \"blocked\") {\n if (value.sourceIssueStatus !== \"blocked\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Blocked recovery actions must move the source issue to blocked\",\n path: [\"sourceIssueStatus\"],\n });\n }\n return;\n }\n\n if (value.outcome === \"false_positive\" || value.outcome === \"cancelled\") {\n if (\n value.sourceIssueStatus !== \"done\" &&\n value.sourceIssueStatus !== \"in_review\"\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"This recovery outcome requires sourceIssueStatus to be done or in_review\",\n path: [\"sourceIssueStatus\"],\n });\n }\n return;\n }\n});\n\nexport type ResolveIssueRecoveryAction = z.infer<typeof resolveIssueRecoveryActionSchema>;\n\nconst issueRequestDepthInputSchema = z\n .number()\n .int()\n .nonnegative()\n .transform((value) => clampIssueRequestDepth(value));\n\ntype IssueCreateStatusDefaultInput = {\n status?: unknown;\n assigneeAgentId?: unknown;\n assigneeUserId?: unknown;\n};\n\nexport function resolveCreateIssueStatusDefault(input: IssueCreateStatusDefaultInput): {\n status: (typeof ISSUE_STATUSES)[number];\n defaulted: boolean;\n reason: \"explicit\" | \"assigned_omitted_status\" | \"unassigned_omitted_status\";\n} {\n if (typeof input.status === \"string\") {\n return {\n status: input.status as (typeof ISSUE_STATUSES)[number],\n defaulted: false,\n reason: \"explicit\",\n };\n }\n\n const hasAssignee =\n (typeof input.assigneeAgentId === \"string\" && input.assigneeAgentId.length > 0)\n || (typeof input.assigneeUserId === \"string\" && input.assigneeUserId.length > 0);\n return {\n status: hasAssignee ? \"todo\" : \"backlog\",\n defaulted: true,\n reason: hasAssignee ? \"assigned_omitted_status\" : \"unassigned_omitted_status\",\n };\n}\n\nfunction withCreateIssueStatusDefault<T extends z.ZodRawShape>(schema: z.ZodObject<T>) {\n return z.preprocess((input) => {\n if (!input || typeof input !== \"object\" || Array.isArray(input)) return input;\n const raw = input as Record<string, unknown>;\n if (raw.status !== undefined) return input;\n return {\n ...raw,\n status: resolveCreateIssueStatusDefault(raw).status,\n };\n }, schema);\n}\n\nconst createIssueBaseSchema = z.object({\n projectId: z.string().uuid().optional().nullable(),\n projectWorkspaceId: z.string().uuid().optional().nullable(),\n goalId: z.string().uuid().optional().nullable(),\n parentId: z.string().uuid().optional().nullable(),\n blockedByIssueIds: z.array(z.string().uuid()).optional(),\n inheritExecutionWorkspaceFromIssueId: z.string().uuid().optional().nullable(),\n title: z.string().min(1),\n description: multilineTextSchema.optional().nullable(),\n status: z.enum(ISSUE_STATUSES),\n workMode: z.enum(ISSUE_WORK_MODES).optional().default(\"standard\"),\n priority: z.enum(ISSUE_PRIORITIES).optional().default(\"medium\"),\n assigneeAgentId: z.string().uuid().optional().nullable(),\n assigneeUserId: z.string().optional().nullable(),\n requestDepth: issueRequestDepthInputSchema.optional().default(0),\n billingCode: z.string().optional().nullable(),\n assigneeAdapterOverrides: issueAssigneeAdapterOverridesSchema.optional().nullable(),\n executionPolicy: issueExecutionPolicySchema.optional().nullable(),\n executionWorkspaceId: z.string().uuid().optional().nullable(),\n executionWorkspacePreference: z.enum(ISSUE_EXECUTION_WORKSPACE_PREFERENCES).optional().nullable(),\n executionWorkspaceSettings: issueExecutionWorkspaceSettingsSchema.optional().nullable(),\n labelIds: z.array(z.string().uuid()).optional(),\n});\n\nexport const createIssueInputSchema = createIssueBaseSchema.extend({\n status: createIssueBaseSchema.shape.status.optional(),\n});\n\nexport const createIssueSchema = withCreateIssueStatusDefault(createIssueBaseSchema);\n\nexport type CreateIssue = z.infer<typeof createIssueSchema>;\n\nexport const createChildIssueSchema = withCreateIssueStatusDefault(createIssueBaseSchema\n .omit({\n parentId: true,\n inheritExecutionWorkspaceFromIssueId: true,\n })\n .extend({\n acceptanceCriteria: z.array(z.string().trim().min(1).max(500)).max(20).optional(),\n blockParentUntilDone: z.boolean().optional().default(false),\n }));\n\nexport type CreateChildIssue = z.infer<typeof createChildIssueSchema>;\n\nexport const createAcceptedPlanDecompositionSchema = z.object({\n acceptedPlanRevisionId: z.string().uuid(),\n children: z.array(createChildIssueSchema).min(1).max(25),\n});\n\nexport type CreateAcceptedPlanDecomposition = z.infer<typeof createAcceptedPlanDecompositionSchema>;\n\nexport const createIssueLabelSchema = z.object({\n name: z.string().trim().min(1).max(48),\n color: z.string().regex(/^#(?:[0-9a-fA-F]{6})$/, \"Color must be a 6-digit hex value\"),\n});\n\nexport type CreateIssueLabel = z.infer<typeof createIssueLabelSchema>;\n\nexport const updateIssueSchema = createIssueBaseSchema.partial().extend({\n requestDepth: issueRequestDepthInputSchema.optional(),\n assigneeAgentId: z.string().trim().min(1).optional().nullable(),\n comment: multilineTextSchema.pipe(z.string().min(1)).optional(),\n reviewRequest: issueReviewRequestSchema.optional().nullable(),\n reopen: z.boolean().optional(),\n resume: z.boolean().optional(),\n interrupt: z.boolean().optional(),\n hiddenAt: z.string().datetime().nullable().optional(),\n});\n\nexport type UpdateIssue = z.infer<typeof updateIssueSchema>;\nexport type IssueExecutionWorkspaceSettings = z.infer<typeof issueExecutionWorkspaceSettingsSchema>;\n\nexport const checkoutIssueSchema = z.object({\n agentId: z.string().uuid(),\n expectedStatuses: z.array(z.enum(ISSUE_STATUSES)).nonempty(),\n});\n\nexport type CheckoutIssue = z.infer<typeof checkoutIssueSchema>;\n\nconst commentMetadataLabelSchema = z.string().trim().min(1).max(120);\nconst commentMetadataTextSchema = z.string().trim().min(1).max(2000);\n\nexport const issueCommentAuthorTypeSchema = z.enum(ISSUE_COMMENT_AUTHOR_TYPES);\n\nexport const issueCommentPresentationSchema = z.object({\n kind: z.enum(ISSUE_COMMENT_PRESENTATION_KINDS).default(\"message\"),\n tone: z.enum(ISSUE_COMMENT_PRESENTATION_TONES).default(\"neutral\"),\n title: z.string().trim().min(1).max(160).nullable().optional(),\n detailsDefaultOpen: z.boolean().optional().default(false),\n}).strict();\n\nexport type IssueCommentPresentation = z.infer<typeof issueCommentPresentationSchema>;\n\nconst issueCommentMetadataBaseRowSchema = z.object({\n type: z.enum(ISSUE_COMMENT_METADATA_ROW_TYPES),\n label: commentMetadataLabelSchema.nullable().optional(),\n});\n\nconst issueCommentMetadataTextRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"text\"),\n text: commentMetadataTextSchema,\n}).strict();\n\nconst issueCommentMetadataCodeRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"code\"),\n code: z.string().min(1).max(4000),\n language: z.string().trim().min(1).max(40).nullable().optional(),\n}).strict();\n\nconst issueCommentMetadataKeyValueRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"key_value\"),\n label: commentMetadataLabelSchema,\n value: commentMetadataTextSchema,\n}).strict();\n\nconst issueCommentMetadataIssueLinkRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"issue_link\"),\n issueId: z.string().uuid().nullable().optional(),\n identifier: z.string().trim().min(1).max(80).nullable().optional(),\n title: z.string().trim().min(1).max(240).nullable().optional(),\n}).strict();\n\nconst issueCommentMetadataAgentLinkRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"agent_link\"),\n agentId: z.string().uuid(),\n name: z.string().trim().min(1).max(160).nullable().optional(),\n}).strict();\n\nconst issueCommentMetadataRunLinkRowSchema = issueCommentMetadataBaseRowSchema.extend({\n type: z.literal(\"run_link\"),\n runId: z.string().uuid(),\n title: z.string().trim().min(1).max(160).nullable().optional(),\n}).strict();\n\nexport const issueCommentMetadataRowSchema = z.discriminatedUnion(\"type\", [\n issueCommentMetadataTextRowSchema,\n issueCommentMetadataCodeRowSchema,\n issueCommentMetadataKeyValueRowSchema,\n issueCommentMetadataIssueLinkRowSchema,\n issueCommentMetadataAgentLinkRowSchema,\n issueCommentMetadataRunLinkRowSchema,\n]).superRefine((value, ctx) => {\n if (value.type === \"issue_link\" && !value.issueId && !value.identifier) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Issue link rows require issueId or identifier\",\n path: [\"issueId\"],\n });\n }\n});\n\nexport const issueCommentMetadataSectionSchema = z.object({\n title: z.string().trim().min(1).max(160).nullable().optional(),\n rows: z.array(issueCommentMetadataRowSchema).min(1).max(50),\n}).strict();\n\nexport const issueCommentMetadataSchema = z.object({\n version: z.literal(1),\n sourceRunId: z.string().uuid().nullable().optional(),\n sections: z.array(issueCommentMetadataSectionSchema).min(1).max(20),\n}).strict();\n\nexport type IssueCommentMetadata = z.infer<typeof issueCommentMetadataSchema>;\n\nexport const addIssueCommentSchema = z.object({\n body: multilineTextSchema.pipe(z.string().min(1)),\n authorType: issueCommentAuthorTypeSchema.optional(),\n presentation: issueCommentPresentationSchema.nullable().optional(),\n metadata: issueCommentMetadataSchema.nullable().optional(),\n reopen: z.boolean().optional(),\n resume: z.boolean().optional(),\n interrupt: z.boolean().optional(),\n});\n\nexport type AddIssueComment = z.infer<typeof addIssueCommentSchema>;\n\nexport const issueThreadInteractionStatusSchema = z.enum(ISSUE_THREAD_INTERACTION_STATUSES);\nexport const issueThreadInteractionKindSchema = z.enum(ISSUE_THREAD_INTERACTION_KINDS);\nexport const issueThreadInteractionContinuationPolicySchema = z.enum(\n ISSUE_THREAD_INTERACTION_CONTINUATION_POLICIES,\n);\n\nexport const issueDocumentKeySchema = z\n .string()\n .trim()\n .min(1)\n .max(64)\n .regex(/^[a-z0-9][a-z0-9_-]*$/, \"Document key must be lowercase letters, numbers, _ or -\");\n\nexport const suggestedTaskDraftSchema = z.object({\n clientKey: z.string().trim().min(1).max(120),\n parentClientKey: z.string().trim().min(1).max(120).nullable().optional(),\n parentId: z.string().uuid().nullable().optional(),\n title: z.string().trim().min(1).max(240),\n description: multilineTextSchema.pipe(z.string().trim().max(20000)).nullable().optional(),\n priority: z.enum(ISSUE_PRIORITIES).nullable().optional(),\n workMode: z.enum(ISSUE_WORK_MODES).nullable().optional(),\n assigneeAgentId: z.string().uuid().nullable().optional(),\n assigneeUserId: z.string().trim().min(1).nullable().optional(),\n projectId: z.string().uuid().nullable().optional(),\n goalId: z.string().uuid().nullable().optional(),\n billingCode: z.string().trim().max(120).nullable().optional(),\n labels: z.array(z.string().trim().min(1).max(48)).max(20).optional(),\n hiddenInPreview: z.boolean().optional(),\n}).superRefine((value, ctx) => {\n if (value.assigneeAgentId && value.assigneeUserId) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Suggested tasks can only target one assignee\",\n path: [\"assigneeAgentId\"],\n });\n }\n});\n\nexport const suggestTasksPayloadSchema = z.object({\n version: z.literal(1),\n defaultParentId: z.string().uuid().nullable().optional(),\n tasks: z.array(suggestedTaskDraftSchema).min(1).max(50),\n}).superRefine((value, ctx) => {\n const seenClientKeys = new Set<string>();\n for (const [index, task] of value.tasks.entries()) {\n if (seenClientKeys.has(task.clientKey)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"clientKey must be unique within one interaction\",\n path: [\"tasks\", index, \"clientKey\"],\n });\n continue;\n }\n seenClientKeys.add(task.clientKey);\n }\n});\n\nexport const suggestTasksResultCreatedTaskSchema = z.object({\n clientKey: z.string().trim().min(1).max(120),\n issueId: z.string().uuid(),\n identifier: z.string().trim().min(1).nullable().optional(),\n title: z.string().trim().min(1).nullable().optional(),\n parentIssueId: z.string().uuid().nullable().optional(),\n parentIdentifier: z.string().trim().min(1).nullable().optional(),\n});\n\nexport const suggestTasksResultSchema = z.object({\n version: z.literal(1),\n createdTasks: z.array(suggestTasksResultCreatedTaskSchema).max(50).optional(),\n skippedClientKeys: z.array(z.string().trim().min(1).max(120)).max(50).optional(),\n rejectionReason: z.string().trim().max(4000).nullable().optional(),\n});\n\nexport const askUserQuestionsQuestionOptionSchema = z.object({\n id: z.string().trim().min(1).max(120),\n label: z.string().trim().min(1).max(120),\n description: z.string().trim().max(500).nullable().optional(),\n});\n\nexport const askUserQuestionsQuestionSchema = z.object({\n id: z.string().trim().min(1).max(120),\n prompt: z.string().trim().min(1).max(500),\n helpText: z.string().trim().max(1000).nullable().optional(),\n selectionMode: z.enum([\"single\", \"multi\"]),\n required: z.boolean().optional(),\n options: z.array(askUserQuestionsQuestionOptionSchema).min(1).max(10),\n});\n\nexport const askUserQuestionsPayloadSchema = z.object({\n version: z.literal(1),\n title: z.string().trim().max(240).nullable().optional(),\n submitLabel: z.string().trim().max(120).nullable().optional(),\n questions: z.array(askUserQuestionsQuestionSchema).min(1).max(10),\n}).superRefine((value, ctx) => {\n const seenQuestionIds = new Set<string>();\n for (const [questionIndex, question] of value.questions.entries()) {\n if (seenQuestionIds.has(question.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Question ids must be unique within one interaction\",\n path: [\"questions\", questionIndex, \"id\"],\n });\n }\n seenQuestionIds.add(question.id);\n\n const seenOptionIds = new Set<string>();\n for (const [optionIndex, option] of question.options.entries()) {\n if (seenOptionIds.has(option.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Option ids must be unique within one question\",\n path: [\"questions\", questionIndex, \"options\", optionIndex, \"id\"],\n });\n }\n seenOptionIds.add(option.id);\n }\n }\n});\n\nexport const askUserQuestionsAnswerSchema = z.object({\n questionId: z.string().trim().min(1).max(120),\n optionIds: z.array(z.string().trim().min(1).max(120)).max(20),\n});\n\nexport const askUserQuestionsResultSchema = z.object({\n version: z.literal(1),\n answers: z.array(askUserQuestionsAnswerSchema).max(20),\n cancelled: z.literal(true).optional(),\n cancellationReason: z.string().trim().max(4000).nullable().optional(),\n summaryMarkdown: z.string().max(20000).nullable().optional(),\n});\n\nconst requestConfirmationHrefSchema = z.string().trim().min(1).max(2000).refine((value) => {\n const lower = value.toLowerCase();\n return !lower.startsWith(\"javascript:\")\n && !lower.startsWith(\"data:\")\n && !value.startsWith(\"//\");\n}, \"href must not use javascript:, data:, or protocol-relative URLs\");\n\nconst requestConfirmationTargetBaseSchema = z.object({\n label: z.string().trim().min(1).max(120).nullable().optional(),\n href: requestConfirmationHrefSchema.nullable().optional(),\n});\n\nexport const requestConfirmationIssueDocumentTargetSchema = requestConfirmationTargetBaseSchema.extend({\n type: z.literal(\"issue_document\"),\n issueId: z.string().uuid().nullable().optional(),\n documentId: z.string().uuid().nullable().optional(),\n key: issueDocumentKeySchema,\n revisionId: z.string().uuid(),\n revisionNumber: z.number().int().positive().nullable().optional(),\n});\n\nexport const requestConfirmationCustomTargetSchema = requestConfirmationTargetBaseSchema.extend({\n type: z.literal(\"custom\"),\n key: z.string().trim().min(1).max(120),\n revisionId: z.string().trim().min(1).max(255).nullable().optional(),\n revisionNumber: z.number().int().positive().nullable().optional(),\n});\n\nexport const requestConfirmationTargetSchema = z.discriminatedUnion(\"type\", [\n requestConfirmationIssueDocumentTargetSchema,\n requestConfirmationCustomTargetSchema,\n]);\n\nexport const requestConfirmationPayloadSchema = z.object({\n version: z.literal(1),\n prompt: z.string().trim().min(1).max(1000),\n acceptLabel: z.string().trim().min(1).max(80).nullable().optional(),\n rejectLabel: z.string().trim().min(1).max(80).nullable().optional(),\n rejectRequiresReason: z.boolean().optional(),\n rejectReasonLabel: z.string().trim().min(1).max(160).nullable().optional(),\n allowDeclineReason: z.boolean().optional().default(true),\n declineReasonPlaceholder: z.string().trim().min(1).max(240).nullable().optional(),\n detailsMarkdown: z.string().max(20000).nullable().optional(),\n supersedeOnUserComment: z.boolean().optional(),\n target: requestConfirmationTargetSchema.nullable().optional(),\n});\n\nexport const requestConfirmationResultSchema = z.object({\n version: z.literal(1),\n outcome: z.enum([\"accepted\", \"rejected\", \"superseded_by_comment\", \"stale_target\"]),\n reason: z.string().trim().max(4000).nullable().optional(),\n commentId: z.string().uuid().nullable().optional(),\n staleTarget: requestConfirmationTargetSchema.nullable().optional(),\n});\n\nexport const createIssueThreadInteractionSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"suggest_tasks\"),\n idempotencyKey: z.string().trim().max(255).nullable().optional(),\n sourceCommentId: z.string().uuid().nullable().optional(),\n sourceRunId: z.string().uuid().nullable().optional(),\n title: z.string().trim().max(240).nullable().optional(),\n summary: z.string().trim().max(1000).nullable().optional(),\n continuationPolicy: issueThreadInteractionContinuationPolicySchema.optional().default(\"wake_assignee\"),\n payload: suggestTasksPayloadSchema,\n }),\n z.object({\n kind: z.literal(\"ask_user_questions\"),\n idempotencyKey: z.string().trim().max(255).nullable().optional(),\n sourceCommentId: z.string().uuid().nullable().optional(),\n sourceRunId: z.string().uuid().nullable().optional(),\n title: z.string().trim().max(240).nullable().optional(),\n summary: z.string().trim().max(1000).nullable().optional(),\n continuationPolicy: issueThreadInteractionContinuationPolicySchema.optional().default(\"wake_assignee\"),\n payload: askUserQuestionsPayloadSchema,\n }),\n z.object({\n kind: z.literal(\"request_confirmation\"),\n idempotencyKey: z.string().trim().max(255).nullable().optional(),\n sourceCommentId: z.string().uuid().nullable().optional(),\n sourceRunId: z.string().uuid().nullable().optional(),\n title: z.string().trim().max(240).nullable().optional(),\n summary: z.string().trim().max(1000).nullable().optional(),\n continuationPolicy: issueThreadInteractionContinuationPolicySchema.optional().default(\"none\"),\n payload: requestConfirmationPayloadSchema,\n }),\n]);\n\nexport type CreateIssueThreadInteraction = z.infer<typeof createIssueThreadInteractionSchema>;\n\nexport const acceptIssueThreadInteractionSchema = z.object({\n selectedClientKeys: z.array(z.string().trim().min(1).max(120)).min(1).max(50).optional(),\n}).superRefine((value, ctx) => {\n const seenClientKeys = new Set<string>();\n for (const [index, clientKey] of (value.selectedClientKeys ?? []).entries()) {\n if (seenClientKeys.has(clientKey)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"selectedClientKeys must be unique\",\n path: [\"selectedClientKeys\", index],\n });\n continue;\n }\n seenClientKeys.add(clientKey);\n }\n});\nexport type AcceptIssueThreadInteraction = z.infer<typeof acceptIssueThreadInteractionSchema>;\n\nexport const rejectIssueThreadInteractionSchema = z.object({\n reason: z.string().trim().max(4000).optional(),\n});\nexport type RejectIssueThreadInteraction = z.infer<typeof rejectIssueThreadInteractionSchema>;\n\nexport const cancelIssueThreadInteractionSchema = z.object({\n reason: z.string().trim().max(4000).optional(),\n});\nexport type CancelIssueThreadInteraction = z.infer<typeof cancelIssueThreadInteractionSchema>;\n\nexport const respondIssueThreadInteractionSchema = z.object({\n answers: z.array(askUserQuestionsAnswerSchema).max(20),\n summaryMarkdown: multilineTextSchema.pipe(z.string().max(20000)).nullable().optional(),\n});\nexport type RespondIssueThreadInteraction = z.infer<typeof respondIssueThreadInteractionSchema>;\n\nexport const linkIssueApprovalSchema = z.object({\n approvalId: z.string().uuid(),\n});\n\nexport type LinkIssueApproval = z.infer<typeof linkIssueApprovalSchema>;\n\nexport const createIssueAttachmentMetadataSchema = z.object({\n issueCommentId: z.string().uuid().optional().nullable(),\n});\n\nexport type CreateIssueAttachmentMetadata = z.infer<typeof createIssueAttachmentMetadataSchema>;\n\nexport const ISSUE_DOCUMENT_FORMATS = [\"markdown\"] as const;\n\nexport const issueDocumentFormatSchema = z.enum(ISSUE_DOCUMENT_FORMATS);\n\nexport const upsertIssueDocumentSchema = z.object({\n title: z.string().trim().max(200).nullable().optional(),\n format: issueDocumentFormatSchema,\n body: multilineTextSchema.pipe(z.string().max(524288)),\n changeSummary: z.string().trim().max(500).nullable().optional(),\n baseRevisionId: z.string().uuid().nullable().optional(),\n});\n\nexport const restoreIssueDocumentRevisionSchema = z.object({});\n\nexport type IssueDocumentFormat = z.infer<typeof issueDocumentFormatSchema>;\nexport type UpsertIssueDocument = z.infer<typeof upsertIssueDocumentSchema>;\nexport type RestoreIssueDocumentRevision = z.infer<typeof restoreIssueDocumentRevisionSchema>;\n", "import { z } from \"zod\";\nimport {\n SECRET_BINDING_TARGET_TYPES,\n SECRET_MANAGED_MODES,\n SECRET_PROVIDER_CONFIG_STATUSES,\n SECRET_PROVIDERS,\n SECRET_STATUSES,\n} from \"../constants.js\";\n\nexport const envBindingPlainSchema = z.object({\n type: z.literal(\"plain\"),\n value: z.string(),\n});\n\nexport const envBindingSecretRefSchema = z.object({\n type: z.literal(\"secret_ref\"),\n secretId: z.string().uuid(),\n version: z.union([z.literal(\"latest\"), z.number().int().positive()]).optional(),\n});\n\n// Backward-compatible union that accepts legacy inline values.\nexport const envBindingSchema = z.union([\n z.string(),\n envBindingPlainSchema,\n envBindingSecretRefSchema,\n]);\n\nexport const envConfigSchema = z.record(z.string(), envBindingSchema);\n\nexport const createSecretSchema = z.object({\n name: z.string().min(1),\n key: z.string().min(1).regex(/^[a-zA-Z0-9_.-]+$/).optional(),\n provider: z.enum(SECRET_PROVIDERS).optional(),\n providerConfigId: z.string().uuid().optional().nullable(),\n managedMode: z.enum(SECRET_MANAGED_MODES).optional(),\n value: z.string().min(1).optional().nullable(),\n description: z.string().optional().nullable(),\n externalRef: z.string().optional().nullable(),\n providerMetadata: z.record(z.string(), z.unknown()).optional().nullable(),\n providerVersionRef: z.string().optional().nullable(),\n}).superRefine((value, ctx) => {\n if ((value.managedMode ?? \"paperclip_managed\") === \"external_reference\") {\n if (!value.externalRef?.trim()) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"externalRef\"],\n message: \"External reference secrets require externalRef\",\n });\n }\n return;\n }\n if (value.externalRef?.trim()) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"externalRef\"],\n message: \"Managed secrets cannot set externalRef\",\n });\n }\n if (!value.value?.trim()) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"value\"],\n message: \"Managed secrets require value\",\n });\n }\n});\n\nexport type CreateSecret = z.infer<typeof createSecretSchema>;\n\nexport const rotateSecretSchema = z.object({\n value: z.string().min(1).optional().nullable(),\n externalRef: z.string().optional().nullable(),\n providerVersionRef: z.string().optional().nullable(),\n providerConfigId: z.string().uuid().optional().nullable(),\n});\n\nexport type RotateSecret = z.infer<typeof rotateSecretSchema>;\n\nexport const updateSecretSchema = z.object({\n name: z.string().min(1).optional(),\n key: z.string().min(1).regex(/^[a-zA-Z0-9_.-]+$/).optional(),\n status: z.enum(SECRET_STATUSES).optional(),\n providerConfigId: z.string().uuid().optional().nullable(),\n description: z.string().optional().nullable(),\n externalRef: z.string().optional().nullable(),\n providerMetadata: z.record(z.string(), z.unknown()).optional().nullable(),\n});\n\nexport type UpdateSecret = z.infer<typeof updateSecretSchema>;\n\nexport const secretBindingTargetSchema = z.object({\n targetType: z.enum(SECRET_BINDING_TARGET_TYPES),\n targetId: z.string().min(1),\n configPath: z.string().min(1),\n});\n\nexport const createSecretBindingSchema = secretBindingTargetSchema.extend({\n secretId: z.string().uuid(),\n versionSelector: z.union([z.literal(\"latest\"), z.number().int().positive()]).default(\"latest\"),\n required: z.boolean().default(true),\n label: z.string().optional().nullable(),\n});\n\nexport type CreateSecretBinding = z.infer<typeof createSecretBindingSchema>;\n\nconst safeShortText = z.string().trim().min(1).max(160);\nconst optionalSafeShortText = safeShortText.optional().nullable();\n\nconst deniedProviderConfigKeyPattern =\n /^(access[-_]?key([-_]?id)?|secret[-_]?access[-_]?key|secret[-_]?key|token|password|passwd|credential|credentials|private[-_]?key|pem|jwt|session[-_]?token|service[-_]?account([-_]?json)?|client[-_]?secret|secret[-_]?id|unseal[-_]?key|recovery[-_]?key|key[-_]?file([-_]?path)?|token[-_]?file([-_]?path)?)$/i;\n\nfunction rejectSensitiveProviderConfigKeys(value: unknown, ctx: z.RefinementCtx) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return;\n for (const key of Object.keys(value)) {\n if (!deniedProviderConfigKeyPattern.test(key)) continue;\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"config\", key],\n message: `Provider vault config cannot persist sensitive field: ${key}`,\n });\n }\n}\n\nexport const localEncryptedProviderConfigSchema = z.object({\n backupReminderAcknowledged: z.boolean().optional(),\n}).strict();\n\nexport const awsSecretsManagerProviderConfigSchema = z.object({\n region: z.string().trim().regex(/^[a-z]{2}(?:-gov)?-[a-z]+-\\d+$/, \"Invalid AWS region\"),\n namespace: optionalSafeShortText,\n secretNamePrefix: optionalSafeShortText,\n kmsKeyId: z.string().trim().min(1).max(512).optional().nullable(),\n ownerTag: optionalSafeShortText,\n environmentTag: optionalSafeShortText,\n}).strict();\n\nexport const gcpSecretManagerProviderConfigSchema = z.object({\n projectId: z.string().trim().min(1).max(128).regex(/^[a-z][a-z0-9-]{4,127}$/).optional().nullable(),\n location: optionalSafeShortText,\n namespace: optionalSafeShortText,\n secretNamePrefix: optionalSafeShortText,\n}).strict();\n\nconst vaultAddressSchema = z.preprocess(\n (value) => typeof value === \"string\" ? value.trim() : value,\n z.string().url().superRefine((value, ctx) => {\n let url: URL;\n try {\n url = new URL(value);\n } catch {\n return;\n }\n const hasPath = url.pathname !== \"\" && url.pathname !== \"/\";\n if (\n (url.protocol !== \"http:\" && url.protocol !== \"https:\") ||\n url.username ||\n url.password ||\n url.search ||\n url.hash ||\n hasPath\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Vault address must be an origin-only HTTP(S) URL without credentials, path, query, or fragment\",\n });\n }\n }).transform((value) => new URL(value).origin),\n);\n\nfunction rejectUnsafeVaultAddress(value: unknown, ctx: z.RefinementCtx) {\n if (value === undefined || value === null) return;\n const parsed = vaultAddressSchema.safeParse(value);\n if (parsed.success) return;\n for (const issue of parsed.error.issues) {\n ctx.addIssue({\n ...issue,\n path: [\"config\", \"address\", ...issue.path],\n });\n }\n}\n\nexport const vaultProviderConfigSchema = z.object({\n address: vaultAddressSchema.optional().nullable(),\n namespace: optionalSafeShortText,\n mountPath: optionalSafeShortText,\n secretPathPrefix: optionalSafeShortText,\n}).strict();\n\nexport const secretProviderConfigPayloadSchema = z.discriminatedUnion(\"provider\", [\n z.object({ provider: z.literal(\"local_encrypted\"), config: localEncryptedProviderConfigSchema }),\n z.object({ provider: z.literal(\"aws_secrets_manager\"), config: awsSecretsManagerProviderConfigSchema }),\n z.object({ provider: z.literal(\"gcp_secret_manager\"), config: gcpSecretManagerProviderConfigSchema }),\n z.object({ provider: z.literal(\"vault\"), config: vaultProviderConfigSchema }),\n]);\n\nexport const createSecretProviderConfigSchema = z.object({\n provider: z.enum(SECRET_PROVIDERS),\n displayName: z.string().trim().min(1).max(120),\n status: z.enum(SECRET_PROVIDER_CONFIG_STATUSES).optional(),\n isDefault: z.boolean().optional(),\n config: z.record(z.string(), z.unknown()).default({}),\n}).superRefine((value, ctx) => {\n rejectSensitiveProviderConfigKeys(value.config, ctx);\n const parsed = secretProviderConfigPayloadSchema.safeParse({\n provider: value.provider,\n config: value.config,\n });\n if (!parsed.success) {\n for (const issue of parsed.error.issues) {\n ctx.addIssue({\n ...issue,\n path: issue.path[0] === \"config\" ? issue.path : [\"config\", ...issue.path],\n });\n }\n }\n const status = value.status ?? ([\"gcp_secret_manager\", \"vault\"].includes(value.provider) ? \"coming_soon\" : \"ready\");\n if ((value.provider === \"gcp_secret_manager\" || value.provider === \"vault\") && status !== \"coming_soon\" && status !== \"disabled\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"status\"],\n message: `${value.provider} provider vaults are locked while coming soon`,\n });\n }\n if ((status === \"coming_soon\" || status === \"disabled\") && value.isDefault) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"isDefault\"],\n message: \"Only ready or warning provider vaults can be default\",\n });\n }\n});\n\nexport type CreateSecretProviderConfig = z.infer<typeof createSecretProviderConfigSchema>;\n\nexport const updateSecretProviderConfigSchema = z.object({\n displayName: z.string().trim().min(1).max(120).optional(),\n status: z.enum(SECRET_PROVIDER_CONFIG_STATUSES).optional(),\n isDefault: z.boolean().optional(),\n config: z.record(z.string(), z.unknown()).optional(),\n}).superRefine((value, ctx) => {\n if (value.config !== undefined) {\n rejectSensitiveProviderConfigKeys(value.config, ctx);\n rejectUnsafeVaultAddress(value.config.address, ctx);\n }\n if ((value.status === \"coming_soon\" || value.status === \"disabled\") && value.isDefault) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"isDefault\"],\n message: \"Only ready or warning provider vaults can be default\",\n });\n }\n});\n\nexport type UpdateSecretProviderConfig = z.infer<typeof updateSecretProviderConfigSchema>;\n\nexport const remoteSecretImportPreviewSchema = z.object({\n providerConfigId: z.string().uuid(),\n query: z.string().trim().max(200).optional().nullable(),\n nextToken: z.string().trim().min(1).max(4096).optional().nullable(),\n pageSize: z.number().int().min(1).max(100).optional(),\n});\n\nexport type RemoteSecretImportPreview = z.infer<typeof remoteSecretImportPreviewSchema>;\n\nexport const secretProviderConfigDiscoveryPreviewSchema = z.object({\n provider: z.enum(SECRET_PROVIDERS),\n config: z.record(z.unknown()).default({}),\n query: z.string().trim().max(200).optional().nullable(),\n nextToken: z.string().trim().min(1).max(4096).optional().nullable(),\n pageSize: z.number().int().min(1).max(100).optional(),\n}).superRefine((value, ctx) => {\n rejectSensitiveProviderConfigKeys(value.config, ctx);\n const parsed = secretProviderConfigPayloadSchema.safeParse({\n provider: value.provider,\n config: value.config,\n });\n if (!parsed.success) {\n for (const issue of parsed.error.issues) {\n ctx.addIssue({\n ...issue,\n path: issue.path[0] === \"config\" ? issue.path : [\"config\", ...issue.path],\n });\n }\n }\n});\n\nexport type SecretProviderConfigDiscoveryPreview = z.infer<typeof secretProviderConfigDiscoveryPreviewSchema>;\n\nexport const remoteSecretImportSelectionSchema = z.object({\n externalRef: z.string().trim().min(1).max(2048),\n name: z.string().trim().min(1).max(160).optional().nullable(),\n key: z.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9_.-]+$/).optional().nullable(),\n description: z.string().trim().max(500).optional().nullable(),\n providerVersionRef: z.string().trim().min(1).max(512).optional().nullable(),\n providerMetadata: z.record(z.string(), z.unknown()).optional().nullable(),\n});\n\nexport const remoteSecretImportSchema = z.object({\n providerConfigId: z.string().uuid(),\n secrets: z.array(remoteSecretImportSelectionSchema).min(1).max(100),\n});\n\nexport type RemoteSecretImportSelection = z.infer<typeof remoteSecretImportSelectionSchema>;\nexport type RemoteSecretImport = z.infer<typeof remoteSecretImportSchema>;\n", "import { z } from \"zod\";\nimport {\n ISSUE_PRIORITIES,\n ROUTINE_CATCH_UP_POLICIES,\n ROUTINE_CONCURRENCY_POLICIES,\n ROUTINE_STATUSES,\n ROUTINE_TRIGGER_KINDS,\n ROUTINE_TRIGGER_SIGNING_MODES,\n ROUTINE_VARIABLE_TYPES,\n} from \"../constants.js\";\nimport {\n ISSUE_EXECUTION_WORKSPACE_PREFERENCES,\n issueExecutionWorkspaceSettingsSchema,\n} from \"./issue.js\";\nimport { envConfigSchema } from \"./secret.js\";\n\nconst routineVariableValueSchema = z.union([z.string(), z.number().finite(), z.boolean()]);\n\nexport const routineVariableSchema = z.object({\n name: z.string().trim().regex(/^[A-Za-z][A-Za-z0-9_]*$/),\n label: z.string().trim().max(120).optional().nullable(),\n type: z.enum(ROUTINE_VARIABLE_TYPES).optional().default(\"text\"),\n defaultValue: routineVariableValueSchema.optional().nullable(),\n required: z.boolean().optional().default(true),\n options: z.array(z.string().trim().min(1).max(120)).max(50).optional().default([]),\n}).superRefine((value, ctx) => {\n if (value.type === \"select\" && value.options.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"options\"],\n message: \"Select variables require at least one option\",\n });\n }\n if (value.type !== \"select\" && value.options.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"options\"],\n message: \"Only select variables can define options\",\n });\n }\n if (value.type === \"select\" && value.defaultValue != null) {\n if (typeof value.defaultValue !== \"string\" || !value.options.includes(value.defaultValue)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"defaultValue\"],\n message: \"Select variable defaults must match one of the allowed options\",\n });\n }\n }\n});\n\nexport const createRoutineSchema = z.object({\n projectId: z.string().uuid().optional().nullable(),\n goalId: z.string().uuid().optional().nullable(),\n parentIssueId: z.string().uuid().optional().nullable(),\n title: z.string().trim().min(1).max(200),\n description: z.string().optional().nullable(),\n assigneeAgentId: z.string().uuid().optional().nullable(),\n priority: z.enum(ISSUE_PRIORITIES).optional().default(\"medium\"),\n status: z.enum(ROUTINE_STATUSES).optional().default(\"active\"),\n concurrencyPolicy: z.enum(ROUTINE_CONCURRENCY_POLICIES).optional().default(\"coalesce_if_active\"),\n catchUpPolicy: z.enum(ROUTINE_CATCH_UP_POLICIES).optional().default(\"skip_missed\"),\n variables: z.array(routineVariableSchema).optional().default([]),\n env: envConfigSchema.optional().nullable(),\n});\n\nexport type CreateRoutine = z.infer<typeof createRoutineSchema>;\n\nexport const updateRoutineSchema = createRoutineSchema.partial().extend({\n baseRevisionId: z.string().uuid().optional().nullable(),\n});\nexport type UpdateRoutine = z.infer<typeof updateRoutineSchema>;\n\nexport const routineRevisionSnapshotRoutineV1Schema = z.object({\n id: z.string().uuid(),\n companyId: z.string().uuid(),\n projectId: z.string().uuid().nullable(),\n goalId: z.string().uuid().nullable(),\n parentIssueId: z.string().uuid().nullable(),\n title: z.string().trim().min(1).max(200),\n description: z.string().nullable(),\n assigneeAgentId: z.string().uuid().nullable(),\n priority: z.enum(ISSUE_PRIORITIES),\n status: z.enum(ROUTINE_STATUSES),\n concurrencyPolicy: z.enum(ROUTINE_CONCURRENCY_POLICIES),\n catchUpPolicy: z.enum(ROUTINE_CATCH_UP_POLICIES),\n variables: z.array(routineVariableSchema),\n env: envConfigSchema.nullable().default(null),\n}).strict();\n\nexport const routineRevisionSnapshotTriggerV1Schema = z.object({\n id: z.string().uuid(),\n kind: z.enum(ROUTINE_TRIGGER_KINDS),\n label: z.string().nullable(),\n enabled: z.boolean(),\n cronExpression: z.string().nullable(),\n timezone: z.string().nullable(),\n publicId: z.string().nullable(),\n signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).nullable(),\n replayWindowSec: z.number().int().min(30).max(86_400).nullable(),\n}).strict();\n\nexport const routineRevisionSnapshotV1Schema = z.object({\n version: z.literal(1),\n routine: routineRevisionSnapshotRoutineV1Schema,\n triggers: z.array(routineRevisionSnapshotTriggerV1Schema),\n}).strict();\n\nexport const routineRevisionSnapshotSchema = routineRevisionSnapshotV1Schema;\nexport type RoutineRevisionSnapshotV1 = z.infer<typeof routineRevisionSnapshotV1Schema>;\nexport type RoutineRevisionSnapshot = z.infer<typeof routineRevisionSnapshotSchema>;\n\nconst baseTriggerSchema = z.object({\n label: z.string().trim().max(120).optional().nullable(),\n enabled: z.boolean().optional().default(true),\n});\n\nexport const createRoutineTriggerSchema = z.discriminatedUnion(\"kind\", [\n baseTriggerSchema.extend({\n kind: z.literal(\"schedule\"),\n cronExpression: z.string().trim().min(1),\n timezone: z.string().trim().min(1).default(\"UTC\"),\n }),\n baseTriggerSchema.extend({\n kind: z.literal(\"webhook\"),\n signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).optional().default(\"bearer\"),\n replayWindowSec: z.number().int().min(30).max(86_400).optional().default(300),\n }),\n baseTriggerSchema.extend({\n kind: z.literal(\"api\"),\n }),\n]);\n\nexport type CreateRoutineTrigger = z.infer<typeof createRoutineTriggerSchema>;\n\nexport const updateRoutineTriggerSchema = z.object({\n label: z.string().trim().max(120).optional().nullable(),\n enabled: z.boolean().optional(),\n cronExpression: z.string().trim().min(1).optional().nullable(),\n timezone: z.string().trim().min(1).optional().nullable(),\n signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).optional().nullable(),\n replayWindowSec: z.number().int().min(30).max(86_400).optional().nullable(),\n});\n\nexport type UpdateRoutineTrigger = z.infer<typeof updateRoutineTriggerSchema>;\n\nexport const runRoutineSchema = z.object({\n triggerId: z.string().uuid().optional().nullable(),\n payload: z.record(z.string(), z.unknown()).optional().nullable(),\n variables: z.record(z.string(), routineVariableValueSchema).optional().nullable(),\n projectId: z.string().uuid().optional().nullable(),\n assigneeAgentId: z.string().uuid().optional().nullable(),\n idempotencyKey: z.string().trim().max(255).optional().nullable(),\n source: z.enum([\"manual\", \"api\"]).optional().default(\"manual\"),\n executionWorkspaceId: z.string().uuid().optional().nullable(),\n executionWorkspacePreference: z.enum(ISSUE_EXECUTION_WORKSPACE_PREFERENCES).optional().nullable(),\n executionWorkspaceSettings: issueExecutionWorkspaceSettingsSchema.optional().nullable(),\n});\n\nexport type RunRoutine = z.infer<typeof runRoutineSchema>;\n\nexport const rotateRoutineTriggerSecretSchema = z.object({});\nexport type RotateRoutineTriggerSecret = z.infer<typeof rotateRoutineTriggerSecretSchema>;\n", "import { z } from \"zod\";\nimport { MAX_COMPANY_ATTACHMENT_MAX_BYTES } from \"../constants.js\";\nimport {\n issueCommentAuthorTypeSchema,\n issueCommentMetadataSchema,\n issueCommentPresentationSchema,\n} from \"./issue.js\";\nimport { routineVariableSchema } from \"./routine.js\";\n\nexport const portabilityIncludeSchema = z\n .object({\n company: z.boolean().optional(),\n agents: z.boolean().optional(),\n projects: z.boolean().optional(),\n issues: z.boolean().optional(),\n skills: z.boolean().optional(),\n })\n .partial();\n\nexport const portabilityEnvInputSchema = z.object({\n key: z.string().min(1),\n description: z.string().nullable(),\n agentSlug: z.string().min(1).nullable(),\n projectSlug: z.string().min(1).nullable(),\n kind: z.enum([\"secret\", \"plain\"]),\n requirement: z.enum([\"required\", \"optional\"]),\n defaultValue: z.string().nullable(),\n portability: z.enum([\"portable\", \"system_dependent\"]),\n});\n\nexport const portabilityFileEntrySchema = z.union([\n z.string(),\n z.object({\n encoding: z.literal(\"base64\"),\n data: z.string(),\n contentType: z.string().min(1).optional().nullable(),\n }),\n]);\n\nexport const portabilityCompanyManifestEntrySchema = z.object({\n path: z.string().min(1),\n name: z.string().min(1),\n description: z.string().nullable(),\n brandColor: z.string().nullable(),\n logoPath: z.string().nullable(),\n attachmentMaxBytes: z.number().int().min(1).max(MAX_COMPANY_ATTACHMENT_MAX_BYTES).nullable().default(null),\n requireBoardApprovalForNewAgents: z.boolean(),\n feedbackDataSharingEnabled: z.boolean().default(false),\n feedbackDataSharingConsentAt: z.string().datetime().nullable().default(null),\n feedbackDataSharingConsentByUserId: z.string().nullable().default(null),\n feedbackDataSharingTermsVersion: z.string().nullable().default(null),\n});\n\nexport const portabilitySidebarOrderSchema = z.object({\n agents: z.array(z.string().min(1)).default([]),\n projects: z.array(z.string().min(1)).default([]),\n});\n\nexport const portabilityAgentManifestEntrySchema = z.object({\n slug: z.string().min(1),\n name: z.string().min(1),\n path: z.string().min(1),\n skills: z.array(z.string().min(1)).default([]),\n role: z.string().min(1),\n title: z.string().nullable(),\n icon: z.string().nullable(),\n capabilities: z.string().nullable(),\n reportsToSlug: z.string().min(1).nullable(),\n adapterType: z.string().min(1),\n adapterConfig: z.record(z.string(), z.unknown()),\n runtimeConfig: z.record(z.string(), z.unknown()),\n permissions: z.record(z.string(), z.unknown()),\n budgetMonthlyCents: z.number().int().nonnegative(),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n});\n\nexport const portabilitySkillManifestEntrySchema = z.object({\n key: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n path: z.string().min(1),\n description: z.string().nullable(),\n sourceType: z.string().min(1),\n sourceLocator: z.string().nullable(),\n sourceRef: z.string().nullable(),\n trustLevel: z.string().nullable(),\n compatibility: z.string().nullable(),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n fileInventory: z.array(z.object({\n path: z.string().min(1),\n kind: z.string().min(1),\n })).default([]),\n});\n\nexport const portabilityProjectManifestEntrySchema = z.object({\n slug: z.string().min(1),\n name: z.string().min(1),\n path: z.string().min(1),\n description: z.string().nullable(),\n ownerAgentSlug: z.string().min(1).nullable(),\n leadAgentSlug: z.string().min(1).nullable(),\n targetDate: z.string().nullable(),\n color: z.string().nullable(),\n status: z.string().nullable(),\n executionWorkspacePolicy: z.record(z.string(), z.unknown()).nullable(),\n workspaces: z.array(z.object({\n key: z.string().min(1),\n name: z.string().min(1),\n sourceType: z.string().nullable(),\n repoUrl: z.string().nullable(),\n repoRef: z.string().nullable(),\n defaultRef: z.string().nullable(),\n visibility: z.string().nullable(),\n setupCommand: z.string().nullable(),\n cleanupCommand: z.string().nullable(),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n isPrimary: z.boolean(),\n })).default([]),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n});\n\nexport const portabilityIssueRoutineTriggerManifestEntrySchema = z.object({\n kind: z.string().min(1),\n label: z.string().nullable(),\n enabled: z.boolean(),\n cronExpression: z.string().nullable(),\n timezone: z.string().nullable(),\n signingMode: z.string().nullable(),\n replayWindowSec: z.number().int().nullable(),\n});\n\nexport const portabilityIssueRoutineManifestEntrySchema = z.object({\n concurrencyPolicy: z.string().nullable(),\n catchUpPolicy: z.string().nullable(),\n variables: z.array(routineVariableSchema).nullable().optional(),\n triggers: z.array(portabilityIssueRoutineTriggerManifestEntrySchema).default([]),\n});\n\nexport const portabilityIssueCommentManifestEntrySchema = z.object({\n body: z.string().min(1),\n authorType: issueCommentAuthorTypeSchema,\n authorAgentSlug: z.string().min(1).nullable(),\n authorUserId: z.string().nullable(),\n presentation: issueCommentPresentationSchema.nullable(),\n metadata: issueCommentMetadataSchema.nullable(),\n createdAt: z.string().datetime().nullable(),\n});\n\nexport const portabilityIssueManifestEntrySchema = z.object({\n slug: z.string().min(1),\n identifier: z.string().min(1).nullable(),\n title: z.string().min(1),\n path: z.string().min(1),\n projectSlug: z.string().min(1).nullable(),\n projectWorkspaceKey: z.string().min(1).nullable(),\n assigneeAgentSlug: z.string().min(1).nullable(),\n description: z.string().nullable(),\n recurring: z.boolean().default(false),\n routine: portabilityIssueRoutineManifestEntrySchema.nullable(),\n legacyRecurrence: z.record(z.string(), z.unknown()).nullable(),\n status: z.string().nullable(),\n priority: z.string().nullable(),\n labelIds: z.array(z.string().min(1)).default([]),\n billingCode: z.string().nullable(),\n executionWorkspaceSettings: z.record(z.string(), z.unknown()).nullable(),\n assigneeAdapterOverrides: z.record(z.string(), z.unknown()).nullable(),\n comments: z.array(portabilityIssueCommentManifestEntrySchema).default([]),\n metadata: z.record(z.string(), z.unknown()).nullable(),\n});\n\nexport const portabilityManifestSchema = z.object({\n schemaVersion: z.number().int().positive(),\n generatedAt: z.string().datetime(),\n source: z\n .object({\n companyId: z.string().uuid(),\n companyName: z.string().min(1),\n })\n .nullable(),\n includes: z.object({\n company: z.boolean(),\n agents: z.boolean(),\n projects: z.boolean(),\n issues: z.boolean(),\n skills: z.boolean(),\n }),\n company: portabilityCompanyManifestEntrySchema.nullable(),\n sidebar: portabilitySidebarOrderSchema.nullable(),\n agents: z.array(portabilityAgentManifestEntrySchema),\n skills: z.array(portabilitySkillManifestEntrySchema).default([]),\n projects: z.array(portabilityProjectManifestEntrySchema).default([]),\n issues: z.array(portabilityIssueManifestEntrySchema).default([]),\n envInputs: z.array(portabilityEnvInputSchema).default([]),\n});\n\nexport const portabilitySourceSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"inline\"),\n rootPath: z.string().min(1).optional().nullable(),\n files: z.record(z.string(), portabilityFileEntrySchema),\n }),\n z.object({\n type: z.literal(\"github\"),\n url: z.string().url(),\n }),\n]);\n\nexport const portabilityTargetSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"new_company\"),\n newCompanyName: z.string().min(1).optional().nullable(),\n }),\n z.object({\n mode: z.literal(\"existing_company\"),\n companyId: z.string().uuid(),\n }),\n]);\n\nexport const portabilityAgentSelectionSchema = z.union([\n z.literal(\"all\"),\n z.array(z.string().min(1)),\n]);\n\nexport const portabilityCollisionStrategySchema = z.enum([\"rename\", \"skip\", \"replace\"]);\n\nexport const companyPortabilityExportSchema = z.object({\n include: portabilityIncludeSchema.optional(),\n agents: z.array(z.string().min(1)).optional(),\n skills: z.array(z.string().min(1)).optional(),\n projects: z.array(z.string().min(1)).optional(),\n issues: z.array(z.string().min(1)).optional(),\n projectIssues: z.array(z.string().min(1)).optional(),\n selectedFiles: z.array(z.string().min(1)).optional(),\n expandReferencedSkills: z.boolean().optional(),\n sidebarOrder: portabilitySidebarOrderSchema.partial().optional(),\n});\n\nexport type CompanyPortabilityExport = z.infer<typeof companyPortabilityExportSchema>;\n\nexport const companyPortabilityPreviewSchema = z.object({\n source: portabilitySourceSchema,\n include: portabilityIncludeSchema.optional(),\n target: portabilityTargetSchema,\n agents: portabilityAgentSelectionSchema.optional(),\n collisionStrategy: portabilityCollisionStrategySchema.optional(),\n nameOverrides: z.record(z.string().min(1), z.string().min(1)).optional(),\n selectedFiles: z.array(z.string().min(1)).optional(),\n});\n\nexport type CompanyPortabilityPreview = z.infer<typeof companyPortabilityPreviewSchema>;\n\nexport const portabilityAdapterOverrideSchema = z.object({\n adapterType: z.string().min(1),\n adapterConfig: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const companyPortabilityImportSchema = companyPortabilityPreviewSchema.extend({\n adapterOverrides: z.record(z.string().min(1), portabilityAdapterOverrideSchema).optional(),\n});\n\nexport type CompanyPortabilityImport = z.infer<typeof companyPortabilityImportSchema>;\n", "import { z } from \"zod\";\nimport {\n AGENT_ICON_NAMES,\n AGENT_ROLES,\n AGENT_STATUSES,\n INBOX_MINE_ISSUE_STATUS_FILTER,\n} from \"../constants.js\";\nimport { agentAdapterTypeSchema } from \"../adapter-type.js\";\nimport { envConfigSchema } from \"./secret.js\";\n\nexport const agentPermissionsSchema = z.object({\n canCreateAgents: z.boolean().optional().default(false),\n});\n\nexport const agentInstructionsBundleModeSchema = z.enum([\"managed\", \"external\"]);\n\nexport const updateAgentInstructionsBundleSchema = z.object({\n mode: agentInstructionsBundleModeSchema.optional(),\n rootPath: z.string().trim().min(1).nullable().optional(),\n entryFile: z.string().trim().min(1).optional(),\n clearLegacyPromptTemplate: z.boolean().optional().default(false),\n});\n\nexport type UpdateAgentInstructionsBundle = z.infer<typeof updateAgentInstructionsBundleSchema>;\n\nexport const upsertAgentInstructionsFileSchema = z.object({\n path: z.string().trim().min(1),\n content: z.string(),\n clearLegacyPromptTemplate: z.boolean().optional().default(false),\n});\n\nexport type UpsertAgentInstructionsFile = z.infer<typeof upsertAgentInstructionsFileSchema>;\n\nconst adapterConfigSchema = z.record(z.string(), z.unknown()).superRefine((value, ctx) => {\n const envValue = value.env;\n if (envValue === undefined) return;\n const parsed = envConfigSchema.safeParse(envValue);\n if (!parsed.success) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"adapterConfig.env must be a map of valid env bindings\",\n path: [\"env\"],\n });\n }\n});\n\nexport const createAgentInstructionsBundleSchema = z.object({\n entryFile: z.string().trim().min(1).optional(),\n files: z.record(z.string(), z.string()).refine((files) => Object.keys(files).length > 0, {\n message: \"instructionsBundle.files must contain at least one file\",\n }),\n});\n\nconst agentModelProfileConfigSchema = z.object({\n enabled: z.boolean().optional(),\n label: z.string().trim().min(1).optional(),\n adapterConfig: adapterConfigSchema,\n}).strict();\n\nexport const agentRuntimeConfigSchema = z.object({\n modelProfiles: z.object({\n cheap: agentModelProfileConfigSchema.optional(),\n }).strict().optional(),\n}).catchall(z.unknown());\n\nexport const createAgentSchema = z.object({\n name: z.string().min(1),\n role: z.enum(AGENT_ROLES).optional().default(\"general\"),\n title: z.string().optional().nullable(),\n icon: z.enum(AGENT_ICON_NAMES).optional().nullable(),\n reportsTo: z.string().uuid().optional().nullable(),\n capabilities: z.string().optional().nullable(),\n desiredSkills: z.array(z.string().min(1)).optional(),\n adapterType: agentAdapterTypeSchema,\n adapterConfig: adapterConfigSchema.optional().default({}),\n instructionsBundle: createAgentInstructionsBundleSchema.optional(),\n runtimeConfig: agentRuntimeConfigSchema.optional().default({}),\n defaultEnvironmentId: z.string().uuid().optional().nullable(),\n budgetMonthlyCents: z.number().int().nonnegative().optional().default(0),\n permissions: agentPermissionsSchema.optional(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n});\n\nexport type CreateAgent = z.infer<typeof createAgentSchema>;\n\nexport const createAgentHireSchema = createAgentSchema.extend({\n sourceIssueId: z.string().uuid().optional().nullable(),\n sourceIssueIds: z.array(z.string().uuid()).optional(),\n});\n\nexport type CreateAgentHire = z.infer<typeof createAgentHireSchema>;\n\nexport const updateAgentSchema = createAgentSchema\n .omit({ permissions: true })\n .partial()\n .extend({\n permissions: z.never().optional(),\n replaceAdapterConfig: z.boolean().optional(),\n status: z.enum(AGENT_STATUSES).optional(),\n spentMonthlyCents: z.number().int().nonnegative().optional(),\n });\n\nexport type UpdateAgent = z.infer<typeof updateAgentSchema>;\n\nexport const updateAgentInstructionsPathSchema = z.object({\n path: z.string().trim().min(1).nullable(),\n adapterConfigKey: z.string().trim().min(1).optional(),\n});\n\nexport type UpdateAgentInstructionsPath = z.infer<typeof updateAgentInstructionsPathSchema>;\n\nexport const createAgentKeySchema = z.object({\n name: z.string().min(1).default(\"default\"),\n});\n\nexport type CreateAgentKey = z.infer<typeof createAgentKeySchema>;\n\nexport const agentMineInboxQuerySchema = z.object({\n userId: z.string().trim().min(1),\n status: z.string().trim().min(1).optional().default(INBOX_MINE_ISSUE_STATUS_FILTER),\n});\n\nexport type AgentMineInboxQuery = z.infer<typeof agentMineInboxQuerySchema>;\n\nexport const wakeAgentSchema = z.object({\n source: z.enum([\"timer\", \"assignment\", \"on_demand\", \"automation\"]).optional().default(\"on_demand\"),\n triggerDetail: z.enum([\"manual\", \"ping\", \"callback\", \"system\"]).optional(),\n reason: z.string().optional().nullable(),\n payload: z.record(z.string(), z.unknown()).optional().nullable(),\n idempotencyKey: z.string().optional().nullable(),\n forceFreshSession: z.preprocess(\n (value) => (value === null ? undefined : value),\n z.boolean().optional().default(false),\n ),\n});\n\nexport type WakeAgent = z.infer<typeof wakeAgentSchema>;\n\nexport const resetAgentSessionSchema = z.object({\n taskKey: z.string().min(1).optional().nullable(),\n});\n\nexport type ResetAgentSession = z.infer<typeof resetAgentSessionSchema>;\n\nexport const testAdapterEnvironmentSchema = z.object({\n adapterConfig: adapterConfigSchema.optional().default({}),\n /**\n * Optional environment to run the adapter test inside. When omitted, the\n * test runs against the local Paperclip host. When provided and the\n * environment is non-local (SSH/sandbox), the test probes are executed\n * inside that environment so the result reflects real agent execution.\n */\n environmentId: z.string().uuid().optional().nullable(),\n});\n\nexport type TestAdapterEnvironment = z.infer<typeof testAdapterEnvironmentSchema>;\n\nexport const updateAgentPermissionsSchema = z.object({\n canCreateAgents: z.boolean(),\n canAssignTasks: z.boolean(),\n});\n\nexport type UpdateAgentPermissions = z.infer<typeof updateAgentPermissionsSchema>;\n", "import { z } from \"zod\";\nimport { PROJECT_STATUSES } from \"../constants.js\";\nimport { envConfigSchema } from \"./secret.js\";\n\nconst executionWorkspaceStrategySchema = z\n .object({\n type: z.enum([\"project_primary\", \"git_worktree\", \"adapter_managed\", \"cloud_sandbox\"]).optional(),\n baseRef: z.string().optional().nullable(),\n branchTemplate: z.string().optional().nullable(),\n worktreeParentDir: z.string().optional().nullable(),\n provisionCommand: z.string().optional().nullable(),\n teardownCommand: z.string().optional().nullable(),\n })\n .strict();\n\nexport const projectExecutionWorkspacePolicySchema = z\n .object({\n enabled: z.boolean(),\n defaultMode: z.enum([\"shared_workspace\", \"isolated_workspace\", \"operator_branch\", \"adapter_default\"]).optional(),\n allowIssueOverride: z.boolean().optional(),\n defaultProjectWorkspaceId: z.string().uuid().optional().nullable(),\n environmentId: z.string().uuid().optional().nullable(),\n workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),\n workspaceRuntime: z.record(z.string(), z.unknown()).optional().nullable(),\n branchPolicy: z.record(z.string(), z.unknown()).optional().nullable(),\n pullRequestPolicy: z.record(z.string(), z.unknown()).optional().nullable(),\n runtimePolicy: z.record(z.string(), z.unknown()).optional().nullable(),\n cleanupPolicy: z.record(z.string(), z.unknown()).optional().nullable(),\n })\n .strict();\n\nexport const projectWorkspaceRuntimeConfigSchema = z.object({\n workspaceRuntime: z.record(z.string(), z.unknown()).optional().nullable(),\n desiredState: z.enum([\"running\", \"stopped\", \"manual\"]).optional().nullable(),\n serviceStates: z.record(z.enum([\"running\", \"stopped\", \"manual\"])).optional().nullable(),\n}).strict();\n\nconst projectWorkspaceSourceTypeSchema = z.enum([\"local_path\", \"git_repo\", \"remote_managed\", \"non_git_path\"]);\nconst projectWorkspaceVisibilitySchema = z.enum([\"default\", \"advanced\"]);\n\nconst projectWorkspaceFields = {\n name: z.string().min(1).optional(),\n sourceType: projectWorkspaceSourceTypeSchema.optional(),\n cwd: z.string().min(1).optional().nullable(),\n repoUrl: z.string().url().optional().nullable(),\n repoRef: z.string().optional().nullable(),\n defaultRef: z.string().optional().nullable(),\n visibility: projectWorkspaceVisibilitySchema.optional(),\n setupCommand: z.string().optional().nullable(),\n cleanupCommand: z.string().optional().nullable(),\n remoteProvider: z.string().optional().nullable(),\n remoteWorkspaceRef: z.string().optional().nullable(),\n sharedWorkspaceKey: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n runtimeConfig: projectWorkspaceRuntimeConfigSchema.optional().nullable(),\n};\n\nfunction validateProjectWorkspace(value: Record<string, unknown>, ctx: z.RefinementCtx) {\n const sourceType = value.sourceType ?? \"local_path\";\n const hasCwd = typeof value.cwd === \"string\" && value.cwd.trim().length > 0;\n const hasRepo = typeof value.repoUrl === \"string\" && value.repoUrl.trim().length > 0;\n const hasRemoteRef = typeof value.remoteWorkspaceRef === \"string\" && value.remoteWorkspaceRef.trim().length > 0;\n\n if (sourceType === \"remote_managed\") {\n if (!hasRemoteRef && !hasRepo) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Remote-managed workspace requires remoteWorkspaceRef or repoUrl.\",\n path: [\"remoteWorkspaceRef\"],\n });\n }\n return;\n }\n\n if (!hasCwd && !hasRepo) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Workspace requires at least one of cwd or repoUrl.\",\n path: [\"cwd\"],\n });\n }\n}\n\nexport const createProjectWorkspaceSchema = z.object({\n ...projectWorkspaceFields,\n isPrimary: z.boolean().optional().default(false),\n}).superRefine(validateProjectWorkspace);\n\nexport type CreateProjectWorkspace = z.infer<typeof createProjectWorkspaceSchema>;\n\nexport const updateProjectWorkspaceSchema = z.object({\n ...projectWorkspaceFields,\n isPrimary: z.boolean().optional(),\n}).partial();\n\nexport type UpdateProjectWorkspace = z.infer<typeof updateProjectWorkspaceSchema>;\n\nconst projectFields = {\n /** @deprecated Use goalIds instead */\n goalId: z.string().uuid().optional().nullable(),\n goalIds: z.array(z.string().uuid()).optional(),\n name: z.string().min(1),\n description: z.string().optional().nullable(),\n status: z.enum(PROJECT_STATUSES).optional().default(\"backlog\"),\n leadAgentId: z.string().uuid().optional().nullable(),\n targetDate: z.string().optional().nullable(),\n color: z.string().optional().nullable(),\n env: envConfigSchema.optional().nullable(),\n executionWorkspacePolicy: projectExecutionWorkspacePolicySchema.optional().nullable(),\n archivedAt: z.string().datetime().optional().nullable(),\n};\n\nexport const createProjectSchema = z.object({\n ...projectFields,\n workspace: createProjectWorkspaceSchema.optional(),\n});\n\nexport type CreateProject = z.infer<typeof createProjectSchema>;\n\nexport const updateProjectSchema = z.object(projectFields).partial();\n\nexport type UpdateProject = z.infer<typeof updateProjectSchema>;\n\nexport type ProjectExecutionWorkspacePolicy = z.infer<typeof projectExecutionWorkspacePolicySchema>;\n", "import { z } from \"zod\";\nimport {\n DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES,\n DOCUMENT_ANNOTATION_ANCHOR_STATES,\n DOCUMENT_ANNOTATION_THREAD_STATUSES,\n} from \"../constants.js\";\nimport { multilineTextSchema } from \"./text.js\";\n\nexport const documentAnnotationThreadStatusSchema = z.enum(DOCUMENT_ANNOTATION_THREAD_STATUSES);\nexport const documentAnnotationAnchorStateSchema = z.enum(DOCUMENT_ANNOTATION_ANCHOR_STATES);\nexport const documentAnnotationAnchorConfidenceSchema = z.enum(DOCUMENT_ANNOTATION_ANCHOR_CONFIDENCES);\n\nexport const documentAnnotationTextQuoteSelectorSchema = z.object({\n exact: z.string().min(1).max(10_000),\n prefix: z.string().max(1_000).default(\"\"),\n suffix: z.string().max(1_000).default(\"\"),\n}).strict();\n\nexport const documentAnnotationTextPositionSelectorSchema = z.object({\n normalizedStart: z.number().int().nonnegative(),\n normalizedEnd: z.number().int().nonnegative(),\n markdownStart: z.number().int().nonnegative(),\n markdownEnd: z.number().int().nonnegative(),\n}).strict().superRefine((value, ctx) => {\n if (value.normalizedEnd <= value.normalizedStart) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"normalizedEnd must be greater than normalizedStart\",\n path: [\"normalizedEnd\"],\n });\n }\n if (value.markdownEnd <= value.markdownStart) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"markdownEnd must be greater than markdownStart\",\n path: [\"markdownEnd\"],\n });\n }\n});\n\nexport const documentAnnotationAnchorSelectorSchema = z.object({\n quote: documentAnnotationTextQuoteSelectorSchema,\n position: documentAnnotationTextPositionSelectorSchema,\n}).strict();\n\nexport const createDocumentAnnotationThreadSchema = z.object({\n baseRevisionId: z.string().uuid(),\n baseRevisionNumber: z.number().int().positive(),\n selector: documentAnnotationAnchorSelectorSchema,\n body: multilineTextSchema.pipe(z.string().min(1).max(20_000)),\n}).strict();\n\nexport const createDocumentAnnotationCommentSchema = z.object({\n body: multilineTextSchema.pipe(z.string().min(1).max(20_000)),\n}).strict();\n\nexport const updateDocumentAnnotationThreadSchema = z.object({\n status: documentAnnotationThreadStatusSchema.optional(),\n}).strict().refine((value) => value.status != null, {\n message: \"At least one field must be provided\",\n});\n\nexport type CreateDocumentAnnotationThread = z.infer<typeof createDocumentAnnotationThreadSchema>;\nexport type CreateDocumentAnnotationComment = z.infer<typeof createDocumentAnnotationCommentSchema>;\nexport type UpdateDocumentAnnotationThread = z.infer<typeof updateDocumentAnnotationThreadSchema>;\n", "import { z } from \"zod\";\nimport { COMPANY_SEARCH_SCOPES } from \"../types/search.js\";\n\nexport const COMPANY_SEARCH_MAX_QUERY_LENGTH = 200;\nexport const COMPANY_SEARCH_MAX_TOKENS = 8;\nexport const COMPANY_SEARCH_DEFAULT_LIMIT = 20;\nexport const COMPANY_SEARCH_MAX_LIMIT = 50;\nexport const COMPANY_SEARCH_MAX_OFFSET = 200;\n\nfunction firstQueryValue(value: unknown): unknown {\n return Array.isArray(value) ? value[0] : value;\n}\n\nfunction clampInteger(value: unknown, fallback: number, min: number, max: number) {\n const raw = firstQueryValue(value);\n const numeric = typeof raw === \"number\"\n ? raw\n : typeof raw === \"string\" && raw.trim().length > 0\n ? Number.parseInt(raw, 10)\n : Number.NaN;\n if (!Number.isFinite(numeric)) return fallback;\n return Math.min(max, Math.max(min, Math.floor(numeric)));\n}\n\nexport const companySearchQuerySchema = z.object({\n q: z.preprocess(firstQueryValue, z.string().optional().default(\"\"))\n .transform((value) => value.slice(0, COMPANY_SEARCH_MAX_QUERY_LENGTH)),\n scope: z.preprocess(firstQueryValue, z.enum(COMPANY_SEARCH_SCOPES).catch(\"all\")).optional().default(\"all\"),\n limit: z.unknown()\n .optional()\n .transform((value) => clampInteger(value, COMPANY_SEARCH_DEFAULT_LIMIT, 1, COMPANY_SEARCH_MAX_LIMIT)),\n offset: z.unknown()\n .optional()\n .transform((value) => clampInteger(value, 0, 0, COMPANY_SEARCH_MAX_OFFSET)),\n});\n\nexport type CompanySearchQuery = z.infer<typeof companySearchQuerySchema>;\n", "import { z } from \"zod\";\nimport {\n ISSUE_TREE_CONTROL_MODES,\n ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES,\n} from \"../constants.js\";\n\nexport const issueTreeControlModeSchema = z.enum(ISSUE_TREE_CONTROL_MODES);\n\nexport const issueTreeHoldReleasePolicySchema = z\n .object({\n strategy: z.enum(ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES).default(\"manual\"),\n note: z.string().trim().min(1).max(500).optional().nullable(),\n })\n .strict();\n\nexport const previewIssueTreeControlSchema = z\n .object({\n mode: issueTreeControlModeSchema,\n releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),\n })\n .strict();\n\nexport type PreviewIssueTreeControl = z.infer<typeof previewIssueTreeControlSchema>;\n\nexport const createIssueTreeHoldSchema = z\n .object({\n mode: issueTreeControlModeSchema,\n reason: z.string().trim().min(1).max(1000).optional().nullable(),\n releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n })\n .strict();\n\nexport type CreateIssueTreeHold = z.infer<typeof createIssueTreeHoldSchema>;\n\nexport const releaseIssueTreeHoldSchema = z\n .object({\n reason: z.string().trim().min(1).max(1000).optional().nullable(),\n releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n })\n .strict();\n\nexport type ReleaseIssueTreeHold = z.infer<typeof releaseIssueTreeHoldSchema>;\n", "import { z } from \"zod\";\n\nfunction attachmentContentPath(attachmentId: string): string {\n return `/api/attachments/${attachmentId}/content`;\n}\n\nexport const issueWorkProductTypeSchema = z.enum([\n \"preview_url\",\n \"runtime_service\",\n \"pull_request\",\n \"branch\",\n \"commit\",\n \"artifact\",\n \"document\",\n]);\n\nexport const issueWorkProductStatusSchema = z.enum([\n \"active\",\n \"ready_for_review\",\n \"approved\",\n \"changes_requested\",\n \"merged\",\n \"closed\",\n \"failed\",\n \"archived\",\n \"draft\",\n]);\n\nexport const issueWorkProductReviewStateSchema = z.enum([\n \"none\",\n \"needs_board_review\",\n \"approved\",\n \"changes_requested\",\n]);\n\nexport const attachmentArtifactWorkProductMetadataSchema = z.object({\n attachmentId: z.string().uuid(),\n contentType: z.string().min(1),\n byteSize: z.number().int().nonnegative(),\n contentPath: z.string().min(1),\n openPath: z.string().min(1),\n downloadPath: z.string().min(1),\n originalFilename: z.string().optional().nullable(),\n}).superRefine((value, ctx) => {\n const contentPath = attachmentContentPath(value.attachmentId);\n if (value.contentPath !== contentPath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"contentPath\"],\n message: \"contentPath must point to the same-origin attachment content route\",\n });\n }\n if (value.openPath !== contentPath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"openPath\"],\n message: \"openPath must point to the same-origin attachment content route\",\n });\n }\n if (value.downloadPath !== `${contentPath}?download=1`) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\"downloadPath\"],\n message: \"downloadPath must point to the same-origin attachment download route\",\n });\n }\n});\n\nexport type AttachmentArtifactWorkProductMetadata = z.infer<typeof attachmentArtifactWorkProductMetadataSchema>;\n\nexport const createIssueWorkProductSchema = z.object({\n projectId: z.string().uuid().optional().nullable(),\n executionWorkspaceId: z.string().uuid().optional().nullable(),\n runtimeServiceId: z.string().uuid().optional().nullable(),\n type: issueWorkProductTypeSchema,\n provider: z.string().min(1),\n externalId: z.string().optional().nullable(),\n title: z.string().min(1),\n url: z.string().url().optional().nullable(),\n status: issueWorkProductStatusSchema.default(\"active\"),\n reviewState: issueWorkProductReviewStateSchema.optional().default(\"none\"),\n isPrimary: z.boolean().optional().default(false),\n healthStatus: z.enum([\"unknown\", \"healthy\", \"unhealthy\"]).optional().default(\"unknown\"),\n summary: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n createdByRunId: z.string().uuid().optional().nullable(),\n});\n\nexport type CreateIssueWorkProduct = z.infer<typeof createIssueWorkProductSchema>;\n\nexport const updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();\n\nexport type UpdateIssueWorkProduct = z.infer<typeof updateIssueWorkProductSchema>;\n", "import { z } from \"zod\";\nimport { GOAL_LEVELS, GOAL_STATUSES } from \"../constants.js\";\n\nexport const createGoalSchema = z.object({\n title: z.string().min(1),\n description: z.string().optional().nullable(),\n level: z.enum(GOAL_LEVELS).optional().default(\"task\"),\n status: z.enum(GOAL_STATUSES).optional().default(\"planned\"),\n parentId: z.string().uuid().optional().nullable(),\n ownerAgentId: z.string().uuid().optional().nullable(),\n});\n\nexport type CreateGoal = z.infer<typeof createGoalSchema>;\n\nexport const updateGoalSchema = createGoalSchema.partial();\n\nexport type UpdateGoal = z.infer<typeof updateGoalSchema>;\n", "import { z } from \"zod\";\nimport { APPROVAL_TYPES } from \"../constants.js\";\nimport { multilineTextSchema } from \"./text.js\";\n\nexport const createApprovalSchema = z.object({\n type: z.enum(APPROVAL_TYPES),\n requestedByAgentId: z.string().uuid().optional().nullable(),\n payload: z.record(z.string(), z.unknown()),\n issueIds: z.array(z.string().uuid()).optional(),\n});\n\nexport type CreateApproval = z.infer<typeof createApprovalSchema>;\n\nexport const resolveApprovalSchema = z.object({\n decisionNote: multilineTextSchema.optional().nullable(),\n});\n\nexport type ResolveApproval = z.infer<typeof resolveApprovalSchema>;\n\nexport const requestApprovalRevisionSchema = z.object({\n decisionNote: multilineTextSchema.optional().nullable(),\n});\n\nexport type RequestApprovalRevision = z.infer<typeof requestApprovalRevisionSchema>;\n\nexport const resubmitApprovalSchema = z.object({\n payload: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type ResubmitApproval = z.infer<typeof resubmitApprovalSchema>;\n\nexport const addApprovalCommentSchema = z.object({\n body: multilineTextSchema.pipe(z.string().min(1)),\n});\n\nexport type AddApprovalComment = z.infer<typeof addApprovalCommentSchema>;\n", "import { z } from \"zod\";\nimport { BILLING_TYPES } from \"../constants.js\";\n\nexport const createCostEventSchema = z.object({\n agentId: z.string().uuid(),\n issueId: z.string().uuid().optional().nullable(),\n projectId: z.string().uuid().optional().nullable(),\n goalId: z.string().uuid().optional().nullable(),\n heartbeatRunId: z.string().uuid().optional().nullable(),\n billingCode: z.string().optional().nullable(),\n provider: z.string().min(1),\n biller: z.string().min(1).optional(),\n billingType: z.enum(BILLING_TYPES).optional().default(\"unknown\"),\n model: z.string().min(1),\n inputTokens: z.number().int().nonnegative().optional().default(0),\n cachedInputTokens: z.number().int().nonnegative().optional().default(0),\n outputTokens: z.number().int().nonnegative().optional().default(0),\n costCents: z.number().int().nonnegative(),\n occurredAt: z.string().datetime(),\n}).transform((value) => ({\n ...value,\n biller: value.biller ?? value.provider,\n}));\n\nexport type CreateCostEvent = z.infer<typeof createCostEventSchema>;\n\nexport const updateBudgetSchema = z.object({\n budgetMonthlyCents: z.number().int().nonnegative(),\n});\n\nexport type UpdateBudget = z.infer<typeof updateBudgetSchema>;\n", "import { z } from \"zod\";\nimport { AGENT_ADAPTER_TYPES, FINANCE_DIRECTIONS, FINANCE_EVENT_KINDS, FINANCE_UNITS } from \"../constants.js\";\n\nexport const createFinanceEventSchema = z.object({\n agentId: z.string().uuid().optional().nullable(),\n issueId: z.string().uuid().optional().nullable(),\n projectId: z.string().uuid().optional().nullable(),\n goalId: z.string().uuid().optional().nullable(),\n heartbeatRunId: z.string().uuid().optional().nullable(),\n costEventId: z.string().uuid().optional().nullable(),\n billingCode: z.string().optional().nullable(),\n description: z.string().max(500).optional().nullable(),\n eventKind: z.enum(FINANCE_EVENT_KINDS),\n direction: z.enum(FINANCE_DIRECTIONS).optional().default(\"debit\"),\n biller: z.string().min(1),\n provider: z.string().min(1).optional().nullable(),\n executionAdapterType: z.enum(AGENT_ADAPTER_TYPES).optional().nullable(),\n pricingTier: z.string().min(1).optional().nullable(),\n region: z.string().min(1).optional().nullable(),\n model: z.string().min(1).optional().nullable(),\n quantity: z.number().int().nonnegative().optional().nullable(),\n unit: z.enum(FINANCE_UNITS).optional().nullable(),\n amountCents: z.number().int().nonnegative(),\n currency: z.string().length(3).optional().default(\"USD\"),\n estimated: z.boolean().optional().default(false),\n externalInvoiceId: z.string().optional().nullable(),\n metadataJson: z.record(z.string(), z.unknown()).optional().nullable(),\n occurredAt: z.string().datetime(),\n}).transform((value) => ({\n ...value,\n currency: value.currency.toUpperCase(),\n}));\n\nexport type CreateFinanceEvent = z.infer<typeof createFinanceEventSchema>;\n", "import { z } from \"zod\";\n\nexport const createAssetImageMetadataSchema = z.object({\n namespace: z\n .string()\n .trim()\n .min(1)\n .max(120)\n .regex(/^[a-zA-Z0-9/_-]+$/)\n .optional(),\n});\n\nexport type CreateAssetImageMetadata = z.infer<typeof createAssetImageMetadataSchema>;\n\n", "import { z } from \"zod\";\nimport {\n AGENT_ADAPTER_TYPES,\n HUMAN_COMPANY_MEMBERSHIP_ROLES,\n INVITE_JOIN_TYPES,\n JOIN_REQUEST_STATUSES,\n JOIN_REQUEST_TYPES,\n PERMISSION_KEYS,\n} from \"../constants.js\";\nimport { optionalAgentAdapterTypeSchema } from \"../adapter-type.js\";\n\nexport const createCompanyInviteSchema = z.object({\n allowedJoinTypes: z.enum(INVITE_JOIN_TYPES).default(\"both\"),\n humanRole: z.enum(HUMAN_COMPANY_MEMBERSHIP_ROLES).optional().nullable(),\n defaultsPayload: z.record(z.string(), z.unknown()).optional().nullable(),\n agentMessage: z.string().max(4000).optional().nullable(),\n});\n\nexport type CreateCompanyInvite = z.infer<typeof createCompanyInviteSchema>;\n\nexport const createOpenClawInvitePromptSchema = z.object({\n agentMessage: z.string().max(4000).optional().nullable(),\n});\n\nexport type CreateOpenClawInvitePrompt = z.infer<\n typeof createOpenClawInvitePromptSchema\n>;\n\nexport const acceptInviteSchema = z.object({\n requestType: z.enum(JOIN_REQUEST_TYPES),\n agentName: z.string().min(1).max(120).optional(),\n adapterType: optionalAgentAdapterTypeSchema,\n capabilities: z.string().max(4000).optional().nullable(),\n agentDefaultsPayload: z.record(z.string(), z.unknown()).optional().nullable(),\n // OpenClaw join compatibility fields accepted at top level.\n responsesWebhookUrl: z.string().max(4000).optional().nullable(),\n responsesWebhookMethod: z.string().max(32).optional().nullable(),\n responsesWebhookHeaders: z.record(z.string(), z.unknown()).optional().nullable(),\n paperclipApiUrl: z.string().max(4000).optional().nullable(),\n webhookAuthHeader: z.string().max(4000).optional().nullable(),\n});\n\nexport type AcceptInvite = z.infer<typeof acceptInviteSchema>;\n\nexport const listJoinRequestsQuerySchema = z.object({\n status: z.enum(JOIN_REQUEST_STATUSES).optional(),\n requestType: z.enum(JOIN_REQUEST_TYPES).optional(),\n});\n\nexport type ListJoinRequestsQuery = z.infer<typeof listJoinRequestsQuerySchema>;\n\nexport const listCompanyInvitesQuerySchema = z.object({\n state: z.enum([\"active\", \"revoked\", \"accepted\", \"expired\"]).optional(),\n limit: z.coerce.number().int().min(1).max(100).optional().default(20),\n offset: z.coerce.number().int().min(0).optional().default(0),\n});\n\nexport type ListCompanyInvitesQuery = z.infer<typeof listCompanyInvitesQuerySchema>;\n\nexport const claimJoinRequestApiKeySchema = z.object({\n claimSecret: z.string().min(16).max(256),\n});\n\nexport type ClaimJoinRequestApiKey = z.infer<typeof claimJoinRequestApiKeySchema>;\n\nexport const boardCliAuthAccessLevelSchema = z.enum([\n \"board\",\n \"instance_admin_required\",\n]);\n\nexport type BoardCliAuthAccessLevel = z.infer<typeof boardCliAuthAccessLevelSchema>;\n\nexport const createCliAuthChallengeSchema = z.object({\n command: z.string().min(1).max(240),\n clientName: z.string().max(120).optional().nullable(),\n requestedAccess: boardCliAuthAccessLevelSchema.default(\"board\"),\n requestedCompanyId: z.string().uuid().optional().nullable(),\n});\n\nexport type CreateCliAuthChallenge = z.infer<typeof createCliAuthChallengeSchema>;\n\nexport const resolveCliAuthChallengeSchema = z.object({\n token: z.string().min(16).max(256),\n});\n\nexport type ResolveCliAuthChallenge = z.infer<typeof resolveCliAuthChallengeSchema>;\n\nexport const updateMemberPermissionsSchema = z.object({\n grants: z.array(\n z.object({\n permissionKey: z.enum(PERMISSION_KEYS),\n scope: z.record(z.string(), z.unknown()).optional().nullable(),\n }),\n ),\n});\n\nexport type UpdateMemberPermissions = z.infer<typeof updateMemberPermissionsSchema>;\n\nconst editableMembershipStatuses = [\"pending\", \"active\", \"suspended\"] as const;\n\nexport const updateCompanyMemberSchema = z.object({\n membershipRole: z.enum(HUMAN_COMPANY_MEMBERSHIP_ROLES).optional().nullable(),\n status: z.enum(editableMembershipStatuses).optional(),\n}).refine((value) => value.membershipRole !== undefined || value.status !== undefined, {\n message: \"membershipRole or status is required\",\n});\n\nexport type UpdateCompanyMember = z.infer<typeof updateCompanyMemberSchema>;\n\nexport const updateCompanyMemberWithPermissionsSchema = z.object({\n membershipRole: z.enum(HUMAN_COMPANY_MEMBERSHIP_ROLES).optional().nullable(),\n status: z.enum(editableMembershipStatuses).optional(),\n grants: updateMemberPermissionsSchema.shape.grants.default([]),\n}).refine((value) => value.membershipRole !== undefined || value.status !== undefined, {\n message: \"membershipRole or status is required\",\n});\n\nexport type UpdateCompanyMemberWithPermissions = z.infer<typeof updateCompanyMemberWithPermissionsSchema>;\n\nexport const archiveCompanyMemberSchema = z.object({\n reassignment: z\n .object({\n assigneeAgentId: z.string().uuid().optional().nullable(),\n assigneeUserId: z.string().uuid().optional().nullable(),\n })\n .optional()\n .nullable(),\n}).superRefine((value, ctx) => {\n if (value.reassignment?.assigneeAgentId && value.reassignment.assigneeUserId) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Choose either an agent or user reassignment target\",\n path: [\"reassignment\"],\n });\n }\n});\n\nexport type ArchiveCompanyMember = z.infer<typeof archiveCompanyMemberSchema>;\n\nexport const updateUserCompanyAccessSchema = z.object({\n companyIds: z.array(z.string().uuid()).default([]),\n});\n\nexport type UpdateUserCompanyAccess = z.infer<typeof updateUserCompanyAccessSchema>;\n\nexport const searchAdminUsersQuerySchema = z.object({\n query: z.string().trim().max(120).optional().default(\"\"),\n});\n\nexport type SearchAdminUsersQuery = z.infer<typeof searchAdminUsersQuerySchema>;\n\nconst profileImageAssetPathPattern = /^\\/api\\/assets\\/[^/?#]+\\/content(?:\\?[^#]*)?(?:#.*)?$/;\n\nfunction isValidProfileImage(value: string): boolean {\n if (profileImageAssetPathPattern.test(value)) return true;\n\n try {\n const url = new URL(value);\n return url.protocol === \"https:\" || url.protocol === \"http:\";\n } catch {\n return false;\n }\n}\n\nconst profileImageSchema = z\n .string()\n .trim()\n .min(1)\n .max(4000)\n .refine(isValidProfileImage, { message: \"Invalid profile image URL\" });\n\nexport const currentUserProfileSchema = z.object({\n id: z.string().min(1),\n email: z.string().email().nullable(),\n name: z.string().min(1).max(120).nullable(),\n image: profileImageSchema.nullable(),\n});\n\nexport type CurrentUserProfile = z.infer<typeof currentUserProfileSchema>;\n\nexport const authSessionSchema = z.object({\n session: z.object({\n id: z.string().min(1),\n userId: z.string().min(1),\n }),\n user: currentUserProfileSchema,\n});\n\nexport type AuthSession = z.infer<typeof authSessionSchema>;\n\nexport const updateCurrentUserProfileSchema = z.object({\n name: z.string().trim().min(1).max(120),\n image: z\n .union([profileImageSchema, z.literal(\"\"), z.null()])\n .optional()\n .transform((value) => value === \"\" ? null : value),\n});\n\nexport type UpdateCurrentUserProfile = z.infer<typeof updateCurrentUserProfileSchema>;\n", "import { z } from \"zod\";\nimport {\n PLUGIN_STATUSES,\n PLUGIN_CATEGORIES,\n PLUGIN_CAPABILITIES,\n PLUGIN_UI_SLOT_TYPES,\n PLUGIN_UI_SLOT_ENTITY_TYPES,\n PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS,\n PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS,\n PLUGIN_LAUNCHER_PLACEMENT_ZONES,\n PLUGIN_LAUNCHER_ACTIONS,\n PLUGIN_LAUNCHER_BOUNDS,\n PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS,\n PLUGIN_STATE_SCOPE_KINDS,\n PLUGIN_DATABASE_CORE_READ_TABLES,\n PLUGIN_API_ROUTE_AUTH_MODES,\n PLUGIN_API_ROUTE_CHECKOUT_POLICIES,\n PLUGIN_API_ROUTE_METHODS,\n ISSUE_PRIORITIES,\n ROUTINE_CATCH_UP_POLICIES,\n ROUTINE_CONCURRENCY_POLICIES,\n ROUTINE_STATUSES,\n ROUTINE_TRIGGER_KINDS,\n ROUTINE_TRIGGER_SIGNING_MODES,\n ISSUE_SURFACE_VISIBILITIES,\n} from \"../constants.js\";\nimport { routineVariableSchema } from \"./routine.js\";\n\n// ---------------------------------------------------------------------------\n// JSON Schema placeholder \u2013 a permissive validator for JSON Schema objects\n// ---------------------------------------------------------------------------\n\n/**\n * Permissive validator for JSON Schema objects. Accepts any `Record<string, unknown>`\n * that contains at least a `type`, `$ref`, or composition keyword (`oneOf`/`anyOf`/`allOf`).\n * Empty objects are also accepted.\n *\n * Used to validate `instanceConfigSchema` and `parametersSchema` fields in the\n * plugin manifest without fully parsing JSON Schema.\n *\n * @see PLUGIN_SPEC.md \u00A710.1 \u2014 Manifest shape\n */\nexport const jsonSchemaSchema = z.record(z.string(), z.unknown()).refine(\n (val) => {\n // Must have a \"type\" field if non-empty, or be a valid JSON Schema object\n if (Object.keys(val).length === 0) return true;\n return typeof val.type === \"string\" || val.$ref !== undefined || val.oneOf !== undefined || val.anyOf !== undefined || val.allOf !== undefined;\n },\n { message: \"Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)\" },\n);\n\n// ---------------------------------------------------------------------------\n// Manifest sub-type schemas\n// ---------------------------------------------------------------------------\n\n/**\n * Validates a {@link PluginJobDeclaration} \u2014 a scheduled job declared in the\n * plugin manifest. Requires `jobKey` and `displayName`; `description` and\n * `schedule` (cron expression) are optional.\n *\n * @see PLUGIN_SPEC.md \u00A717 \u2014 Scheduled Jobs\n */\n/**\n * Validates a cron expression has exactly 5 whitespace-separated fields,\n * each containing only valid cron characters (digits, *, /, -, ,).\n *\n * Valid tokens per field: *, N, N-M, N/S, * /S, N-M/S, and comma-separated lists.\n */\nconst CRON_FIELD_PATTERN = /^(\\*(?:\\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\\/[0-9]+)?)(?:,(\\*(?:\\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\\/[0-9]+)?))*$/;\n\nfunction isValidCronExpression(expression: string): boolean {\n const trimmed = expression.trim();\n if (!trimmed) return false;\n const fields = trimmed.split(/\\s+/);\n if (fields.length !== 5) return false;\n return fields.every((f) => CRON_FIELD_PATTERN.test(f));\n}\n\nexport const pluginJobDeclarationSchema = z.object({\n jobKey: z.string().min(1),\n displayName: z.string().min(1),\n description: z.string().optional(),\n schedule: z.string().refine(\n (val) => isValidCronExpression(val),\n { message: \"schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')\" },\n ).optional(),\n});\n\nexport type PluginJobDeclarationInput = z.infer<typeof pluginJobDeclarationSchema>;\n\n/**\n * Validates a {@link PluginWebhookDeclaration} \u2014 a webhook endpoint declared\n * in the plugin manifest. Requires `endpointKey` and `displayName`.\n *\n * @see PLUGIN_SPEC.md \u00A718 \u2014 Webhooks\n */\nexport const pluginWebhookDeclarationSchema = z.object({\n endpointKey: z.string().min(1),\n displayName: z.string().min(1),\n description: z.string().optional(),\n});\n\nexport type PluginWebhookDeclarationInput = z.infer<typeof pluginWebhookDeclarationSchema>;\n\n/**\n * Validates a {@link PluginToolDeclaration} \u2014 an agent tool contributed by the\n * plugin. Requires `name`, `displayName`, `description`, and a valid\n * `parametersSchema`. Requires the `agent.tools.register` capability.\n *\n * @see PLUGIN_SPEC.md \u00A711 \u2014 Agent Tools\n */\nexport const pluginToolDeclarationSchema = z.object({\n name: z.string().min(1),\n displayName: z.string().min(1),\n description: z.string().min(1),\n parametersSchema: jsonSchemaSchema,\n});\n\nexport const pluginEnvironmentDriverDeclarationSchema = z.object({\n driverKey: z.string().min(1).regex(\n /^[a-z0-9][a-z0-9._-]*$/,\n \"Environment driver key must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores\",\n ),\n kind: z.enum([\"environment_driver\", \"sandbox_provider\"]).optional(),\n displayName: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n configSchema: jsonSchemaSchema,\n});\n\nexport type PluginEnvironmentDriverDeclarationInput = z.infer<\n typeof pluginEnvironmentDriverDeclarationSchema\n>;\n\nexport type PluginToolDeclarationInput = z.infer<typeof pluginToolDeclarationSchema>;\n\nexport const pluginManagedAgentDeclarationSchema = z.object({\n agentKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"agentKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n displayName: z.string().min(1).max(100),\n role: z.string().min(1).max(100).optional(),\n title: z.string().max(200).nullable().optional(),\n icon: z.string().max(100).nullable().optional(),\n capabilities: z.string().max(2000).nullable().optional(),\n adapterType: z.string().min(1).max(100).optional(),\n adapterPreference: z.array(z.string().min(1).max(100)).max(10).optional(),\n adapterConfig: z.record(z.string(), z.unknown()).optional(),\n runtimeConfig: z.record(z.string(), z.unknown()).optional(),\n permissions: z.record(z.string(), z.unknown()).optional(),\n status: z.enum([\"idle\", \"paused\"]).optional(),\n budgetMonthlyCents: z.number().int().min(0).optional(),\n instructions: z.object({\n entryFile: z.string().min(1).max(200).optional(),\n content: z.string().max(200_000).optional(),\n files: z.record(z.string().max(200_000)).optional(),\n assetPath: z.string().min(1).max(500).optional(),\n }).optional(),\n});\n\nexport type PluginManagedAgentDeclarationInput = z.infer<typeof pluginManagedAgentDeclarationSchema>;\n\nexport const pluginManagedProjectDeclarationSchema = z.object({\n projectKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"projectKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n displayName: z.string().min(1).max(120),\n description: z.string().max(2000).nullable().optional(),\n status: z.enum([\"backlog\", \"planned\", \"in_progress\", \"completed\", \"cancelled\"]).optional(),\n color: z.string().max(32).nullable().optional(),\n settings: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type PluginManagedProjectDeclarationInput = z.infer<typeof pluginManagedProjectDeclarationSchema>;\n\nconst pluginManagedResourceRefSchema = z.object({\n pluginKey: z.string().min(1).max(100).optional(),\n resourceKind: z.enum([\"agent\", \"project\", \"routine\", \"skill\"]),\n resourceKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"resourceKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n});\n\nexport const pluginManagedRoutineDeclarationSchema = z.object({\n routineKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"routineKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n title: z.string().trim().min(1).max(200),\n description: z.string().max(10_000).nullable().optional(),\n assigneeRef: pluginManagedResourceRefSchema.extend({ resourceKind: z.literal(\"agent\") }).nullable().optional(),\n projectRef: pluginManagedResourceRefSchema.extend({ resourceKind: z.literal(\"project\") }).nullable().optional(),\n goalId: z.string().uuid().nullable().optional(),\n status: z.enum(ROUTINE_STATUSES).optional(),\n priority: z.enum(ISSUE_PRIORITIES).optional(),\n concurrencyPolicy: z.enum(ROUTINE_CONCURRENCY_POLICIES).optional(),\n catchUpPolicy: z.enum(ROUTINE_CATCH_UP_POLICIES).optional(),\n variables: z.array(routineVariableSchema).optional(),\n triggers: z.array(z.object({\n kind: z.enum(ROUTINE_TRIGGER_KINDS),\n label: z.string().trim().max(120).nullable().optional(),\n enabled: z.boolean().optional(),\n cronExpression: z.string().trim().min(1).optional().nullable(),\n timezone: z.string().trim().min(1).optional().nullable(),\n signingMode: z.enum(ROUTINE_TRIGGER_SIGNING_MODES).optional().nullable(),\n replayWindowSec: z.number().int().min(30).max(86_400).optional().nullable(),\n })).max(20).optional(),\n issueTemplate: z.object({\n surfaceVisibility: z.enum(ISSUE_SURFACE_VISIBILITIES).optional(),\n originId: z.string().trim().max(255).nullable().optional(),\n billingCode: z.string().trim().max(200).nullable().optional(),\n }).optional(),\n});\n\nexport type PluginManagedRoutineDeclarationInput = z.infer<typeof pluginManagedRoutineDeclarationSchema>;\n\nconst pluginLocalFolderRelativePathSchema = z.string().min(1).max(500).refine(\n (value) =>\n !value.startsWith(\"/\") &&\n !value.includes(\"..\") &&\n !value.includes(\"\\\\\") &&\n !value.split(\"/\").some((segment) => segment === \"\" || segment === \".\"),\n { message: \"local folder paths must be relative paths without traversal, empty segments, or backslashes\" },\n);\n\nexport const pluginLocalFolderDeclarationSchema = z.object({\n folderKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"folderKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n displayName: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n access: z.enum([\"read\", \"readWrite\"]).optional(),\n requiredDirectories: z.array(pluginLocalFolderRelativePathSchema).optional(),\n requiredFiles: z.array(pluginLocalFolderRelativePathSchema).optional(),\n});\n\nexport type PluginLocalFolderDeclarationInput = z.infer<typeof pluginLocalFolderDeclarationSchema>;\n\nexport const pluginManagedSkillFileDeclarationSchema = z.object({\n path: pluginLocalFolderRelativePathSchema.refine(\n (value) => value.toLowerCase() !== \"skill.md\",\n { message: \"managed skill files cannot replace SKILL.md; use markdown for the main skill file\" },\n ),\n content: z.string().max(200_000),\n});\n\nexport type PluginManagedSkillFileDeclarationInput = z.infer<typeof pluginManagedSkillFileDeclarationSchema>;\n\nexport const pluginManagedSkillDeclarationSchema = z.object({\n skillKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"skillKey must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n displayName: z.string().min(1).max(100),\n slug: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"slug must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }).optional(),\n description: z.string().max(2000).nullable().optional(),\n markdown: z.string().max(200_000).optional(),\n files: z.array(pluginManagedSkillFileDeclarationSchema).max(50).optional(),\n}).superRefine((value, ctx) => {\n const paths = (value.files ?? []).map((file) => file.path);\n const duplicates = paths.filter((path, index) => paths.indexOf(path) !== index);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate managed skill file paths: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"files\"],\n });\n }\n});\n\nexport type PluginManagedSkillDeclarationInput = z.infer<typeof pluginManagedSkillDeclarationSchema>;\n\n/**\n * Validates a {@link PluginUiSlotDeclaration} \u2014 a UI extension slot the plugin\n * fills with a React component. Includes `superRefine` checks for slot-specific\n * requirements such as `entityTypes` for context-sensitive slots.\n *\n * @see PLUGIN_SPEC.md \u00A719 \u2014 UI Extension Model\n */\nexport const pluginUiSlotDeclarationSchema = z.object({\n type: z.enum(PLUGIN_UI_SLOT_TYPES),\n id: z.string().min(1),\n displayName: z.string().min(1),\n exportName: z.string().min(1),\n entityTypes: z.array(z.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),\n routePath: z.string().regex(/^[a-z0-9][a-z0-9-]*$/, {\n message: \"routePath must be a lowercase single-segment slug (letters, numbers, hyphens)\",\n }).optional(),\n order: z.number().int().optional(),\n}).superRefine((value, ctx) => {\n // context-sensitive slots require explicit entity targeting.\n const entityScopedTypes = [\"detailTab\", \"taskDetailView\", \"contextMenuItem\", \"commentAnnotation\", \"commentContextMenuItem\", \"projectSidebarItem\"];\n if (\n entityScopedTypes.includes(value.type)\n && (!value.entityTypes || value.entityTypes.length === 0)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `${value.type} slots require at least one entityType`,\n path: [\"entityTypes\"],\n });\n }\n // projectSidebarItem only makes sense for entityType \"project\".\n if (value.type === \"projectSidebarItem\" && value.entityTypes && !value.entityTypes.includes(\"project\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"projectSidebarItem slots require entityTypes to include \\\"project\\\"\",\n path: [\"entityTypes\"],\n });\n }\n // commentAnnotation only makes sense for entityType \"comment\".\n if (value.type === \"commentAnnotation\" && value.entityTypes && !value.entityTypes.includes(\"comment\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"commentAnnotation slots require entityTypes to include \\\"comment\\\"\",\n path: [\"entityTypes\"],\n });\n }\n // commentContextMenuItem only makes sense for entityType \"comment\".\n if (value.type === \"commentContextMenuItem\" && value.entityTypes && !value.entityTypes.includes(\"comment\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"commentContextMenuItem slots require entityTypes to include \\\"comment\\\"\",\n path: [\"entityTypes\"],\n });\n }\n if (value.routePath && value.type !== \"page\" && value.type !== \"routeSidebar\" && value.type !== \"companySettingsPage\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"routePath is only supported for page, routeSidebar, and companySettingsPage slots\",\n path: [\"routePath\"],\n });\n }\n if (value.type === \"routeSidebar\" && !value.routePath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"routeSidebar slots require routePath\",\n path: [\"routePath\"],\n });\n }\n if (value.type === \"companySettingsPage\" && !value.routePath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"companySettingsPage slots require routePath\",\n path: [\"routePath\"],\n });\n }\n if (value.routePath && PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS.includes(value.routePath as (typeof PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS)[number])) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `routePath \"${value.routePath}\" is reserved by the host`,\n path: [\"routePath\"],\n });\n }\n if (\n value.type === \"companySettingsPage\"\n && value.routePath\n && PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS.includes(value.routePath as (typeof PLUGIN_RESERVED_COMPANY_SETTINGS_ROUTE_SEGMENTS)[number])\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `company settings routePath \"${value.routePath}\" is reserved by the host`,\n path: [\"routePath\"],\n });\n }\n});\n\nexport type PluginUiSlotDeclarationInput = z.infer<typeof pluginUiSlotDeclarationSchema>;\n\nconst entityScopedLauncherPlacementZones = [\n \"detailTab\",\n \"taskDetailView\",\n \"contextMenuItem\",\n \"commentAnnotation\",\n \"commentContextMenuItem\",\n \"projectSidebarItem\",\n] as const;\n\nconst launcherBoundsByEnvironment: Record<\n (typeof PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS)[number],\n readonly (typeof PLUGIN_LAUNCHER_BOUNDS)[number][]\n> = {\n hostInline: [\"inline\", \"compact\", \"default\"],\n hostOverlay: [\"compact\", \"default\", \"wide\", \"full\"],\n hostRoute: [\"default\", \"wide\", \"full\"],\n external: [],\n iframe: [\"compact\", \"default\", \"wide\", \"full\"],\n};\n\n/**\n * Validates the action payload for a declarative plugin launcher.\n */\nexport const pluginLauncherActionDeclarationSchema = z.object({\n type: z.enum(PLUGIN_LAUNCHER_ACTIONS),\n target: z.string().min(1),\n params: z.record(z.string(), z.unknown()).optional(),\n}).superRefine((value, ctx) => {\n if (value.type === \"performAction\" && value.target.includes(\"/\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"performAction launchers must target an action key, not a route or URL\",\n path: [\"target\"],\n });\n }\n\n if (value.type === \"navigate\" && /^https?:\\/\\//.test(value.target)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"navigate launchers must target a host route, not an absolute URL\",\n path: [\"target\"],\n });\n }\n});\n\nexport type PluginLauncherActionDeclarationInput =\n z.infer<typeof pluginLauncherActionDeclarationSchema>;\n\n/**\n * Validates optional render hints for a plugin launcher destination.\n */\nexport const pluginLauncherRenderDeclarationSchema = z.object({\n environment: z.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),\n bounds: z.enum(PLUGIN_LAUNCHER_BOUNDS).optional(),\n}).superRefine((value, ctx) => {\n if (!value.bounds) {\n return;\n }\n\n const supportedBounds = launcherBoundsByEnvironment[value.environment];\n if (!supportedBounds.includes(value.bounds)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `bounds \"${value.bounds}\" is not supported for render environment \"${value.environment}\"`,\n path: [\"bounds\"],\n });\n }\n});\n\nexport type PluginLauncherRenderDeclarationInput =\n z.infer<typeof pluginLauncherRenderDeclarationSchema>;\n\n/**\n * Validates declarative launcher metadata in a plugin manifest.\n */\nexport const pluginLauncherDeclarationSchema = z.object({\n id: z.string().min(1),\n displayName: z.string().min(1),\n description: z.string().optional(),\n placementZone: z.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),\n exportName: z.string().min(1).optional(),\n entityTypes: z.array(z.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),\n order: z.number().int().optional(),\n action: pluginLauncherActionDeclarationSchema,\n render: pluginLauncherRenderDeclarationSchema.optional(),\n}).superRefine((value, ctx) => {\n if (\n entityScopedLauncherPlacementZones.some((zone) => zone === value.placementZone)\n && (!value.entityTypes || value.entityTypes.length === 0)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `${value.placementZone} launchers require at least one entityType`,\n path: [\"entityTypes\"],\n });\n }\n\n if (\n value.placementZone === \"projectSidebarItem\"\n && value.entityTypes\n && !value.entityTypes.includes(\"project\")\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"projectSidebarItem launchers require entityTypes to include \\\"project\\\"\",\n path: [\"entityTypes\"],\n });\n }\n\n if (value.action.type === \"performAction\" && value.render) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"performAction launchers cannot declare render hints\",\n path: [\"render\"],\n });\n }\n\n if (\n [\"openModal\", \"openDrawer\", \"openPopover\"].includes(value.action.type)\n && !value.render\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `${value.action.type} launchers require render metadata`,\n path: [\"render\"],\n });\n }\n\n if (value.action.type === \"openModal\" && value.render?.environment === \"hostInline\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"openModal launchers cannot use the hostInline render environment\",\n path: [\"render\", \"environment\"],\n });\n }\n\n if (\n value.action.type === \"openDrawer\"\n && value.render\n && ![\"hostOverlay\", \"iframe\"].includes(value.render.environment)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"openDrawer launchers must use hostOverlay or iframe render environments\",\n path: [\"render\", \"environment\"],\n });\n }\n\n if (value.action.type === \"openPopover\" && value.render?.environment === \"hostRoute\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"openPopover launchers cannot use the hostRoute render environment\",\n path: [\"render\", \"environment\"],\n });\n }\n});\n\nexport type PluginLauncherDeclarationInput = z.infer<typeof pluginLauncherDeclarationSchema>;\n\nexport const pluginDatabaseDeclarationSchema = z.object({\n namespaceSlug: z.string().regex(/^[a-z0-9][a-z0-9_]*$/, {\n message: \"namespaceSlug must be lowercase letters, digits, or underscores and start with a letter or digit\",\n }).max(40).optional(),\n migrationsDir: z.string().min(1).refine(\n (value) => !value.startsWith(\"/\") && !value.includes(\"..\") && !/[\\\\]/.test(value),\n { message: \"migrationsDir must be a relative package path without '..' or backslashes\" },\n ),\n coreReadTables: z.array(z.enum(PLUGIN_DATABASE_CORE_READ_TABLES)).optional(),\n});\n\nexport type PluginDatabaseDeclarationInput = z.infer<typeof pluginDatabaseDeclarationSchema>;\n\nexport const pluginApiRouteDeclarationSchema = z.object({\n routeKey: z.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/, {\n message: \"routeKey must be lowercase letters, digits, dots, colons, underscores, or hyphens\",\n }),\n method: z.enum(PLUGIN_API_ROUTE_METHODS),\n path: z.string().min(1).regex(/^\\/[a-zA-Z0-9:_./-]*$/, {\n message: \"path must start with / and contain only path-safe literal or :param segments\",\n }).refine(\n (value) =>\n !value.includes(\"..\") &&\n !value.includes(\"//\") &&\n value !== \"/api\" &&\n !value.startsWith(\"/api/\") &&\n value !== \"/plugins\" &&\n !value.startsWith(\"/plugins/\"),\n { message: \"path must stay inside the plugin api namespace\" },\n ),\n auth: z.enum(PLUGIN_API_ROUTE_AUTH_MODES),\n capability: z.literal(\"api.routes.register\"),\n checkoutPolicy: z.enum(PLUGIN_API_ROUTE_CHECKOUT_POLICIES).optional(),\n companyResolution: z.discriminatedUnion(\"from\", [\n z.object({ from: z.literal(\"body\"), key: z.string().min(1) }),\n z.object({ from: z.literal(\"query\"), key: z.string().min(1) }),\n z.object({ from: z.literal(\"issue\"), param: z.string().min(1) }),\n ]).optional(),\n});\n\nexport type PluginApiRouteDeclarationInput = z.infer<typeof pluginApiRouteDeclarationSchema>;\n\n// ---------------------------------------------------------------------------\n// Plugin Manifest V1 schema\n// ---------------------------------------------------------------------------\n\n/**\n * Zod schema for {@link PaperclipPluginManifestV1} \u2014 the complete runtime\n * validator for plugin manifests read at install time.\n *\n * Field-level constraints (see PLUGIN_SPEC.md \u00A710.1 for the normative rules):\n *\n * | Field | Type | Constraints |\n * |--------------------------|------------|----------------------------------------------|\n * | `id` | string | `^[a-z0-9][a-z0-9._-]*$` |\n * | `apiVersion` | literal 1 | must equal `PLUGIN_API_VERSION` |\n * | `version` | string | semver (`\\d+\\.\\d+\\.\\d+`) |\n * | `displayName` | string | 1\u2013100 chars |\n * | `description` | string | 1\u2013500 chars |\n * | `author` | string | 1\u2013200 chars |\n * | `categories` | enum[] | at least one; values from PLUGIN_CATEGORIES |\n * | `minimumHostVersion` | string? | semver lower bound if present, no leading `v`|\n * | `minimumPaperclipVersion`| string? | legacy alias of `minimumHostVersion` |\n * | `capabilities` | enum[] | at least one; values from PLUGIN_CAPABILITIES|\n * | `entrypoints.worker` | string | min 1 char |\n * | `entrypoints.ui` | string? | required when `ui.slots` is declared |\n *\n * Cross-field rules enforced via `superRefine`:\n * - `entrypoints.ui` required when `ui.slots` declared\n * - `agent.tools.register` capability required when `tools` declared\n * - `environment.drivers.register` capability required when `environmentDrivers` declared\n * - `jobs.schedule` capability required when `jobs` declared\n * - `webhooks.receive` capability required when `webhooks` declared\n * - duplicate `jobs[].jobKey` values are rejected\n * - duplicate `webhooks[].endpointKey` values are rejected\n * - duplicate `tools[].name` values are rejected\n * - duplicate `environmentDrivers[].driverKey` values are rejected\n * - duplicate `ui.slots[].id` values are rejected\n *\n * @see PLUGIN_SPEC.md \u00A710.1 \u2014 Manifest shape\n * @see {@link PaperclipPluginManifestV1} \u2014 the inferred TypeScript type\n */\nexport const pluginManifestV1Schema = z.object({\n id: z.string().min(1).regex(\n /^[a-z0-9][a-z0-9._-]*$/,\n \"Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores\",\n ),\n apiVersion: z.literal(1),\n version: z.string().min(1).regex(\n /^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$/,\n \"Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)\",\n ),\n displayName: z.string().min(1).max(100),\n description: z.string().min(1).max(500),\n author: z.string().min(1).max(200),\n categories: z.array(z.enum(PLUGIN_CATEGORIES)).min(1),\n minimumHostVersion: z.string().regex(\n /^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$/,\n \"minimumHostVersion must follow semver (e.g. 1.0.0)\",\n ).optional(),\n minimumPaperclipVersion: z.string().regex(\n /^\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$/,\n \"minimumPaperclipVersion must follow semver (e.g. 1.0.0)\",\n ).optional(),\n capabilities: z.array(z.enum(PLUGIN_CAPABILITIES)).min(1),\n entrypoints: z.object({\n worker: z.string().min(1),\n ui: z.string().min(1).optional(),\n }),\n instanceConfigSchema: jsonSchemaSchema.optional(),\n jobs: z.array(pluginJobDeclarationSchema).optional(),\n webhooks: z.array(pluginWebhookDeclarationSchema).optional(),\n tools: z.array(pluginToolDeclarationSchema).optional(),\n database: pluginDatabaseDeclarationSchema.optional(),\n apiRoutes: z.array(pluginApiRouteDeclarationSchema).optional(),\n environmentDrivers: z.array(pluginEnvironmentDriverDeclarationSchema).optional(),\n agents: z.array(pluginManagedAgentDeclarationSchema).optional(),\n projects: z.array(pluginManagedProjectDeclarationSchema).optional(),\n routines: z.array(pluginManagedRoutineDeclarationSchema).optional(),\n skills: z.array(pluginManagedSkillDeclarationSchema).optional(),\n localFolders: z.array(pluginLocalFolderDeclarationSchema).optional(),\n launchers: z.array(pluginLauncherDeclarationSchema).optional(),\n ui: z.object({\n slots: z.array(pluginUiSlotDeclarationSchema).min(1).optional(),\n launchers: z.array(pluginLauncherDeclarationSchema).optional(),\n }).optional(),\n}).superRefine((manifest, ctx) => {\n // \u2500\u2500 Entrypoint \u2194 UI slot consistency \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Plugins that declare UI slots must also declare a UI entrypoint so the\n // host knows where to load the bundle from (PLUGIN_SPEC.md \u00A710.1).\n const hasUiSlots = (manifest.ui?.slots?.length ?? 0) > 0;\n const hasUiLaunchers = (manifest.ui?.launchers?.length ?? 0) > 0;\n if ((hasUiSlots || hasUiLaunchers) && !manifest.entrypoints.ui) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"entrypoints.ui is required when ui.slots or ui.launchers are declared\",\n path: [\"entrypoints\", \"ui\"],\n });\n }\n\n if (\n manifest.minimumHostVersion\n && manifest.minimumPaperclipVersion\n && manifest.minimumHostVersion !== manifest.minimumPaperclipVersion\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"minimumHostVersion and minimumPaperclipVersion must match when both are declared\",\n path: [\"minimumHostVersion\"],\n });\n }\n\n // \u2500\u2500 Capability \u2194 feature declaration consistency \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // The host enforces capabilities at install and runtime. A plugin must\n // declare every capability it needs up-front; silently having more features\n // than capabilities would cause runtime rejections.\n\n // tools require agent.tools.register (PLUGIN_SPEC.md \u00A711)\n if (manifest.tools && manifest.tools.length > 0) {\n if (!manifest.capabilities.includes(\"agent.tools.register\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'agent.tools.register' is required when tools are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n // environment drivers require environment.drivers.register\n if (manifest.environmentDrivers && manifest.environmentDrivers.length > 0) {\n if (!manifest.capabilities.includes(\"environment.drivers.register\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'environment.drivers.register' is required when environmentDrivers are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.agents && manifest.agents.length > 0) {\n if (!manifest.capabilities.includes(\"agents.managed\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'agents.managed' is required when managed agents are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.projects && manifest.projects.length > 0) {\n if (!manifest.capabilities.includes(\"projects.managed\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'projects.managed' is required when managed projects are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.routines && manifest.routines.length > 0) {\n if (!manifest.capabilities.includes(\"routines.managed\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'routines.managed' is required when managed routines are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.skills && manifest.skills.length > 0) {\n if (!manifest.capabilities.includes(\"skills.managed\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'skills.managed' is required when managed skills are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.localFolders && manifest.localFolders.length > 0) {\n if (!manifest.capabilities.includes(\"local.folders\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'local.folders' is required when local folders are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n // jobs require jobs.schedule (PLUGIN_SPEC.md \u00A717)\n if (manifest.jobs && manifest.jobs.length > 0) {\n if (!manifest.capabilities.includes(\"jobs.schedule\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'jobs.schedule' is required when jobs are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n // webhooks require webhooks.receive (PLUGIN_SPEC.md \u00A718)\n if (manifest.webhooks && manifest.webhooks.length > 0) {\n if (!manifest.capabilities.includes(\"webhooks.receive\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'webhooks.receive' is required when webhooks are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.apiRoutes && manifest.apiRoutes.length > 0) {\n if (!manifest.capabilities.includes(\"api.routes.register\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Capability 'api.routes.register' is required when apiRoutes are declared\",\n path: [\"capabilities\"],\n });\n }\n }\n\n if (manifest.database) {\n const requiredCapabilities = [\n \"database.namespace.migrate\",\n \"database.namespace.read\",\n ] as const;\n for (const capability of requiredCapabilities) {\n if (!manifest.capabilities.includes(capability)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Capability '${capability}' is required when database migrations are declared`,\n path: [\"capabilities\"],\n });\n }\n }\n\n const coreReadTables = manifest.database.coreReadTables ?? [];\n const duplicates = coreReadTables.filter((table, i) => coreReadTables.indexOf(table) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate database coreReadTables: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"database\", \"coreReadTables\"],\n });\n }\n }\n\n // \u2500\u2500 Uniqueness checks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Duplicate keys within a plugin's own manifest are always a bug. The host\n // would not know which declaration takes precedence, so we reject early.\n\n // job keys must be unique within the plugin (used as identifiers in the DB)\n if (manifest.jobs) {\n const jobKeys = manifest.jobs.map((j) => j.jobKey);\n const duplicates = jobKeys.filter((key, i) => jobKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate job keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"jobs\"],\n });\n }\n }\n\n // webhook endpoint keys must be unique within the plugin (used in routes)\n if (manifest.webhooks) {\n const endpointKeys = manifest.webhooks.map((w) => w.endpointKey);\n const duplicates = endpointKeys.filter((key, i) => endpointKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate webhook endpoint keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"webhooks\"],\n });\n }\n }\n\n if (manifest.apiRoutes) {\n const routeKeys = manifest.apiRoutes.map((route) => route.routeKey);\n const duplicateKeys = routeKeys.filter((key, i) => routeKeys.indexOf(key) !== i);\n if (duplicateKeys.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate api route keys: ${[...new Set(duplicateKeys)].join(\", \")}`,\n path: [\"apiRoutes\"],\n });\n }\n const routeSignatures = manifest.apiRoutes.map((route) => `${route.method} ${route.path}`);\n const duplicateRoutes = routeSignatures.filter((sig, i) => routeSignatures.indexOf(sig) !== i);\n if (duplicateRoutes.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate api routes: ${[...new Set(duplicateRoutes)].join(\", \")}`,\n path: [\"apiRoutes\"],\n });\n }\n }\n\n // tool names must be unique within the plugin (namespaced at runtime)\n if (manifest.tools) {\n const toolNames = manifest.tools.map((t) => t.name);\n const duplicates = toolNames.filter((name, i) => toolNames.indexOf(name) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate tool names: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"tools\"],\n });\n }\n }\n\n // environment driver keys must be unique within the plugin\n if (manifest.environmentDrivers) {\n const driverKeys = manifest.environmentDrivers.map((d) => d.driverKey);\n const duplicates = driverKeys.filter((key, i) => driverKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate environment driver keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"environmentDrivers\"],\n });\n }\n }\n\n if (manifest.localFolders) {\n const folderKeys = manifest.localFolders.map((folder) => folder.folderKey);\n const duplicates = folderKeys.filter((key, i) => folderKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate local folder keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"localFolders\"],\n });\n }\n }\n\n if (manifest.agents) {\n const agentKeys = manifest.agents.map((agent) => agent.agentKey);\n const duplicates = agentKeys.filter((key, i) => agentKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate managed agent keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"agents\"],\n });\n }\n }\n\n if (manifest.projects) {\n const projectKeys = manifest.projects.map((project) => project.projectKey);\n const duplicates = projectKeys.filter((key, i) => projectKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate managed project keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"projects\"],\n });\n }\n }\n\n if (manifest.routines) {\n const routineKeys = manifest.routines.map((routine) => routine.routineKey);\n const duplicates = routineKeys.filter((key, i) => routineKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate managed routine keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"routines\"],\n });\n }\n }\n\n if (manifest.skills) {\n const skillKeys = manifest.skills.map((skill) => skill.skillKey);\n const duplicates = skillKeys.filter((key, i) => skillKeys.indexOf(key) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate managed skill keys: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"skills\"],\n });\n }\n }\n\n // UI slot ids must be unique within the plugin (namespaced at runtime)\n if (manifest.ui) {\n if (manifest.ui.slots) {\n const slotIds = manifest.ui.slots.map((s) => s.id);\n const duplicates = slotIds.filter((id, i) => slotIds.indexOf(id) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate UI slot ids: ${[...new Set(duplicates)].join(\", \")}`,\n path: [\"ui\", \"slots\"],\n });\n }\n }\n }\n\n // launcher ids must be unique within the plugin\n const allLaunchers = [\n ...(manifest.launchers ?? []),\n ...(manifest.ui?.launchers ?? []),\n ];\n if (allLaunchers.length > 0) {\n const launcherIds = allLaunchers.map((launcher) => launcher.id);\n const duplicates = launcherIds.filter((id, i) => launcherIds.indexOf(id) !== i);\n if (duplicates.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Duplicate launcher ids: ${[...new Set(duplicates)].join(\", \")}`,\n path: manifest.ui?.launchers ? [\"ui\", \"launchers\"] : [\"launchers\"],\n });\n }\n }\n});\n\nexport type PluginManifestV1Input = z.infer<typeof pluginManifestV1Schema>;\n\n// ---------------------------------------------------------------------------\n// Plugin installation / registration request\n// ---------------------------------------------------------------------------\n\n/**\n * Schema for installing (registering) a plugin.\n * The server receives the packageName and resolves the manifest from the\n * installed package.\n */\nexport const installPluginSchema = z.object({\n packageName: z.string().min(1),\n version: z.string().min(1).optional(),\n /** Set by loader for local-path installs so the worker can be resolved. */\n packagePath: z.string().min(1).optional(),\n});\n\nexport type InstallPlugin = z.infer<typeof installPluginSchema>;\n\n// ---------------------------------------------------------------------------\n// Plugin config (instance configuration) schemas\n// ---------------------------------------------------------------------------\n\n/**\n * Schema for creating or updating a plugin's instance configuration.\n * configJson is validated permissively here; runtime validation against\n * the plugin's instanceConfigSchema is done at the service layer.\n */\nexport const upsertPluginConfigSchema = z.object({\n configJson: z.record(z.string(), z.unknown()),\n});\n\nexport type UpsertPluginConfig = z.infer<typeof upsertPluginConfigSchema>;\n\n/**\n * Schema for partially updating a plugin's instance configuration.\n * Allows a partial merge of config values.\n */\nexport const patchPluginConfigSchema = z.object({\n configJson: z.record(z.string(), z.unknown()),\n});\n\nexport type PatchPluginConfig = z.infer<typeof patchPluginConfigSchema>;\n\n// ---------------------------------------------------------------------------\n// Plugin status update\n// ---------------------------------------------------------------------------\n\n/**\n * Schema for updating a plugin's lifecycle status. Used by the lifecycle\n * manager to persist state transitions.\n *\n * @see {@link PLUGIN_STATUSES} for the valid status values\n */\nexport const updatePluginStatusSchema = z.object({\n status: z.enum(PLUGIN_STATUSES),\n lastError: z.string().nullable().optional(),\n});\n\nexport type UpdatePluginStatus = z.infer<typeof updatePluginStatusSchema>;\n\n// ---------------------------------------------------------------------------\n// Plugin uninstall\n// ---------------------------------------------------------------------------\n\n/** Schema for the uninstall request. `removeData` controls hard vs soft delete. */\nexport const uninstallPluginSchema = z.object({\n removeData: z.boolean().optional().default(false),\n});\n\nexport type UninstallPlugin = z.infer<typeof uninstallPluginSchema>;\n\n// ---------------------------------------------------------------------------\n// Plugin state (key-value storage) schemas\n// ---------------------------------------------------------------------------\n\n/**\n * Schema for a plugin state scope key \u2014 identifies the exact location where\n * state is stored. Used by the `ctx.state.get()`, `ctx.state.set()`, and\n * `ctx.state.delete()` SDK methods.\n *\n * @see PLUGIN_SPEC.md \u00A721.3 `plugin_state`\n */\nexport const pluginStateScopeKeySchema = z.object({\n scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS),\n scopeId: z.string().min(1).optional(),\n namespace: z.string().min(1).optional(),\n stateKey: z.string().min(1),\n});\n\nexport type PluginStateScopeKey = z.infer<typeof pluginStateScopeKeySchema>;\n\n/**\n * Schema for setting a plugin state value.\n */\nexport const setPluginStateSchema = z.object({\n scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS),\n scopeId: z.string().min(1).optional(),\n namespace: z.string().min(1).optional(),\n stateKey: z.string().min(1),\n /** JSON-serializable value to store. */\n value: z.unknown(),\n});\n\nexport type SetPluginState = z.infer<typeof setPluginStateSchema>;\n\n/**\n * Schema for querying plugin state entries. All fields are optional to allow\n * flexible list queries (e.g. all state for a plugin within a scope).\n */\nexport const listPluginStateSchema = z.object({\n scopeKind: z.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),\n scopeId: z.string().min(1).optional(),\n namespace: z.string().min(1).optional(),\n});\n\nexport type ListPluginState = z.infer<typeof listPluginStateSchema>;\n", "export const API_PREFIX = \"/api\";\n\nexport const API = {\n health: `${API_PREFIX}/health`,\n companies: `${API_PREFIX}/companies`,\n agents: `${API_PREFIX}/agents`,\n projects: `${API_PREFIX}/projects`,\n issues: `${API_PREFIX}/issues`,\n issueTreeControl: `${API_PREFIX}/issues/:issueId/tree-control`,\n issueTreeHolds: `${API_PREFIX}/issues/:issueId/tree-holds`,\n goals: `${API_PREFIX}/goals`,\n approvals: `${API_PREFIX}/approvals`,\n secrets: `${API_PREFIX}/secrets`,\n secretProviderConfigs: `${API_PREFIX}/secret-provider-configs`,\n secretProviderConfigDiscoveryPreview: `${API_PREFIX}/companies/:companyId/secret-provider-configs/discovery/preview`,\n costs: `${API_PREFIX}/costs`,\n activity: `${API_PREFIX}/activity`,\n dashboard: `${API_PREFIX}/dashboard`,\n sidebarBadges: `${API_PREFIX}/sidebar-badges`,\n sidebarPreferences: `${API_PREFIX}/sidebar-preferences`,\n resourceMemberships: `${API_PREFIX}/resource-memberships`,\n invites: `${API_PREFIX}/invites`,\n joinRequests: `${API_PREFIX}/join-requests`,\n members: `${API_PREFIX}/members`,\n admin: `${API_PREFIX}/admin`,\n} as const;\n", "import type { RoutineVariable } from \"./types/routine.js\";\n\nconst ROUTINE_VARIABLE_MATCHER = /\\{\\{\\s*([A-Za-z][A-Za-z0-9_]*)\\s*\\}\\}/g;\ntype RoutineTemplateInput = string | null | undefined | Array<string | null | undefined>;\n\n/**\n * Built-in variable names that are automatically available in routine templates\n * without needing to be defined in the routine's variables list.\n */\nexport const BUILTIN_ROUTINE_VARIABLE_NAMES = new Set([\"date\", \"timestamp\"]);\n\nexport function isBuiltinRoutineVariable(name: string): boolean {\n return BUILTIN_ROUTINE_VARIABLE_NAMES.has(name);\n}\n\nconst HUMAN_TIMESTAMP_FORMATTER = new Intl.DateTimeFormat(\"en-US\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n timeZone: \"UTC\",\n timeZoneName: \"short\",\n});\n\n/**\n * Returns current values for all built-in routine variables.\n * `date` expands to the current date in YYYY-MM-DD format (UTC).\n * `timestamp` expands to a human-readable date and time (e.g. \"April 28, 2026 at 12:17 PM UTC\").\n */\nexport function getBuiltinRoutineVariableValues(): Record<string, string> {\n const now = new Date();\n return {\n date: now.toISOString().slice(0, 10),\n timestamp: HUMAN_TIMESTAMP_FORMATTER.format(now),\n };\n}\n\nexport function isValidRoutineVariableName(name: string): boolean {\n return /^[A-Za-z][A-Za-z0-9_]*$/.test(name);\n}\n\nfunction normalizeRoutineTemplateInput(input: RoutineTemplateInput): string[] {\n const templates = Array.isArray(input) ? input : [input];\n return templates.filter((template): template is string => typeof template === \"string\" && template.length > 0);\n}\n\nexport function extractRoutineVariableNames(template: RoutineTemplateInput): string[] {\n const found = new Set<string>();\n for (const source of normalizeRoutineTemplateInput(template)) {\n for (const match of source.matchAll(ROUTINE_VARIABLE_MATCHER)) {\n const name = match[1];\n if (name && !found.has(name)) {\n found.add(name);\n }\n }\n }\n return [...found];\n}\n\nfunction defaultRoutineVariable(name: string): RoutineVariable {\n return {\n name,\n label: null,\n type: \"text\",\n defaultValue: null,\n required: true,\n options: [],\n };\n}\n\nexport function syncRoutineVariablesWithTemplate(\n template: RoutineTemplateInput,\n existing: RoutineVariable[] | null | undefined,\n): RoutineVariable[] {\n const names = extractRoutineVariableNames(template).filter((name) => !isBuiltinRoutineVariable(name));\n const existingByName = new Map((existing ?? []).map((variable) => [variable.name, variable]));\n return names.map((name) => existingByName.get(name) ?? defaultRoutineVariable(name));\n}\n\nexport function stringifyRoutineVariableValue(value: unknown): string {\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n if (value == null) return \"\";\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n\nexport function interpolateRoutineTemplate(\n template: string | null | undefined,\n values: Record<string, unknown> | null | undefined,\n): string | null {\n if (template == null) return null;\n if (!values || Object.keys(values).length === 0) return template;\n return template.replace(ROUTINE_VARIABLE_MATCHER, (match, rawName: string) => {\n if (!(rawName in values)) return match;\n return stringifyRoutineVariableValue(values[rawName]);\n });\n}\n", "import { z } from \"zod\";\nimport {\n AUTH_BASE_URL_MODES,\n BIND_MODES,\n DEPLOYMENT_EXPOSURES,\n DEPLOYMENT_MODES,\n SECRET_PROVIDERS,\n STORAGE_PROVIDERS,\n} from \"./constants.js\";\nimport { validateConfiguredBindMode } from \"./network-bind.js\";\n\nexport const configMetaSchema = z.object({\n version: z.literal(1),\n updatedAt: z.string(),\n source: z.enum([\"onboard\", \"configure\", \"doctor\"]),\n});\n\nexport const llmConfigSchema = z.object({\n provider: z.enum([\"claude\", \"openai\"]),\n apiKey: z.string().optional(),\n});\n\nexport const databaseBackupConfigSchema = z.object({\n enabled: z.boolean().default(true),\n intervalMinutes: z.number().int().min(1).max(7 * 24 * 60).default(60),\n retentionDays: z.number().int().min(1).max(3650).default(7),\n dir: z.string().default(\"~/.paperclip/instances/default/data/backups\"),\n});\n\nexport const databaseConfigSchema = z.object({\n mode: z.enum([\"embedded-postgres\", \"postgres\"]).default(\"embedded-postgres\"),\n connectionString: z.string().optional(),\n embeddedPostgresDataDir: z.string().default(\"~/.paperclip/instances/default/db\"),\n embeddedPostgresPort: z.number().int().min(1).max(65535).default(54329),\n backup: databaseBackupConfigSchema.default({\n enabled: true,\n intervalMinutes: 60,\n retentionDays: 7,\n dir: \"~/.paperclip/instances/default/data/backups\",\n }),\n});\n\nexport const loggingConfigSchema = z.object({\n mode: z.enum([\"file\", \"cloud\"]),\n logDir: z.string().default(\"~/.paperclip/instances/default/logs\"),\n});\n\nexport const serverConfigSchema = z.object({\n deploymentMode: z.enum(DEPLOYMENT_MODES).default(\"local_trusted\"),\n exposure: z.enum(DEPLOYMENT_EXPOSURES).default(\"private\"),\n bind: z.enum(BIND_MODES).optional(),\n customBindHost: z.string().optional(),\n host: z.string().default(\"127.0.0.1\"),\n port: z.number().int().min(1).max(65535).default(3100),\n allowedHostnames: z.array(z.string().min(1)).default([]),\n serveUi: z.boolean().default(true),\n});\n\nexport const authConfigSchema = z.object({\n baseUrlMode: z.enum(AUTH_BASE_URL_MODES).default(\"auto\"),\n publicBaseUrl: z.string().url().optional(),\n disableSignUp: z.boolean().default(false),\n});\n\nexport const storageLocalDiskConfigSchema = z.object({\n baseDir: z.string().default(\"~/.paperclip/instances/default/data/storage\"),\n});\n\nexport const storageS3ConfigSchema = z.object({\n bucket: z.string().min(1).default(\"paperclip\"),\n region: z.string().min(1).default(\"us-east-1\"),\n endpoint: z.string().optional(),\n prefix: z.string().default(\"\"),\n forcePathStyle: z.boolean().default(false),\n});\n\nexport const storageConfigSchema = z.object({\n provider: z.enum(STORAGE_PROVIDERS).default(\"local_disk\"),\n localDisk: storageLocalDiskConfigSchema.default({\n baseDir: \"~/.paperclip/instances/default/data/storage\",\n }),\n s3: storageS3ConfigSchema.default({\n bucket: \"paperclip\",\n region: \"us-east-1\",\n prefix: \"\",\n forcePathStyle: false,\n }),\n});\n\nexport const secretsLocalEncryptedConfigSchema = z.object({\n keyFilePath: z.string().default(\"~/.paperclip/instances/default/secrets/master.key\"),\n});\n\nexport const secretsConfigSchema = z.object({\n provider: z.enum(SECRET_PROVIDERS).default(\"local_encrypted\"),\n strictMode: z.boolean().default(false),\n localEncrypted: secretsLocalEncryptedConfigSchema.default({\n keyFilePath: \"~/.paperclip/instances/default/secrets/master.key\",\n }),\n});\n\nexport const telemetryConfigSchema = z.object({\n enabled: z.boolean().default(true),\n}).default({});\n\nexport const paperclipConfigSchema = z\n .object({\n $meta: configMetaSchema,\n llm: llmConfigSchema.optional(),\n database: databaseConfigSchema,\n logging: loggingConfigSchema,\n server: serverConfigSchema,\n telemetry: telemetryConfigSchema,\n auth: authConfigSchema.default({\n baseUrlMode: \"auto\",\n disableSignUp: false,\n }),\n storage: storageConfigSchema.default({\n provider: \"local_disk\",\n localDisk: {\n baseDir: \"~/.paperclip/instances/default/data/storage\",\n },\n s3: {\n bucket: \"paperclip\",\n region: \"us-east-1\",\n prefix: \"\",\n forcePathStyle: false,\n },\n }),\n secrets: secretsConfigSchema.default({\n provider: \"local_encrypted\",\n strictMode: false,\n localEncrypted: {\n keyFilePath: \"~/.paperclip/instances/default/secrets/master.key\",\n },\n }),\n })\n .superRefine((value, ctx) => {\n if (value.server.deploymentMode === \"local_trusted\" && value.server.exposure !== \"private\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"server.exposure must be private when deploymentMode is local_trusted\",\n path: [\"server\", \"exposure\"],\n });\n }\n\n for (const message of validateConfiguredBindMode({\n deploymentMode: value.server.deploymentMode,\n deploymentExposure: value.server.exposure,\n bind: value.server.bind,\n host: value.server.host,\n customBindHost: value.server.customBindHost,\n })) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message,\n path: message.includes(\"customBindHost\") ? [\"server\", \"customBindHost\"] : [\"server\", \"bind\"],\n });\n }\n\n if (value.auth.baseUrlMode === \"explicit\" && !value.auth.publicBaseUrl) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"auth.publicBaseUrl is required when auth.baseUrlMode is explicit\",\n path: [\"auth\", \"publicBaseUrl\"],\n });\n }\n\n if (value.server.exposure === \"public\" && value.auth.baseUrlMode !== \"explicit\") {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public\",\n path: [\"auth\", \"baseUrlMode\"],\n });\n }\n\n if (value.server.exposure === \"public\" && !value.auth.publicBaseUrl) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public\",\n path: [\"auth\", \"publicBaseUrl\"],\n });\n }\n });\n\nexport type PaperclipConfig = z.infer<typeof paperclipConfigSchema>;\nexport type LlmConfig = z.infer<typeof llmConfigSchema>;\nexport type DatabaseConfig = z.infer<typeof databaseConfigSchema>;\nexport type LoggingConfig = z.infer<typeof loggingConfigSchema>;\nexport type ServerConfig = z.infer<typeof serverConfigSchema>;\nexport type StorageConfig = z.infer<typeof storageConfigSchema>;\nexport type StorageLocalDiskConfig = z.infer<typeof storageLocalDiskConfigSchema>;\nexport type StorageS3Config = z.infer<typeof storageS3ConfigSchema>;\nexport type SecretsConfig = z.infer<typeof secretsConfigSchema>;\nexport type SecretsLocalEncryptedConfig = z.infer<typeof secretsLocalEncryptedConfigSchema>;\nexport type AuthConfig = z.infer<typeof authConfigSchema>;\nexport type TelemetryConfig = z.infer<typeof telemetryConfigSchema>;\nexport type ConfigMeta = z.infer<typeof configMetaSchema>;\nexport type DatabaseBackupConfig = z.infer<typeof databaseBackupConfigSchema>;\n", null, null, "import { definePlugin, runWorker } from '@paperclipai/plugin-sdk';\nimport { execFileSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n// @ts-ignore \u2014 plain JS modules, bundled by esbuild\nimport { assembleCompany, toPascalCase } from './logic/assemble.js';\n// @ts-ignore\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\n buildCeoAgentRuntimeConfig,\n normalizeCeoAdapterType,\n} from './logic/ceo-defaults.js';\n// @ts-ignore\nimport { collectGoals, loadModules, loadPresets, loadRoles } from './logic/load-templates.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\n// --- Template loader ---\n\nconst DEFAULT_TEMPLATES_REPO_URL =\n 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates';\nconst BUNDLED_TEMPLATES_DIR = path.resolve(__dirname, '..', 'templates');\n\n/** Recursively copy a directory (sync). */\nfunction copyDirSync(src: string, dest: string): void {\n fs.mkdirSync(dest, { recursive: true });\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n const s = path.join(src, entry.name);\n const d = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirSync(s, d);\n else fs.copyFileSync(s, d);\n }\n}\n\n/**\n * Download a GitHub subdirectory into destDir using git sparse-checkout.\n * Expects a URL in the form: https://github.com/{owner}/{repo}/tree/{branch}/{subpath}\n */\nfunction downloadTemplatesFromGithub(destDir: string, githubUrl: string): void {\n // Branch is captured as the first path segment after /tree/; subpath takes the rest.\n // Branch names with slashes (e.g. feature/my-branch) are not supported in tree URLs \u2014\n // use a tag or a branch without slashes, or pin to a commit SHA instead.\n const match = githubUrl.match(/github\\.com\\/([^/]+)\\/([^/]+)\\/tree\\/([^/]+)\\/(.+)/);\n if (!match) {\n throw new Error(\n `Unsupported templates URL: ${githubUrl}. Expected https://github.com/{owner}/{repo}/tree/{branch}/{path}`,\n );\n }\n const [, owner, repo, branch, subpath] = match;\n const cloneUrl = `https://github.com/${owner}/${repo}.git`;\n const tmpDir = path.join(os.tmpdir(), `plugin-templates-dl-${Date.now()}`);\n try {\n execFileSync(\n 'git',\n [\n 'clone',\n '--depth',\n '1',\n '--filter=blob:none',\n '--sparse',\n '--branch',\n branch,\n cloneUrl,\n tmpDir,\n ],\n { stdio: 'pipe' },\n );\n execFileSync('git', ['sparse-checkout', 'set', subpath], { cwd: tmpDir, stdio: 'pipe' });\n const srcDir = path.join(tmpDir, subpath);\n if (!fs.existsSync(srcDir)) throw new Error(`Path '${subpath}' not found in ${cloneUrl}`);\n copyDirSync(srcDir, destDir);\n } finally {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n}\n\n/**\n * Resolve (and if needed, create) the templates directory.\n * Resolution order:\n * 1. cfg.templatesPath if set \u2192 use it; auto-download if missing.\n * 2. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 3. Bundled templates (dist/../templates) as last resort.\n */\nasync function ensureTemplatesDir(cfg: Record<string, string>): Promise<string> {\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n\n if (cfg.templatesPath) {\n if (fs.existsSync(cfg.templatesPath)) return cfg.templatesPath;\n downloadTemplatesFromGithub(cfg.templatesPath, repoUrl);\n return cfg.templatesPath;\n }\n\n const defaultDir = path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(defaultDir)) return defaultDir;\n\n try {\n downloadTemplatesFromGithub(defaultDir, repoUrl);\n return defaultDir;\n } catch {\n if (fs.existsSync(BUNDLED_TEMPLATES_DIR)) return BUNDLED_TEMPLATES_DIR;\n throw new Error(\n 'Templates not found and download failed. Configure templatesPath or templatesRepoUrl in plugin settings.',\n );\n }\n}\n\nfunction loadJsonFiles(dir: string, filename: string): { items: any[]; errors: string[] } {\n const items: any[] = [];\n const errors: string[] = [];\n\n if (!fs.existsSync(dir)) return { items, errors };\n\n for (const d of fs.readdirSync(dir)) {\n const fullDir = path.join(dir, d);\n try {\n if (!fs.statSync(fullDir).isDirectory()) continue;\n } catch {\n continue;\n }\n\n const fp = path.join(fullDir, filename);\n if (!fs.existsSync(fp)) continue;\n\n try {\n items.push(JSON.parse(fs.readFileSync(fp, 'utf-8')));\n } catch (err) {\n errors.push(`Failed to parse ${fp}: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n\n return { items, errors };\n}\n\nfunction loadTemplates(templatesDir: string) {\n const presetLoad = loadJsonFiles(path.join(templatesDir, 'presets'), 'preset.meta.json');\n const moduleLoad = loadJsonFiles(path.join(templatesDir, 'modules'), 'module.meta.json');\n const roleLoad = loadJsonFiles(path.join(templatesDir, 'roles'), 'role.meta.json');\n\n const modules = moduleLoad.items.map((mod: Record<string, unknown>) => {\n const issues = Array.isArray(mod.issues)\n ? mod.issues\n : Array.isArray(mod.tasks)\n ? mod.tasks\n : [];\n\n return {\n ...mod,\n // Keep both keys so old UI callers (tasks) and new callers (issues) stay consistent.\n issues,\n tasks: Array.isArray(mod.tasks) ? mod.tasks : issues,\n };\n });\n\n const roles = roleLoad.items.map((r: Record<string, unknown>) => {\n if (r.base) return { ...r, _base: true };\n return r;\n });\n\n return {\n presets: presetLoad.items,\n modules,\n roles,\n loadErrors: [...presetLoad.errors, ...moduleLoad.errors, ...roleLoad.errors],\n };\n}\n\n// --- Helpers ---\n\nfunction resolveCompaniesDir(cfg: Record<string, string>): string {\n if (cfg.companiesDir) return cfg.companiesDir;\n return path.join(os.homedir(), '.paperclip', 'instances', 'default', 'companies');\n}\n\nfunction formatRoleName(role: string): string {\n return role\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\nfunction collectInstructionFiles(rootDir: string): Record<string, string> {\n const out: Record<string, string> = {};\n if (!fs.existsSync(rootDir)) return out;\n\n const walk = (dir: string) => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(abs);\n continue;\n }\n if (!entry.isFile()) continue;\n const rel = path.relative(rootDir, abs).split(path.sep).join('/');\n out[rel] = fs.readFileSync(abs, 'utf-8');\n }\n };\n\n walk(rootDir);\n return out;\n}\n\nasync function syncAgentInstructionsIntoManagedBundle({\n client,\n agentId,\n sourceDir,\n entryFile,\n fallbackEntryContent,\n log,\n}: {\n client: any;\n agentId: string;\n sourceDir: string;\n entryFile: string;\n fallbackEntryContent?: string;\n log: (m: string) => void;\n}) {\n try {\n await client.updateInstructionsBundle(agentId, {\n mode: 'managed',\n entryFile,\n clearLegacyPromptTemplate: true,\n });\n\n const files = collectInstructionFiles(sourceDir);\n if (\n !files[entryFile] &&\n typeof fallbackEntryContent === 'string' &&\n fallbackEntryContent.trim()\n ) {\n files[entryFile] = fallbackEntryContent;\n }\n\n const entries = Object.entries(files).sort(([a], [b]) => a.localeCompare(b));\n if (entries.length === 0) {\n log('\u26A0 No instruction files found to sync into managed bundle.');\n return;\n }\n\n for (const [relativePath, content] of entries) {\n await client.upsertInstructionsBundleFile(agentId, {\n path: relativePath,\n content,\n });\n }\n\n log(`\u2713 Synced ${entries.length} instruction file(s) into managed bundle`);\n } catch (err) {\n log(\n `\u26A0 Could not sync managed instructions bundle: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n// --- Plugin definition ---\n\nconst plugin = definePlugin({\n async setup(ctx) {\n ctx.data.register('templates', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const templates = loadTemplates(await ensureTemplatesDir(cfg));\n if (templates.loadErrors.length > 0) {\n for (const err of templates.loadErrors) {\n ctx.logger.info(`\u26A0 Template load warning: ${err}`);\n }\n }\n return templates;\n });\n\n // Refresh templates \u2014 delete cached dir so next load re-downloads from GitHub.\n ctx.actions.register('refresh-templates', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n const targetDir =\n cfg.templatesPath || path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(targetDir)) {\n fs.rmSync(targetDir, { recursive: true, force: true });\n }\n downloadTemplatesFromGithub(targetDir, repoUrl);\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Preview action \u2014 assembles files to a temp dir and returns their contents.\n // Used by the UI review step to show/edit generated MD files before provisioning.\n ctx.actions.register('preview-files', async (params) => {\n let tmpDir: string | undefined;\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n\n const companyName =\n typeof params.companyName === 'string' && params.companyName.trim()\n ? params.companyName.trim()\n : 'Preview';\n\n const templatesDir = await ensureTemplatesDir(cfg);\n tmpDir = path.join(os.tmpdir(), `clipper-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveCompaniesDir(cfg);\n\n const [presets, allModules] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n ]);\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Normalize goals/projects for preview (same logic as start-provision)\n const previewGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const previewProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const result = await assembleCompany({\n companyName,\n userGoals: previewGoals,\n userProjects: previewProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir: tmpDir,\n templatesDir,\n });\n\n // Collect all .md files from the assembled company dir.\n // For BOOTSTRAP.md, replace the tmp path with the realistic host workspace path\n // so the preview shows where files will actually live after provisioning.\n const previewCompanyDir = path.join(companiesDir, toPascalCase(companyName));\n const files: Record<string, string> = {};\n\n function collectMdFiles(dir: string, base: string) {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const rel = base ? `${base}/${entry.name}` : entry.name;\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n collectMdFiles(full, rel);\n } else if (entry.name.endsWith('.md')) {\n let content = fs.readFileSync(full, 'utf-8');\n if (entry.name === 'BOOTSTRAP.md') {\n content = content.replaceAll(result.companyDir, previewCompanyDir);\n }\n files[rel] = content;\n }\n }\n }\n\n collectMdFiles(result.companyDir, '');\n return { files };\n } catch (err) {\n return { files: {}, error: err instanceof Error ? err.message : String(err) };\n } finally {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n }\n });\n\n // Auth check action \u2014 called by the summary step to surface credential issues early.\n ctx.actions.register('check-auth', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: cfg.paperclipEmail || '',\n password: cfg.paperclipPassword || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // AI chat action \u2014 proxies messages to the Anthropic API using the configured key.\n // Keeps the API key server-side; the UI never touches it directly.\n // Returns { text, error? } \u2014 never throws, so the plugin host doesn't swallow the message in a 502.\n ctx.actions.register('ai-chat', async (params) => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const apiKey = cfg.anthropicApiKey || '';\n if (!apiKey) {\n return {\n text: '',\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n\n const response = await fetch('https://api.anthropic.com/v1/messages', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'anthropic-version': '2023-06-01',\n },\n body: JSON.stringify({\n model: 'claude-sonnet-4-20250514',\n max_tokens: 8192,\n ...(params.system ? { system: params.system } : {}),\n messages: params.messages,\n }),\n });\n\n if (!response.ok) {\n const body = await response.text();\n return { text: '', error: `Anthropic API error (${response.status}): ${body}` };\n }\n\n const data = (await response.json()) as { content?: { text: string }[] };\n return { text: data.content?.[0]?.text || '' };\n } catch (err) {\n return { text: '', error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Lightweight config check \u2014 UI calls this on mount to show a warning before the user types.\n ctx.actions.register('check-ai-config', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n if (!cfg.anthropicApiKey) {\n return {\n ok: false,\n error: 'Anthropic API key not configured. Add it in plugin settings (anthropicApiKey).',\n };\n }\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Provisioning action \u2014 assembles files, then creates company/agent/issue.\n // Uses the plugin SDK host services where available (issues, goals),\n // falls back to PaperclipClient HTTP for operations the SDK doesn't support\n // yet (company creation, agent creation).\n // Returns { ..., logs } on success or { error, logs } on failure \u2014 never throws.\n ctx.actions.register('start-provision', async (params) => {\n const logs: string[] = [];\n const log = (msg: string) => {\n logs.push(msg);\n ctx.logger.info(msg);\n };\n\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n const paperclipEmail = cfg.paperclipEmail || '';\n const paperclipPassword = cfg.paperclipPassword || '';\n const rawDisableBoardApproval = (cfg as Record<string, unknown>)\n .disableBoardApprovalOnNewCompanies;\n const disableBoardApprovalOnNewCompanies =\n rawDisableBoardApproval === true ||\n (typeof rawDisableBoardApproval === 'string' &&\n rawDisableBoardApproval.toLowerCase() === 'true');\n\n const companyName = typeof params.companyName === 'string' ? params.companyName.trim() : '';\n const existingCompanyId =\n typeof params.existingCompanyId === 'string' && params.existingCompanyId.trim()\n ? params.existingCompanyId.trim()\n : '';\n if (!companyName) return { error: 'companyName is required', logs };\n\n const templatesDir = await ensureTemplatesDir(cfg);\n\n // Step 1: Collect inline goals and role metadata\n const [presets, allModules, roleTemplates] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n loadRoles(templatesDir),\n ]);\n const roleTemplateByName = new Map(\n (Array.isArray(roleTemplates) ? roleTemplates : [])\n .filter((role: any) => role && typeof role.name === 'string')\n .map((role: any) => [role.name, role]),\n );\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const goals = collectGoals(\n selectedPreset,\n allModules,\n new Set((params.selectedModules as string[]) ?? []),\n );\n\n // Step 2: Assemble files on disk\n const outputDir = resolveCompaniesDir(cfg);\n\n fs.mkdirSync(outputDir, { recursive: true });\n log('Assembling company workspace...');\n\n const companyDescription =\n typeof params.companyDescription === 'string' ? params.companyDescription.trim() : '';\n\n // Normalize goals: support both old single-goal and new array format\n const userGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const userProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n\n const assembleResult = await assembleCompany({\n companyName,\n companyDescription,\n userGoals,\n userProjects,\n moduleNames: (params.selectedModules as string[]) ?? [],\n extraRoleNames: (params.selectedRoles as string[]) ?? [],\n inlineGoals: goals,\n outputDir,\n templatesDir,\n onProgress: log,\n });\n\n const { companyDir } = assembleResult;\n\n // Apply file overrides from UI edits\n const fileOverrides = (params.fileOverrides as Record<string, string>) ?? {};\n for (const [relPath, content] of Object.entries(fileOverrides)) {\n const absPath = path.resolve(companyDir, relPath);\n if (!absPath.startsWith(companyDir + path.sep) && absPath !== companyDir) {\n log(`\u26A0 Skipped override outside company dir: ${relPath}`);\n continue;\n }\n if (fs.existsSync(absPath)) {\n fs.writeFileSync(absPath, content, 'utf-8');\n log(`\u270E Override: ${relPath}`);\n }\n }\n\n const ceoInstructionsDir = path.join(companyDir, 'agents', 'ceo');\n const ceoEntryFile = 'AGENTS.md';\n const ceoEntryPath = path.join(ceoInstructionsDir, ceoEntryFile);\n const ceoPromptTemplate = fs.existsSync(ceoEntryPath)\n ? fs.readFileSync(ceoEntryPath, 'utf-8')\n : '';\n\n log('');\n log(`\u2713 Generated files: ${companyDir}`);\n\n // Step 3: Connect to Paperclip API\n // The SDK doesn't support company/agent creation yet, so we use PaperclipClient\n // for those. It auto-detects auth mode (no-op for local_trusted).\n log('Connecting to Paperclip API...');\n const client = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n await client.connect();\n log('Connected.');\n log('');\n\n // Step 5: Resolve target company (create new, or reuse existing)\n let company: any;\n let companyId: string;\n let createdCompany = false;\n\n if (existingCompanyId) {\n log(`Using existing company: ${existingCompanyId}`);\n company = await client.getCompany(existingCompanyId);\n companyId = company.id;\n log(`\u2713 Target company \"${company.name}\" selected`);\n log('Keeping company hire policy as configured (board approvals may be required).');\n } else {\n log('Creating company...');\n company = await client.createCompany({\n name: companyName,\n description: companyDescription || undefined,\n });\n companyId = company.id;\n createdCompany = true;\n log(`\u2713 Company \"${companyName}\" created`);\n\n if (disableBoardApprovalOnNewCompanies) {\n // Optional compatibility mode: disable mandatory board-approval hiring on new companies.\n // Useful when users want legacy fully-autonomous bootstrap behavior.\n try {\n await client.updateCompany(companyId, { requireBoardApprovalForNewAgents: false });\n log('\u2713 Disabled board-approval hiring policy for this new company');\n } catch (err) {\n log(\n `\u26A0 Could not disable board-approval hiring for new agents: ${err instanceof Error ? err.message : String(err)}`,\n );\n log(' Continuing \u2014 agent creation will use an approval-aware fallback if required.');\n }\n } else {\n log('Keeping company hire policy as configured (board approvals may be required).');\n }\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n let bootstrapIssue: { id: string; identifier?: string };\n try {\n // Step 6: Resolve or create CEO agent\n const userCeoAdapter = (params.ceoAdapter as any) || {};\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n const ceoDescription =\n typeof ceoTemplate.description === 'string' && ceoTemplate.description.trim()\n ? ceoTemplate.description.trim()\n : undefined;\n const ceoMetadata = {\n templateRole: 'ceo',\n ...(ceoDescription ? { description: ceoDescription } : {}),\n };\n const ceoRuntimeConfig = buildCeoAgentRuntimeConfig();\n\n const adapterConfig: Record<string, unknown> = buildCeoAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get('ceo') ?? {},\n });\n const ceoInstructionFiles = collectInstructionFiles(ceoInstructionsDir);\n if (\n !ceoInstructionFiles[ceoEntryFile] &&\n typeof ceoPromptTemplate === 'string' &&\n ceoPromptTemplate.trim()\n ) {\n ceoInstructionFiles[ceoEntryFile] = ceoPromptTemplate;\n }\n const ceoInstructionsBundle = Object.keys(ceoInstructionFiles).length > 0\n ? { entryFile: ceoEntryFile, files: ceoInstructionFiles }\n : undefined;\n\n const logPendingApproval = (agent: any) => {\n if (!agent?._pendingApprovalId) return;\n log(\n `\u26A0 CEO hire is pending approval: ${agent._pendingApprovalId}. Approve it in the board before the bootstrap heartbeat can run.`,\n );\n if (agent._approvalAutoApproveError) {\n log(` Auto-approve failed: ${agent._approvalAutoApproveError}`);\n }\n };\n\n if (existingCompanyId) {\n log('Looking for an existing CEO agent...');\n const agents = await client.listAgents(companyId);\n const existingCeo = Array.isArray(agents)\n ? agents.find((agent: any) => agent?.role === 'ceo' && agent?.status !== 'terminated')\n : null;\n\n if (existingCeo?.id) {\n ceoAgentId = existingCeo.id;\n log(`\u2713 Reusing existing CEO agent (${ceoAgentId})`);\n\n // Keep the reused CEO aligned with the newly generated workspace/instructions.\n try {\n const ceoPatch: Record<string, unknown> = {\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n ...(ceoMetadata\n ? { metadata: { ...(existingCeo.metadata ?? {}), ...ceoMetadata } }\n : {}),\n };\n if (!existingCeo?.title && ceoTitle) {\n ceoPatch.title = ceoTitle;\n }\n if (!existingCeo?.capabilities && ceoDescription) {\n ceoPatch.capabilities = ceoDescription;\n }\n await client.updateAgent(ceoAgentId, ceoPatch);\n log('\u2713 Updated existing CEO adapter config (cwd + Codex defaults)');\n } catch (updateErr) {\n log(\n `\u26A0 Could not update existing CEO adapter config: ${updateErr instanceof Error ? updateErr.message : String(updateErr)}`,\n );\n log(\n ' Continuing with existing CEO configuration; bootstrap paths may be out of sync.',\n );\n }\n } else {\n log('No active CEO found \u2014 creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n } else {\n log('Creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: ceoAgentId,\n sourceDir: ceoInstructionsDir,\n entryFile: ceoEntryFile,\n fallbackEntryContent: ceoPromptTemplate,\n log,\n });\n\n // Step 7: Create bootstrap issue (SDK: ctx.issues.create \u2713)\n // BOOTSTRAP.md IS the bootstrap issue \u2014 read it directly.\n const bootstrapDescription = fs.readFileSync(\n path.join(companyDir, 'BOOTSTRAP.md'),\n 'utf-8',\n );\n\n log('Creating bootstrap task for CEO...');\n const issue = await ctx.issues.create({\n companyId,\n title: `Bootstrap ${company.name || companyName}`,\n description: bootstrapDescription,\n assigneeAgentId: ceoAgentId,\n });\n await ctx.issues.update(issue.id, { status: 'todo' }, companyId);\n bootstrapIssue = issue as { id: string; identifier?: string };\n log(`\u2713 Bootstrap task created: ${bootstrapIssue.identifier || bootstrapIssue.id}`);\n } catch (err) {\n log(`\u2717 Provisioning failed: ${err instanceof Error ? err.message : String(err)}`);\n if (createdCompany) {\n log(`Cleaning up \u2014 deleting partially created company (${companyId})...`);\n try {\n await client.deleteCompany(companyId);\n log('\u2713 Company deleted.');\n } catch (cleanupErr) {\n log(\n `\u26A0 Could not delete company ${companyId}: ${cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr)}`,\n );\n log(` Delete it manually in the Paperclip UI to clean up.`);\n }\n } else {\n log('Skipping cleanup because provisioning targeted an existing company.');\n }\n throw err;\n }\n\n log('');\n log('Provisioning complete!');\n log(\n existingCompanyId\n ? 'Bootstrap task created in existing company. Trigger the CEO heartbeat to continue setup.'\n : 'The CEO agent is ready. Trigger its first heartbeat to hire the rest of the team and create the initial backlog.',\n );\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl,\n agentIds: { ceo: ceoAgentId! },\n issueIds: [bootstrapIssue!.id],\n logs,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n // Only log if it wasn't already logged by the inner compensation catch\n if (!logs.some((l) => l.includes('Provisioning failed'))) {\n log(`\u2717 ${message}`);\n }\n return { error: message, logs };\n }\n });\n },\n\n async onHealth() {\n return { status: 'ok', message: 'Company Wizard plugin is running' };\n },\n\n // Called by the \"Test Configuration\" button in the plugin settings UI.\n async onValidateConfig(config: Record<string, unknown>) {\n const paperclipUrl =\n (config.paperclipUrl as string) ||\n process.env.PAPERCLIP_PUBLIC_URL ||\n 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: (config.paperclipEmail as string) || '',\n password: (config.paperclipPassword as string) || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return {\n ok: false,\n errors: [err instanceof Error ? err.message : String(err)],\n };\n }\n },\n});\n\nexport default plugin;\nrunWorker(plugin, import.meta.url);\n", "import {\n access,\n appendFile,\n copyFile,\n mkdir,\n readdir,\n readFile,\n writeFile,\n} from 'node:fs/promises';\nimport { join } from 'node:path';\nimport {\n DEFAULT_CEO_ADAPTER_TYPE,\n DEFAULT_CEO_MODEL,\n DEFAULT_CEO_THINKING_LEVEL,\n DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n} from './ceo-defaults.js';\n// modulesWithActiveGoals removed \u2014 goals no longer contain issues\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function copyDir(src, dest, { skipExt } = {}) {\n await mkdir(dest, { recursive: true });\n const entries = await readdir(src, { withFileTypes: true });\n for (const entry of entries) {\n if (skipExt && entry.name.endsWith(skipExt)) continue;\n const srcPath = join(src, entry.name);\n const destPath = join(dest, entry.name);\n if (entry.isDirectory()) {\n await copyDir(srcPath, destPath, { skipExt });\n } else {\n await copyFile(srcPath, destPath);\n }\n }\n}\n\nasync function appendToFile(filePath, content) {\n if (await exists(filePath)) {\n await appendFile(filePath, content);\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\n/**\n * Convert a company name to PascalCase for the directory name.\n * \"Black Mesa\" \u2192 \"BlackMesa\", \"my-company\" \u2192 \"MyCompany\"\n */\nexport function toPascalCase(name) {\n return name\n .replace(/[^a-zA-Z0-9\\s\\-_]/g, '')\n .split(/[\\s\\-_]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n}\n\n/**\n * Assemble a company workspace from templates.\n *\n * @param {object} opts\n * @param {string} opts.companyName\n * @param {string} [opts.companyDescription] - Comprehensive company description\n * @param {Array} [opts.userGoals] - User/AI-specified goals: [{ title, description, parentGoal? }]\n * @param {Array} [opts.userProjects] - User/AI-specified projects: [{ name, description, goals[] }]\n * @param {string[]} opts.moduleNames\n * @param {string[]} opts.extraRoleNames\n * @param {Array} opts.inlineGoals - Inline goals from preset/modules (from collectGoals)\n * @param {string} opts.outputDir\n * @param {string} opts.templatesDir\n * @param {(line: string) => void} opts.onProgress\n * @returns {Promise<{companyDir: string, allRoles: Set<string>, initialIssues: Array, initialRoutines: Array, roleAdapterOverrides: Map<string, object>}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n outputDir,\n templatesDir,\n onProgress = () => {},\n}) {\n // --- Merge goals ---\n // The first user goal is the \"main\" company goal.\n // Module inline goals become sub-goals of the main goal.\n // Subgoals (formerly milestones) are expanded into allGoals with parentGoal + level.\n const mainGoal = userGoals[0] || null;\n const mergedInlineGoals = inlineGoals.map((g) => ({\n ...g,\n parentGoal: g.parentGoal || mainGoal?.title || undefined,\n }));\n\n const allGoals = [];\n for (const g of [...userGoals, ...mergedInlineGoals]) {\n allGoals.push(g);\n // Expand subgoals as nested goals\n if (g.subgoals?.length) {\n for (const sg of g.subgoals) {\n allGoals.push({\n title: sg.title,\n description: sg.description || '',\n level: sg.level || 'team',\n parentGoal: g.title,\n });\n }\n }\n }\n\n // If user specified projects, use them. Otherwise, create a default project linked to all goals.\n const resolvedProjects =\n userProjects.length > 0\n ? userProjects\n : [\n {\n name: companyName,\n description: mainGoal?.description || '',\n goals: allGoals.map((g) => g.title),\n },\n ];\n\n const baseDirName = toPascalCase(companyName);\n let dirName = baseDirName;\n let companyDir = join(outputDir, dirName);\n\n if (await exists(companyDir)) {\n let idx = 2;\n while (await exists(join(outputDir, `${baseDirName}${idx}`))) idx++;\n dirName = `${baseDirName}${idx}`;\n companyDir = join(outputDir, dirName);\n }\n\n // Discover base roles from roles/ directory (those with base: true in role.meta.json)\n const rolesDir = join(templatesDir, 'roles');\n const baseRoleNames = [];\n const roleMetaByName = new Map();\n if (await exists(rolesDir)) {\n const roleDirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of roleDirs) {\n if (!dir.isDirectory()) continue;\n const roleMeta = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleMeta && typeof roleMeta === 'object') {\n roleMetaByName.set(dir.name, roleMeta);\n }\n if (roleMeta?.base) {\n baseRoleNames.push(dir.name);\n }\n }\n }\n\n // Determine all roles present\n const allRoles = new Set([...baseRoleNames, ...extraRoleNames]);\n\n // Validate module dependencies before starting assembly.\n // Skip modules that won't activate (missing directory or gated by activatesWithRoles).\n const selectedSet = new Set(moduleNames);\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n const deps = moduleJson?.requires || [];\n for (const dep of deps) {\n if (!selectedSet.has(dep)) {\n throw new Error(`Module \"${moduleName}\" requires module \"${dep}\", which is not selected`);\n }\n }\n }\n\n // 1. Copy base roles (exclude .meta.json metadata)\n for (const roleName of baseRoleNames) {\n const roleSrc = join(rolesDir, roleName);\n const roleDest = join(companyDir, 'agents', roleName);\n await mkdir(roleDest, { recursive: true });\n const entries = await readdir(roleSrc, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json')) {\n await copyFile(join(roleSrc, entry.name), join(roleDest, entry.name));\n }\n }\n onProgress(`+ agents/${roleName}/ (base)`);\n }\n\n // 2. Copy extra roles from roles/\n for (const roleName of extraRoleNames) {\n const roleDir = join(rolesDir, roleName);\n if (!(await exists(roleDir))) {\n onProgress(`! role ${roleName} not found, skipping`);\n continue;\n }\n const destDir = join(companyDir, 'agents', roleName);\n await mkdir(destDir, { recursive: true });\n const entries = await readdir(roleDir, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory() || !entry.name.endsWith('.md')) continue;\n await copyFile(join(roleDir, entry.name), join(destDir, entry.name));\n }\n onProgress(`+ agents/${roleName}/ (role)`);\n }\n\n // 3. Apply modules with capability-aware skill assignment\n const initialIssues = [];\n const initialRoutines = [];\n const roleAdapterOverrides = new Map(); // role name \u2192 merged adapter overrides from modules\n\n // Helper: resolve assignee for a role name or capability reference\n const resolveAssignee = (assignee, moduleJson) => {\n if (assignee?.startsWith('capability:')) {\n const capName = assignee.slice('capability:'.length);\n const cap = moduleJson?.capabilities?.find((c) => c.skill === capName);\n if (cap) return cap.owners.find((r) => allRoles.has(r)) || assignee;\n } else if (assignee && assignee !== 'ceo' && assignee !== 'user' && !allRoles.has(assignee)) {\n return 'ceo'; // Named role not in this team \u2014 fall back to CEO\n }\n return assignee;\n };\n\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) {\n onProgress(`! module ${moduleName} not found, skipping`);\n continue;\n }\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n\n // Check activatesWithRoles\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) {\n onProgress(`\u25CB ${moduleName} (needs ${moduleJson.activatesWithRoles.join(' or ')})`);\n continue;\n }\n }\n\n // Collect issues (backward compat: read tasks[] if issues[] not present)\n const moduleIssues = moduleJson?.issues || moduleJson?.tasks || [];\n for (const issue of moduleIssues) {\n initialIssues.push({\n ...issue,\n assignTo: resolveAssignee(issue.assignTo, moduleJson),\n module: moduleName,\n });\n }\n\n // Collect routines\n if (moduleJson?.routines?.length) {\n for (const routine of moduleJson.routines) {\n initialRoutines.push({\n ...routine,\n assignTo: resolveAssignee(routine.assignTo, moduleJson),\n module: moduleName,\n });\n }\n }\n\n // Copy shared docs\n const docsDir = join(moduleDir, 'docs');\n if (await exists(docsDir)) {\n await copyDir(docsDir, join(companyDir, 'docs'));\n const docs = await readdir(docsDir);\n for (const doc of docs) {\n onProgress(`+ docs/${doc} (${moduleName})`);\n }\n }\n\n // Resolve capabilities\n const capabilityOwners = new Map();\n if (moduleJson?.capabilities) {\n for (const cap of moduleJson.capabilities) {\n const primaryOwner = cap.owners.find((r) => allRoles.has(r));\n if (primaryOwner) {\n capabilityOwners.set(cap.skill, { primary: primaryOwner, cap });\n }\n }\n }\n\n // Collect adapter overrides for capability owners\n if (moduleJson?.adapterOverrides && capabilityOwners.size > 0) {\n const ownerRoles = new Set();\n for (const { primary, cap } of capabilityOwners.values()) {\n ownerRoles.add(primary);\n for (const r of cap.owners) {\n if (allRoles.has(r)) ownerRoles.add(r);\n }\n }\n for (const role of ownerRoles) {\n const existing = roleAdapterOverrides.get(role) || {};\n roleAdapterOverrides.set(role, { ...existing, ...moduleJson.adapterOverrides });\n }\n }\n\n // Copy agent skills.\n //\n // Skill resolution order (per role + skill name):\n // 1. Role-specific override: agents/<role>/skills/<skill>.md\n // 2. Shared skill: skills/<skill>.md\n //\n // For capabilities, the assembly logic decides what to copy:\n // - Primary owner gets <skill>.md (role-specific or shared)\n // - Fallback owners get <skill>.fallback.md (role-specific or shared)\n // - Other combinations are skipped\n //\n // Non-capability skills (no matching capabilityOwners entry) are copied\n // as-is to the role that defines them.\n\n const sharedSkillsDir = join(moduleDir, 'skills');\n const agentsDir = join(moduleDir, 'agents');\n\n // Helper: resolve a skill file from role-specific first, then shared\n async function resolveSkillFile(roleName, fileName) {\n const roleSpecific = join(agentsDir, roleName, 'skills', fileName);\n if (await exists(roleSpecific)) return { path: roleSpecific, source: 'role' };\n const shared = join(sharedSkillsDir, fileName);\n if (await exists(shared)) return { path: shared, source: 'shared' };\n return null;\n }\n\n // Helper: copy a resolved skill into the agent's skills/ dir\n async function installSkill(roleName, fileName, label) {\n const resolved = await resolveSkillFile(roleName, fileName);\n if (!resolved) return false;\n const destSkillsDir = join(companyDir, 'agents', roleName, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(resolved.path, join(destSkillsDir, fileName));\n await appendToFile(\n join(companyDir, 'agents', roleName, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${fileName}\\`\\n`,\n );\n const sourceTag = resolved.source === 'shared' ? ', shared' : '';\n onProgress(`+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag})`);\n return true;\n }\n\n // Install capability-based skills for each present role\n for (const [skillName, { primary, cap }] of capabilityOwners) {\n // Primary owner gets the primary skill\n await installSkill(primary, `${skillName}.md`, 'primary');\n\n // Fallback owners get the fallback skill\n if (cap.fallbackSkill) {\n for (const fallbackRole of cap.owners) {\n if (fallbackRole === primary) continue;\n if (!allRoles.has(fallbackRole)) continue;\n await installSkill(fallbackRole, `${cap.fallbackSkill}.md`, 'fallback');\n }\n }\n }\n\n // Install non-capability skills (role-specific only, no shared lookup)\n if (await exists(agentsDir)) {\n const roles = await readdir(agentsDir, { withFileTypes: true });\n for (const role of roles) {\n if (!role.isDirectory()) continue;\n if (!allRoles.has(role.name)) continue;\n\n const skillsDir = join(agentsDir, role.name, 'skills');\n if (!(await exists(skillsDir))) continue;\n\n const skills = await readdir(skillsDir);\n for (const skillFile of skills) {\n const skillName = skillFile.replace(/\\.md$/, '');\n const skillBaseName = skillName.replace(/\\.fallback$/, '');\n\n // Skip if this skill belongs to a capability (already handled above)\n if (capabilityOwners.has(skillBaseName)) continue;\n\n const destSkillsDir = join(companyDir, 'agents', role.name, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(join(skillsDir, skillFile), join(destSkillsDir, skillFile));\n await appendToFile(\n join(companyDir, 'agents', role.name, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${skillFile}\\`\\n`,\n );\n onProgress(`+ agents/${role.name}/skills/${skillFile} (${moduleName})`);\n }\n }\n }\n }\n\n // 4. Inject module heartbeat sections into HEARTBEAT.md files\n //\n // Convention-based: if a module provides agents/<role>/heartbeat-section.md,\n // it gets appended to that role's HEARTBEAT.md (before the placeholder comment).\n // This follows the same gracefully-optimistic pattern as skills \u2014 if the file\n // exists the heartbeat extends, if not nothing breaks.\n const HEARTBEAT_MARKER =\n '<!-- Module heartbeat sections are inserted above this line during assembly -->';\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n // Skip gated modules that didn't activate\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n\n const modAgentsDir = join(moduleDir, 'agents');\n if (!(await exists(modAgentsDir))) continue;\n\n const modRoles = await readdir(modAgentsDir, { withFileTypes: true });\n for (const modRole of modRoles) {\n if (!modRole.isDirectory()) continue;\n if (!allRoles.has(modRole.name)) continue;\n\n const sectionFile = join(modAgentsDir, modRole.name, 'heartbeat-section.md');\n if (!(await exists(sectionFile))) continue;\n\n const heartbeatPath = join(companyDir, 'agents', modRole.name, 'HEARTBEAT.md');\n if (!(await exists(heartbeatPath))) continue;\n\n const section = await readFile(sectionFile, 'utf-8');\n const heartbeat = await readFile(heartbeatPath, 'utf-8');\n\n // Insert before the marker comment, or append at end if marker not found\n const updated = heartbeat.includes(HEARTBEAT_MARKER)\n ? heartbeat.replace(HEARTBEAT_MARKER, section.trim() + '\\n\\n' + HEARTBEAT_MARKER)\n : heartbeat.trimEnd() + '\\n\\n' + section.trim() + '\\n';\n\n await writeFile(heartbeatPath, updated);\n onProgress(`+ agents/${modRole.name}/HEARTBEAT.md (${moduleName}, heartbeat section)`);\n }\n }\n\n // 5. Add shared doc references to all AGENTS.md files\n const finalDocsDir = join(companyDir, 'docs');\n if (await exists(finalDocsDir)) {\n const docs = await readdir(finalDocsDir);\n if (docs.length > 0) {\n const agentsBaseDir = join(companyDir, 'agents');\n const agentRoles = await readdir(agentsBaseDir, { withFileTypes: true });\n for (const role of agentRoles) {\n if (!role.isDirectory()) continue;\n const agentsMd = join(agentsBaseDir, role.name, 'AGENTS.md');\n if (await exists(agentsMd)) {\n let docRefs = '\\n## Shared Documentation\\n';\n for (const doc of docs) {\n docRefs += `\\nRead: \\`docs/${doc}\\`\\n`;\n }\n await appendToFile(agentsMd, docRefs);\n }\n }\n }\n }\n\n // 6. Generate BOOTSTRAP.md\n const rolesList = [...allRoles];\n const DEFAULT_BOOTSTRAP_LABELS = [\n { name: 'feature', color: '#0075ca', useFor: 'New user-facing capability' },\n { name: 'bug', color: '#d73a4a', useFor: 'Defect or regression' },\n { name: 'chore', color: '#7057ff', useFor: 'Refactoring, cleanup, dependency updates' },\n { name: 'spike', color: '#006b75', useFor: 'Research or investigation' },\n { name: 'blocked', color: '#e4e669', useFor: 'Cannot proceed, needs unblocking' },\n ];\n const DEFAULT_BOOTSTRAP_LABEL_COLOR = '#6f42c1';\n\n const formatRole = (r) =>\n r\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n\n const normalizeLabelName = (name) =>\n String(name || '')\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, '-');\n\n const normalizeHexColor = (color) => {\n const value = String(color || '').trim();\n if (!value) return DEFAULT_BOOTSTRAP_LABEL_COLOR;\n return value.startsWith('#') ? value : `#${value}`;\n };\n\n const normalizePaperclipRole = (role, roleMeta) => {\n const apiRole = typeof roleMeta.paperclipRole === 'string' ? roleMeta.paperclipRole.trim() : '';\n return apiRole || role;\n };\n\n const resolveRoleAdapterConfig = (role, roleMeta, instructionsFilePath) => {\n const adapter = roleMeta && typeof roleMeta.adapter === 'object' ? roleMeta.adapter : {};\n const adapterType =\n typeof adapter.type === 'string' && adapter.type.trim()\n ? adapter.type.trim()\n : DEFAULT_CEO_ADAPTER_TYPE;\n const model =\n adapterType === DEFAULT_CEO_ADAPTER_TYPE\n ? DEFAULT_CEO_MODEL\n : typeof adapter.model === 'string' && adapter.model.trim()\n ? adapter.model.trim()\n : DEFAULT_CEO_MODEL;\n const thinkingLevel =\n typeof adapter.thinkingLevel === 'string' && adapter.thinkingLevel.trim()\n ? adapter.thinkingLevel.trim()\n : typeof adapter.modelReasoningEffort === 'string' && adapter.modelReasoningEffort.trim()\n ? adapter.modelReasoningEffort.trim()\n : typeof adapter.effort === 'string' && adapter.effort.trim()\n ? adapter.effort.trim()\n : DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n cwd: companyDir,\n model,\n instructionsFilePath,\n };\n\n if (adapter && typeof adapter === 'object') {\n for (const [key, value] of Object.entries(adapter)) {\n if (['type', 'model', 'effort', 'thinkingLevel', 'modelReasoningEffort'].includes(key)) {\n continue;\n }\n adapterConfig[key] = value;\n }\n }\n\n if (adapterType === DEFAULT_CEO_ADAPTER_TYPE) {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n }\n\n return { adapterType, adapterConfig };\n };\n\n const defaultLabelByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n const parseIssueLabels = (issue) => {\n const raw = [];\n if (Array.isArray(issue?.labelNames)) raw.push(...issue.labelNames);\n if (Array.isArray(issue?.labels)) raw.push(...issue.labels);\n\n const parsed = [];\n for (const item of raw) {\n if (typeof item === 'string') {\n const name = normalizeLabelName(item);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n parsed.push({\n name,\n color: known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: known?.useFor || 'Module-defined issue category',\n });\n } else if (item && typeof item === 'object' && typeof item.name === 'string') {\n const name = normalizeLabelName(item.name);\n if (!name) continue;\n const known = defaultLabelByName.get(name);\n const color = normalizeHexColor(\n typeof item.color === 'string' && item.color.trim().length > 0\n ? item.color.trim()\n : known?.color || DEFAULT_BOOTSTRAP_LABEL_COLOR,\n );\n parsed.push({\n name,\n color,\n useFor:\n typeof item.useFor === 'string' && item.useFor.trim().length > 0\n ? item.useFor.trim()\n : known?.useFor || 'Module-defined issue category',\n });\n }\n }\n\n const seen = new Set();\n return parsed.filter((label) => {\n if (seen.has(label.name)) return false;\n seen.add(label.name);\n return true;\n });\n };\n\n const inferIssueLabelName = (issue) => {\n const text = `${issue?.title || ''} ${issue?.description || ''}`.toLowerCase();\n if (/\\bblocked\\b|\\bunblock\\b/.test(text)) return 'blocked';\n if (/\\bbug\\b|\\bfix\\b|regression|crash|error|broken/.test(text)) return 'bug';\n if (/\\bspike\\b|research|investigat|analysis|audit|explor/.test(text)) return 'spike';\n if (/\\bchore\\b|cleanup|refactor|dependency|maintenance|configure|setup|set up/.test(text)) {\n return 'chore';\n }\n return 'feature';\n };\n\n const buildBootstrapLabels = (issues) => {\n if (issues.length === 0) return [];\n\n const labelsByName = new Map(\n DEFAULT_BOOTSTRAP_LABELS.map((label) => [label.name, { ...label }]),\n );\n\n for (const issue of issues) {\n const explicitLabels = parseIssueLabels(issue);\n if (explicitLabels.length > 0) {\n for (const label of explicitLabels) {\n labelsByName.set(label.name, label);\n }\n continue;\n }\n\n const inferred = inferIssueLabelName(issue);\n if (!labelsByName.has(inferred)) {\n labelsByName.set(inferred, {\n name: inferred,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Auto-inferred issue category',\n });\n }\n }\n\n return [...labelsByName.values()];\n };\n\n const bootstrapLabels = buildBootstrapLabels(initialIssues);\n const labelsByName = new Map(bootstrapLabels.map((label) => [label.name, label]));\n\n const getIssueLabelNames = (issue) => {\n const explicit = parseIssueLabels(issue).map((label) => label.name);\n if (explicit.length > 0) return explicit;\n return [inferIssueLabelName(issue)];\n };\n\n // --- Helper: render metadata as visible bullet list ---\n const renderMeta = (fields) => {\n const lines = fields.filter(([, v]) => v !== undefined && v !== null && v !== '');\n if (lines.length === 0) return '';\n return lines.map(([k, v]) => `- **${k}**: ${v}`).join('\\n') + '\\n\\n';\n };\n\n // --- Helper: escape # in description body ---\n const escapeBody = (text) =>\n text\n .split('\\n')\n .map((l) => l.replace(/^(#+)/, '\\\\$1'))\n .join('\\n');\n\n let bootstrap = `# Bootstrap: ${companyName}\\n\\n`;\n\n // Instructions from template\n const instructionsPath = join(templatesDir, 'bootstrap-instructions.md');\n if (await exists(instructionsPath)) {\n const instructions = await readFile(instructionsPath, 'utf-8');\n bootstrap += `${instructions.trim()}\\n\\n`;\n }\n\n // Company description\n if (companyDescription) {\n bootstrap += `## Company\\n\\n`;\n bootstrap += `${companyDescription}\\n\\n`;\n }\n\n // --- Goals ---\n // All goals (user goals + inline goals + expanded subgoals) rendered uniformly.\n if (allGoals.length > 0) {\n bootstrap += `## Goals\\n\\n`;\n for (const g of allGoals) {\n bootstrap += `### ${g.title}\\n\\n`;\n bootstrap += renderMeta([\n ['level', g.level || 'company'],\n ['status', 'active'],\n ['parentId', g.parentGoal ? `\u2192 \"${g.parentGoal}\"` : undefined],\n ]);\n if (g.description) {\n bootstrap += `${escapeBody(g.description)}\\n\\n`;\n }\n }\n }\n\n // --- Projects ---\n const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n bootstrap += `### ${proj.name}\\n\\n`;\n bootstrap += renderMeta([\n ['workspace.sourceType', 'local_path'],\n ['workspace.cwd', projCwd],\n ['workspace.isPrimary', 'true'],\n [\n 'goalIds',\n proj.goals?.length > 0 ? proj.goals.map((g) => `\"${g}\"`).join(', ') : undefined,\n ],\n ]);\n if (proj.description) {\n bootstrap += `${escapeBody(proj.description)}\\n\\n`;\n }\n }\n }\n\n // --- Labels ---\n if (bootstrapLabels.length > 0) {\n bootstrap += `## Labels\\n\\n`;\n for (const label of bootstrapLabels) {\n bootstrap += `### ${label.name}\\n\\n`;\n bootstrap += renderMeta([\n ['name', label.name],\n ['color', label.color],\n ]);\n if (label.useFor) {\n bootstrap += `${escapeBody(label.useFor)}\\n\\n`;\n }\n }\n }\n\n // --- Agents ---\n bootstrap += `## Agents\\n\\n`;\n for (const role of rolesList) {\n const roleMeta = roleMetaByName.get(role) || {};\n const roleTitle = typeof roleMeta.title === 'string' ? roleMeta.title : undefined;\n const roleCapabilities =\n typeof roleMeta.description === 'string' ? roleMeta.description : undefined;\n const instructionsFilePath = `${companyDir}/agents/${role}/AGENTS.md`;\n const apiRole = normalizePaperclipRole(role, roleMeta);\n const { adapterType, adapterConfig } = resolveRoleAdapterConfig(\n role,\n roleMeta,\n instructionsFilePath,\n );\n\n bootstrap += `### ${formatRole(role)}\\n\\n`;\n bootstrap += renderMeta([\n ['role', apiRole],\n ['metadata.templateRole', role],\n ['title', roleTitle],\n ['capabilities', roleCapabilities],\n ['metadata.description', roleCapabilities],\n ['adapterType', adapterType],\n ['adapterConfig.cwd', adapterConfig.cwd],\n ['adapterConfig.model', adapterConfig.model],\n ['adapterConfig.modelReasoningEffort', adapterConfig.modelReasoningEffort],\n ['adapterConfig.thinkingLevel', adapterConfig.thinkingLevel],\n [\n 'adapterConfig.dangerouslyBypassApprovalsAndSandbox',\n adapterConfig.dangerouslyBypassApprovalsAndSandbox,\n ],\n ['adapterConfig.instructionsFilePath', adapterConfig.instructionsFilePath],\n ['instructionsFilePath', instructionsFilePath],\n ['runtimeConfig.heartbeat.enabled', 'true'],\n ['runtimeConfig.heartbeat.intervalSec', String(DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC)],\n ['runtimeConfig.heartbeat.maxConcurrentRuns', String(DEFAULT_CEO_MAX_CONCURRENT_RUNS)],\n ]);\n }\n\n // --- Issues ---\n // All issues come from module.issues[] (project-scoped), not from goals.\n if (initialIssues.length > 0) {\n bootstrap += `## Issues\\n\\n`;\n for (const issue of initialIssues) {\n bootstrap += `### ${issue.title}\\n\\n`;\n const isUserAssignment = issue.assignTo === 'user';\n const parentRefRaw =\n issue.parentId || issue.parentIssue || issue.parentIssueTitle || issue.parentTitle;\n const parentRef =\n typeof parentRefRaw === 'string' && parentRefRaw.trim().length > 0\n ? parentRefRaw.trim()\n : undefined;\n const explicitProjectRef =\n typeof issue.projectIdRef === 'string'\n ? issue.projectIdRef\n : typeof issue.projectName === 'string'\n ? issue.projectName\n : typeof issue.project === 'string'\n ? issue.project\n : undefined;\n const resolvedProjectRef = explicitProjectRef || mainProjectName;\n const issueLabelNames = getIssueLabelNames(issue);\n for (const labelName of issueLabelNames) {\n if (!labelsByName.has(labelName)) {\n labelsByName.set(labelName, {\n name: labelName,\n color: DEFAULT_BOOTSTRAP_LABEL_COLOR,\n useFor: 'Module-defined issue category',\n });\n }\n }\n\n bootstrap += renderMeta([\n [\n 'assigneeAgentId',\n !isUserAssignment && issue.assignTo ? `\u2192 \"${issue.assignTo}\"` : undefined,\n ],\n ['assigneeUserId', isUserAssignment ? '\u2192 board user' : undefined],\n ['priority', issue.priority || 'medium'],\n ['parentId', parentRef ? `\u2192 \"${parentRef}\"` : undefined],\n ['projectId', `\u2192 \"${resolvedProjectRef}\"`],\n ['labelIds', `\u2192 [${issueLabelNames.map((name) => `\"${name}\"`).join(', ')}]`],\n ]);\n if (issue.description) {\n bootstrap += `${escapeBody(issue.description)}\\n\\n`;\n }\n }\n\n bootstrap += `#### Issue Guardrails\\n\\n`;\n bootstrap += `- Top-level issues must include explicit \\`projectId\\`.\\n`;\n bootstrap += `- Subtasks must include explicit \\`parentId\\` and explicit \\`projectId\\` matching the parent project unless an explicit override is required.\\n`;\n bootstrap += `- Parent/subissue status is not implicitly coupled (no automatic status bounce).\\n`;\n bootstrap += `- Do not reopen \\`done\\` parent/subissues without an explicit reason in a comment.\\n`;\n bootstrap += `- Do not reuse parent workspaces for subissues unless explicitly requested.\\n\\n`;\n }\n\n // --- Routines ---\n if (initialRoutines.length > 0) {\n bootstrap += `## Routines\\n\\n`;\n for (const routine of initialRoutines) {\n bootstrap += `### ${routine.title}\\n\\n`;\n bootstrap += renderMeta([\n ['assigneeAgentId', routine.assignTo ? `\u2192 \"${routine.assignTo}\"` : undefined],\n ['schedule', routine.schedule],\n ['priority', routine.priority || 'medium'],\n ['concurrencyPolicy', routine.concurrencyPolicy || 'skip_if_active'],\n ['projectId', `\u2192 \"${mainProjectName}\"`],\n ]);\n if (routine.description) {\n bootstrap += `${escapeBody(routine.description)}\\n\\n`;\n }\n }\n }\n\n // --- Provisioning steps ---\n bootstrap += `## Provisioning Steps\\n\\n`;\n bootstrap += `The Company Wizard \"Provision\" step creates the company, the CEO, and this bootstrap issue. The CEO heartbeat creates the remaining Paperclip objects below by following this task.\\n\\n`;\n bootstrap += `Manual setup order (respects Paperclip object dependencies):\\n\\n`;\n let stepN = 1;\n bootstrap += `${stepN++}. **Create company** \"${companyName}\"${companyDescription ? ' (with description above)' : ''}\\n`;\n for (const g of allGoals) {\n const parentNote = g.parentGoal ? `, parentId \u2192 \"${g.parentGoal}\"` : '';\n const level = g.level || 'company';\n bootstrap += `${stepN++}. **Create goal** \"${g.title}\" (level: ${level}${parentNote})\\n`;\n }\n for (const proj of resolvedProjects) {\n const projCwd = join(companyDir, 'projects', toPascalCase(proj.name));\n const goalLinks =\n proj.goals?.length > 0 ? `, goalIds \u2192 [${proj.goals.map((g) => `\"${g}\"`).join(', ')}]` : '';\n bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: { sourceType: \"local_path\", cwd: \\`${projCwd}\\`, isPrimary: true }${goalLinks})\\n`;\n }\n if (bootstrapLabels.length > 0) {\n bootstrap += `${stepN++}. **Create labels** \u2014 create each label exactly as listed in the Labels section before creating issues\\n`;\n }\n bootstrap += `${stepN++}. **Create agents** \u2014 hire missing agents via governance using the adapter/runtime fields listed above; reuse/update an existing agent with the same metadata.templateRole instead of duplicating it\\n`;\n if (initialIssues.length > 0) {\n bootstrap += `${stepN++}. **Create issues** \u2014 every issue, including subtasks, must carry explicit projectId; subtasks also require parentId\\n`;\n }\n if (initialRoutines.length > 0) {\n bootstrap += `${stepN++}. **Create routines** with cron triggers as listed above\\n`;\n }\n bootstrap += `${stepN}. **Start CEO heartbeat** (one-time initial wakeup)\\n`;\n\n await writeFile(join(companyDir, 'BOOTSTRAP.md'), bootstrap);\n onProgress('+ BOOTSTRAP.md');\n\n return { companyDir, allRoles, initialIssues, initialRoutines, roleAdapterOverrides };\n}\n", "export const DEFAULT_CEO_ADAPTER_TYPE = 'codex_local';\nexport const DEFAULT_CEO_MODEL = 'gpt-5.5';\nexport const DEFAULT_CEO_THINKING_LEVEL = 'high';\nexport const DEFAULT_CEO_MAX_CONCURRENT_RUNS = 1;\nexport const DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC = 3600;\n\nconst DEFAULT_CLAUDE_CEO_MODEL = 'claude-opus-4-6';\n\nfunction asTrimmedString(value) {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nexport function normalizeCeoAdapterType(userCeoAdapter = {}) {\n return asTrimmedString(userCeoAdapter.type) || DEFAULT_CEO_ADAPTER_TYPE;\n}\n\nexport function buildCeoAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n} = {}) {\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n const userCwd = asTrimmedString(userCeoAdapter.cwd);\n const userModel = asTrimmedString(userCeoAdapter.model);\n const overrideModel = asTrimmedString(roleAdapterOverrides.model);\n const defaultModel =\n adapterType === 'claude_local' ? DEFAULT_CLAUDE_CEO_MODEL : DEFAULT_CEO_MODEL;\n const model = userModel || overrideModel || defaultModel;\n const thinkingLevel =\n asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n ...roleAdapterOverrides,\n cwd: userCwd || companyDir,\n ...(model ? { model } : {}),\n };\n delete adapterConfig.promptTemplate;\n delete adapterConfig.bootstrapPromptTemplate;\n\n if (adapterType === 'codex_local') {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n } else if (adapterType === 'claude_local') {\n adapterConfig.dangerouslySkipPermissions = true;\n }\n\n return adapterConfig;\n}\n\nexport function buildCeoAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: true,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n", "const BASE_ROLE_MAP = {\n ceo: 'ceo',\n engineer: 'engineer',\n};\n\n/**\n * Minimal Paperclip API client using native fetch.\n * Supports both local_trusted (no auth) and authenticated instances.\n *\n * Usage:\n * const client = new PaperclipClient('http://localhost:3100', { email, password });\n * await client.connect(); // auto-detects auth requirement, signs in if needed\n */\nexport class PaperclipClient {\n constructor(baseUrl = 'http://localhost:3100', credentials = {}) {\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n this.origin = new URL(this.baseUrl).origin;\n this.credentials = credentials; // { email, password } \u2014 optional\n this.sessionCookie = null;\n this.boardUserId = null; // resolved during connect()\n }\n\n async _fetch(path, opts = {}) {\n const url = `${this.baseUrl}${path}`;\n const headers = { 'Content-Type': 'application/json', Origin: this.origin, ...opts.headers };\n if (this.sessionCookie) {\n headers['Cookie'] = this.sessionCookie;\n }\n let res;\n try {\n res = await fetch(url, { ...opts, headers });\n } catch (err) {\n throw new Error(\n `${opts.method || 'GET'} ${path} \u2014 network error: ${err.message}. Is Paperclip running at ${this.baseUrl}?`,\n );\n }\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`${opts.method || 'GET'} ${path} \u2192 ${res.status}: ${body}`);\n }\n return res.json();\n }\n\n /**\n * Connect to the Paperclip instance.\n * Pings the API \u2014 if auth is required and credentials are available, signs in.\n * For local_trusted instances this is a no-op beyond the connectivity check.\n */\n async connect() {\n let res;\n try {\n res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers: { Origin: this.origin },\n });\n } catch (err) {\n // Network error (connection refused, DNS failure, wrong port, etc.)\n throw new Error(\n `Could not reach Paperclip at ${this.baseUrl} (${err.message}).\\n` +\n ` If your instance runs on a different port, set paperclipUrl in plugin settings.`,\n );\n }\n\n // local_trusted \u2014 no auth needed\n if (res.ok) {\n this.boardUserId = 'local-board';\n return;\n }\n\n // Auth required\n if (res.status === 401 || res.status === 403) {\n const { email, password } = this.credentials;\n if (!email || !password) {\n throw new Error(\n `Paperclip instance requires authentication.\\n` +\n ` Configure paperclipEmail and paperclipPassword in plugin settings.`,\n );\n }\n await this._signIn(email, password);\n // Fetch the authenticated user's ID for assigneeUserId support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n } catch {\n // Non-critical \u2014 user assignment will fall back to unassigned\n }\n return;\n }\n\n throw new Error(\n `Paperclip API at ${this.baseUrl} returned unexpected status ${res.status}.\\n` +\n ` Check that paperclipUrl in plugin settings points to the correct instance.`,\n );\n }\n\n /**\n * Authenticate via Better Auth email/password sign-in.\n * Captures the session cookie for subsequent requests.\n */\n async _signIn(email, password) {\n const res = await fetch(`${this.baseUrl}/api/auth/sign-in/email`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', Origin: this.origin },\n body: JSON.stringify({ email, password }),\n redirect: 'manual',\n });\n\n if (!res.ok && res.status !== 302) {\n const body = await res.text().catch(() => '');\n throw new Error(`Authentication failed (${res.status}): ${body}`);\n }\n\n // Capture set-cookie header(s)\n const setCookie = res.headers.getSetCookie?.() || [];\n if (setCookie.length === 0) {\n // Fallback: some runtimes use get('set-cookie')\n const raw = res.headers.get('set-cookie');\n if (raw) setCookie.push(...raw.split(/,(?=\\s*\\w+=)/));\n }\n\n this.sessionCookie = setCookie\n .map((c) => c.split(';')[0].trim())\n .filter(Boolean)\n .join('; ');\n\n if (!this.sessionCookie) {\n throw new Error('Authentication succeeded but no session cookie received.');\n }\n }\n\n async ping() {\n try {\n const headers = { Origin: this.origin };\n if (this.sessionCookie) headers['Cookie'] = this.sessionCookie;\n const res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers,\n });\n return res.ok;\n } catch {\n return false;\n }\n }\n\n async createCompany({ name, description }) {\n return this._fetch('/api/companies', {\n method: 'POST',\n body: JSON.stringify({ name, description: description || null }),\n });\n }\n\n async updateCompany(companyId, updates) {\n return this._fetch(`/api/companies/${companyId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n }\n\n async deleteCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'DELETE' });\n }\n\n async getCompany(companyId) {\n return this._fetch(`/api/companies/${companyId}`, { method: 'GET' });\n }\n\n async listAgents(companyId) {\n return this._fetch(`/api/companies/${companyId}/agents`, { method: 'GET' });\n }\n\n async getAgent(agentId) {\n return this._fetch(`/api/agents/${agentId}`, { method: 'GET' });\n }\n\n async updateAgent(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async updateInstructionsBundle(agentId, updates) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async upsertInstructionsBundleFile(\n agentId,\n { path: filePath, content, clearLegacyPromptTemplate },\n ) {\n return this._fetch(`/api/agents/${agentId}/instructions-bundle/file`, {\n method: 'PUT',\n body: JSON.stringify({\n path: filePath,\n content,\n ...(clearLegacyPromptTemplate !== undefined\n ? { clearLegacyPromptTemplate: !!clearLegacyPromptTemplate }\n : {}),\n }),\n });\n }\n\n async createAgent(companyId, agent) {\n const {\n name,\n role,\n title,\n icon,\n reportsTo,\n capabilities,\n tags,\n desiredSkills,\n adapterType,\n adapterConfig,\n runtimeConfig,\n budgetMonthlyCents,\n permissions,\n metadata,\n instructionsBundle,\n } = agent || {};\n const payload = {\n name,\n role,\n title: title || null,\n ...(icon !== undefined ? { icon: icon || null } : {}),\n reportsTo: reportsTo || null,\n ...(capabilities !== undefined ? { capabilities: capabilities || null } : {}),\n ...(tags !== undefined ? { tags } : {}),\n ...(desiredSkills !== undefined ? { desiredSkills } : {}),\n adapterType: adapterType || 'codex_local',\n adapterConfig: adapterConfig || {},\n ...(runtimeConfig ? { runtimeConfig } : {}),\n ...(budgetMonthlyCents !== undefined ? { budgetMonthlyCents } : {}),\n ...(permissions ? { permissions } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n ...(instructionsBundle !== undefined ? { instructionsBundle } : {}),\n };\n\n try {\n return await this._fetch(`/api/companies/${companyId}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const requiresApproval =\n message.includes('Direct agent creation requires board approval') ||\n message.includes('/agent-hires');\n if (!requiresApproval) throw err;\n\n const hireResult = await this._fetch(`/api/companies/${companyId}/agent-hires`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n\n const hiredAgent = hireResult?.agent || null;\n const approvalId = hireResult?.approval?.id || null;\n if (!hiredAgent) {\n throw new Error('Agent hire endpoint returned no agent.');\n }\n\n if (approvalId) {\n try {\n await this._fetch(`/api/approvals/${approvalId}/approve`, {\n method: 'POST',\n body: JSON.stringify({ decisionNote: 'Auto-approved by Company Wizard provisioning' }),\n });\n try {\n return await this._fetch(`/api/agents/${hiredAgent.id}`, { method: 'GET' });\n } catch {\n return hiredAgent;\n }\n } catch (approveErr) {\n return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n _approvalAutoApproveError:\n approveErr instanceof Error ? approveErr.message : String(approveErr),\n };\n }\n }\n\n return hiredAgent;\n }\n }\n\n async createProject(companyId, { name, description, goalIds, workspace }) {\n const workspacePayload =\n typeof workspace === 'string'\n ? { sourceType: 'local_path', cwd: workspace, isPrimary: true }\n : workspace || undefined;\n return this._fetch(`/api/companies/${companyId}/projects`, {\n method: 'POST',\n body: JSON.stringify({\n name,\n description: description || null,\n ...(goalIds?.length ? { goalIds } : {}),\n workspace: workspacePayload,\n }),\n });\n }\n\n async createGoal(companyId, { title, description, level, parentId, status, ownerAgentId }) {\n return this._fetch(`/api/companies/${companyId}/goals`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n level: level || 'company',\n status: status || 'active',\n ...(parentId ? { parentId } : {}),\n ...(ownerAgentId ? { ownerAgentId } : {}),\n }),\n });\n }\n\n async createIssue(\n companyId,\n {\n title,\n description,\n status,\n priority,\n parentId,\n projectId,\n projectWorkspaceId,\n goalId,\n labelIds,\n assigneeAgentId,\n assigneeUserId,\n executionWorkspacePreference,\n executionWorkspaceSettings,\n executionPolicy,\n blockedByIssueIds,\n blockParentUntilDone,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/issues`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n status: status || undefined,\n priority: priority || 'medium',\n parentId: parentId || undefined,\n projectId: projectId || undefined,\n projectWorkspaceId: projectWorkspaceId || undefined,\n goalId: goalId || undefined,\n labelIds: labelIds || undefined,\n assigneeAgentId: assigneeAgentId || undefined,\n assigneeUserId: assigneeUserId || undefined,\n executionWorkspacePreference: executionWorkspacePreference || undefined,\n executionWorkspaceSettings: executionWorkspaceSettings || undefined,\n executionPolicy: executionPolicy || undefined,\n blockedByIssueIds: blockedByIssueIds || undefined,\n blockParentUntilDone: blockParentUntilDone || undefined,\n }),\n });\n }\n\n async createRoutine(\n companyId,\n {\n title,\n description,\n assigneeAgentId,\n projectId,\n priority,\n status,\n concurrencyPolicy,\n catchUpPolicy,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/routines`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n assigneeAgentId: assigneeAgentId || undefined,\n projectId: projectId || undefined,\n priority: priority || 'medium',\n status: status || 'active',\n concurrencyPolicy: concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: catchUpPolicy || 'skip_missed',\n }),\n });\n }\n\n async createRoutineTrigger(routineId, { kind, cronExpression, timezone }) {\n return this._fetch(`/api/routines/${routineId}/triggers`, {\n method: 'POST',\n body: JSON.stringify({\n kind: kind || 'schedule',\n ...(cronExpression ? { cronExpression } : {}),\n ...(timezone ? { timezone } : {}),\n }),\n });\n }\n\n async triggerHeartbeat(agentId, { issueId } = {}) {\n return this._fetch(`/api/agents/${agentId}/wakeup`, {\n method: 'POST',\n body: JSON.stringify({\n source: 'on_demand',\n triggerDetail: 'manual',\n ...(issueId ? { payload: { issueId } } : {}),\n }),\n });\n }\n\n /**\n * Resolve a clipper role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(clipperRole, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[clipperRole]) return BASE_ROLE_MAP[clipperRole];\n // Check role.json data\n if (roleData?.paperclipRole) return roleData.paperclipRole;\n return 'general';\n }\n}\n", "import { access, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * @typedef {Object} SubGoal\n * @property {string} id - Unique identifier (kebab-case).\n * @property {string} title\n * @property {'company'|'team'|'agent'|'task'} [level] - Goal level. Default: 'team'.\n * @property {string} [description]\n */\n\n/**\n * @typedef {Object} InlineGoal\n * @property {string} title\n * @property {string} description\n * @property {SubGoal[]} [subgoals]\n */\n\n/**\n * @typedef {Object} TemplateIssue\n * @property {string} title\n * @property {string} [description]\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [assignTo] - Role name, 'capability:<skill>', or 'user'.\n */\n\n/**\n * @typedef {Object} TemplateRoutine\n * @property {string} title\n * @property {string} [description]\n * @property {string} assignTo - Role name or 'capability:<skill>'.\n * @property {string} schedule - Cron expression.\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [concurrencyPolicy] - 'skip_if_active' | 'coalesce_if_active' | 'always_enqueue'\n */\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\nexport async function loadPresets(templatesDir) {\n const presetsDir = join(templatesDir, 'presets');\n const presets = [];\n if (!(await exists(presetsDir))) return presets;\n const dirs = await readdir(presetsDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const presetFile = join(presetsDir, dir.name, 'preset.meta.json');\n if (await exists(presetFile)) {\n const preset = JSON.parse(await readFile(presetFile, 'utf-8'));\n // Validate inline goals if present\n if (preset.goals) {\n for (const goal of preset.goals) {\n validateGoal(goal, `preset \"${preset.name}\"`);\n }\n }\n presets.push(preset);\n }\n }\n return presets;\n}\n\nexport async function loadModules(templatesDir) {\n const modulesDir = join(templatesDir, 'modules');\n const modules = [];\n if (!(await exists(modulesDir))) return modules;\n const dirs = await readdir(modulesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const moduleJson = await readJson(join(modulesDir, dir.name, 'module.meta.json'));\n const readmePath = join(modulesDir, dir.name, 'README.md');\n let description = '';\n if (await exists(readmePath)) {\n const content = await readFile(readmePath, 'utf-8');\n const descLine = content.split('\\n').find((l) => l.length > 0 && !l.startsWith('#'));\n description = descLine?.trim() || '';\n }\n const mod = { name: dir.name, description, ...(moduleJson || {}) };\n // Backward compat: rename tasks \u2192 issues if old format\n if (mod.tasks && !mod.issues) {\n mod.issues = mod.tasks;\n delete mod.tasks;\n }\n // Validate inline goal if present\n if (mod.goal) {\n validateGoal(mod.goal, `module \"${mod.name}\"`);\n }\n modules.push(mod);\n }\n return modules;\n}\n\nexport async function loadRoles(templatesDir) {\n const rolesDir = join(templatesDir, 'roles');\n const roles = [];\n if (!(await exists(rolesDir))) return roles;\n\n const dirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const roleJson = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleJson) {\n roles.push(roleJson);\n }\n }\n\n return roles;\n}\n\nconst VALID_PRIORITIES = new Set(['critical', 'high', 'medium', 'low']);\nconst SUBGOAL_ID_RE = /^[a-z][a-z0-9-]*$/;\n\n/**\n * Validate an inline goal object (from module or preset).\n * Throws on invalid data.\n * @param {InlineGoal} goal\n * @param {string} sourceName - context for error messages\n */\nfunction validateGoal(goal, sourceName) {\n if (!goal.title || typeof goal.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"title\"`);\n }\n if (!goal.description || typeof goal.description !== 'string') {\n throw new Error(`Goal in ${sourceName}: missing or invalid \"description\"`);\n }\n\n if (goal.subgoals) {\n if (!Array.isArray(goal.subgoals)) {\n throw new Error(`Goal in ${sourceName}: \"subgoals\" must be an array`);\n }\n const ids = new Set();\n for (const sg of goal.subgoals) {\n if (!sg.id || typeof sg.id !== 'string' || !SUBGOAL_ID_RE.test(sg.id)) {\n throw new Error(`Goal in ${sourceName}: subgoal \"id\" must be kebab-case (got \"${sg.id}\")`);\n }\n if (ids.has(sg.id)) {\n throw new Error(`Goal in ${sourceName}: duplicate subgoal id \"${sg.id}\"`);\n }\n ids.add(sg.id);\n if (!sg.title || typeof sg.title !== 'string') {\n throw new Error(`Goal in ${sourceName}: subgoal \"${sg.id}\" missing \"title\"`);\n }\n }\n }\n\n // Legacy support: warn if old fields are still present\n if (goal.milestones) {\n throw new Error(`Goal in ${sourceName}: \"milestones\" is deprecated \u2014 use \"subgoals\" instead`);\n }\n if (goal.issues) {\n throw new Error(\n `Goal in ${sourceName}: \"issues\" inside goals is deprecated \u2014 move to module/preset level \"issues[]\"`,\n );\n }\n}\n\n/**\n * Collect all active goals from selected preset and modules.\n *\n * @param {object|null} preset - The selected preset object\n * @param {object[]} modules - All loaded modules\n * @param {Set<string>} selectedModules - Names of selected modules\n * @returns {InlineGoal[]}\n */\nexport function collectGoals(preset, modules, selectedModules) {\n const goals = [];\n\n // 1. Preset goals\n if (preset?.goals) {\n for (const goal of preset.goals) {\n goals.push({ ...goal, _source: `preset:${preset.name}` });\n }\n }\n\n // 2. Module goals (only from selected modules)\n for (const mod of modules) {\n if (!selectedModules.has(mod.name)) continue;\n if (!mod.goal) continue;\n goals.push({ ...mod.goal, _source: `module:${mod.name}`, _module: mod.name });\n }\n\n return goals;\n}\n\nexport { validateGoal, validateGoal as validateGoalTemplate };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["util", "objectUtil", "path", "errorUtil", "path", "errorMap", "ctx", "result", "issues", "elements", "processed", "result", "r", "ZodFirstPartyTypeKind", "executionWorkspaceStrategySchema", "path", "plugin", "options", "fs", "path", "fileURLToPath", "labelsByName", "path", "access", "readdir", "readFile", "join", "exists", "readJson", "path", "fileURLToPath", "fs", "
|
|
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/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\nimport { PaperclipClient } from './api/client.js';\n// @ts-ignore \u2014 plain JS module, bundled by esbuild\nimport {\n buildCeoAdapterConfig,\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');\n\n/** Recursively copy a directory (sync). */\nfunction copyDirSync(src: string, dest: string): void {\n fs.mkdirSync(dest, { recursive: true });\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n const s = path.join(src, entry.name);\n const d = path.join(dest, entry.name);\n if (entry.isDirectory()) copyDirSync(s, d);\n else fs.copyFileSync(s, d);\n }\n}\n\n/**\n * Download a GitHub subdirectory into destDir using git sparse-checkout.\n * Expects a URL in the form: https://github.com/{owner}/{repo}/tree/{branch}/{subpath}\n */\nfunction downloadTemplatesFromGithub(destDir: string, githubUrl: string): void {\n // Branch is captured as the first path segment after /tree/; subpath takes the rest.\n // Branch names with slashes (e.g. feature/my-branch) are not supported in tree URLs \u2014\n // use a tag or a branch without slashes, or pin to a commit SHA instead.\n const match = githubUrl.match(/github\\.com\\/([^/]+)\\/([^/]+)\\/tree\\/([^/]+)\\/(.+)/);\n if (!match) {\n throw new Error(\n `Unsupported templates URL: ${githubUrl}. Expected https://github.com/{owner}/{repo}/tree/{branch}/{path}`,\n );\n }\n const [, owner, repo, branch, subpath] = match;\n const cloneUrl = `https://github.com/${owner}/${repo}.git`;\n const tmpDir = path.join(os.tmpdir(), `plugin-templates-dl-${Date.now()}`);\n try {\n execFileSync(\n 'git',\n [\n 'clone',\n '--depth',\n '1',\n '--filter=blob:none',\n '--sparse',\n '--branch',\n branch,\n cloneUrl,\n tmpDir,\n ],\n { stdio: 'pipe' },\n );\n execFileSync('git', ['sparse-checkout', 'set', subpath], { cwd: tmpDir, stdio: 'pipe' });\n const srcDir = path.join(tmpDir, subpath);\n if (!fs.existsSync(srcDir)) throw new Error(`Path '${subpath}' not found in ${cloneUrl}`);\n copyDirSync(srcDir, destDir);\n } finally {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n}\n\n/**\n * Resolve (and if needed, create) the templates directory.\n * Resolution order:\n * 1. cfg.templatesPath if set \u2192 use it; auto-download if missing.\n * 2. Default: ~/.paperclip/plugin-templates \u2192 auto-download if missing.\n * 3. Bundled templates (dist/../templates) as last resort.\n */\nasync function ensureTemplatesDir(cfg: Record<string, string>): Promise<string> {\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n\n if (cfg.templatesPath) {\n if (fs.existsSync(cfg.templatesPath)) return cfg.templatesPath;\n downloadTemplatesFromGithub(cfg.templatesPath, repoUrl);\n return cfg.templatesPath;\n }\n\n const defaultDir = path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(defaultDir)) return defaultDir;\n\n try {\n downloadTemplatesFromGithub(defaultDir, repoUrl);\n return defaultDir;\n } catch {\n if (fs.existsSync(BUNDLED_TEMPLATES_DIR)) return BUNDLED_TEMPLATES_DIR;\n throw new Error(\n 'Templates not found and download failed. Configure templatesPath or templatesRepoUrl in plugin settings.',\n );\n }\n}\n\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\n/** Parse a boolean plugin-config value that may arrive as a real boolean or a string. */\nfunction cfgBool(cfg: Record<string, unknown>, key: string): boolean {\n const raw = cfg[key];\n return raw === true || (typeof raw === 'string' && raw.toLowerCase() === 'true');\n}\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 formatRoleName(role: string): string {\n return role\n .split('-')\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(' ');\n}\n\nfunction collectInstructionFiles(rootDir: string): Record<string, string> {\n const out: Record<string, string> = {};\n if (!fs.existsSync(rootDir)) return out;\n\n const walk = (dir: string) => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const abs = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(abs);\n continue;\n }\n if (!entry.isFile()) continue;\n const rel = path.relative(rootDir, abs).split(path.sep).join('/');\n out[rel] = fs.readFileSync(abs, 'utf-8');\n }\n };\n\n walk(rootDir);\n return out;\n}\n\nasync function syncAgentInstructionsIntoManagedBundle({\n client,\n agentId,\n sourceDir,\n entryFile,\n fallbackEntryContent,\n log,\n}: {\n client: any;\n agentId: string;\n sourceDir: string;\n entryFile: string;\n fallbackEntryContent?: string;\n log: (m: string) => void;\n}) {\n try {\n await client.updateInstructionsBundle(agentId, {\n mode: 'managed',\n entryFile,\n clearLegacyPromptTemplate: true,\n });\n\n const files = collectInstructionFiles(sourceDir);\n if (\n !files[entryFile] &&\n typeof fallbackEntryContent === 'string' &&\n fallbackEntryContent.trim()\n ) {\n files[entryFile] = fallbackEntryContent;\n }\n\n const entries = Object.entries(files).sort(([a], [b]) => a.localeCompare(b));\n if (entries.length === 0) {\n log('\u26A0 No instruction files found to sync into managed bundle.');\n return;\n }\n\n for (const [relativePath, content] of entries) {\n await client.upsertInstructionsBundleFile(agentId, {\n path: relativePath,\n content,\n });\n }\n\n log(`\u2713 Synced ${entries.length} instruction file(s) into managed bundle`);\n } catch (err) {\n log(\n `\u26A0 Could not sync managed instructions bundle: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n// --- Plugin definition ---\n\nconst plugin = definePlugin({\n async setup(ctx) {\n ctx.data.register('templates', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const templates = loadTemplates(await ensureTemplatesDir(cfg));\n if (templates.loadErrors.length > 0) {\n for (const err of templates.loadErrors) {\n ctx.logger.info(`\u26A0 Template load warning: ${err}`);\n }\n }\n return templates;\n });\n\n // Refresh templates \u2014 delete cached dir so next load re-downloads from GitHub.\n ctx.actions.register('refresh-templates', async () => {\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const repoUrl = cfg.templatesRepoUrl || DEFAULT_TEMPLATES_REPO_URL;\n const targetDir =\n cfg.templatesPath || path.join(os.homedir(), '.paperclip', 'plugin-templates');\n\n if (fs.existsSync(targetDir)) {\n fs.rmSync(targetDir, { recursive: true, force: true });\n }\n downloadTemplatesFromGithub(targetDir, repoUrl);\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // Preview action \u2014 assembles files to a temp dir and returns their contents.\n // Used by the UI review step to show/edit generated MD files before provisioning.\n ctx.actions.register('preview-files', async (params) => {\n let tmpDir: string | undefined;\n try {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n\n const companyName =\n typeof params.companyName === 'string' && params.companyName.trim()\n ? params.companyName.trim()\n : 'Preview';\n\n const templatesDir = await ensureTemplatesDir(cfg);\n tmpDir = path.join(os.tmpdir(), `clipper-preview-${Date.now()}`);\n\n // Resolve the companies dir so BOOTSTRAP.md shows correct paths in preview.\n const companiesDir = resolveCompaniesDir(cfg);\n\n const [presets, allModules] = await Promise.all([\n loadPresets(templatesDir),\n loadModules(templatesDir),\n ]);\n const selectedPreset = presets.find((p: any) => p.name === params.presetName) || null;\n const 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 outputDir: tmpDir,\n templatesDir,\n });\n\n // Collect all .md files from the assembled company dir.\n // For BOOTSTRAP.md, replace the tmp path with the realistic host workspace path\n // so the preview shows where files will actually live after provisioning.\n const previewCompanyDir = path.join(companiesDir, toPascalCase(companyName));\n const files: Record<string, string> = {};\n\n function collectMdFiles(dir: string, base: string) {\n if (!fs.existsSync(dir)) return;\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const rel = base ? `${base}/${entry.name}` : entry.name;\n const full = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n collectMdFiles(full, rel);\n } else if (entry.name.endsWith('.md')) {\n let content = fs.readFileSync(full, 'utf-8');\n if (entry.name === 'BOOTSTRAP.md') {\n content = content.replaceAll(result.companyDir, previewCompanyDir);\n }\n files[rel] = content;\n }\n }\n }\n\n collectMdFiles(result.companyDir, '');\n return { files };\n } catch (err) {\n return { files: {}, error: err instanceof Error ? err.message : String(err) };\n } finally {\n if (tmpDir) {\n try {\n fs.rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n /* */\n }\n }\n }\n });\n\n // Auth check action \u2014 called by the summary step to surface credential issues early.\n ctx.actions.register('check-auth', async () => {\n const cfg = ((await ctx.config.get()) ?? {}) as Record<string, string>;\n const paperclipUrl =\n cfg.paperclipUrl || process.env.PAPERCLIP_PUBLIC_URL || 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: cfg.paperclipEmail || '',\n password: cfg.paperclipPassword || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n });\n\n // AI chat action \u2014 proxies messages to the Anthropic API using the configured key.\n // Keeps the API key server-side; the UI never touches it directly.\n // Returns { text, error? } \u2014 never throws, so the plugin host doesn't swallow the message in a 502.\n ctx.actions.register('ai-chat', async (params) => {\n try {\n // 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 disableBoardApprovalOnNewCompanies = cfgBool(\n cfg,\n 'disableBoardApprovalOnNewCompanies',\n );\n const enableIsolatedWorktrees = await resolveEnableIsolatedWorkspacesFromInstance(cfg, log);\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: Assemble files on disk\n const outputDir = resolveCompaniesDir(cfg);\n\n fs.mkdirSync(outputDir, { recursive: true });\n log('Assembling company workspace...');\n\n const companyDescription =\n typeof params.companyDescription === 'string' ? params.companyDescription.trim() : '';\n\n // Normalize goals: support both old single-goal and new array format\n const userGoals: any[] = Array.isArray(params.goals)\n ? (params.goals as any[])\n : params.goal\n ? [params.goal]\n : [];\n const userProjects: any[] = Array.isArray(params.projects)\n ? (params.projects as any[])\n : [];\n 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 outputDir,\n templatesDir,\n onProgress: log,\n });\n\n const { companyDir } = assembleResult;\n\n // Apply file overrides from UI edits\n const fileOverrides = (params.fileOverrides as Record<string, string>) ?? {};\n for (const [relPath, content] of Object.entries(fileOverrides)) {\n const absPath = path.resolve(companyDir, relPath);\n if (!absPath.startsWith(companyDir + path.sep) && absPath !== companyDir) {\n log(`\u26A0 Skipped override outside company dir: ${relPath}`);\n continue;\n }\n if (fs.existsSync(absPath)) {\n fs.writeFileSync(absPath, content, 'utf-8');\n log(`\u270E Override: ${relPath}`);\n }\n }\n\n const ceoInstructionsDir = path.join(companyDir, 'agents', 'ceo');\n const ceoEntryFile = 'AGENTS.md';\n const ceoEntryPath = path.join(ceoInstructionsDir, ceoEntryFile);\n const ceoPromptTemplate = fs.existsSync(ceoEntryPath)\n ? fs.readFileSync(ceoEntryPath, 'utf-8')\n : '';\n\n log('');\n log(`\u2713 Generated files: ${companyDir}`);\n\n // Step 3: Connect to Paperclip API\n // The SDK doesn't support company/agent creation yet, so we use PaperclipClient\n // for those. It auto-detects auth mode (no-op for local_trusted).\n log('Connecting to Paperclip API...');\n const client = new PaperclipClient(paperclipUrl, {\n email: paperclipEmail,\n password: paperclipPassword,\n });\n await client.connect();\n log('Connected.');\n log('');\n\n // Step 5: Resolve target company (create new, or reuse existing)\n let company: any;\n let companyId: string;\n let createdCompany = false;\n\n if (existingCompanyId) {\n log(`Using existing company: ${existingCompanyId}`);\n company = await client.getCompany(existingCompanyId);\n companyId = company.id;\n log(`\u2713 Target company \"${company.name}\" selected`);\n log('Keeping company hire policy as configured (board approvals may be required).');\n } else {\n log('Creating company...');\n company = await client.createCompany({\n name: companyName,\n description: companyDescription || undefined,\n });\n companyId = company.id;\n createdCompany = true;\n log(`\u2713 Company \"${companyName}\" created`);\n\n if (disableBoardApprovalOnNewCompanies) {\n // Optional compatibility mode: disable mandatory board-approval hiring on new companies.\n // Useful when users want legacy fully-autonomous bootstrap behavior.\n try {\n await client.updateCompany(companyId, { requireBoardApprovalForNewAgents: false });\n log('\u2713 Disabled board-approval hiring policy for this new company');\n } catch (err) {\n log(\n `\u26A0 Could not disable board-approval hiring for new agents: ${err instanceof Error ? err.message : String(err)}`,\n );\n log(' Continuing \u2014 agent creation will use an approval-aware fallback if required.');\n }\n } else {\n log('Keeping company hire policy as configured (board approvals may be required).');\n }\n }\n\n // Steps 6-7 are wrapped so we can delete only newly-created companies on partial failure.\n let ceoAgentId: string;\n const teamAgentIds: Record<string, string> = {};\n let bootstrapIssue: { id: string; identifier?: string };\n try {\n // Step 6: Resolve or create CEO agent\n const userCeoAdapter = (params.ceoAdapter as any) || {};\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n\n const ceoTemplate = roleTemplateByName.get('ceo') || {};\n const ceoTitle =\n typeof ceoTemplate.title === 'string' && ceoTemplate.title.trim()\n ? ceoTemplate.title.trim()\n : 'CEO';\n const ceoDescription =\n typeof ceoTemplate.description === 'string' && ceoTemplate.description.trim()\n ? ceoTemplate.description.trim()\n : undefined;\n const ceoMetadata = {\n templateRole: 'ceo',\n ...(ceoDescription ? { description: ceoDescription } : {}),\n };\n const ceoRuntimeConfig = buildCeoAgentRuntimeConfig();\n\n const adapterConfig: Record<string, unknown> = buildCeoAdapterConfig({\n userCeoAdapter,\n companyDir,\n roleAdapterOverrides: assembleResult.roleAdapterOverrides?.get('ceo') ?? {},\n });\n const ceoInstructionFiles = collectInstructionFiles(ceoInstructionsDir);\n if (\n !ceoInstructionFiles[ceoEntryFile] &&\n typeof ceoPromptTemplate === 'string' &&\n ceoPromptTemplate.trim()\n ) {\n ceoInstructionFiles[ceoEntryFile] = ceoPromptTemplate;\n }\n const ceoInstructionsBundle =\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 if (agent._approvalAutoApproveError) {\n log(` Auto-approve failed: ${agent._approvalAutoApproveError}`);\n }\n };\n\n if (existingCompanyId) {\n log('Looking for an existing CEO agent...');\n const agents = await client.listAgents(companyId);\n const existingCeo = Array.isArray(agents)\n ? agents.find((agent: any) => agent?.role === 'ceo' && agent?.status !== 'terminated')\n : null;\n\n if (existingCeo?.id) {\n ceoAgentId = existingCeo.id;\n log(`\u2713 Reusing existing CEO agent (${ceoAgentId})`);\n\n // Keep the reused CEO aligned with the newly generated workspace/instructions.\n try {\n const ceoPatch: Record<string, unknown> = {\n adapterType,\n adapterConfig,\n runtimeConfig: ceoRuntimeConfig,\n ...(ceoMetadata\n ? { metadata: { ...(existingCeo.metadata ?? {}), ...ceoMetadata } }\n : {}),\n };\n if (!existingCeo?.title && ceoTitle) {\n ceoPatch.title = ceoTitle;\n }\n if (!existingCeo?.capabilities && ceoDescription) {\n ceoPatch.capabilities = ceoDescription;\n }\n await client.updateAgent(ceoAgentId, ceoPatch);\n log('\u2713 Updated existing CEO adapter config (cwd + Codex defaults)');\n } catch (updateErr) {\n log(\n `\u26A0 Could not update existing CEO adapter config: ${updateErr instanceof Error ? updateErr.message : String(updateErr)}`,\n );\n log(\n ' Continuing with existing CEO configuration; bootstrap paths may be out of sync.',\n );\n }\n } else {\n log('No active CEO found \u2014 creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n } else {\n log('Creating CEO agent...');\n const ceoAgent = await client.createAgent(companyId, {\n name: 'CEO',\n role: 'ceo',\n title: ceoTitle,\n ...(ceoDescription ? { capabilities: ceoDescription } : {}),\n ...(ceoMetadata ? { metadata: ceoMetadata } : {}),\n reportsTo: null,\n adapterType,\n adapterConfig,\n instructionsBundle: ceoInstructionsBundle,\n runtimeConfig: ceoRuntimeConfig,\n permissions: { canCreateAgents: true },\n });\n ceoAgentId = ceoAgent.id;\n log(`\u2713 CEO agent created (${ceoAgentId})`);\n logPendingApproval(ceoAgent);\n }\n\n await syncAgentInstructionsIntoManagedBundle({\n client,\n agentId: ceoAgentId,\n sourceDir: ceoInstructionsDir,\n entryFile: ceoEntryFile,\n fallbackEntryContent: ceoPromptTemplate,\n log,\n });\n\n // Step 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 let 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> = buildCeoAdapterConfig({\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: 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 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 });\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 if (roleAgent._approvalAutoApproveError) {\n log(` Auto-approve failed: ${roleAgent._approvalAutoApproveError}`);\n }\n }\n }\n\n // Step 6c: Create 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 routines for any agent. New companies only;\n // existing-company runs leave routines untouched to avoid duplicates.\n if (!existingCompanyId) {\n const routines = Array.isArray(assembleResult.initialRoutines)\n ? assembleResult.initialRoutines\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 priority: routine.priority || 'medium',\n concurrencyPolicy: routine.concurrencyPolicy || 'skip_if_active',\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 }\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 is ready. Trigger its first heartbeat to hire the rest of the team and create the initial backlog.',\n );\n\n return {\n companyId,\n issuePrefix: company.issuePrefix,\n paperclipUrl,\n agentIds: { ceo: ceoAgentId!, ...teamAgentIds },\n issueIds: [bootstrapIssue!.id],\n logs,\n };\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n // Only log if it wasn't already logged by the inner compensation catch\n if (!logs.some((l) => l.includes('Provisioning failed'))) {\n log(`\u2717 ${message}`);\n }\n return { error: message, logs };\n }\n });\n },\n\n async onHealth() {\n return { status: 'ok', message: 'Company Wizard plugin is running' };\n },\n\n // Called by the \"Test Configuration\" button in the plugin settings UI.\n async onValidateConfig(config: Record<string, unknown>) {\n const paperclipUrl =\n (config.paperclipUrl as string) ||\n process.env.PAPERCLIP_PUBLIC_URL ||\n 'http://localhost:3100';\n try {\n const client = new PaperclipClient(paperclipUrl, {\n email: (config.paperclipEmail as string) || '',\n password: (config.paperclipPassword as string) || '',\n });\n await client.connect();\n return { ok: true };\n } catch (err) {\n return {\n ok: false,\n errors: [err instanceof Error ? err.message : String(err)],\n };\n }\n },\n});\n\nexport default plugin;\nrunWorker(plugin, import.meta.url);\n", "import {\n access,\n appendFile,\n copyFile,\n mkdir,\n readdir,\n readFile,\n writeFile,\n} from 'node:fs/promises';\nimport { join } from 'node:path';\nimport {\n DEFAULT_CEO_ADAPTER_TYPE,\n DEFAULT_CEO_MODEL,\n DEFAULT_CEO_THINKING_LEVEL,\n DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n} from './ceo-defaults.js';\n// modulesWithActiveGoals removed \u2014 goals no longer contain issues\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function copyDir(src, dest, { skipExt } = {}) {\n await mkdir(dest, { recursive: true });\n const entries = await readdir(src, { withFileTypes: true });\n for (const entry of entries) {\n if (skipExt && entry.name.endsWith(skipExt)) continue;\n const srcPath = join(src, entry.name);\n const destPath = join(dest, entry.name);\n if (entry.isDirectory()) {\n await copyDir(srcPath, destPath, { skipExt });\n } else {\n await copyFile(srcPath, destPath);\n }\n }\n}\n\nasync function appendToFile(filePath, content) {\n if (await exists(filePath)) {\n await appendFile(filePath, content);\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\n/**\n * Convert a company name to PascalCase for the directory name.\n * \"Black Mesa\" \u2192 \"BlackMesa\", \"my-company\" \u2192 \"MyCompany\"\n */\nexport function toPascalCase(name) {\n return name\n .replace(/[^a-zA-Z0-9\\s\\-_]/g, '')\n .split(/[\\s\\-_]+/)\n .filter(Boolean)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n}\n\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 if (!selected) return 'origin/main';\n if (selected.startsWith('origin/') || selected.startsWith('refs/')) {\n return selected;\n }\n return `origin/${selected}`;\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 {string} opts.outputDir\n * @param {string} opts.templatesDir\n * @param {(line: string) => void} opts.onProgress\n * @returns {Promise<{companyDir: string, allRoles: Set<string>, initialIssues: Array, initialRoutines: Array, roleAdapterOverrides: Map<string, object>}>}\n */\nexport async function assembleCompany({\n companyName,\n companyDescription = '',\n userGoals = [],\n userProjects = [],\n moduleNames,\n extraRoleNames,\n inlineGoals = [],\n userIssues = [],\n presetIssues = [],\n presetRoutines = [],\n presetLabels = [],\n enableIsolatedWorktrees = false,\n outputDir,\n templatesDir,\n onProgress = () => {},\n}) {\n // --- Merge goals ---\n // The first user goal is the \"main\" company goal.\n // Module inline goals become sub-goals of the main goal.\n // Subgoals (formerly milestones) are expanded into allGoals with parentGoal + level.\n const mainGoal = userGoals[0] || null;\n const mergedInlineGoals = inlineGoals.map((g) => ({\n ...g,\n parentGoal: g.parentGoal || mainGoal?.title || undefined,\n }));\n\n const allGoals = [];\n for (const g of [...userGoals, ...mergedInlineGoals]) {\n allGoals.push(g);\n // Expand subgoals as nested goals\n if (g.subgoals?.length) {\n for (const sg of g.subgoals) {\n allGoals.push({\n title: sg.title,\n description: sg.description || '',\n level: sg.level || 'team',\n parentGoal: g.title,\n });\n }\n }\n }\n\n // If user specified projects, use them. Otherwise, create a default project linked to all goals.\n const resolvedProjects =\n userProjects.length > 0\n ? userProjects\n : [\n {\n name: companyName,\n description: mainGoal?.description || '',\n goals: allGoals.map((g) => g.title),\n },\n ];\n\n const baseDirName = toPascalCase(companyName);\n let dirName = baseDirName;\n let companyDir = join(outputDir, dirName);\n\n if (await exists(companyDir)) {\n let idx = 2;\n while (await exists(join(outputDir, `${baseDirName}${idx}`))) idx++;\n dirName = `${baseDirName}${idx}`;\n companyDir = join(outputDir, dirName);\n }\n\n // Discover base roles from roles/ directory (those with base: true in role.meta.json)\n const rolesDir = join(templatesDir, 'roles');\n const baseRoleNames = [];\n const roleMetaByName = new Map();\n if (await exists(rolesDir)) {\n const roleDirs = await readdir(rolesDir, { withFileTypes: true });\n for (const dir of roleDirs) {\n if (!dir.isDirectory()) continue;\n const roleMeta = await readJson(join(rolesDir, dir.name, 'role.meta.json'));\n if (roleMeta && typeof roleMeta === 'object') {\n roleMetaByName.set(dir.name, roleMeta);\n }\n if (roleMeta?.base) {\n baseRoleNames.push(dir.name);\n }\n }\n }\n\n // Determine all roles present\n const allRoles = new Set([...baseRoleNames, ...extraRoleNames]);\n\n // Validate module dependencies before starting assembly.\n // Skip modules that won't activate (missing directory or gated by activatesWithRoles).\n const selectedSet = new Set(moduleNames);\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n const deps = moduleJson?.requires || [];\n for (const dep of deps) {\n if (!selectedSet.has(dep)) {\n throw new Error(`Module \"${moduleName}\" requires module \"${dep}\", which is not selected`);\n }\n }\n }\n\n // 1. Copy base roles (exclude .meta.json metadata)\n for (const roleName of baseRoleNames) {\n const roleSrc = join(rolesDir, roleName);\n const roleDest = join(companyDir, 'agents', roleName);\n await mkdir(roleDest, { recursive: true });\n const entries = await readdir(roleSrc, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory()) {\n await copyDir(join(roleSrc, entry.name), join(roleDest, entry.name), {\n skipExt: '.meta.json',\n });\n } else if (!entry.name.endsWith('.meta.json')) {\n await copyFile(join(roleSrc, entry.name), join(roleDest, entry.name));\n }\n }\n onProgress(`+ agents/${roleName}/ (base)`);\n }\n\n // 2. Copy extra roles from roles/\n for (const roleName of extraRoleNames) {\n const roleDir = join(rolesDir, roleName);\n if (!(await exists(roleDir))) {\n onProgress(`! role ${roleName} not found, skipping`);\n continue;\n }\n const destDir = join(companyDir, 'agents', roleName);\n await mkdir(destDir, { recursive: true });\n const entries = await readdir(roleDir, { withFileTypes: true });\n for (const entry of entries) {\n if (entry.isDirectory() || !entry.name.endsWith('.md')) continue;\n await copyFile(join(roleDir, entry.name), join(destDir, entry.name));\n }\n onProgress(`+ agents/${roleName}/ (role)`);\n }\n\n // 3. Apply modules with capability-aware skill assignment\n const initialIssues = 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) => {\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 // 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 if (reviewers.length === 0 && !approver) return null;\n return { reviewers, approver };\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 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 return (\n `- **executionPolicy** (set when creating this issue; resolve each role to its agentId):\\n` +\n `${stages.join('\\n')}\\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 await copyFile(resolved.path, join(destSkillsDir, fileName));\n await appendToFile(\n join(companyDir, 'agents', roleName, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${fileName}\\`\\n`,\n );\n const sourceTag = resolved.source === 'shared' ? ', shared' : '';\n onProgress(`+ agents/${roleName}/skills/${fileName} (${moduleName}, ${label}${sourceTag})`);\n return true;\n }\n\n // Install capability-based skills for each present role\n for (const [skillName, { primary, cap }] of capabilityOwners) {\n // Primary owner gets the primary skill\n await installSkill(primary, `${skillName}.md`, 'primary');\n\n // Fallback owners get the fallback skill\n if (cap.fallbackSkill) {\n for (const fallbackRole of cap.owners) {\n if (fallbackRole === primary) continue;\n if (!allRoles.has(fallbackRole)) continue;\n await installSkill(fallbackRole, `${cap.fallbackSkill}.md`, 'fallback');\n }\n }\n }\n\n // Install non-capability skills (role-specific only, no shared lookup)\n if (await exists(agentsDir)) {\n const roles = await readdir(agentsDir, { withFileTypes: true });\n for (const role of roles) {\n if (!role.isDirectory()) continue;\n if (!allRoles.has(role.name)) continue;\n\n const skillsDir = join(agentsDir, role.name, 'skills');\n if (!(await exists(skillsDir))) continue;\n\n const skills = await readdir(skillsDir);\n for (const skillFile of skills) {\n const skillName = skillFile.replace(/\\.md$/, '');\n const skillBaseName = skillName.replace(/\\.fallback$/, '');\n\n // Skip if this skill belongs to a capability (already handled above)\n if (capabilityOwners.has(skillBaseName)) continue;\n\n const destSkillsDir = join(companyDir, 'agents', role.name, 'skills');\n await mkdir(destSkillsDir, { recursive: true });\n await copyFile(join(skillsDir, skillFile), join(destSkillsDir, skillFile));\n await appendToFile(\n join(companyDir, 'agents', role.name, 'AGENTS.md'),\n `\\nRead and follow: \\`$AGENT_HOME/skills/${skillFile}\\`\\n`,\n );\n onProgress(`+ agents/${role.name}/skills/${skillFile} (${moduleName})`);\n }\n }\n }\n }\n\n // 4. Inject module heartbeat sections into HEARTBEAT.md files\n //\n // Convention-based: if a module provides agents/<role>/heartbeat-section.md,\n // it gets appended to that role's HEARTBEAT.md (before the placeholder comment).\n // This follows the same gracefully-optimistic pattern as skills \u2014 if the file\n // exists the heartbeat extends, if not nothing breaks.\n const HEARTBEAT_MARKER =\n '<!-- Module heartbeat sections are inserted above this line during assembly -->';\n for (const moduleName of moduleNames) {\n const moduleDir = join(templatesDir, 'modules', moduleName);\n if (!(await exists(moduleDir))) continue;\n\n const moduleJson = await readJson(join(moduleDir, 'module.meta.json'));\n // Skip gated modules that didn't activate\n if (moduleJson?.activatesWithRoles?.length) {\n const hasActivatingRole = moduleJson.activatesWithRoles.some((r) => allRoles.has(r));\n if (!hasActivatingRole) continue;\n }\n\n const modAgentsDir = join(moduleDir, 'agents');\n if (!(await exists(modAgentsDir))) continue;\n\n const modRoles = await readdir(modAgentsDir, { withFileTypes: true });\n for (const modRole of modRoles) {\n if (!modRole.isDirectory()) continue;\n if (!allRoles.has(modRole.name)) continue;\n\n const sectionFile = join(modAgentsDir, modRole.name, 'heartbeat-section.md');\n if (!(await exists(sectionFile))) continue;\n\n const heartbeatPath = join(companyDir, 'agents', modRole.name, 'HEARTBEAT.md');\n if (!(await exists(heartbeatPath))) continue;\n\n const section = await readFile(sectionFile, 'utf-8');\n const heartbeat = await readFile(heartbeatPath, 'utf-8');\n\n // Insert before the marker comment, or append at end if marker not found\n const updated = heartbeat.includes(HEARTBEAT_MARKER)\n ? heartbeat.replace(HEARTBEAT_MARKER, section.trim() + '\\n\\n' + HEARTBEAT_MARKER)\n : heartbeat.trimEnd() + '\\n\\n' + section.trim() + '\\n';\n\n await writeFile(heartbeatPath, updated);\n onProgress(`+ agents/${modRole.name}/HEARTBEAT.md (${moduleName}, heartbeat section)`);\n }\n }\n\n // 5. Add 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 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 workspace.setupCommand =\n \"git init -b main && git -c user.email=bootstrap@paperclip.local -c user.name='Paperclip Bootstrap' 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 two conditions:\n //\n // 1. The `enableIsolatedWorktrees` admin setting must be on. When it is\n // off (the default), agents always share the project workspace.\n // 2. Even when enabled, a freshly-created local repository must NOT use them:\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 if (!policy || typeof policy !== 'object') return null;\n if (policy.defaultMode === 'isolated_workspace') {\n if (!enableIsolatedWorktrees || isFreshLocalRepo(workspace)) return null;\n\n const strategy = policy.workspaceStrategy;\n if (!strategy || typeof strategy !== 'object') return policy;\n if (strategy.type !== 'git_worktree') return policy;\n\n const workspaceStrategy = { ...strategy };\n const normalizedBaseRef = normalizeExecutionBaseRef(\n workspaceStrategy.baseRef,\n workspace?.repoRef || workspace?.defaultRef,\n );\n if (normalizedBaseRef) {\n workspaceStrategy.baseRef = normalizedBaseRef;\n }\n return { ...policy, 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 const mainProject = resolvedProjects[0];\n const mainProjectName = mainProject?.name || companyName;\n\n if (resolvedProjects.length > 0) {\n bootstrap += `## Projects\\n\\n`;\n for (const proj of resolvedProjects) {\n const 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 }\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);\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 bootstrap += `- Required PR reviews use the issue's \\`executionPolicy\\`: a \\`review\\` stage for the Code Reviewer (plus any relevant domain reviewer \u2014 QA/UI/UX/DevOps), then a final \\`approval\\` stage for the Product Owner. Resolve each reviewer/approver role to its agentId. Do not create separate child review issues and do not use @-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, the CEO, and this bootstrap issue. The CEO heartbeat creates the remaining Paperclip objects below by following this task.\\n\\n`;\n bootstrap += `Manual setup order (respects Paperclip object dependencies):\\n\\n`;\n let stepN = 1;\n bootstrap += `${stepN++}. **Create company** \"${companyName}\"${companyDescription ? ' (with description above)' : ''}\\n`;\n for (const g of allGoals) {\n const parentNote = g.parentGoal ? `, parentId \u2192 \"${g.parentGoal}\"` : '';\n const level = g.level || 'company';\n bootstrap += `${stepN++}. **Create goal** \"${g.title}\" (level: ${level}${parentNote})\\n`;\n }\n for (const proj of resolvedProjects) {\n const 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 bootstrap += `${stepN++}. **Create project** \"${proj.name}\" (workspace: ${formatWorkspaceObject(workspace)}${policy}${goalLinks})\\n`;\n }\n if (bootstrapLabels.length > 0) {\n bootstrap += `${stepN++}. **Create labels** \u2014 create each label exactly as listed in the Labels section before creating issues\\n`;\n }\n bootstrap += `${stepN++}. **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 { companyDir, allRoles, initialIssues, initialRoutines, roleAdapterOverrides };\n}\n", "export const DEFAULT_CEO_ADAPTER_TYPE = 'codex_local';\nexport const DEFAULT_CEO_MODEL = 'gpt-5.5';\nexport const DEFAULT_CEO_THINKING_LEVEL = 'high';\nexport const DEFAULT_CEO_MAX_CONCURRENT_RUNS = 1;\nexport const DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC = 3600;\n\nconst DEFAULT_CLAUDE_CEO_MODEL = 'claude-opus-4-6';\n\nfunction asTrimmedString(value) {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nexport function normalizeCeoAdapterType(userCeoAdapter = {}) {\n return asTrimmedString(userCeoAdapter.type) || DEFAULT_CEO_ADAPTER_TYPE;\n}\n\nexport function buildCeoAdapterConfig({\n userCeoAdapter = {},\n companyDir,\n roleAdapterOverrides = {},\n} = {}) {\n const adapterType = normalizeCeoAdapterType(userCeoAdapter);\n const userCwd = asTrimmedString(userCeoAdapter.cwd);\n const userModel = asTrimmedString(userCeoAdapter.model);\n const overrideModel = asTrimmedString(roleAdapterOverrides.model);\n const defaultModel =\n adapterType === 'claude_local' ? DEFAULT_CLAUDE_CEO_MODEL : DEFAULT_CEO_MODEL;\n const model = userModel || overrideModel || defaultModel;\n const thinkingLevel =\n asTrimmedString(userCeoAdapter.thinkingLevel) ||\n asTrimmedString(userCeoAdapter.modelReasoningEffort) ||\n asTrimmedString(userCeoAdapter.reasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.thinkingLevel) ||\n asTrimmedString(roleAdapterOverrides.modelReasoningEffort) ||\n asTrimmedString(roleAdapterOverrides.reasoningEffort) ||\n DEFAULT_CEO_THINKING_LEVEL;\n\n const adapterConfig = {\n ...roleAdapterOverrides,\n cwd: userCwd || companyDir,\n ...(model ? { model } : {}),\n };\n delete adapterConfig.promptTemplate;\n delete adapterConfig.bootstrapPromptTemplate;\n\n if (adapterType === 'codex_local') {\n adapterConfig.modelReasoningEffort = thinkingLevel;\n adapterConfig.thinkingLevel = thinkingLevel;\n adapterConfig.dangerouslyBypassApprovalsAndSandbox = true;\n } else if (adapterType === 'claude_local') {\n adapterConfig.dangerouslySkipPermissions = true;\n }\n\n return adapterConfig;\n}\n\nexport function buildCeoAgentRuntimeConfig() {\n return {\n heartbeat: {\n enabled: true,\n intervalSec: DEFAULT_CEO_HEARTBEAT_INTERVAL_SEC,\n maxConcurrentRuns: DEFAULT_CEO_MAX_CONCURRENT_RUNS,\n },\n };\n}\n\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", "const BASE_ROLE_MAP = {\n ceo: 'ceo',\n engineer: 'engineer',\n};\n\n/**\n * Minimal Paperclip API client using native fetch.\n * Supports both local_trusted (no auth) and authenticated instances.\n *\n * Usage:\n * const client = new PaperclipClient('http://localhost:3100', { email, password });\n * await client.connect(); // auto-detects auth requirement, signs in if needed\n */\nexport class PaperclipClient {\n constructor(baseUrl = 'http://localhost:3100', credentials = {}) {\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n this.origin = new URL(this.baseUrl).origin;\n this.credentials = credentials; // { email, password } \u2014 optional\n this.sessionCookie = null;\n this.boardUserId = null; // resolved during connect()\n }\n\n async _fetch(path, opts = {}) {\n const url = `${this.baseUrl}${path}`;\n const headers = { 'Content-Type': 'application/json', Origin: this.origin, ...opts.headers };\n if (this.sessionCookie) {\n headers['Cookie'] = this.sessionCookie;\n }\n let res;\n try {\n res = await fetch(url, { ...opts, headers });\n } catch (err) {\n throw new Error(\n `${opts.method || 'GET'} ${path} \u2014 network error: ${err.message}. Is Paperclip running at ${this.baseUrl}?`,\n );\n }\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`${opts.method || 'GET'} ${path} \u2192 ${res.status}: ${body}`);\n }\n return res.json();\n }\n\n /**\n * Connect to the Paperclip instance.\n * Pings the API \u2014 if auth is required and credentials are available, signs in.\n * For local_trusted instances this is a no-op beyond the connectivity check.\n */\n async connect() {\n let res;\n try {\n res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers: { Origin: this.origin },\n });\n } catch (err) {\n // Network error (connection refused, DNS failure, wrong port, etc.)\n throw new Error(\n `Could not reach Paperclip at ${this.baseUrl} (${err.message}).\\n` +\n ` If your instance runs on a different port, set paperclipUrl in plugin settings.`,\n );\n }\n\n // local_trusted \u2014 no auth needed\n if (res.ok) {\n this.boardUserId = 'local-board';\n return;\n }\n\n // Auth required\n if (res.status === 401 || res.status === 403) {\n const { email, password } = this.credentials;\n if (!email || !password) {\n throw new Error(\n `Paperclip instance requires authentication.\\n` +\n ` Configure paperclipEmail and paperclipPassword in plugin settings.`,\n );\n }\n await this._signIn(email, password);\n // Fetch the authenticated user's ID for assigneeUserId support\n try {\n const session = await this._fetch('/api/auth/get-session');\n this.boardUserId = session?.user?.id || null;\n } catch {\n // Non-critical \u2014 user assignment will fall back to unassigned\n }\n return;\n }\n\n throw new Error(\n `Paperclip API at ${this.baseUrl} returned unexpected status ${res.status}.\\n` +\n ` Check that paperclipUrl in plugin settings points to the correct instance.`,\n );\n }\n\n /**\n * Authenticate via Better Auth email/password sign-in.\n * Captures the session cookie for subsequent requests.\n */\n async _signIn(email, password) {\n const res = await fetch(`${this.baseUrl}/api/auth/sign-in/email`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', Origin: this.origin },\n body: JSON.stringify({ email, password }),\n redirect: 'manual',\n });\n\n if (!res.ok && res.status !== 302) {\n const body = await res.text().catch(() => '');\n throw new Error(`Authentication failed (${res.status}): ${body}`);\n }\n\n // Capture set-cookie header(s)\n const setCookie = res.headers.getSetCookie?.() || [];\n if (setCookie.length === 0) {\n // Fallback: some runtimes use get('set-cookie')\n const raw = res.headers.get('set-cookie');\n if (raw) setCookie.push(...raw.split(/,(?=\\s*\\w+=)/));\n }\n\n this.sessionCookie = setCookie\n .map((c) => c.split(';')[0].trim())\n .filter(Boolean)\n .join('; ');\n\n if (!this.sessionCookie) {\n throw new Error('Authentication succeeded but no session cookie received.');\n }\n }\n\n async ping() {\n try {\n const headers = { Origin: this.origin };\n if (this.sessionCookie) headers['Cookie'] = this.sessionCookie;\n const res = await fetch(`${this.baseUrl}/api/companies`, {\n method: 'GET',\n headers,\n });\n return res.ok;\n } catch {\n return false;\n }\n }\n\n /**\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 createAgent(companyId, agent) {\n const {\n name,\n role,\n title,\n icon,\n reportsTo,\n capabilities,\n tags,\n desiredSkills,\n adapterType,\n adapterConfig,\n runtimeConfig,\n budgetMonthlyCents,\n permissions,\n metadata,\n instructionsBundle,\n } = agent || {};\n const payload = {\n name,\n role,\n title: title || null,\n ...(icon !== undefined ? { icon: icon || null } : {}),\n reportsTo: reportsTo || null,\n ...(capabilities !== undefined ? { capabilities: capabilities || null } : {}),\n ...(tags !== undefined ? { tags } : {}),\n ...(desiredSkills !== undefined ? { desiredSkills } : {}),\n adapterType: adapterType || 'codex_local',\n adapterConfig: adapterConfig || {},\n ...(runtimeConfig ? { runtimeConfig } : {}),\n ...(budgetMonthlyCents !== undefined ? { budgetMonthlyCents } : {}),\n ...(permissions ? { permissions } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n ...(instructionsBundle !== undefined ? { instructionsBundle } : {}),\n };\n\n try {\n return await this._fetch(`/api/companies/${companyId}/agents`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n const requiresApproval =\n message.includes('Direct agent creation requires board approval') ||\n message.includes('/agent-hires');\n if (!requiresApproval) throw err;\n\n const hireResult = await this._fetch(`/api/companies/${companyId}/agent-hires`, {\n method: 'POST',\n body: JSON.stringify(payload),\n });\n\n const hiredAgent = hireResult?.agent || null;\n const approvalId = hireResult?.approval?.id || null;\n if (!hiredAgent) {\n throw new Error('Agent hire endpoint returned no agent.');\n }\n\n if (approvalId) {\n try {\n await this._fetch(`/api/approvals/${approvalId}/approve`, {\n method: 'POST',\n body: JSON.stringify({ decisionNote: 'Auto-approved by Company Wizard provisioning' }),\n });\n try {\n return await this._fetch(`/api/agents/${hiredAgent.id}`, { method: 'GET' });\n } catch {\n return hiredAgent;\n }\n } catch (approveErr) {\n return {\n ...hiredAgent,\n _pendingApprovalId: approvalId,\n _approvalAutoApproveError:\n approveErr instanceof Error ? approveErr.message : String(approveErr),\n };\n }\n }\n\n return hiredAgent;\n }\n }\n\n async createProject(companyId, { name, description, goalIds, workspace }) {\n const workspacePayload =\n typeof workspace === 'string'\n ? { sourceType: 'local_path', cwd: workspace, isPrimary: true }\n : workspace || undefined;\n return this._fetch(`/api/companies/${companyId}/projects`, {\n method: 'POST',\n body: JSON.stringify({\n name,\n description: description || null,\n ...(goalIds?.length ? { goalIds } : {}),\n workspace: workspacePayload,\n }),\n });\n }\n\n async createGoal(companyId, { title, description, level, parentId, status, ownerAgentId }) {\n return this._fetch(`/api/companies/${companyId}/goals`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n level: level || 'company',\n status: status || 'active',\n ...(parentId ? { parentId } : {}),\n ...(ownerAgentId ? { ownerAgentId } : {}),\n }),\n });\n }\n\n async createIssue(\n companyId,\n {\n title,\n description,\n status,\n priority,\n parentId,\n projectId,\n projectWorkspaceId,\n goalId,\n labelIds,\n assigneeAgentId,\n assigneeUserId,\n executionWorkspacePreference,\n executionWorkspaceSettings,\n executionPolicy,\n blockedByIssueIds,\n blockParentUntilDone,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/issues`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n status: status || undefined,\n priority: priority || 'medium',\n parentId: parentId || undefined,\n projectId: projectId || undefined,\n projectWorkspaceId: projectWorkspaceId || undefined,\n goalId: goalId || undefined,\n labelIds: labelIds || undefined,\n assigneeAgentId: assigneeAgentId || undefined,\n assigneeUserId: assigneeUserId || undefined,\n executionWorkspacePreference: executionWorkspacePreference || undefined,\n executionWorkspaceSettings: executionWorkspaceSettings || undefined,\n executionPolicy: executionPolicy || undefined,\n blockedByIssueIds: blockedByIssueIds || undefined,\n blockParentUntilDone: blockParentUntilDone || undefined,\n }),\n });\n }\n\n async updateIssue(issueId, updates = {}) {\n return this._fetch(`/api/issues/${issueId}`, {\n method: 'PATCH',\n body: JSON.stringify(updates || {}),\n });\n }\n\n async createRoutine(\n companyId,\n {\n title,\n description,\n assigneeAgentId,\n projectId,\n priority,\n status,\n concurrencyPolicy,\n catchUpPolicy,\n },\n ) {\n return this._fetch(`/api/companies/${companyId}/routines`, {\n method: 'POST',\n body: JSON.stringify({\n title,\n description: description || null,\n assigneeAgentId: assigneeAgentId || undefined,\n projectId: projectId || undefined,\n priority: priority || 'medium',\n status: status || 'active',\n concurrencyPolicy: concurrencyPolicy || 'skip_if_active',\n catchUpPolicy: catchUpPolicy || 'skip_missed',\n }),\n });\n }\n\n async createRoutineTrigger(routineId, { kind, cronExpression, timezone }) {\n return this._fetch(`/api/routines/${routineId}/triggers`, {\n method: 'POST',\n body: JSON.stringify({\n kind: kind || 'schedule',\n ...(cronExpression ? { cronExpression } : {}),\n ...(timezone ? { timezone } : {}),\n }),\n });\n }\n\n async triggerHeartbeat(agentId, { issueId } = {}) {\n return this._fetch(`/api/agents/${agentId}/wakeup`, {\n method: 'POST',\n body: JSON.stringify({\n source: 'on_demand',\n triggerDetail: 'manual',\n ...(issueId ? { payload: { issueId } } : {}),\n }),\n });\n }\n\n /**\n * Resolve a clipper role name to a Paperclip API role enum.\n * Uses role.json's paperclipRole field, falls back to 'general'.\n */\n static resolveRole(clipperRole, roleData) {\n // Check base roles first\n if (BASE_ROLE_MAP[clipperRole]) return BASE_ROLE_MAP[clipperRole];\n // Check role.json data\n if (roleData?.paperclipRole) return roleData.paperclipRole;\n return 'general';\n }\n}\n", "import { access, readdir, readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\n/**\n * @typedef {Object} SubGoal\n * @property {string} id - Unique identifier (kebab-case).\n * @property {string} title\n * @property {'company'|'team'|'agent'|'task'} [level] - Goal level. Default: 'team'.\n * @property {string} [description]\n */\n\n/**\n * @typedef {Object} InlineGoal\n * @property {string} title\n * @property {string} description\n * @property {SubGoal[]} [subgoals]\n */\n\n/**\n * @typedef {Object} TemplateIssue\n * @property {string} title\n * @property {string} [description]\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [assignTo] - Role name, 'capability:<skill>', or 'user'.\n */\n\n/**\n * @typedef {Object} TemplateRoutine\n * @property {string} title\n * @property {string} [description]\n * @property {string} assignTo - Role name or 'capability:<skill>'.\n * @property {string} schedule - Cron expression.\n * @property {'critical'|'high'|'medium'|'low'} [priority]\n * @property {string} [concurrencyPolicy] - 'skip_if_active' | 'coalesce_if_active' | 'always_enqueue'\n */\n\nasync function exists(p) {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function readJson(p) {\n if (!(await exists(p))) return null;\n return JSON.parse(await readFile(p, 'utf-8'));\n}\n\nexport async function loadPresets(templatesDir) {\n const presetsDir = join(templatesDir, 'presets');\n const presets = [];\n if (!(await exists(presetsDir))) return presets;\n const dirs = await readdir(presetsDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const presetFile = join(presetsDir, dir.name, 'preset.meta.json');\n if (await exists(presetFile)) {\n const preset = JSON.parse(await readFile(presetFile, 'utf-8'));\n // Validate inline goals if present\n if (preset.goals) {\n for (const goal of preset.goals) {\n validateGoal(goal, `preset \"${preset.name}\"`);\n }\n }\n presets.push(preset);\n }\n }\n return presets;\n}\n\nexport async function loadModules(templatesDir) {\n const modulesDir = join(templatesDir, 'modules');\n const modules = [];\n if (!(await exists(modulesDir))) return modules;\n const dirs = await readdir(modulesDir, { withFileTypes: true });\n for (const dir of dirs) {\n if (!dir.isDirectory()) continue;\n const moduleJson = await readJson(join(modulesDir, dir.name, 'module.meta.json'));\n const 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
|
+
"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"]
|
|
7
7
|
}
|